blob: d51b3fd4ec5c7bd53621f669ae1a35ebcf8290e6 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:PracticeDescription 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="-6c0bIr5yRMTjbRKw9kIHrA" name="evolutionary_design,_aSVhIB4qEd2bS8fFOQ7WWA" guid="-6c0bIr5yRMTjbRKw9kIHrA" changeDate="2008-08-14T03:22:00.000-0700" version="7.5.0">
<mainDescription>&lt;h4>&#xD;
The Essence of Evolutionary Design&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
During each pass of the design, you will add, refine, and refactor your solution. The following steps summarize the&#xD;
evolutionary design practice:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
&lt;li>&#xD;
Understand new requirement details&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
Identify design elements&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
Determine how elements collaborate to realize the scenario&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
Refine design decisions&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
Design internals&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
Communicate the design&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
Understand the architecture&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
Evaluate the design&lt;br />&#xD;
&lt;/li>&#xD;
&lt;/ul></mainDescription>
<additionalInfo>&lt;p>&#xD;
Meyer, B., &lt;em>Object-Oriented Software Construction&lt;/em>, Prentice Hall, 1997&#xD;
&lt;/p>&#xD;
&lt;blockquote dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;>&#xD;
&lt;p>&#xD;
A primer on OO basics.&#xD;
&lt;/p>&#xD;
&lt;/blockquote>&#xD;
&lt;p>&#xD;
Gamma, E., Helm, R., Johnson, R., Vlissides, J., &lt;em>Design Patterns: Elements of Reusable Object-Oriented&#xD;
Software&lt;/em>, Addison-Wesley Professional; 1995&#xD;
&lt;/p>&#xD;
&lt;blockquote dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;>&#xD;
&lt;p>&#xD;
The &quot;bible&quot; on learning what patterns are and how to describe them.&#xD;
&lt;/p>&#xD;
&lt;/blockquote>&#xD;
&lt;p>&#xD;
Shalloway, J., Trott, J. &lt;em>Design Patterns Explained&lt;/em> A New Perspective on Object-Oriented Design, Second&#xD;
Edition, Addison Wesley, 2005&#xD;
&lt;/p>&#xD;
&lt;blockquote dir=&quot;ltr&quot; style=&quot;MARGIN-RIGHT: 0px&quot;>&#xD;
&lt;p>&#xD;
This book describes how to evolve a design via design patterns.&#xD;
&lt;/p>&#xD;
&lt;/blockquote>&#xD;
&lt;p dir=&quot;ltr&quot;>&#xD;
Richard E. Fairley, Mary Jane Willshire, &quot;&lt;a href=&quot;http://doi.ieeecomputersociety.org/10.1109/MC.2005.303&quot;&#xD;
target=&quot;_blank&quot;>Iterative Rework: The Good, the Bad, and the Ugly&lt;/a>,&quot; Computer, vol. 38, no. 9, pp. 34-41, Sept.,&#xD;
2005.&lt;br />&#xD;
&lt;br />&#xD;
Martin Fowler, &lt;a href=&quot;http://martinfowler.com/articles/designDead.html&quot; target=&quot;_blank&quot;>&quot;Is Design Dead?&quot;&lt;/a>&#xD;
Retrieved 8 August 2008&lt;br />&#xD;
&lt;br />&#xD;
Craig Larman, Victor R. Basili, &quot;&lt;a href=&quot;http://doi.ieeecomputersociety.org/10.1109/MC.2003.1204375&quot;&#xD;
target=&quot;_blank&quot;>Iterative and Incremental Development: A Brief History&lt;/a>&quot; Computer, vol. 36, no. 6, pp. 47-56, Jun.,&#xD;
2003.&#xD;
&lt;/p>&#xD;
&lt;p dir=&quot;ltr&quot;>&#xD;
&lt;br />&#xD;
&amp;nbsp;&#xD;
&lt;/p></additionalInfo>
<problem>&lt;p>&#xD;
The Evolutionary Design practice reduces time-to-market for agile teams by incrementally formulating the design while&#xD;
implementing the software. It improves productivity, innovation, and time-to-market by leveraging refactoring and&#xD;
patterns to improve quality and maximizing reuse opportunities.&#xD;
&lt;/p></problem>
<background>The application of evolutionary, iterative, and incremental development methods for software dates back to the 1950s.&#xD;
Evolutionary development is an alternative to a waterfall process. In the waterfall process, each past step or phase in the&#xD;
process was considered complete before moving on to the next. The waterfall implies it is not possible to re-enter previous&#xD;
phases to perform rework on any part of the project. The evolutionary design process realizes a solution by enhancing and&#xD;
changing its structure and capabilities incrementally. This practice fits well within the framework of an incremental,&#xD;
iterative or spiral development process, but can be used in any methodology.</background>
<application>&lt;h4>&#xD;
Become familiar with its overall structure. Be sure that you understand what it is in it and how it is organized.&lt;br />&#xD;
&lt;br />&#xD;
Review all of the key concepts to understand the terminology used in this practice, including:&#xD;
&lt;/h4>&#xD;
&lt;ul>&#xD;
&lt;li>&#xD;
&lt;a class=&quot;elementLink&quot;&#xD;
href=&quot;./../../../practice.tech.evolutionary_design.base/guidances/concepts/design_E36137FA.html&quot;&#xD;
guid=&quot;_bFjlAPTYEduDKIuqTXQ8SA&quot;>Design&lt;/a>&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
&lt;a class=&quot;elementLink&quot;&#xD;
href=&quot;./../../../core.tech.common.extend_supp/guidances/concepts/design_mechanism_CE197B4E.html&quot;&#xD;
guid=&quot;_w2ACwA4LEduibvKwrGxWxA&quot;>Design Mechanism&lt;/a>&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
&lt;a class=&quot;elementLink&quot;&#xD;
href=&quot;./../../../core.tech.common.extend_supp/guidances/concepts/implementation_mechanism_C92E670B.html&quot;&#xD;
guid=&quot;_0LcUkA4LEduibvKwrGxWxA&quot;>Implementation Mechanism&lt;/a>&#xD;
&lt;/li>&#xD;
&lt;li>&#xD;
&lt;a class=&quot;elementLink&quot;&#xD;
href=&quot;./../../../practice.tech.evolutionary_design.base/guidances/concepts/requirements_realization_55C64ACB.html&quot;&#xD;
guid=&quot;_T9FbYFRFEd2o7OqLaYh8nA&quot;>Requirements Realization&lt;/a>&#xD;
&lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
Read the&amp;nbsp;&lt;a class=&quot;elementLinkWithType&quot;&#xD;
href=&quot;./../../../practice.tech.evolutionary_design.base/tasks/design_solution_A97CE9EA.html&quot;&#xD;
guid=&quot;_0fshwMlgEdmt3adZL5Dmdw&quot;>Task: Design the Solution&lt;/a>&amp;nbsp;to understand what needs to be done. Finally, review&#xD;
the associated guidelines for more information on the overall workflow.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
See &lt;a class=&quot;elementLink&quot;&#xD;
href=&quot;./../../../practice.tech.evolutionary_design.base/guidances/supportingmaterials/using_ed_in_context_4E5732E2.html&quot;&#xD;
guid=&quot;_atpj0GjLEd2PJ-nlV-86WA&quot;>Using Evolutionary Design in Context&lt;/a>&amp;nbsp;for more information.&#xD;
&lt;/p></application>
</org.eclipse.epf.uma:PracticeDescription>