Top-Down System Design by Delegating Behavior

We’ve added a cool new feature called Delegation to the System Designer to really simplify top-down system design. Delegation makes it possible for you to define systems at higher levels of abstraction and progressively refine them until you end up with concrete applications. Although you could perform this task in Visual Studio 2005 Team Edition for Software Architects (see TN_1111: Top-Down System Design), the next version makes top-down system design a breeze!

In Visual Studio 2005, you can compose a new system from existing applications and systems. These applications and systems become members of the new system. The endpoints on these members describe the behavior of the members. You can expose this behavior outside the system by creating proxy endpoints. These proxy endpoints appear on the system but they represent real endpoints that always and ultimately live on an application (possibly via several layers of nested systems).

In Visual Studio 2008, you can now add endpoints directly to systems. You can then configure the behavior of these endpoints. For example, you can define the operations of a .NET Web Service Endpoint via the Web Service Details window (see Figure 1).

EndpointOnSystem.PNG

Figure 1: Define operations for a .NET Web service endpoint

You can then delegate the behavior of a system endpoint to a member of the system. This delegation will copy the endpoint onto the member and replace the system endpoint with a proxy endpoint. In essence, we allow you to define systems at higher levels of abstraction and progressively refine them until you end up with concrete applications. This is what we call Top-Down System Design.

To try this new approach, download convenient VPC images of Visual Studio Team System 2008 Beta 2 Team Suite from the following location: https://go.microsoft.com/?linkid=7171917