Overview > Roadmaps > Component Solutions
Roadmap: Developing Component SolutionsTopics
IntroductionComponent-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. Inception Phase ActivitiesThe 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.
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. Requirements
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. Test
A test plan identifying the overall intended testing for the project should be created, called the "Master Test Plan". 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. Elaboration Phase ActivitiesThe 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. 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. 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. 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.
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.
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 are identified and mapped to the persistence mechanism. Data-intensive use cases are analyzed to ensure the mechanisms will be scalable. In conjunction with the Testing Workflow Details, the persistence mechanism and database design is assessed and validated. Implementation
Test
Construction Phase ActivitiesThe 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. Test
Performance testing remains important, but there is an increasing focus on functional testing. Completeness of functionality, regression testing of existing functionality, as well as conformance with performance expectations need to be addressed. Transition Phase Activities
|
|
Rational Unified Process |