| Roadmap: Developing Component SolutionsTopicsComponent-based development is a variation on
general application development in which: 
  
    The application is built from discrete executable components
      which are developed and deployed relatively independently of one
      another, potentially by different teams.The application may be upgraded in smaller increments by
    upgrading only some of the components that comprise the application.Components may be shared between applications, creating opportunities for reuse,
    but also creating inter-project dependencies.Though not strictly related to being component-based, component-based
    applications tend to be distributed. The adaptation of the Rational Unified Process 
  (RUP) to dealing with these challenges is discussed below. The basic workflow for the Inception
Phase applies, with the following extensions or variations: Project Management
  Workflow
    Detail: Conceive New ProjectThe 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. 
  Workflow
    Detail: Evaluate Project Scope and RiskTaking a component approach changes the nature of certain
  risks and introduces new risks. Specifically: 
    externally-sourced components increase risk because they introduce
      critical elements not under the direct control of the project teamexternally-sourced components can reduce development time, reducing
      resource riskexternally-sourced components can distort the architecture of the system
      if they impose architectural restrictions of their own 
  Workflow
    Detail: Develop Software Development PlanIn 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. RequirementsTestEnvironmentThe basic workflow for the Elaboration
Phase applies, with the following extensions or variations: Requirements
  Workflow
    Detail: Refine the System DefinitionThe 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
  Workflow
    Detail: Design ComponentsThe 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. 
  Workflow Detail: 
    Design the DatabaseThe 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. ImplementationTest
  Workflow Details: Define 
    Evaluation Mission, Verify 
    Test Approach, Test 
    and Evaluate, Achieve 
    Acceptable Mission, Improve 
    Test Assets 
    The testing activities in Elaboration focus on validating
    the architecture. For a component-based system, this focus translates to: 
      
        exercising the interfaces between components, to ensure that
          component boundaries are appropriate, anda greater focus on performance testing, especially performance scaling
          tests, to ensure that anticipated transaction volumes can be sustained Any inherent assumptions in the component framework need to
    be assessed as well. These commonly include the scalability and throughput
    of the persistence and transaction management mechanisms, in which hidden
    assumptions made by the mechanism designer often effectively undermine the
    application architecture if it does not understand the assumption. A classic
    example of this is the Microsoft Transaction Server, whose requirement that
    transaction objects be 'stateless' has surprised more than a few unwary
    software architects. The basic workflow for the Construction
Phase applies, with the following extensions or variations: Project Management
  Workflow
    Detail: Plan for Next Iteration
    Using the implementation subsystems as 'logical units of
    responsibility', the construction work can be partitioned into to or more
    parallel "tracks": one which focuses on application-specific
    functionality, and one or more which focus on generic, reusable components.
    This, of course, depends on having sufficient resources to staff parallel
    development efforts. The ability to divide the development teams and work in
    parallel depends wholly on the stability of the architecture, and more
    specifically on the quality and stability of the interfaces between
    components. Strong effort in the Elaboration phase will enable this
    division. Analysis & Design
  Workflow
    Detail: Refine the Architecture and Workflow
    Detail: Design Components
    The focus in construction is on analyzing the remainder of
    the use cases and identifying appropriate components and component
    collaborations that realize the use cases. The existing architecture is
    expanded and completed, and the 'internal behaviors' of the component are
    completely designed and implemented. ImplementationTest
  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. 
  Product release in the web environment tends to be
    incremental and continuous, and less focused on traditional distribution of
    media. Release planning must be adjusted accordingly.Production support is increasingly the focus of the
    phase.Data conversion activities are performed. 
 
 
Copyright 
© 1987 - 2001 Rational Software Corporation
 |  | 
 
   |