<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:ContentDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.6/uma.ecore" xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.1" xmlns:rmc="http://www.ibm.com/rmc" rmc:version="7.5.1" xmi:id="_zf37YdnmEdmO6L4XMImrsA" name="developing_component_solutions,1.8809435842664573E-305" guid="_zf37YdnmEdmO6L4XMImrsA" changeDate="2005-10-28T11:25:31.829-0700" version="7.1.0">
  <mainDescription>&lt;a id=&quot;Top&quot; name=&quot;Top&quot;>&lt;/a> &#xD;
&lt;h6>&#xD;
    &lt;b>&lt;font size=&quot;2&quot;>Activities across the lifecycle:&lt;/font>&lt;/b>&#xD;
&lt;/h6>&#xD;
&lt;ol>&#xD;
    &lt;li>&#xD;
        &lt;a href=&quot;#Introduction&quot;>Introduction&lt;/a>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;a href=&quot;#Inception%20Phase%20Activities&quot;>Inception Phase Activities&lt;/a>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;a href=&quot;#Elaboration%20Phase%20Activities&quot;>Elaboration Phase Activities&lt;/a>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;a href=&quot;#Construction%20Phase%20Activities&quot;>Construction Phase Activities&lt;/a>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;a href=&quot;#Transition%20Phase%20Activities&quot;>Transition Phase Activities&lt;/a>&#xD;
    &lt;/li>&#xD;
&lt;/ol>&#xD;
&lt;table>&#xD;
    &lt;tbody>&#xD;
        &lt;tr>&#xD;
            &lt;td width=&quot;284&quot; height=&quot;102&quot;>&#xD;
                &lt;h6>&#xD;
                    &lt;b>&lt;font size=&quot;2&quot;>Additional topics:&lt;/font>&lt;/b>&#xD;
                &lt;/h6>&#xD;
                &lt;ul>&#xD;
                    &lt;li>&#xD;
                        &lt;b>Concepts&lt;/b> &#xD;
                        &lt;ul>&#xD;
                            &lt;li>&#xD;
                                &lt;a class=&quot;elementLink&quot;&#xD;
                                href=&quot;./../../../core.base_rup/guidances/concepts/distribution_patterns_5A01CAF5.html&quot;&#xD;
                                guid=&quot;6.137181182978733E-305&quot;>Distribution Patterns&lt;/a>&#xD;
                            &lt;/li>&#xD;
                        &lt;/ul>&#xD;
                    &lt;/li>&#xD;
                    &lt;li>&#xD;
                        &lt;b>Guidelines&lt;/b> &#xD;
                        &lt;ul>&#xD;
                            &lt;li>&#xD;
                                &lt;a class=&quot;elementLink&quot; href=&quot;./../../../core.base_rup/guidances/guidelines/concurrency_3E796647.html&quot;&#xD;
                                guid=&quot;1.5676516174458592E-304&quot;>Concurrency&lt;/a>&#xD;
                            &lt;/li>&#xD;
                            &lt;li>&#xD;
                                &lt;a class=&quot;elementLinkWithUserText&quot;&#xD;
                                href=&quot;./../../../core.base_rup/guidances/guidelines/data_model_80FB2539.html&quot;&#xD;
                                guid=&quot;3.4196799396281445E-306&quot;>data modeling&lt;/a>&#xD;
                            &lt;/li>&#xD;
                            &lt;li>&#xD;
                                &lt;a class=&quot;elementLinkWithUserText&quot;&#xD;
                                href=&quot;./../../../core.base_rup/guidances/guidelines/analysis_class_7E97273E.html&quot;&#xD;
                                guid=&quot;2.2738948033145062E-306&quot;>functionality partitioning using analysis classes&lt;/a>&#xD;
                            &lt;/li>&#xD;
                            &lt;li>&#xD;
                                &lt;a class=&quot;elementLinkWithUserText&quot;&#xD;
                                href=&quot;./../../../core.base_rup/guidances/guidelines/interface_18EF69A6.html&quot;&#xD;
                                guid=&quot;3.6682388132488183E-305&quot;>interfaces&lt;/a>&#xD;
                            &lt;/li>&#xD;
                            &lt;li>&#xD;
                                &lt;a class=&quot;elementLink&quot; href=&quot;./../../../core.base_rup/guidances/guidelines/layering_FCCD1BDA.html&quot;&#xD;
                                guid=&quot;4.458864982057142E-306&quot;>Layering&lt;/a>&#xD;
                            &lt;/li>&#xD;
                            &lt;li>&#xD;
                                &lt;a class=&quot;elementLinkWithUserText&quot;&#xD;
                                href=&quot;./../../../core.base_rup/guidances/guidelines/software_architecture_document_F4C93435.html&quot;&#xD;
                                guid=&quot;2.9494785550310917E-305&quot;>software architecture&lt;/a>&#xD;
                            &lt;/li>&#xD;
                            &lt;li>&#xD;
                                &lt;a class=&quot;elementLinkWithUserText&quot;&#xD;
                                href=&quot;./../../../core.base_rup/guidances/guidelines/unit_test_9A3F053.html&quot;&#xD;
                                guid=&quot;9.315724622037552E-305&quot;>unit testing components&lt;/a>&#xD;
                            &lt;/li>&#xD;
                            &lt;li>&#xD;
                                &lt;a class=&quot;elementLinkWithUserText&quot;&#xD;
                                href=&quot;./../../../core.base_rup/guidances/guidelines/design_subsystem_B26FD609.html&quot;&#xD;
                                guid=&quot;1.2314266786534317E-305&quot;>using design subsystems to represent components&lt;/a>&#xD;
                            &lt;/li>&#xD;
                        &lt;/ul>&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
                &lt;ul>&#xD;
                    &lt;li>&#xD;
                        &lt;b>White Papers&lt;/b> &#xD;
                        &lt;ul>&#xD;
                            &lt;li>&#xD;
                                &lt;a class=&quot;elementLinkWithUserText&quot;&#xD;
                                href=&quot;./../../../core.base_rup/guidances/whitepapers/developing_large-scale_systems_with_the_rational_unified_process_7AA2AF65.html&quot;&#xD;
                                 guid=&quot;1.768223108034868E-305&quot;>developing large-scale component-based systems&lt;/a>&#xD;
                            &lt;/li>&#xD;
                        &lt;/ul>&#xD;
                    &lt;/li>&#xD;
                &lt;/ul>&#xD;
            &lt;/td>&#xD;
        &lt;/tr>&#xD;
    &lt;/tbody>&#xD;
&lt;/table>&#xD;
&lt;h1>&#xD;
    &lt;font size=&quot;+0&quot;>&lt;b>&lt;small>&lt;a id=&quot;Introduction&quot; name=&quot;Introduction&quot;>Introduction&lt;/a>&lt;/small>&lt;/b>&lt;/font>&#xD;
&lt;/h1>&#xD;
&lt;p class=&quot;node&quot;>&#xD;
    Component-based development is a variation on general application development in which:&#xD;
&lt;/p>&#xD;
&lt;blockquote>&#xD;
    &lt;ul>&#xD;
        &lt;li>&#xD;
            The application is &lt;b>assembled from discrete executable components&lt;/b> which are &lt;b>developed and deployed&#xD;
            relatively independently of one another&lt;/b>, potentially by different teams.&#xD;
        &lt;/li>&#xD;
        &lt;li>&#xD;
            The application may be &lt;b>upgraded in smaller increments&lt;/b> by upgrading only some of the components that&#xD;
            comprise the application.&#xD;
        &lt;/li>&#xD;
        &lt;li>&#xD;
            Components may be shared between applications, creating opportunities for &lt;b>reuse&lt;/b>, but also creating&#xD;
            &lt;b>inter-project dependencies&lt;/b>.&#xD;
        &lt;/li>&#xD;
        &lt;li>&#xD;
            Though not strictly related to being component-based, component-based applications tend to be&#xD;
            &lt;b>distributed&lt;/b>.&#xD;
        &lt;/li>&#xD;
    &lt;/ul>&#xD;
&lt;/blockquote>&#xD;
&lt;p class=&quot;node&quot;>&#xD;
    Throughout this page, &quot;component&quot; is used to refer to these independently developed and deployable components.&#xD;
    Elsewhere in RUP, however, we will use the term &quot;component&quot; in the more general sense described in &lt;a&#xD;
    class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/guidances/concepts/component_A2E2B3B1.html&quot;&#xD;
    guid=&quot;3.524150980437479E-305&quot;>Concept: Component&lt;/a> , and qualify as necessary.&#xD;
&lt;/p>&#xD;
&lt;p class=&quot;node&quot;>&#xD;
    The adaptation of the Rational Unified Process (RUP) to dealing with component-based development challenges is&#xD;
    discussed below.&#xD;
&lt;/p>&#xD;
&lt;h1>&#xD;
    &lt;b>&lt;small>&lt;a id=&quot;Inception Phase Activities&quot; name=&quot;Inception Phase Activities&quot;>&lt;font size=&quot;+0&quot;>Inception Phase&#xD;
    Activities&lt;/font>&lt;/a>&lt;/small>&lt;/b>&#xD;
&lt;/h1>&#xD;
&lt;p class=&quot;node&quot;>&#xD;
    The basic workflow for the &lt;a class=&quot;elementLinkWithUserText&quot;&#xD;
    href=&quot;./../../../core.base_rup/customcategories/inception_D506BCB4.html&quot; guid=&quot;_vyZOwCVuEdqSZ9OimJ-AzA&quot;>Inception Phase&lt;/a>&#xD;
    applies, with the following extensions or variations:&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    &lt;b>Project Management&lt;/b>&#xD;
&lt;/h4>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/conceive_new_project_E9B31C9F.html&quot;&#xD;
        guid=&quot;{76FD7B68-FC91-488D-BBF1-6FE58DBACB87}&quot;>Activity: Conceive New Project&lt;/a>&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;>&#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            The focus of the &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/tasks/develop_business_case_F985B634.html&quot;&#xD;
            guid=&quot;{F7A5D34A-A8B1-466D-BE41-FFCD41B4430D}&quot;>Task: Develop Business Case&lt;/a> is adjusted to take into account&#xD;
            that using components change the cost structure of development. In specific, the cost of developing components&#xD;
            decreases, but more effort is spent on identifying components and validating that selected components meet&#xD;
            their requirements.&#xD;
        &lt;/p>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;a class=&quot;elementLinkWithType&quot;&#xD;
        href=&quot;./../../../core.base_rup/capabilitypatterns/evaluate_project_scope_and_risk_C777352.html&quot;&#xD;
        guid=&quot;{BADBA2C5-144D-482B-9B63-C95DA4DBD3E5}&quot;>Activity: Evaluate Project Scope and Risk&lt;/a>&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;>&#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            Taking a component approach changes the nature of certain risks and introduces new risks. Specifically:&#xD;
        &lt;/p>&#xD;
        &lt;ul>&#xD;
            &lt;li>&#xD;
                externally-sourced components increase risk because they introduce critical elements not under the direct&#xD;
                control of the project team&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                externally-sourced components can reduce development time, reducing resource risk&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                externally-sourced components can distort the architecture of the system if they impose architectural&#xD;
                restrictions of their own&#xD;
            &lt;/li>&#xD;
        &lt;/ul>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/plan_the_project_DD2EE35.html&quot;&#xD;
        guid=&quot;{823EF41B-2BD1-464B-84DB-C7BD432636E2}&quot;>Activity: Plan the Project&lt;/a>&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;>&#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            In the &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/tasks/plan_phases_and_iterations_2AB1A5C9.html&quot;&#xD;
            guid=&quot;{43005DA9-D75E-464D-8AFC-AB9CACD92626}&quot;>Task: Plan Phases and Iterations&lt;/a>, the plan for the&#xD;
            Construction phase may potentially show the project splitting into two different but parallel tracks: one which&#xD;
            develops the application-specific and domain-specific components (organized in the upper layers of the&#xD;
            architecture - see &lt;a class=&quot;elementLinkWithType&quot;&#xD;
            href=&quot;./../../../core.base_rup/guidances/concepts/layering_59FD1CD4.html&quot; guid=&quot;3.801315327549898E-305&quot;>Concept:&#xD;
            Layering&lt;/a>), and the non-application and non-domain-specific components organized in lower layers. In some&#xD;
            cases, reusable components will be developed by independently managed development teams. The decision to&#xD;
            introduce parallel tracks is largely a staffing and resource issue introduced by a desire to manage reusable&#xD;
            components as assets independent of the applications in which they are deployed.&#xD;
        &lt;/p>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    &lt;b>Requirements&lt;/b>&#xD;
&lt;/h4>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/refine_the_system_definition_E67B8011.html&quot;&#xD;
        guid=&quot;{0FEE5795-6090-4D82-9BDB-925E5F0D9985}&quot;>Activity: Refine the System Definition&lt;/a>&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;>&#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            When refining the requirements of the system, the constraints imposed by the selected component framework need&#xD;
            to be captured. Component frameworks improve development productivity in part by restricting the degrees of&#xD;
            freedom offered to the software architect and designer. &lt;a class=&quot;elementLinkWithType&quot;&#xD;
            href=&quot;./../../../core.base_rup/tasks/detail_software_requirements_A7F0A215.html&quot;&#xD;
            guid=&quot;{A1FA1E95-8028-42EB-9B92-0DA77380F3E1}&quot;>Task: Detail the Software Requirements&lt;/a> must focus on&#xD;
            documenting these constraints.&#xD;
        &lt;/p>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    &lt;b>Test&lt;/b>&#xD;
&lt;/h4>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/define_evaluation_mission_611C79D9.html&quot;&#xD;
        guid=&quot;{10C2C34C-BF5E-4825-A7DC-5E106EFAA4C5}&quot;>Activity: Define Evaluation Mission&lt;/a>&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;>&#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            A test plan identifying the overall intended testing for the project should be created, called the &quot;Master Test&#xD;
            Plan&quot;.&#xD;
        &lt;/p>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    &lt;b>Environment&lt;/b>&#xD;
&lt;/h4>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;a class=&quot;elementLinkWithType&quot;&#xD;
        href=&quot;./../../../core.base_rup/capabilitypatterns/prepare_environment_for_project_5F602A4.html&quot;&#xD;
        guid=&quot;{37A50EF5-CC73-4E38-B851-997879548110}&quot;>Activity: Prepare Environment for Project&lt;/a>&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;>&#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            When collecting and preparing guidelines for the project, see &lt;a class=&quot;elementLinkWithType&quot;&#xD;
            href=&quot;./../../../core.base_rup/tasks/prepare_project_specific_guidelines_A9AD00DB.html&quot;&#xD;
            guid=&quot;{1E706674-C1E7-4F8D-BF06-35FFE49C5E42}&quot;>Task: Prepare Guidelines for the Project&lt;/a> for&#xD;
            details,&amp;nbsp;take into account the specific component framework and the constraints imposed by it. Guidelines&#xD;
            should include how to design and code using the framework. They should also provide testing guidance on how to&#xD;
            verify conformance with &lt;b>both&lt;/b> the component framework itself and with the interfaces defined between&#xD;
            components.&#xD;
        &lt;/p>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h1>&#xD;
    &lt;b>&lt;small>&lt;a id=&quot;Elaboration Phase Activities&quot; name=&quot;Elaboration Phase Activities&quot;>&lt;font size=&quot;+0&quot;>Elaboration Phase&#xD;
    Activities&lt;/font>&lt;/a>&lt;/small>&lt;/b>&#xD;
&lt;/h1>&#xD;
&lt;p class=&quot;node&quot;>&#xD;
    The basic workflow for the &lt;a class=&quot;elementLinkWithUserText&quot;&#xD;
    href=&quot;./../../../core.base_rup/customcategories/elaboration_6A203A50.html&quot; guid=&quot;_-kFhcCVuEdqSZ9OimJ-AzA&quot;>Elaboration Phase&lt;/a>&#xD;
    applies, with the following extensions or variations:&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    &lt;b>Requirements&lt;/b>&#xD;
&lt;/h4>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/refine_the_system_definition_E67B8011.html&quot;&#xD;
        guid=&quot;{0FEE5795-6090-4D82-9BDB-925E5F0D9985}&quot;>Activity: Refine the System Definition&lt;/a>&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;>&#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/tasks/detail_software_requirements_A7F0A215.html&quot;&#xD;
            guid=&quot;{A1FA1E95-8028-42EB-9B92-0DA77380F3E1}&quot;>Task: Detail the Software Requirements&lt;/a> additionally focuses&#xD;
            on the technical and non-functional requirements and constraints imposed on the components that are either&#xD;
            built or purchased. Specific non-functional requirements to consider are size, performance, memory or disk&#xD;
            footprint, run-time licensing issues, and similar constraints that will influence component selection or&#xD;
            construction.&#xD;
        &lt;/p>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    &lt;b>Analysis &amp;amp; Design&lt;/b>&#xD;
&lt;/h4>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;a class=&quot;elementLinkWithType&quot;&#xD;
        href=&quot;./../../../core.base_rup/capabilitypatterns/define_a_candidate_architecture_A3651DA3.html&quot;&#xD;
        guid=&quot;{71ADFE9A-34A0-41BD-8A17-BEA3210E2BBD}&quot;>Activity: Define a Candidate Architecture&lt;/a>&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;>&#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/tasks/architectural_analysis_2B9BE03.html&quot;&#xD;
            guid=&quot;{8CB48402-D4C5-4E17-BB33-507315CB1BBF}&quot;>Task: Architectural Analysis&lt;/a> uses the component framework and&#xD;
            the technical and non-functional requirements to define an initial architecture, including an initial layering&#xD;
            scheme and a default set of components and services (represented as analysis and design mechanisms). &lt;a&#xD;
            class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/tasks/use_case_analysis_A6990185.html&quot;&#xD;
            guid=&quot;{28014615-A62F-452D-B821-30C7CAB0EC44}&quot;>Task: Use-Case Analysis&lt;/a> focuses on identifying&#xD;
            architecturally significant components from architecturally significant use cases.&#xD;
        &lt;/p>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/refine_the_architecture_F40FA195.html&quot;&#xD;
        guid=&quot;{F2160C54-F666-4736-9982-FC7F58F15FAD}&quot;>Activity: Refine the Architecture&lt;/a>&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;>&#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/tasks/structure_implementation_model_E0E0DEF9.html&quot;&#xD;
            guid=&quot;{35272424-8A0A-4DDD-BA74-C91B80A8D046}&quot;>Task: Structure the Implementation Model&lt;/a> establishes an&#xD;
            implementation model compatible with the component framework structure and the structure and responsibilities&#xD;
            of the development team or teams.&#xD;
        &lt;/p>&#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/tasks/identify_design_mechanisms_9A197FBC.html&quot;&#xD;
            guid=&quot;{C7A26BD7-3820-48D9-830F-684C3AF155F9}&quot;>Task: Identify Design Mechanisms&lt;/a> will refine the initial&#xD;
            design mechanisms to take into account specific framework services and components.&#xD;
        &lt;/p>&#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/tasks/identify_design_elements_E884AB82.html&quot;&#xD;
            guid=&quot;{97D7343A-6993-4AB7-8F86-4DAC8C9075C8}&quot;>Task: Identify Design Elements&lt;/a> will identify the major,&#xD;
            architecturally significant components of the system. Potentially reusable responsibilities should be grouped&#xD;
            together to improve reusability; application-specific functionality should be separated from domain-specific&#xD;
            and application-and-domain-independent functionality. For purposes of design, components can be represented as&#xD;
            &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/workproducts/rup_design_subsystem_1A8D169B.html&quot;&#xD;
            guid=&quot;{A3C60B25-9780-4BFA-81AF-C1AD40D8A833}&quot;>Artifact: Design Subsystem&lt;/a>s. &lt;a class=&quot;elementLinkWithType&quot;&#xD;
            href=&quot;./../../../core.base_rup/workproducts/rup_interface_9816B54F.html&quot;&#xD;
            guid=&quot;{C6938487-1DAA-4F6A-B3BC-CB99165F0680}&quot;>Artifact: Interface&lt;/a>s should be identified for these&#xD;
            components/subsystems.&#xD;
        &lt;/p>&#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/tasks/incorporate_design_elements_D3C582B5.html&quot;&#xD;
            guid=&quot;{5C647173-4E32-4594-96A9-2548B47722FA}&quot;>Task: Incorporate Existing Design Elements&lt;/a> will ensure that&#xD;
            identified components are consistent and compatible with existing components identified in prior iterations, in&#xD;
            the framework itself, or from outside sources.&#xD;
        &lt;/p>&#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            The &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/tasks/describe_runtime_architecture_2F8E190.html&quot;&#xD;
            guid=&quot;{4D35C038-A2D0-48B8-9ECD-52717FEAE33A}&quot;>Task: Describe the Run-time Architecture&lt;/a> describes the basic&#xD;
            process and thread architecture of the component framework, while the &lt;a class=&quot;elementLinkWithType&quot;&#xD;
            href=&quot;./../../../core.base_rup/tasks/describe_distribution_9BA1477C.html&quot;&#xD;
            guid=&quot;{6A112808-0A90-427A-BAB9-E14F3FBF72B5}&quot;>Task: Describe Distribution&lt;/a> describes the distributed&#xD;
            computing environment in which the component application will execute.&#xD;
        &lt;/p>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/design_components_13B33BFC.html&quot;&#xD;
        guid=&quot;{9C683674-97C1-4AEE-8DB0-9514AEFF698E}&quot;>Activity: Design Components&lt;/a>&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;>&#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            The &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/tasks/subsystem_design_5D1BCC0C.html&quot;&#xD;
            guid=&quot;{CAA385CA-2BA2-40F2-8FE3-E21089D02119}&quot;>Task: Subsystem Design&lt;/a> further refines the design of the&#xD;
            components, identifying classes within the component which provide the real behavior of the component. In the&#xD;
            early stages of the Elaboration phase, there is likely to be a single class, a kind of 'subsystem/component&#xD;
            proxy' which acts as a stub to simulate the behavior of the component for architectural prototyping purposes.&#xD;
            Later the behavior of this class is distributed to a collaboration of classes contained within the subsystem.&#xD;
            These contained classes are refined in the &lt;a class=&quot;elementLinkWithType&quot;&#xD;
            href=&quot;./../../../core.base_rup/tasks/class_design_98F20FF9.html&quot; guid=&quot;{27AE0601-2E95-4A6A-8EB3-0A4BA8E5626B}&quot;>Task:&#xD;
            Class Design&lt;/a>.&#xD;
        &lt;/p>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/design_the_database_2BE59DB0.html&quot;&#xD;
        guid=&quot;{FB3EB753-A979-4849-B57B-97F39271F82B}&quot;>Activity: Design the Database&lt;/a>&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;>&#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            The focus in elaboration is on ensuring that the persistence strategy is scalable and that the database design&#xD;
            and persistence mechanism will support the throughput requirements of the system. Persistent classes are&#xD;
            identified and mapped to the persistence mechanism. Data-intensive use cases are analyzed to ensure the&#xD;
            mechanisms will be scalable. In conjunction with the Testing Activities, the persistence mechanism and database&#xD;
            design is assessed and validated.&#xD;
        &lt;/p>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    &lt;b>Implementation&lt;/b>&#xD;
&lt;/h4>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/implement_components_AFD1799D.html&quot;&#xD;
        guid=&quot;{4DC6F53E-1FE1-44EE-812B-003D3BD1ACEA}&quot;>Activity: Implement Components&lt;/a> &#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/tasks/implement_component_AE366827.html&quot;&#xD;
            guid=&quot;{3293F4F7-EFCD-4476-BFF1-81AC3812B512}&quot;>Task: Implement Design Elements&lt;/a> must conform to the&#xD;
            constraints imposed by the component framework, as described in the Programming Guidelines, provided as part of&#xD;
            &lt;a class=&quot;elementLinkWithUserText&quot;&#xD;
            href=&quot;./../../../core.base_rup/workproducts/rup_project_specific_guidelines_8DC8DA32.html&quot;&#xD;
            guid=&quot;{E5501201-7EE6-4243-AE91-73880FF76FC1}&quot;>Work Product: Project-Specific Guidelines&lt;/a>. In the Elaboration&#xD;
            phase, most of the components will contain a great deal of 'stub' code, as the implementation here focuses on&#xD;
            validating the architecture, not producing production-quality code.&#xD;
        &lt;/p>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    &lt;b>Test&lt;/b>&#xD;
&lt;/h4>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        Activities: &lt;a class=&quot;elementLink&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/define_evaluation_mission_611C79D9.html&quot;&#xD;
        guid=&quot;{10C2C34C-BF5E-4825-A7DC-5E106EFAA4C5}&quot;>Define Evaluation Mission&lt;/a>, &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.base_rup/capabilitypatterns/verify_test_approach_A743008A.html&quot;&#xD;
        guid=&quot;{7BD514AF-19F9-408F-8279-309BD153C157}&quot;>Verify Test Approach&lt;/a>, &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.base_rup/capabilitypatterns/test_and_evaluate_4D17BD6A.html&quot;&#xD;
        guid=&quot;{93B7D625-C83A-4EFB-9772-B88F2EB02CE2}&quot;>Test and Evaluate&lt;/a>, &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.base_rup/capabilitypatterns/achieve_acceptable_mission_18DE9944.html&quot;&#xD;
        guid=&quot;{5DA9C9E9-1538-4433-8B57-B28667D67514}&quot;>Achieve Acceptable Mission&lt;/a>, &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.base_rup/capabilitypatterns/improve_test_assets_1C99FFB9.html&quot;&#xD;
        guid=&quot;{CD77CBDA-CC13-4593-BB81-41AF3FF7A84C}&quot;>Improve Test Assets&lt;/a> &#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            The testing activities in Elaboration focus on validating the architecture. For a component-based system, this&#xD;
            focus translates to:&#xD;
        &lt;/p>&#xD;
        &lt;ul>&#xD;
            &lt;li>&#xD;
                exercising the interfaces between components, to ensure that component boundaries are appropriate&#xD;
            &lt;/li>&#xD;
            &lt;li>&#xD;
                an increased focus on performance testing, especially performance scaling tests, to ensure that anticipated&#xD;
                transaction volumes can be sustained&#xD;
            &lt;/li>&#xD;
        &lt;/ul>&lt;br />&#xD;
         &#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            Any inherent assumptions in the component framework need to be assessed as well. These commonly include the&#xD;
            scalability and throughput of the persistence and transaction management mechanisms, in which hidden&#xD;
            assumptions made by the mechanism designer often effectively undermine the application architecture if it does&#xD;
            not understand the assumption.&#xD;
        &lt;/p>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    &lt;b>Project Management&lt;/b>&#xD;
&lt;/h4>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/plan_for_next_iteration_55840038.html&quot;&#xD;
        guid=&quot;{8040B743-6467-4067-8C0F-E62C3DE99414}&quot;>Activity: Plan for Next Iteration&lt;/a> &#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            Using the implementation subsystems as 'logical units of responsibility', the construction work can be&#xD;
            partitioned into to or more parallel &quot;tracks&quot;: one which focuses on application-specific functionality, and one&#xD;
            or more which focus on generic, reusable components. This, of course, depends on having sufficient resources to&#xD;
            staff parallel development efforts. The ability to divide the development teams and work in parallel depends&#xD;
            wholly on the stability of the architecture, and more specifically on the quality and stability of the&#xD;
            interfaces between components. Strong effort in the Elaboration phase will enable this division.&#xD;
        &lt;/p>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h1>&#xD;
    &lt;b>&lt;small>&lt;a id=&quot;Construction Phase Activities&quot; name=&quot;Construction Phase Activities&quot;>&lt;font size=&quot;+0&quot;>Construction Phase&#xD;
    Activities&lt;/font>&lt;/a>&lt;/small>&lt;/b>&#xD;
&lt;/h1>&#xD;
&lt;p class=&quot;node&quot;>&#xD;
    The basic workflow for the &lt;a class=&quot;elementLinkWithUserText&quot;&#xD;
    href=&quot;./../../../core.base_rup/customcategories/construction_102AF1EA.html&quot; guid=&quot;_SkuIwCVwEdqSZ9OimJ-AzA&quot;>Construction Phase&lt;/a>&#xD;
    applies, with the following extensions or variations:&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    &lt;b>Project Management&lt;/b>&#xD;
&lt;/h4>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/plan_for_next_iteration_55840038.html&quot;&#xD;
        guid=&quot;{8040B743-6467-4067-8C0F-E62C3DE99414}&quot;>Activity: Plan for Next Iteration&lt;/a> &#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            Planning for the first construction iteration was described previously, as it occurs towards the end of&#xD;
            elaboration. Follow-on iteration planning, and the ability to divide the development teams and work in&#xD;
            parallel, continues to be dependent on the stability of the architecture, and the quality and stability of the&#xD;
            interfaces between components.&#xD;
        &lt;/p>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    &lt;b>Analysis &amp;amp; Design&lt;/b>&#xD;
&lt;/h4>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;b>&lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/refine_the_architecture_F40FA195.html&quot;&#xD;
        guid=&quot;{F2160C54-F666-4736-9982-FC7F58F15FAD}&quot;>Activity: Refine the Architecture&lt;/a> and &lt;a&#xD;
        class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/design_components_13B33BFC.html&quot;&#xD;
        guid=&quot;{9C683674-97C1-4AEE-8DB0-9514AEFF698E}&quot;>Activity: Design Components&lt;/a>&lt;/b> &#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            The focus in construction is on analyzing the remainder of the use cases and identifying appropriate components&#xD;
            and component collaborations that realize the use cases. The existing architecture is expanded and completed,&#xD;
            and the 'internal behaviors' of the component are completely designed and implemented.&#xD;
        &lt;/p>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/design_the_database_2BE59DB0.html&quot;&#xD;
        guid=&quot;{FB3EB753-A979-4849-B57B-97F39271F82B}&quot;>Activity: Design the Database&lt;/a> &#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            The focus in construction is on completing the database design, ensuring that all persistent classes are&#xD;
            supported by both the database and the persistence mechanism. This work is performed in parallel and&#xD;
            iteratively with the work done in &lt;a class=&quot;elementLinkWithType&quot;&#xD;
            href=&quot;./../../../core.base_rup/capabilitypatterns/refine_the_architecture_F40FA195.html&quot;&#xD;
            guid=&quot;{F2160C54-F666-4736-9982-FC7F58F15FAD}&quot;>Activity: Refine the Architecture&lt;/a> and &lt;a&#xD;
            class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/design_components_13B33BFC.html&quot;&#xD;
            guid=&quot;{9C683674-97C1-4AEE-8DB0-9514AEFF698E}&quot;>Activity: Design Components&lt;/a>. The ideal organization is to&#xD;
            have integrated component teams, with cross-team coordination on persistence issues to ensure a good database&#xD;
            design.&#xD;
        &lt;/p>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    &lt;b>Implementation&lt;/b>&#xD;
&lt;/h4>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/implement_components_AFD1799D.html&quot;&#xD;
        guid=&quot;{4DC6F53E-1FE1-44EE-812B-003D3BD1ACEA}&quot;>Activity: Implement Design Elements&lt;/a>&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;>&#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            The work here is similar to that in Elaboration, but the remaining details are increasingly complete as the&#xD;
            phase progresses.&#xD;
        &lt;/p>&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/integrate_each_subsystem_B9835A47.html&quot;&#xD;
        guid=&quot;{26723872-54F2-48C0-8384-0F595BD86EAD}&quot;>Activity: Integrate each Subsystem&lt;/a> and &lt;a&#xD;
        class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/integrate_the_system_255F6819.html&quot;&#xD;
        guid=&quot;{1EBA0F67-240A-4402-B830-4DB0FDFEEB9D}&quot;>Activity: Integrate the System&lt;/a>&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;LIST-STYLE-TYPE: none&quot;>&#xD;
        &lt;p class=&quot;node&quot;>&#xD;
            The system is progressively built as the phase continues.&#xD;
        &lt;/p>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;h4>&#xD;
    &lt;b>Test&lt;/b>&#xD;
&lt;/h4>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        Activities: &lt;a class=&quot;elementLink&quot; href=&quot;./../../../core.base_rup/capabilitypatterns/define_evaluation_mission_611C79D9.html&quot;&#xD;
        guid=&quot;{10C2C34C-BF5E-4825-A7DC-5E106EFAA4C5}&quot;>Define Evaluation Mission&lt;/a>, &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.base_rup/capabilitypatterns/verify_test_approach_A743008A.html&quot;&#xD;
        guid=&quot;{7BD514AF-19F9-408F-8279-309BD153C157}&quot;>Verify Test Approach&lt;/a>, &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.base_rup/capabilitypatterns/validate_build_stability_72BD9103.html&quot;&#xD;
        guid=&quot;{0AE0042B-034C-4296-9FA0-D9DCC61FC7B4}&quot;>Validate Build Stability&lt;/a>, &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.base_rup/capabilitypatterns/test_and_evaluate_4D17BD6A.html&quot;&#xD;
        guid=&quot;{93B7D625-C83A-4EFB-9772-B88F2EB02CE2}&quot;>Test and Evaluate&lt;/a>, &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.base_rup/capabilitypatterns/achieve_acceptable_mission_18DE9944.html&quot;&#xD;
        guid=&quot;{5DA9C9E9-1538-4433-8B57-B28667D67514}&quot;>Achieve Acceptable Mission&lt;/a>, &lt;a class=&quot;elementLink&quot;&#xD;
        href=&quot;./../../../core.base_rup/capabilitypatterns/improve_test_assets_1C99FFB9.html&quot;&#xD;
        guid=&quot;{CD77CBDA-CC13-4593-BB81-41AF3FF7A84C}&quot;>Improve Test Assets&lt;/a>.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;div style=&quot;MARGIN-LEFT: 2em&quot;>&#xD;
    &lt;p class=&quot;node&quot;>&#xD;
        Performance testing remains important, but there is an increasing focus on functional testing. Completeness of&#xD;
        functionality, regression testing of existing functionality, as well as conformance with performance expectations&#xD;
        need to be addressed.&#xD;
    &lt;/p>&#xD;
&lt;/div>&#xD;
&lt;h1>&#xD;
    &lt;b>&lt;small>&lt;a id=&quot;Transition Phase Activities&quot; name=&quot;Transition Phase Activities&quot;>&lt;font size=&quot;+0&quot;>Transition Phase&#xD;
    Activities&lt;/font>&lt;/a>&lt;/small>&lt;/b>&#xD;
&lt;/h1>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;b>Product release&lt;/b> in the web environment tends to be incremental and continuous, and less focused on&#xD;
        traditional distribution of media. Release planning must be adjusted accordingly.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;b>Production support&lt;/b> is increasingly the focus of the phase.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;b>Data conversion activities&lt;/b> are performed.&#xD;
    &lt;/li>&#xD;
&lt;/ul></mainDescription>
</org.eclipse.epf.uma:ContentDescription>
