| Platform SDK: COM+ (Component Services) |
Developing a successful COM+ application requires up-front application architectural design. The Unified Modeling Language (UML) is key to this design development. The UML is a modeling notation for both data and processes that combines the best practices of the software industry. Because the UML breaks the application into three views that reflect not only the application but its packaging and implementation, the modeling notation extends well to support enterprise modeling.
The UML addresses three views of the application: the static view, which is modeled by information taken from user scenarios and class diagrams; the dynamic view, which is modeled using sequence, collaboration, and state transition diagrams; and the functional view, which is the more traditional descriptive narrative with pseudocode and specifications. The information for these views can be gathered by following three design steps that work well with the UML. Before writing a single line of code, you need to create the following models: the conceptual model, the logical model, and the physical model. These models can then be used with UML-based CASE tools such as Microsoft Visual Modeler.
During the conceptual model design phase, decide what components and services are required. In the logical model phase, determine which logical design tier they belong in. Finally, in the physical model phase, determine where the components reside physically and how they are to be coded. For more information on these three design models, see the following topics:
The Conceptual Model: Application Requirements
The Logical Model: Application Definition and Planning
The Physical Model: Application Architecture
Each topic provides an overview and contains links to other documents that provide more in-depth discussions on the subject.
These models, along with information on how a component-based application fits with COM+ and the three-tier programming model, make up the bulk of this section. A full discussion of the UML and Microsoft Visual Modeler is beyond the scope of this document. For more information on these topics, see the Visual Modeler documentation that ships with Microsoft Visual Studio.