<?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\implement_solution.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: implement_solution.xmi<br/><br/>
<!-- END NON-TRANSLATABLE -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: presentationName<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:presentationName,_0hyzgMlgEdmt3adZL5Dmdw CRC: 4143109244 -->Implement the Solution<!-- END:presentationName,_0hyzgMlgEdmt3adZL5Dmdw -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: briefDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:briefDescription,_0hyzgMlgEdmt3adZL5Dmdw CRC: 3037338676 -->Implement source code to provide new functionality or fix defects.<!-- END:briefDescription,_0hyzgMlgEdmt3adZL5Dmdw -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: mainDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:mainDescription,_d2aMwKrMEdmqUqi7YGiSxw CRC: 2658401817 --><p>
    Usually, this task is focused on a specific element, such as a class or component, but it does not need to be.
</p>
<p>
    You implement a portion of the design during each iteration by performing this task. You can perform the task any
    number of times during an iteration.
</p>
<p>
    Modify the implementation incrementally. Make additions and changes to the implementation for an issue, run the unit
    and regression tests, and then complete the issue before moving on to other issues.
</p>
<p>
    See the associated guidelines for information on how to perform the steps described in this task.
</p><!-- END:mainDescription,_d2aMwKrMEdmqUqi7YGiSxw -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: keyConsiderations<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:keyConsiderations,_d2aMwKrMEdmqUqi7YGiSxw CRC: 4055917555 --><p>
    This task is complete once the build has successfully completed. The implementation should then be immediately tested.
</p><!-- END:keyConsiderations,_d2aMwKrMEdmqUqi7YGiSxw -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: purpose<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:purpose,_d2aMwKrMEdmqUqi7YGiSxw CRC: 2968539442 --><p>
    The purpose of this task is to produce an implementation for part of the solution (such as a class or component), or to
    fix one or more defects. The result is typically new or modified source code, which is generally referred to <em>the
    implementation</em>.<br />
</p><!-- END:purpose,_d2aMwKrMEdmqUqi7YGiSxw -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: name<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:name,_2sxisE2iEduU655MA_3VXg CRC: 2952321852 -->Determine a strategy<!-- END:name,_2sxisE2iEduU655MA_3VXg -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: sectionDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:sectionDescription,_2sxisE2iEduU655MA_3VXg CRC: 2880397127 --><p>
    You need to determine a strategy, based on the <a class="elementLink" href="./../../openup_basic/workproducts/design,_0WuL8slgEdmt3adZL5Dmdw.html" guid="_0WuL8slgEdmt3adZL5Dmdw">Design</a>&nbsp;of the work item being worked on, for how you're going to implement it.
    Your fundamental options are:
</p>
<ol>
    <li>
        Apply existing, reusable assets.
    </li>
    <li>
        Model the design in detail and generate the source code (by model transformation).
    </li>
    <li>
        Write the source code.
    </li>
    <li>
        Any combination thereof.
    </li>
</ol><!-- END:sectionDescription,_2sxisE2iEduU655MA_3VXg -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: name<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:name,_iMMWoKuPEdmhFZtkg1nakg CRC: 2355737883 -->Identify opportunities for reuse<!-- END:name,_iMMWoKuPEdmhFZtkg1nakg -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: sectionDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:sectionDescription,_iMMWoKuPEdmhFZtkg1nakg CRC: 1065575463 --><p>
    Complete the implementation by reusing code at every opportunity.
</p>
<p>
    Identify existing code or other implementation elements that you can reuse in the portion of the <a class="elementLink" href="./../../openup_basic/workproducts/implementation,_0YoQcMlgEdmt3adZL5Dmdw.html" guid="_0YoQcMlgEdmt3adZL5Dmdw">Implementation</a>&nbsp;that you are creating or changing. A comprehensive understanding
    of the overall design is helpful, because it is best to leverage reuse opportunities when you have a thorough
    understanding of the proposed solution.<br />
</p><!-- END:sectionDescription,_iMMWoKuPEdmhFZtkg1nakg -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: name<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:name,_pjehkNb7Edq_LtLvi4w2yw CRC: 211604240 -->Transform design into implementation<!-- END:name,_pjehkNb7Edq_LtLvi4w2yw -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: sectionDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:sectionDescription,_pjehkNb7Edq_LtLvi4w2yw CRC: 3423206138 --><p>
    If you are using sophisticated modeling tools, you should be able to generate a portion of the required source code
    from the model.&nbsp;Note that programming is often required to complete the implementation after the design
    model&nbsp;has been transformed into code.
</p><!-- END:sectionDescription,_pjehkNb7Edq_LtLvi4w2yw -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: name<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:name,_mFQ58KuPEdmhFZtkg1nakg CRC: 1364477963 -->Write source code<!-- END:name,_mFQ58KuPEdmhFZtkg1nakg -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: sectionDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:sectionDescription,_mFQ58KuPEdmhFZtkg1nakg CRC: 3270119313 --><p>
    You should strive to reuse and/or generate code wherever possible, but you will still need to do some
    programming.&nbsp;To do so, consider the following:
</p>
<ul>
    <li>
        Examine the&nbsp;requirements. Because some requirements information does not translate directly into your design
        you should examine the requirement(s) (potentially including both the <a class="elementLink" href="./../../openup_basic/workproducts/use_case,_0VGbUMlgEdmt3adZL5Dmdw.html" guid="_0VGbUMlgEdmt3adZL5Dmdw">Use Case</a>(s) and <a class="elementLink" href="./../../openup_basic/workproducts/supporting_requirements,_BVh9cL-CEdqb7N6KIeDL8Q.html" guid="_BVh9cL-CEdqb7N6KIeDL8Q">Supporting Requirements</a>) to ensure that they are fully realized in the
        implementation.
    </li>
    <li>
        Refactor your code to improve its design.&nbsp;<a class="elementLink" href="./../../openup_basic/guidances/concepts/refactoring,_Poc7IPDzEdqYgerqi84oCA.html" guid="_Poc7IPDzEdqYgerqi84oCA">Refactoring</a>&nbsp;is a technique where you improve the quality of your code via
        small changes.
    </li>
    <li>
        Tuning the results of the existing implementation by improving performance, the user interface, security, and other
        nonfunctional areas.
    </li>
    <li>
        Adding missing details, such as completing the logic of operations or adding supporting classes and data structures
    </li>
    <li>
        Handling boundary conditions.
    </li>
    <li>
        Dealing with unusual circumstances or error states.
    </li>
    <li>
        Restricting behavior (preventing users from executing illegal flows, scenarios, or combinations of options).
    </li>
    <li>
        Adding critical sections for multi-threaded or re-entrant code.<br />
    </li>
</ul><!-- END:sectionDescription,_mFQ58KuPEdmhFZtkg1nakg -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: name<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:name,_-0yzwDH4EduMqpUNhaTSRA CRC: 1454371900 -->Create a build<!-- END:name,_-0yzwDH4EduMqpUNhaTSRA -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: sectionDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:sectionDescription,_-0yzwDH4EduMqpUNhaTSRA CRC: 2933548742 --><p>
    Create a new <a class="elementLink" href="./../../openup_basic/workproducts/build,_0YuXEMlgEdmt3adZL5Dmdw.html" guid="_0YuXEMlgEdmt3adZL5Dmdw">Build</a>. This might involve simply running an existing build script and/or updating an
    existing build script.
</p><!-- END:sectionDescription,_-0yzwDH4EduMqpUNhaTSRA -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: name<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:name,_ni25UKuPEdmhFZtkg1nakg CRC: 4213619129 -->Evaluate the implementation<!-- END:name,_ni25UKuPEdmhFZtkg1nakg -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: sectionDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:sectionDescription,_ni25UKuPEdmhFZtkg1nakg CRC: 2586302880 --><p>
    Verify that the implementation is fit for its purpose.&nbsp;Examine the code for its suitability to perform its
    intended function. This is a quality assurance step that you perform in addition to testing, and it is described in
    other tasks. Consider these strategies:
</p>
<ul>
    <li>
        Pair programming.&nbsp;By pairing to implement the code in the first place, you effectively evaluate the code as
        its being written.
    </li>
    <li>
        Read through the code for common mistakes. Consider keeping a checklist of common mistakes that you make, as a
        reminder reference.
    </li>
    <li>
        Use tools to check for implementation errors and inappropriate code. For example, use a static code rule checker or
        set the compiler to the most detailed warning level.
    </li>
    <li>
        Use tools that can visualize the code. Code visualization, such as the&nbsp;UML visualizations in the Eclipse IDE,
        help developers identify issues such as excessive coupling or&nbsp;circular dependencies.
    </li>
    <li>
        Perform informal, targeted code inspections. Ask colleagues to review&nbsp;small critical sections of code and code
        with significant churn. Avoid reviewing large sections of code.
    </li>
    <li>
        Use the Tester to assure the implementation is testable and understandable to testing resources.
    </li>
</ul>
<p>
    Improve the implementation based on the results of these evaluations.
</p><!-- END:sectionDescription,_ni25UKuPEdmhFZtkg1nakg -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: name<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:name,_q5XiIKuPEdmhFZtkg1nakg CRC: 3985354331 -->Communicate significant decisions<!-- END:name,_q5XiIKuPEdmhFZtkg1nakg -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: sectionDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:sectionDescription,_q5XiIKuPEdmhFZtkg1nakg CRC: 4224173571 --><p>
    Communicate the impact of unexpected changes to the design and requirements.
</p>
<p>
    The issues and constraints that you uncover when you implement the system must be communicated to the team. The impact
    of issues discovered during implementation must be incorporated into future decisions. If appropriate, update use cases
    and supporting requirements to reflect ambiguities that you identified and resolved in the implementation so they can
    be tested and you can manage the <a class="elementLink" href="./../../openup_basic/roles/stakeholder,_dTa6gMAYEdqX-s4mWhkyqQ.html" guid="_dTa6gMAYEdqX-s4mWhkyqQ">Stakeholder</a>&nbsp;expectations appropriately. Similarly, update the design to reflect
    new constraints and issues uncovered during implementation to be sure that the new information is communicated to other
    developers.
</p>
<p>
    Usually, there is no need for a change request if the required change is small and the same person is designing and
    implementing the class. That individual can make the design change directly. If the required change has a broad impact,
    such as a change in a public operation, it may be necessary to communicate that change to the other team members
    through a change request.<br />
    <br />
</p><!-- END:sectionDescription,_q5XiIKuPEdmhFZtkg1nakg -->
</body>
</html>
