Overview >
Roadmaps >
Component Solutions
Roadmap: Developing Component SolutionsThe parts of this material that relate to the use of Microsoft Windows DNA technology are provided courtesy of Applied Information Sciences, Inc. Topics
Introduction
Component-based development is a variation on general application development in which:
The adaptation of the Rational Unified Process; (RUP) to dealing with these challenges is discussed below. A discussion of some specific, additional adaptations of the RUP® for developing component solutions using the Microsoft Windows DNA platform is also included. Developing Component Solutions using Microsoft Windows DNAThe Microsoft Windows DNA platform provides specific tools and technologies for developing component-based solutions. The Windows DNA platform provides the software infrastructure for developing components in accordance with the Microsoft Component Object Model+ (COM)+ specification. The basic building blocks of the Windows DNA platform are server products, along with technologies and services that are bundled with the Microsoft Windows 2000 operating system. Some of the server products included in the Windows DNA platform are:
Some of the key Windows DNA platform technologies include:
Some of the key services for the Windows DNA platform include
These services, technologies and servers work together to facilitate the production and operation of component-based applications. Refer to the Web site www.microsoft.com/dna for a complete description of the current services and server products for the Windows DNA platform. Refer to the Microsoft Developer Network (msdn.microsoft.com) Web site for the latest information on COM+ technologies and services. The primary impact of using the Windows DNA platform to the processes defined in this Roadmap is to the activities performed in the Analysis and Design discipline during the Inception and Elaboration phases. The major change is an increased emphasis on the Activity: Architectural Analysis. A key focus of architectural analysis should be on determining the best approach for using the tools and technologies provided by the Windows DNA platform to best meet key business requirements and global non-functional requirements of the application.
Inception
Phase Activities
The basic workflow for the Inception Phase applies, with the following extensions or variations: Project Management
The focus of the Activity: Develop Business Case is adjusted to take into account that using components change the cost structure of development. In specific, the cost of developing components decreases, but more effort is spent on identifying components and validating that selected components meet their requirements. For a Windows DNA-based application development project, the Activity: Develop Business Case is also adjusted to take into account the need to plan for the acquisition and deployment of any Windows DNA platform services technologies and/or server products. The planning activity should also factor in both effort and schedule for the evaluation or prototyping of any new releases of the server and/or services technologies that may be used.
Taking a component approach changes the nature of certain risks and introduces new risks. Specifically:
In the Activity: Plan Phases and Iterations, the plan for the Construction phase may potentially show the project splitting into two different but parallel tracks: one which develops the application-specific and domain-specific components (organized in the upper layers of the architecture - see Concepts: Layering), and the non-application and non-domain-specific components organized in lower layers. In some cases, reusable components will be developed by independently managed development teams. The decision to introduce parallel tracks is largely a staffing and resource issue introduced by a desire to manage reusable components as assets independent of the applications in which they are deployed. For a Windows DNA-based application development project, in the Activity: Plan Phases and Iterations, the plans for the Inception and Elaboration phases should include the acquisition and installation of the Windows DNA platform technologies and server products in the project development and test environments. The Construction Phase or the Transition Phase plan should include the activities to acquire and to install the Windows DNA platform server products in the project production environment. Business Modeling
For a Windows DNA-based application development project, it often valuable to construct a limited business model in order to understand the business context for the application. In the Activity: Assess Target Organization and Activity: Find Business Actors and Use Cases, the business process analyst sketches out a high level business organization model and business use case model to understand the key business organizational units and business processes that will utilize the application to be developed. These activities are especially useful when a business is building applications to move existing business operations to the Internet or develop new business operations for the Internet.
For a Windows DNA-based application development project, part of the analysis performed in the Business Modeling and/or Requirements disciplines in the early Inception phase should be to explore how the products and technologies provided by the Windows DNA platform business may be used to streamline existing business operations. In the Activity: Develop Automation Requirements, the business process designer should review the Artifact: Business Use Case Model to identify process automation opportunities and document the candidate process automation candidates in the initial draft of the Artifact: Supplementary Specifications. Requirements
For Windows DNA-based application development projects, during the requirements gathering process, the system architect works with the system analyst to evaluate the major business requirements, and global non-functional requirements to determine which Windows DNA platform servers and technology services will provide the best implementation of the requirements. In certain situations, the software architect, designer, and developers may assist the system analyst in creating proof-of-concept prototypes of specific technologies to help quantify global requirements and/or system design constraints.
When refining the requirements of the system, the constraints imposed by the selected component framework need to be captured. Component frameworks improve development productivity in part by restricting the degrees of freedom offered to the software architect and designer. The Activity: Detail the Software Requirements must focus on documenting these constraints. For a Windows DNA-based application development project, the Activity: Detail the Software Requirements should focus on documenting any design constraints imposed upon by the selection of specific Windows DNA platform technologies, services, and server products. Analysis and Design
For a Windows DNA-based application development project, in the Activity: Architectural Analysis, the software architect should create initial conceptual architectural sketches of the system. These sketches are based upon the high-level requirements and design constraints contained in the preliminary versions of the Artifact: Supplementary Specifications, Artifact: Use Case Model, and (optionally) the Artifact: Business Object Model. The software architect should define high-level sketches for both the logical and deployment architecture views. The architectural sketches should also contain an indication of the candidate Windows DNA platform server products, technologies, and services that may be utilized in the application design. To develop the architectural sketches, the software architect should consult any existing Artifact: Reference Architecture, pertinent to the problem domain of the project that are available either in-house or through published case studies on the web at Microsoft’s Windows DNA Web site (www.microsoft.com/dna). This web site contains a regular feature on case studies for application development projects using the Windows DNA platform. The architectural sketches serve as a key communications mechanism between the customer and the development team to guide discussions on evaluating and assessing the candidate Windows DNA platform server products, technologies, and services during the Activity: Construct Architectural Proof-of-Concept and Activity: Assess Viability of Architectural Proof-of-Concept. These activities should be performed only in cases where it is necessary to “test” different architecture alternatives. The Architectural Proof-of-Concept activities may be done in conjunction with, or separate from, the prototyping work for quantifying non-functional requirements described in the Requirements discipline. Test
The Activity: Plan Test will additionally focus on ensuring that conformance to defined component framework and interface definition requirements are satisfied. Environment
The Activity: Develop Design Guidelines and Activity: Develop Programming Guidelines must take into account the specific component framework and the constraints imposed by it. The Activity: Develop Test Guidelines must also reflect the component framework, providing guidance on how to verify conformance with both the component framework itself and with the interfaces defined between components. For a Windows DNA-based application development project, the Activity: Develop Design Guidelines and Activity: Develop Programming Guidelines should focus upon defining guidelines for the specific Windows DNA platform server products, services, and technologies that will be used on the project. Particularly for web-hosted Windows DNA-based applications, the software architect should consider project standards for how to organize the client-side and server-side components in the development, test, and production environments. Elaboration
Phase Activities
The basic workflow for the Elaboration Phase applies, with the following extensions or variations: Requirements
The Activity: Detail the Software Requirements additionally focuses on the technical and non-functional requirements and constraints imposed on the components that are either built or purchased. Specific non-functional requirements to consider are size, performance, memory or disk footprint, run-time licensing issues, and similar constraints that will influence component selection or construction. For a Windows DNA-based application development project, in the Activity: Detail the Software Requirements, the software architect and system analyst focus on defining and quantifying any non-functional requirements imposed upon by the specific combination Windows DNA platform server products, technologies, and services selected for use on the project. The non-functional requirements should be documented in the Artifact: Supplementary Specifications. Example types of non-functional requirements are related to compatibility issues and complimentary feature sets provided by the different versions of the Windows DNA platform server products and third-party products. Analysis & Design
The Activity: Architectural Analysis uses the component framework and the technical and non-functional requirements to define an initial architecture, including an initial layering scheme and a default set of components and services (represented as analysis and design mechanisms). The Activity: Use-Case Analysis focuses on identifying architecturally significant components from architecturally significant use cases. In the Elaboration Phase for a Windows DNA-based application development project, the software architect evolves the initial architectural sketches into the initial candidate application architecture. The software architect selects the specific Windows DNA server products, services, and technologies that will be used to build the application. The software architect factors in the results of any Proof-of-Concept Architecture assessments performed during the Inception Phase into the selection process. To develop the initial candidate architecture, the software architect can utilize existing: Reference Architectures and/or the architectures samples contained in the Guidelines: Sample Windows DNA Architecture Patterns and Implementation Mechanisms and Guidelines: Technical Infrastructure Architecture. This information can be used to define the logical and deployment architecture views for the application. The software architect updates the initial architectural sketches in the Software Architecture Document. The software architect also creates the appropriate design model packages in Rational Rose for the designers to use in order to group subsystems and classes in the Activity: Class Design and Activity: Subsystem Design. The Activity: Structure the Implementation Model establishes an implementation model compatible with the component framework structure and the structure and responsibilities of the development team(s). The Activity: Identify Design Mechanisms will refine the initial design mechanisms to take into account specific framework services and components. For a Windows DNA-based application development project, in the Activity: Identify Design Mechanisms, the software architect refines the initial design mechanisms and selects specific Windows DNA technologies, services, and server products to implement the defined design mechanisms. For example, the software architect may decide to use an event driven design mechanism for implementing notification requirements. The software architect could chose implementation mechanisms such as the loosely coupled events (LCE) services in the COM+ infrastructure, in combination with queued components and the Windows message queuing services, in order to asynchronously generate notification messages to the user as specific events in the application occur. The software architect should document the design and implementation mechanisms in the Artifact: Software Architecture Document. The Activity: Identify Design Elements will identify the major, architecturally significant components of the system. Potentially reusable responsibilities should be grouped together to improve reusability; application-specific functionality should be separated from domain-specific and application-and-domain-independent functionality. For purposes of design, components can be represented as Artifact: Design Subsystems. Artifact: Interfaces should be identified for these components/subsystems. The Activity: Incorporate Existing Design Elements will ensure that identified components are consistent and compatible with existing components identified in prior iterations, in the framework itself, or from outside sources. The Activity: Describe the Run-time Architecture describes the basic process and thread architecture of the component framework, while the Activity: Describe Distribution describes the distributed computing environment in which the component application will execute. For a Windows DNA-based application development project that utilizes multi-process/thread design mechanisms, in the Activity: Describe the Run-time Architecture, the software architect determines the overall process and thread distribution strategy for the application. The software architect and designer(s) determine which threading models (Single Threaded Apartment (STA), Multi-Threaded Apartment (MTA) or neutral apartments) included in the Windows 2000 operating system COM+ transaction services (formerly the Microsoft Transaction Server (MTS) product for the Windows NT Operating System) to use in the process architecture for the application. If the application uses transaction design mechanisms, then the software architect also determines which components will be involved in transactions and the appropriate transaction implementation mechanism to use, such as: must participate, may participate, and so on. The software architect may utilize Unified Modeling Language (UML) sequence diagrams to depict the process threading and transaction models and include the diagrams in the Process Architecture View of the Artifact: Software Architecture Document (See Concepts: Process View for more information). In the Activity: Describe Distribution, the software architect defines the detailed deployment architecture view of the Windows DNA-based application and the allocation of applications and components to specific tiers and nodes in the deployment architecture. See Guidelines: Technical Infrastructure Architecture and Guidelines: Configuration and Deployment of COM+ and IIS-Based Applications for more information. Depending upon the performance, scalability, and availability requirements for the application, the software architect may need to define the types of Windows DNA platform implementation mechanisms that will be used in the deployment architecture. For example, for web-hosted Windows DNA-based applications, the software architect may determine that multiple servers are required for all major tiers (presentation, business logic, and data) of the application. The software architect needs to define the implementation mechanisms for the servers, such as whether to use Windows 2000 Server Edition or Windows 2000 Advanced Server Edition for the presentation and business logic tiers, and Windows 2000 Data Center Edition for the data tier. The software architect may also decide to use the Network Load Balancing (NLB) services to manage inbound web requests across multiple presentation tier servers running Internet Information Services (IIS), and to use Windows Clustering Services (WCS) for managing fail-over in the data tier. These types of design and implementation decisions should be documented in the deployment architecture view of the Artifact: Software Architecture Document.
The Activity: Subsystem Design further refines the design of the components, identifying classes within the component which provide the real behavior of the component. In the early stages of the Elaboration phase, there is likely to be a single class, a kind of 'subsystem/component proxy' which acts as a stub to simulate the behavior of the component for architectural prototyping purposes. Later the behavior of this class is distributed to a collaboration of classes contained within the subsystem. These contained classes are refined in the Activity: Class Design. For a Windows DNA-based application development project, in the Activity: Subsystem Design and Activity: Class Design, the designer should follow the logical architecture layer model defined by the software architect for organizing the classes and subsystems (components). The designer should be cognizant of any process architecture and distribution architecture elements that need to be factored into the class and subsystem designs, including transaction support, threading support, Distributed COM (DCOM) support, and so on. The designer should also be aware of defining the required interfaces to any COM+ component services in cases where the software architect has defined implementation mechanisms that utilize the built-in services of the COM+ infrastructure. The COM+ infrastructure elements can include such items as: events, queued components, object pooling, and component and method level role-based security mechanisms. The Guidelines: COM+ Component Design provide additional information on design considerations for utilizing services from the COM+ infrastructure. For web-hosted Windows DNA-based applications development projects, during the Activity: Class Design, and Activity: Subsystem Design, the designer defines the detailed design classes of the client-side and server side design elements (client-side pages, server-side pages, forms, client-side classes, and server-side classes) in the presentation layer of the application. See Guidelines: Active Server Page (ASP) Design for more information on design considerations for using ASP technology.
The focus in elaboration is on ensuring that the persistence strategy is scalable and that the database design and persistence mechanism will support the throughput requirements of the system. Persistent classes identified in Workflow Detail: Refine the Architecture and Workflow Detail: Design Components are mapped to the persistence mechanism and data-intensive use cases are analyzed to ensure the mechanisms will be scalable. In conjunction with the Testing Workflow Details: Plan Test, Design Test, Implement Test, the persistence mechanism and database design is assessed and validated. For a Windows DNA-based application development project, in the Activity: Class Design, Activity: Subsystem Design, and Activity: Database Design, the designer and database designer work together to design the data access classes and subsystems, and the database. This is done in accordance with the specific Windows DNA platform data access implementation mechanisms selected by the software architect. The data access implementation mechanisms are based upon the technologies defined in the Microsoft Universal Data Access (UDA) strategy, including ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC). Data access implementation mechanisms may also include the use of Windows DNA platform server products including Microsoft SNA server. The database implementation mechanisms can include Microsoft SQL Server, and potentially other commercial database management systems. The Guidelines: Universal Data Access provides more information on design considerations for data access classes. Implementation
Test
Construction
Phase Activities
The basic workflow for the Construction Phase applies, with the following extensions or variations: Project Management
Analysis & Design
Implementation
The work here is similar to that in Elaboration, but the remaining details are increasingly complete as the phase progresses. The system is progressively built as the phase continues. The Activity: Plan Test continues to focus on performance testing, but increasingly focuses on functional testing. Workflow Detail: Design Test, Workflow Detail: Implement Test, Workflow Detail- Execute Tests in Integration Test Stage, Workflow Detail- Execute Tests in System Test Stage all are adapted to focus increasingly on completeness of functionality as well as conformance with performance expectations. Deployment
For a Windows DNA-based application development project, in the Activity: Develop Deployment Plan, the deployment manager reviews the deployment architecture in the Artifact: Software Architecture Document and the non-functional requirements in the Artifact: Supplementary Specifications. The deployment manager defines the deployment strategy and tools that will be used to field the application in accordance with the defined deployment architecture and in accordance with the schedule and resources defined in the Artifact: Iteration Plan and Artifact: Software Development Plan. The deployment manager may also reference the Guidelines: Configuration and Development of COM+ and IIS-Based Applications in the selection of the appropriate deployment tools. For a Windows DNA-based application development project, in the Activity: Develop Installation Artifacts, the implementer uses the installation tools and guidelines defined in the Artifact: Deployment Plan.
Transition
Phase Activities
|
|
Rational Unified
Process
|