blob: 7b7d66063b72da7f68ad785a4738f5cb6b5212f4 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:ArtifactDescription xmi:version="2.0" xmlns:xmi="" xmlns:org.eclipse.epf.uma="" xmlns:epf="" epf:version="1.5.1" xmlns:rmc="" rmc:version="7.5.1" xmi:id="_zxB-QKYcEdmvhNXG0Oc2uA" name="design,_0WuL8slgEdmt3adZL5Dmdw" guid="_zxB-QKYcEdmvhNXG0Oc2uA" changeDate="2011-03-28T13:03:35.495-0700" version="1.0.0">
This work product describes the elements that will make up the implemented system. It communicates abstractions of&#xD;
particular portions of the implementation.&#xD;
While architecture focuses on interfaces, patterns, and key decisions, the design fleshes out the technical details in&#xD;
readiness for implementation, or as part of implementation.&#xD;
This product can describe multiple static and dynamic views of the system for examination. Although various views may&#xD;
focus on divergent, seemingly independent issues of how the system will be put together and work, they should fit&#xD;
together without contradiction.&lt;br />&#xD;
&amp;nbsp;Describe the&amp;nbsp;elements of the system&amp;nbsp;so&amp;nbsp;they can be examined and understood in ways&#xD;
not&amp;nbsp;possible by reading the source code.&#xD;
Implementation will proceed with fine-grained, inconsistent tactical decisions that lead to poor-quality software.&#xD;
<reasonsForNotNeeding>The design typically needs to be represented in some form, although it may be captured in code or tests and not distinct as&#xD;
a separate artifact. In circumstances where a project involves applying well-understood, existing strategies for&#xD;
architecture and design, it is possible that you will not need a &lt;em>new&lt;/em> design. In those cases, you can simply refer&#xD;
to some existing design.</reasonsForNotNeeding>
It is important that the author of this work product be able to analyze key decisions about the structure and behavior&#xD;
of the system and communicate them to other collaborators. It is also important that these decisions can be&#xD;
communicated at various levels of abstraction and granularity. Some aspects of the design can be represented by source&#xD;
code, possibly with some extra annotations. But more abstract representations of the design will be at a higher-level&#xD;
than source code.&#xD;
The more abstract representation could use various representation options. UML could be used either strictly or&#xD;
informally; it is a preferred notation based on its rich semantics and broad usage in the industry. Other techniques&#xD;
could be used to communicate the design. Or the design could use a mix of techniques as applicable.&#xD;
Whether you record these representations on a white board or use a formal tool is not governed by this process. But any&#xD;
representation, whether characterized as formal or informal, should unambiguously communicate the technical decisions&#xD;
embodied by the design.&#xD;