<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:ContentDescription xmi:version="2.0"
    xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.4/uma.ecore"
    xmlns:epf="http://www.eclipse.org/epf" epf:version="1.2.0" xmi:id="-OcMsciNn-UtD9fTHj26LGA"
    name="new_guideline,_34jWsLcIEduRNaXpzCOLXQ" guid="-OcMsciNn-UtD9fTHj26LGA" changeDate="2007-02-07T16:14:24.390-0800">
  <mainDescription>&lt;h4>&#xD;
    Model key perspectives&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    Modeling helps raise the level of abstraction because you simplify complex ideas and represent them visually, as&#xD;
    illustrations. Good models can convey information that helps the team visualize, specify, construct, and document&#xD;
    software. The Unified Modeling Language (UML) provides an industry-standard approach to software modeling.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    When applying this strategy, you can use various techniques:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        &lt;strong>Identify the key perspectives:&lt;/strong> Focus on modeling the things that count. Few (if any) projects&#xD;
        benefit from modeling the entire design to a great level of detail. Make sure that you understand why you are&#xD;
        modeling something and who will benefit.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;strong>Communicate key architectural perspectives:&lt;/strong> Even if you choose to model very little&amp;nbsp;of your&#xD;
        design, it is often advantageous to produce diagrams that communicate the key architectural aspects of the system.&#xD;
        Conveying the &quot;big picture&quot; to the rest of the team helps them understand the overall approach and develop cohesive&#xD;
        software.&amp;nbsp;&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;strong>Sketch the design:&lt;/strong> Not all models need to be detailed completely and presented in a software&#xD;
        modeling tool. It is often perfectly acceptable (if not desirable) to produce hand-drawn sketches on paper or on a&#xD;
        whiteboard when you are exploring and communicating the architecture and design with your team. You can use a&#xD;
        digital camera or an electronic whiteboard to capture these diagrams and share them. For many small projects, this&#xD;
        is often all you need. See &lt;a href=&quot;http://www.agilemodeling.com/&quot;>http://www.agilemodeling.com/&lt;/a> for more&#xD;
        information.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;strong>Use a modeling tool as needed&lt;/strong>:&amp;nbsp;If the team members are changing models throughout the&#xD;
        project, sharing patterns/structure, debugging design, describing behavior, etc., then static photos or paper will&#xD;
        become difficult to work with. The team may want to capture design in a software modeling tool. Other than&#xD;
        communicating the design to the team, another benefit of a such a tool is the&amp;nbsp;generation of structural code&#xD;
        from the models. Many software development tools allow you to view the code as models, making it easier to&#xD;
        comprehend static and dynamic aspects of a complex code base.&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        &lt;strong>Agree on a standard notation:&lt;/strong> In a team environment, it is important that others can understand&#xD;
        your diagrams without much explanation. Choosing a standard notation enables others to quickly comprehend your&#xD;
        diagrams without ambiguity. The Unified Modeling Language is an example of a widely understood notation.&#xD;
    &lt;/li>&#xD;
&lt;/ul></mainDescription>
</org.eclipse.epf.uma:ContentDescription>
