Skip to main content

MSF for Agile Software Development

Go Search
Home
  
MSF for Agile Software Development > Wiki Pages > Guidance - How to- Create a Shadow Application  

Guidance - How to- Create a Shadow Application

Online Process Main Page

How to: Create a Shadow Application

Description

A shadow is an architecture for the functionality to be completed in the iteration. The shadow leads the working code at the beginning of an iteration as the architects get out in front of the development for the iteration. During this time, the architecture and the working code are not in sync. As the pieces of the leading shadow are implemented, the architecture begins to reflect the working code base. The original parts of the system that were architected but not implemented, now become implemented. When the architecture represents the working code, we call the shadow a trailing shadow.

 

Procedures:

  • To create a leading shadow
    1. If there is no application diagram yet, from the menu bar, select File>New>Project. In the New Project dialog box, select the Distributed System Solutions from the Project Types list. Under Visual Studio installed templates, choose the Distributed System template. Press the OK button at the bottom of the dialog.
    2. From the Application Diagram toolbox, select an application from the list of applications and drag it onto the application diagram.
    3. Double click on the application name (shown in bold) and name the application with the word "Shadow" as a prefix. This indicates that the application will be a leading shadow.
    4. Add a new or modify an existing endpoint, defining the way that the application will interact with other applications.
    5. Right click on the shadow application and bring up the context menu. Select Design Application System to create a System Diagram for the application. Choose an appropriate system or subsystem name and click on the OK button of the Design System Application dialog.
    6. Select each endpoint and right click on it to bring up the context menu. Select Add Proxy Endpoint to create a proxy endpoint in the system diagram.
    7. On the tab in the top left corner of the system diagram, right click to bring up the context menu. Save the diagram.
       
  • To connect two shadow applications
    1. In the Solution Explorer, select the top most folder under the distributed system solution. Right click to bring up the context menu and select Add>New Distributed System Diagram.
    2. Under categories section on the left hand side of the Add New Item dialog box, be sure the Distributed Systems Diagram is selected. Under Visual Studio installed templates, select the System Diagram and give the system a name. Click the Add button at the bottom of the dialog box.
    3. From the system view list, drag the systems onto the new system diagram.
    4. Select the source endpoint to connect and press alt and the left mouse button and drag the connection to the target endpoint. A line should be drawn connecting the endpoints.
    5. On the tab in the top left corner of the system diagram, right click to bring up the context menu. Save the diagram.

 

  • To move an endpoint from a leading shadow to a trailing shadow
    1. If the trailing shadow application does not have a compatible endpoint, go to the application diagram. Copy the leading shadow application endpoint and paste it on the trailing shadow application.
    2. In the system diagram, drag the trailing shadow application from the system view into the system diagram.
    3. Select the proxy endpoint in the system diagram. Press alt and the left mouse button and move to the endpoint on the trailing shadow. The connection to the proxy endpoint should be redrawn from the proxy to the leading shadow to the proxy to the trailing shadow. Note: all connections in the other system diagrams that involve this connection should remain intact.
    4. If all of the endpoints on the leading shadow application have been implemented and the leading shadow provides no more value, go to the application diagram and delete it.

 

Attributes

GuidanceKindHow To

Last modified at 12/10/2007 3:34 PM  by Administrator