IP Library Granted Patent US 8,086,992
Granted Patent B2
US 8,086,992 · App. 11/705,921 · Granted Dec 27, 2011

Enable top-down service design

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,086,992
App. No.
11/705,921
Granted
Dec 27, 2011
Kind
B2
Abstract

Various technologies and techniques are disclosed for providing a software development application that supports development using a top-down approach. The user creates a high-level system design for a system in the top-down design software development application. The user describes a behavior of the system by attaching technology-neutral original system endpoints and respective contracts to a plurality of system components. The user delegates each original system endpoint to a member endpoint of a corresponding technology-specific member component. The user supplies a concrete implementation for each of the corresponding technology-specific member components. Throughout this iterative development process, the high level system design is preserved.

Claims (33)

1. A method for developing software using a top-down design comprising the steps of:

providing a software development application that supports development using a top-down approach;

using a processing unit, receiving input from at least one user of the software development application to describe a behavior of an original system by attaching technology-neutral original system endpoints and respective contracts to a plurality of original system components;

using the processing unit, receiving input from the at least one user of the software development application to delegate an original system endpoint from an original system component to a member component of the original system being developed using a top-down approach;

determining technology-specific implementation details for the member component;

implementing a desired functionality for the member component by using user specified source code or calling at least one third party application;

replacing the original system endpoint with a proxy endpoint;

retaining all connections to the original system endpoint in designs that reference the original system endpoint; and

replacing a delegate member endpoint of the proxy endpoint with a different delegate member endpoint on a different member component while still retaining all connections to the original system endpoint in designs that reference the original system endpoint.

2. The method of claim 1 , wherein the third party application is a web service.

3. The method of claim 1 , wherein a confirmation is provided to indicate that replacing the member endpoint with the different member endpoint is a valid replacement.

4. The method of claim 1 , wherein the system component is operable to be called from a separate system.

5. A computer-readable storage medium having computer-executable instructions for causing a computer to perform the steps recited in claim 1 .

6. A computing device comprising:

a processing unit coupled to a memory, the memory comprising computer-executable instructions for causing the computing device to:

provide a software development application that supports development using a top-down approach;

receive input from at least one user of the software development application to describe a behavior of an original system by attaching technology-neutral original system endpoints and respective contracts to a plurality of original system components;

receive input from the at least one user of the software development application to delegate an original system endpoint from an original system component to a member component of the original system being developed using a top-down approach;

determine technology-specific implementation details for the member component;

implement a desired functionality for the member component by using user specified source code or calling at least one third party application;

replace the original system endpoint with a proxy endpoint;

retain all connections to the original system endpoint in designs that reference the original system endpoint; and

replace a delegate member endpoint of the proxy endpoint with a different delegate member endpoint on a different member component while still retaining all connections to the original system endpoint in designs that reference the original system endpoint.

7. A computer-readable storage medium having computer-executable instructions for causing a computer to perform steps comprising:

providing a software development application that supports development using a top-down approach;

using a processing unit, receiving input from at least one user of the software development application to describe a behavior of an original system by attaching technology-neutral original system endpoints and respective contracts to a plurality of original system components;

using the processing unit, receiving input from the at least one user of the software development application to delegate an original system endpoint from an original system component to a member component of the original system being developed using a top-down approach;

determining technology-specific implementation details for the member component;

implementing a desired functionality for the member component by using user specified source code or calling at least one third party application;

replacing the original system endpoint with a proxy endpoint;

retaining all connections to the original system endpoint in designs that reference the original system endpoint; and

replacing a delegate member endpoint of the proxy endpoint with a different delegate member endpoint on a different member component while still retaining all connections to the original system endpoint in designs that reference the original system endpoint.

8. The computer-readable storage medium of claim 7 , wherein the software development application allows a concrete implementation to be supplied for a particular one of the corresponding technology-specific member components by supplying details that will allow an application created by a third party to be executed.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →