blob: 7162f9a61f68f5ebb2f29efccac2b7620c9bd536 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C/DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
<!-- VERSION rmc:7.1.0 -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<!-- START NON-TRANSLATABLE -->
<title>\openup_basic\tasks\analyze_arch_reqs.xmi</title>
</head>
<!-- WARNING: do not modify the generated comments in this file below this line. They are used as markers for the import process. -->
<body>
Element Name: analyze_arch_reqs.xmi<br/><br/>
<!-- END NON-TRANSLATABLE -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: presentationName<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:presentationName,_0f-1oMlgEdmt3adZL5Dmdw CRC: 1105243094 -->Analyze the Architectural Requirements<!-- END:presentationName,_0f-1oMlgEdmt3adZL5Dmdw -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: briefDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:briefDescription,_0f-1oMlgEdmt3adZL5Dmdw CRC: 1307016786 -->Analyze the architecturally significant requirements and define a candidate architecture for the system. Define the architectural patterns, key mechanisms, and where applicable, modeling conventions for the system.<!-- END:briefDescription,_0f-1oMlgEdmt3adZL5Dmdw -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: mainDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:mainDescription,_qDRSULBKEdm7Eph_l9Cn9w CRC: 1670503031 --><p>
This task focuses on defining a candidate&nbsp;architecture&nbsp;that will guide&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.
</p>
<p>
Capture architectural decisions in the <a class="elementLink"
href="./../../openup_basic/workproducts/architecture_notebook,_0XAf0MlgEdmt3adZL5Dmdw.html"
guid="_0XAf0MlgEdmt3adZL5Dmdw">Architecture Notebook</a>. Make sure that this is communicated across the team.
</p><!-- END:mainDescription,_qDRSULBKEdm7Eph_l9Cn9w -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: keyConsiderations<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:keyConsiderations,_qDRSULBKEdm7Eph_l9Cn9w CRC: 754740029 --><p>
This task&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&nbsp;review of the existing
architecture.
</p>
<p>
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&nbsp;is about providing leadership and
coordination of the technical work rather than putting in a solo performance.
</p><!-- END:keyConsiderations,_qDRSULBKEdm7Eph_l9Cn9w -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: purpose<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:purpose,_qDRSULBKEdm7Eph_l9Cn9w CRC: 2219543873 -->To provide sufficient guidance and direction for the team to be able to perform analysis and design&nbsp;in consistent and
coherent ways.<!-- END:purpose,_qDRSULBKEdm7Eph_l9Cn9w -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: name<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:name,_3nMQQA3rEduibvKwrGxWxA CRC: 4188258520 -->Identify architectural goals<!-- END:name,_3nMQQA3rEduibvKwrGxWxA -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: sectionDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:sectionDescription,_3nMQQA3rEduibvKwrGxWxA CRC: 104080436 --><p>
Describe the goals of the architecture by examining the product <a class="elementLink"
href="./../../openup_basic/guidances/checklists/vision,_0WoFUMlgEdmt3adZL5Dmdw.html"
guid="_0WoFUMlgEdmt3adZL5Dmdw">Vision</a>&nbsp;and requirements, including architecturally significant requirements.
Also, talk to the project <a class="elementLink"
href="./../../openup_basic/roles/stakeholder,_dTa6gMAYEdqX-s4mWhkyqQ.html"
guid="_dTa6gMAYEdqX-s4mWhkyqQ">Stakeholder</a> and <a class="elementLink"
href="./../../openup_basic/roles/analyst,_0VxJsMlgEdmt3adZL5Dmdw.html" guid="_0VxJsMlgEdmt3adZL5Dmdw">Analyst</a>.
These goals will guide your&nbsp;approach to important architectural and design decisions.
</p><!-- END:sectionDescription,_3nMQQA3rEduibvKwrGxWxA -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: name<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:name,_9o6Z4CSCEdqDjNgZyGMf5w CRC: 682473524 -->Identify architectural constraints<!-- END:name,_9o6Z4CSCEdqDjNgZyGMf5w -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: sectionDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:sectionDescription,_9o6Z4CSCEdqDjNgZyGMf5w CRC: 3808627684 --><p>
Understand&nbsp;any constraints (or opportunities) on the solution&nbsp;that are inherent in the existing environment
or organization. If available, examine the <a class="elementLink"
href="./../../openup_basic/workproducts/supporting_requirements,_BVh9cL-CEdqb7N6KIeDL8Q.html"
guid="_BVh9cL-CEdqb7N6KIeDL8Q">Supporting Requirements</a>&nbsp;for any constraints that have already been
identified.&nbsp;Discuss any critical time and resource constraints with the <a class="elementLink"
href="./../../openup_basic/roles/project_manager,_0a0o0MlgEdmt3adZL5Dmdw.html" guid="_0a0o0MlgEdmt3adZL5Dmdw">Project
Manager</a>, as these&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.
</p><!-- END:sectionDescription,_9o6Z4CSCEdqDjNgZyGMf5w -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: name<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:name,_B899cMP2EdmWKcx6ixEiwg CRC: 3778903375 -->Survey, assess, and select available assets<!-- END:name,_B899cMP2EdmWKcx6ixEiwg -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: sectionDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:sectionDescription,_B899cMP2EdmWKcx6ixEiwg CRC: 574882805 --><p>
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&nbsp;<a class="elementLink"
href="./../../openup_basic/roles/developer,_0YDosMlgEdmt3adZL5Dmdw.html"
guid="_0YDosMlgEdmt3adZL5Dmdw">Developer</a>(s) and other&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.
</p><!-- END:sectionDescription,_B899cMP2EdmWKcx6ixEiwg -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: name<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:name,_FVrlsMP2EdmWKcx6ixEiwg CRC: 1513915210 -->Define approach for structuring the system<!-- END:name,_FVrlsMP2EdmWKcx6ixEiwg -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: sectionDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:sectionDescription,_FVrlsMP2EdmWKcx6ixEiwg CRC: 3781079967 --><p>
Decide how to structure&nbsp;the software, both in logical and physical terms. As a minimum, decide on:
</p>
<ul>
<li>
How to partition the software when managing development
</li>
<li>
How the software will be composed at run time.
</li>
</ul>
<p>
For each software partition, briefly describe
</p>
<ul>
<li>
Their name and purpose.
</li>
<li>
Their relationships to other partitions.
</li>
</ul>
<p>
These decisions will form the basis for structuring the <a class="elementLink"
href="./../../openup_basic/workproducts/design,_0WuL8slgEdmt3adZL5Dmdw.html"
guid="_0WuL8slgEdmt3adZL5Dmdw">Design</a>&nbsp;and the <a class="elementLink"
href="./../../openup_basic/workproducts/build,_0YuXEMlgEdmt3adZL5Dmdw.html" guid="_0YuXEMlgEdmt3adZL5Dmdw">Build</a>.
</p><!-- END:sectionDescription,_FVrlsMP2EdmWKcx6ixEiwg -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: name<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:name,_tmvWwE5cEducxZ_XZXh-vw CRC: 642273882 -->Define approach for deploying the system<!-- END:name,_tmvWwE5cEducxZ_XZXh-vw -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: sectionDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:sectionDescription,_tmvWwE5cEducxZ_XZXh-vw CRC: 1743408890 -->Outline how the software will deploy over the nodes on the network. Work with stakeholders such as as network support and
deployment&nbsp;teams to ensure that the proposed approach is a good fit for the wider technical environment.<!-- END:sectionDescription,_tmvWwE5cEducxZ_XZXh-vw -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: name<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:name,_I32E4MP2EdmWKcx6ixEiwg CRC: 3813839569 -->Identify key abstractions<!-- END:name,_I32E4MP2EdmWKcx6ixEiwg -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: sectionDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:sectionDescription,_I32E4MP2EdmWKcx6ixEiwg CRC: 2506284794 --><p>
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 <a
class="elementLink" href="./../../openup_basic/workproducts/glossary,_Wn7HcNcEEdqz_d2XWoVt6Q.html"
guid="_Wn7HcNcEEdqz_d2XWoVt6Q">Glossary</a> 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.
</p><!-- END:sectionDescription,_I32E4MP2EdmWKcx6ixEiwg -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: name<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:name,_KBAsYMP2EdmWKcx6ixEiwg CRC: 1108778023 -->Identify architectural mechanisms<!-- END:name,_KBAsYMP2EdmWKcx6ixEiwg -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: sectionDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:sectionDescription,_KBAsYMP2EdmWKcx6ixEiwg CRC: 4100470580 --><p>
Catalog the architectural mechanisms that are necessary to fulfil the requirements. At this stage, it only
necessary&nbsp;to capture&nbsp;a relatively small amount of detail for each mechanism. Discuss the requirements
(especially&nbsp;<a class="elementLinkWithUserText"
href="./../../openup_basic/workproducts/supporting_requirements,_BVh9cL-CEdqb7N6KIeDL8Q.html"
guid="_BVh9cL-CEdqb7N6KIeDL8Q">Supporting Requirements</a>) that are being addressed by each&nbsp;mechanisms with the
analysts and stakeholders to make sure that the requirements are&nbsp;unambiguous and well understood.
</p><!-- END:sectionDescription,_KBAsYMP2EdmWKcx6ixEiwg -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: name<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:name,_xTdYACGAEdqk6N_Ot_YEvA CRC: 3359460101 -->Capture architectural decisions<!-- END:name,_xTdYACGAEdqk6N_Ot_YEvA -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: sectionDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:sectionDescription,_xTdYACGAEdqk6N_Ot_YEvA CRC: 3271402410 --><p>
Capture&nbsp;important decisions&nbsp;about the architecture for future reference. Consider using the templates
provided for the <a class="elementLink"
href="./../../openup_basic/workproducts/architecture_notebook,_0XAf0MlgEdmt3adZL5Dmdw.html"
guid="_0XAf0MlgEdmt3adZL5Dmdw">Architecture Notebook</a>.
</p><!-- END:sectionDescription,_xTdYACGAEdqk6N_Ot_YEvA -->
</body>
</html>