blob: 55fbc36ddd78ce7d2b877ed2e5bb7986cfa4c357 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:TaskDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.3/uma.ecore" epf:version="1.0.0" xmi:id="_qDRSULBKEdm7Eph_l9Cn9w" name="analyze_architecture,_0f-1oMlgEdmt3adZL5Dmdw" guid="_qDRSULBKEdm7Eph_l9Cn9w" changeDate="2007-03-03T21:37:35.140+0000" version="1.0.0">
<mainDescription>&lt;p&gt;
This task focuses on defining a candidate&amp;nbsp;architecture&amp;nbsp;that will guide&amp;nbsp;the development, testing, and
operation of the system. It relies on gathering experience gained in similar systems or problem domains to constrain
and focus the architecture so that effort is not wasted in re-inventing architecture.
&lt;/p&gt;
&lt;p&gt;
Capture architectural decisions in the &lt;a class=&quot;elementLink&quot;
href=&quot;./../../openup_basic/workproducts/architecture_notebook,_0XAf0MlgEdmt3adZL5Dmdw.html&quot;
guid=&quot;_0XAf0MlgEdmt3adZL5Dmdw&quot;&gt;Architecture Notebook&lt;/a&gt;. Make sure that this is communicated across the team.
&lt;/p&gt;</mainDescription>
<keyConsiderations>&lt;p&gt;
This task&amp;nbsp;is most beneficial when developing new and unprecedented systems. In systems where there is already a
well-defined architecture, this task might be omitted, or performed quickly as a&amp;nbsp;review of the existing
architecture.
&lt;/p&gt;
&lt;p&gt;
It is critical that this task is performed collaboratively with active involvement of other team members and project
stakeholders so that consensus and common understanding is reached. It is particularly vital for the architect to
involve the developer(s) throughout this task. The architecture effort&amp;nbsp;is about providing leadership and
coordination of the technical work rather than putting in a solo performance.
&lt;/p&gt;</keyConsiderations>
<sections xmi:id="_3nMQQA3rEduibvKwrGxWxA" name="Identify architectural goals" guid="_3nMQQA3rEduibvKwrGxWxA">
<sectionDescription>&lt;p&gt;
Describe the goals of the architecture by examining the product &lt;a class=&quot;elementLink&quot;
href=&quot;./../../openup_basic/guidances/checklists/vision,_0WoFUMlgEdmt3adZL5Dmdw.html&quot;
guid=&quot;_0WoFUMlgEdmt3adZL5Dmdw&quot;&gt;Vision&lt;/a&gt;&amp;nbsp;and requirements, including architecturally significant requirements.
Also, talk to the project &lt;a class=&quot;elementLink&quot;
href=&quot;./../../openup_basic/roles/stakeholder,_dTa6gMAYEdqX-s4mWhkyqQ.html&quot;
guid=&quot;_dTa6gMAYEdqX-s4mWhkyqQ&quot;&gt;Stakeholder&lt;/a&gt; and &lt;a class=&quot;elementLink&quot;
href=&quot;./../../openup_basic/roles/analyst,_0VxJsMlgEdmt3adZL5Dmdw.html&quot; guid=&quot;_0VxJsMlgEdmt3adZL5Dmdw&quot;&gt;Analyst&lt;/a&gt;.
These goals will guide your&amp;nbsp;approach to important architectural and design decisions.
&lt;/p&gt;</sectionDescription>
</sections>
<sections xmi:id="_9o6Z4CSCEdqDjNgZyGMf5w" name="Identify architectural constraints" guid="_9o6Z4CSCEdqDjNgZyGMf5w">
<sectionDescription>&lt;p&gt;
Understand&amp;nbsp;any constraints (or opportunities) on the solution&amp;nbsp;that are inherent in the existing environment
or organization. If available, examine the &lt;a class=&quot;elementLink&quot;
href=&quot;./../../openup_basic/workproducts/supporting_requirements,_BVh9cL-CEdqb7N6KIeDL8Q.html&quot;
guid=&quot;_BVh9cL-CEdqb7N6KIeDL8Q&quot;&gt;Supporting Requirements&lt;/a&gt;&amp;nbsp;for any constraints that have already been
identified.&amp;nbsp;Discuss any critical time and resource constraints with the &lt;a class=&quot;elementLink&quot;
href=&quot;./../../openup_basic/roles/project_manager,_0a0o0MlgEdmt3adZL5Dmdw.html&quot; guid=&quot;_0a0o0MlgEdmt3adZL5Dmdw&quot;&gt;Project
Manager&lt;/a&gt;, as these&amp;nbsp;will also need to be taken into account when arriving at your decisions. Discuss potential
constraints with the tester such as hooks for tests, and to identify architectural areas that may be difficult to test.
&lt;/p&gt;</sectionDescription>
</sections>
<sections xmi:id="_B899cMP2EdmWKcx6ixEiwg" name="Survey, assess, and select available assets" guid="_B899cMP2EdmWKcx6ixEiwg">
<sectionDescription>&lt;p&gt;
Establish the availability of any existing software assets as suitable candidates for re-use. Make sure you consult
with others who have knowledge of existing assets, particularly the&amp;nbsp;&lt;a class=&quot;elementLink&quot;
href=&quot;./../../openup_basic/roles/developer,_0YDosMlgEdmt3adZL5Dmdw.html&quot;
guid=&quot;_0YDosMlgEdmt3adZL5Dmdw&quot;&gt;Developer&lt;/a&gt;(s) and other&amp;nbsp;people outside the project team (such as production
support teams) in order to form a balanced view of the suitability of existing assets for re-use. Identifying reusable
assets could be done as a team brainstorming session.
&lt;/p&gt;</sectionDescription>
</sections>
<sections xmi:id="_FVrlsMP2EdmWKcx6ixEiwg" name="Define approach for structuring the system" guid="_FVrlsMP2EdmWKcx6ixEiwg">
<sectionDescription>&lt;p&gt;
Decide how to structure&amp;nbsp;the software, both in logical and physical terms. As a minimum, decide on:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
How to partition the software when managing development
&lt;/li&gt;
&lt;li&gt;
How the software will be composed at run time.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
For each software partition, briefly describe
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Their name and purpose.
&lt;/li&gt;
&lt;li&gt;
Their relationships to other partitions.
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
These decisions will form the basis for structuring the &lt;a class=&quot;elementLink&quot;
href=&quot;./../../openup_basic/workproducts/design,_0WuL8slgEdmt3adZL5Dmdw.html&quot;
guid=&quot;_0WuL8slgEdmt3adZL5Dmdw&quot;&gt;Design&lt;/a&gt;&amp;nbsp;and the &lt;a class=&quot;elementLink&quot;
href=&quot;./../../openup_basic/workproducts/build,_0YuXEMlgEdmt3adZL5Dmdw.html&quot; guid=&quot;_0YuXEMlgEdmt3adZL5Dmdw&quot;&gt;Build&lt;/a&gt;.
&lt;/p&gt;</sectionDescription>
</sections>
<sections xmi:id="_tmvWwE5cEducxZ_XZXh-vw" name="Define approach for deploying the system" guid="_tmvWwE5cEducxZ_XZXh-vw">
<sectionDescription>Outline how the software will deploy over the nodes on the network. Work with stakeholders such as as network support and
deployment&amp;nbsp;teams to ensure that the proposed approach is a good fit for the wider technical environment.</sectionDescription>
</sections>
<sections xmi:id="_I32E4MP2EdmWKcx6ixEiwg" name="Identify key abstractions" guid="_I32E4MP2EdmWKcx6ixEiwg">
<sectionDescription>&lt;p&gt;
Identify the key abstractions that the system needs to handle. You can usually find these by looking for nouns that the
requirements emphasize or repeat, because they help identify what is important to the business. The &lt;a
class=&quot;elementLink&quot; href=&quot;./../../openup_basic/workproducts/glossary,_Wn7HcNcEEdqz_d2XWoVt6Q.html&quot;
guid=&quot;_Wn7HcNcEEdqz_d2XWoVt6Q&quot;&gt;Glossary&lt;/a&gt; is particularly useful for this. Work with the analyst and stakeholder
here, as they will have knowledge and materials that are relevant to this step. Work with the developer to identify key
abstractions internal to the system.
&lt;/p&gt;</sectionDescription>
</sections>
<sections xmi:id="_KBAsYMP2EdmWKcx6ixEiwg" name="Identify architectural mechanisms" guid="_KBAsYMP2EdmWKcx6ixEiwg">
<sectionDescription>&lt;p&gt;
Catalog the architectural mechanisms that are necessary to fulfil the requirements. At this stage, it only
necessary&amp;nbsp;to capture&amp;nbsp;a relatively small amount of detail for each mechanism. Discuss the requirements
(especially&amp;nbsp;&lt;a class=&quot;elementLinkWithUserText&quot;
href=&quot;./../../openup_basic/workproducts/supporting_requirements,_BVh9cL-CEdqb7N6KIeDL8Q.html&quot;
guid=&quot;_BVh9cL-CEdqb7N6KIeDL8Q&quot;&gt;Supporting Requirements&lt;/a&gt;) that are being addressed by each&amp;nbsp;mechanisms with the
analysts and stakeholders to make sure that the requirements are&amp;nbsp;unambiguous and well understood.
&lt;/p&gt;</sectionDescription>
</sections>
<sections xmi:id="_xTdYACGAEdqk6N_Ot_YEvA" name="Capture architectural decisions" guid="_xTdYACGAEdqk6N_Ot_YEvA">
<sectionDescription>&lt;p&gt;
Capture&amp;nbsp;important decisions&amp;nbsp;about the architecture for future reference. Consider using the templates
provided for the &lt;a class=&quot;elementLink&quot;
href=&quot;./../../openup_basic/workproducts/architecture_notebook,_0XAf0MlgEdmt3adZL5Dmdw.html&quot;
guid=&quot;_0XAf0MlgEdmt3adZL5Dmdw&quot;&gt;Architecture Notebook&lt;/a&gt;.
&lt;/p&gt;</sectionDescription>
</sections>
<purpose>To provide sufficient guidance and direction for the team to be able to perform analysis and design&amp;nbsp;in consistent and
coherent ways.</purpose>
</org.eclipse.epf.uma:TaskDescription>