blob: 1d8755f93ef8669423c519d83570df9dfa3e367c [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:ProcessDescription 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="_mtb_DvL5Edm6Nvont3uinw" guid="_mtb_DvL5Edm6Nvont3uinw" version="1.0.0">
<mainDescription>&lt;p&gt;
This activity is repeated in each iteration in the Elaboration phase. The main&amp;nbsp;goal of this activity is&amp;nbsp;to
propose an &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../openup_basic/workproducts/architecture,_0XAf0MlgEdmt3adZL5Dmdw.html&quot; guid=&quot;_0XAf0MlgEdmt3adZL5Dmdw&quot;&gt;architecture&lt;/a&gt; that addresses the requirements with high architectural risks, thus
providing a solid, yet resilient, foundation on which to build the system functionality.
&lt;/p&gt;
&lt;p&gt;
The &lt;a class=&quot;elementLinkWithUserText&quot; href=&quot;./../../openup_basic/roles/architect,_0X9iEMlgEdmt3adZL5Dmdw.html&quot; guid=&quot;_0X9iEMlgEdmt3adZL5Dmdw&quot;&gt;architect&lt;/a&gt; analyzes the architectural constraints, identifies available assets to
build the system, defines how the system will be structured, and identifies the initial abstractions and mechanisms
that must be provided by the architecture.
&lt;/p&gt;
&lt;p&gt;
Throughout all of the iterations, the architect:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Identifies commonalities between different requirements to leverage reuse
&lt;/li&gt;
&lt;li&gt;
Defines strategies for achieving requirements related to quality
&lt;/li&gt;
&lt;li&gt;
Captures and communicates architectural decisions
&lt;/li&gt;
&lt;/ul&gt;</mainDescription>
<howtoStaff>&lt;p&gt;
These activities are best carried out by a small team staffed by cross-functional team members. Issues that are
typically architecturally significant include usability, performance, scaling, process and thread synchronization, and
distribution. The team should also include members with domain experience who can identify key abstractions. The team
should also have experience with model organization and layering. The team will need to be able to pull all these
disparate threads into a cohesive, coherent (albeit preliminary) architecture.
&lt;/p&gt;
&lt;p&gt;
Because the focus of the architecture effort is shifting toward implementation issues, greater attention needs to be
paid to specific technology issues. This will force the architecture team to shift members or expand to include people
with distribution and deployment expertise (if those issues are architecturally significant). In order to understand
the potential impact of the structure on the implementation model on the ease of integration, expertise in the software
build management process is useful to have.
&lt;/p&gt;
&lt;p&gt;
At the same time, it is essential that the architecture team not be composed of a large extended team. A strategy for
countering this trend is to retain a relatively small core team with a satellite group of extended team members that
are brought in as &quot;consultants&quot; on key issues&lt;b&gt;.&lt;/b&gt; This structure also works well for smaller projects where
specific expertise may be borrowed or contracted from other organizations; they can be brought in as specific issues
need to be addressed.
&lt;/p&gt;</howtoStaff>
<usageNotes>&lt;p&gt;
The work is best done in several sessions, perhaps performed over a few days (or weeks and months for very large
systems). The initial focus will be on the identifying &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../openup_basic/guidances/concepts/design_mechanism,_w2ACwA4LEduibvKwrGxWxA.html&quot; guid=&quot;_w2ACwA4LEduibvKwrGxWxA&quot;&gt;Concept: Design Mechanism&lt;/a&gt;s&amp;nbsp;and&amp;nbsp;specifiying the&amp;nbsp;important&amp;nbsp;design
elements.&amp;nbsp;Care should also be taken to incorporate existing design elements to ensure that new&amp;nbsp;design do not
duplicate existing functionality.
&lt;/p&gt;
&lt;p&gt;
As the design emerges, concurrency and distribution issues are introduced. As these issues are considered, changes to
design elements may be required to split behavior across processes, threads or nodes.
&lt;/p&gt;
&lt;p&gt;
As the individual models are refined to incorporate the architectural decisions, the results are documented in the
Architecture description. The resulting architecture is reviewed.
&lt;/p&gt;</usageNotes>
</org.eclipse.epf.uma:ProcessDescription>