<html>
<head>
    <base href="https://wiki.asterisk.org/wiki">
            <link rel="stylesheet" href="/wiki/s/en/2172/18/9/_/styles/combined.css?spaceKey=TOP&amp;forWysiwyg=true" type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://wiki.asterisk.org/wiki/display/TOP/UML+Cheat-Sheet">UML Cheat-Sheet</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://wiki.asterisk.org/wiki/display/~khunt">Ken Hunt</a>
    </h4>
        <br/>
                         <h4>Changes (7)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" > <br> <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">!uml_inheritance.png|border=1! <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">!Class Structure Diagram.png|border=1! <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-changed-lines" >The Class symbol (the <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">yellow boxes above)</span> <span class="diff-added-words"style="background-color: #dfd;">boxes)</span> can be annotated with a stereotype tag. Stereotypes can used for almost anything, but are most commonly used for denoting a well-know role of a common design pattern (ex: &lt;&lt;singleton&gt;&gt; ), or for denoting an interface as opposed to a class. An interface defines a syntactic contract for communication with a component separate from the implementation of the component, a concept which maps to the Java and C# constructs of _interface_, or in C++ to a class that consists of only pure, virtual methods. Note that on the Class Diagram, interfaces may inherit from one another, but classes &quot;realize&quot; (i.e. implement) interfaces. <br></td></tr>
            <tr><td class="diff-unchanged" > <br> <br></td></tr>
            <tr><td class="diff-changed-lines" ><span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">!uml_interface_inheritance.png|border=1!</span> <span class="diff-added-words"style="background-color: #dfd;">!Interfaces.png|border=1!</span> <br></td></tr>
            <tr><td class="diff-unchanged" > <br>h4. Sequence Diagram <br> <br></td></tr>
            <tr><td class="diff-changed-lines" >Sequence diagrams are one of the key types of behavioral diagrams in UML. They show interactions between objects, and can show activation periods in response to stimulus, and resultant interactions. <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">The dashed line for Entree shows a return value. The presence of a dashed line at the bottom of an activation box to show a return value indicates a synchronous operation (as of UML 2.0)</span> <br></td></tr>
            <tr><td class="diff-unchanged" > <br></td></tr>
            <tr><td class="diff-deleted-lines" style="color:#999;background-color:#fdd;text-decoration:line-through;">!uml_sequence.png|border=1! <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">!Sequence Diagram.png|border=1! <br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <p>The Unified Modeling Language (UML) is a standard tool for documenting, designing, and analyzing object-oriented (OO) systems. The language is primarily graphical, and is considered a higher-level abstraction than specific OO programming languages such as C++ or Java. This is a cheat-sheet for some of the conventions used on this wiki. </p>

<p>Note that we aren't using any type of code-generation or round-trip engineering that many UML tools support. For this reason we can be rather lax with our use of the language. (But also keep in mind that since we don't have automation in the process, the diagrams can quickly become out of date!) </p>

<p>A single UML model can consist of any number of diagrams, from among up to 14 different types. Each diagram is considered to belong to one of two views: static (also known as structural) or dynamic (aka. behavioral). Static views include the well-known class diagram, the component diagram, the deployment diagram, and others. The dynamic views include state machine diagram, activity diagram, sequence diagram, and others. A given UML model may have multiple diagrams of a given type, and may omit diagrams of some types. </p>

<p>We tend to use the Class Diagram and the Sequence Diagram the most, so we'll focus on those at this time. The Class Diagram shows inheritance, composition and other static relationships among classes and types. Sequence diagrams show the sequencing (cause and effect) behaviors among different objects, and become particularly useful in distributed systems to define component-level interactions. </p>

<h4><a name="UMLCheat-Sheet-ClassDiagram"></a>Class Diagram </h4>

<p>Here are some of the common symbols and meanings found on a <b>Class Diagram</b>. </p>


<p><span class="image-wrap" style=""><img src="/wiki/download/attachments/1212462/Class+Structure+Diagram.png?version=1&amp;modificationDate=1337298484385" style="border: 1px solid black" /></span></p>

<p>The Class symbol (the boxes) can be annotated with a stereotype tag. Stereotypes can used for almost anything, but are most commonly used for denoting a well-know role of a common design pattern (ex: &lt;&lt;singleton&gt;&gt; ), or for denoting an interface as opposed to a class. An interface defines a syntactic contract for communication with a component separate from the implementation of the component, a concept which maps to the Java and C# constructs of <em>interface</em>, or in C++ to a class that consists of only pure, virtual methods. Note that on the Class Diagram, interfaces may inherit from one another, but classes "realize" (i.e. implement) interfaces. </p>


<p><span class="image-wrap" style=""><img src="/wiki/download/attachments/1212462/Interfaces.png?version=1&amp;modificationDate=1337298498125" style="border: 1px solid black" /></span></p>

<h4><a name="UMLCheat-Sheet-SequenceDiagram"></a>Sequence Diagram</h4>

<p>Sequence diagrams are one of the key types of behavioral diagrams in UML. They show interactions between objects, and can show activation periods in response to stimulus, and resultant interactions. </p>

<p><span class="image-wrap" style=""><img src="/wiki/download/attachments/1212462/Sequence+Diagram.png?version=1&amp;modificationDate=1337298509133" style="border: 1px solid black" /></span></p>

    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;" class="grey">
                        <a href="https://wiki.asterisk.org/wiki/users/removespacenotification.action?spaceKey=TOP">Stop watching space</a>
            <span style="padding: 0px 5px;">|</span>
                <a href="https://wiki.asterisk.org/wiki/users/editmyemailsettings.action">Change email notification preferences</a>
</div>
        <a href="https://wiki.asterisk.org/wiki/display/TOP/UML+Cheat-Sheet">View Online</a>
        |
        <a href="https://wiki.asterisk.org/wiki/pages/diffpagesbyversion.action?pageId=1212462&revisedVersion=14&originalVersion=13">View Changes</a>
                |
        <a href="https://wiki.asterisk.org/wiki/display/TOP/UML+Cheat-Sheet?showComments=true&amp;showCommentArea=true#addcomment">Add Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>