<?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.5/uma.ecore"
    xmlns:rmc="http://www.ibm.com/rmc" rmc:version="7.5.0" xmlns:epf="http://www.eclipse.org/epf"
    epf:version="1.5.0" xmi:id="-CFYVionNDLkMw6SG6runQA"
    name="uc_realizations,_2uan8NbyEdqu5o2S60g5LA" guid="-CFYVionNDLkMw6SG6runQA"
    changeDate="2008-01-25T10:04:23.710-0800" version="7.2.0">
  <mainDescription>&lt;p>&#xD;
    A use-case realization represents how a use case will be implemented in terms of collaborating objects. This artifact&#xD;
    can take various forms. It may include, for example, a textual description (a document), class diagrams of&#xD;
    participating classes and subsystems, and interaction diagrams (communication and sequence diagrams) that illustrate&#xD;
    the flow of interactions between class and subsystem instances.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    The reason for separating the use-case realization from its use case is that doing so allows the use cases to be&#xD;
    managed separately from their realizations. This is particularly important for larger projects, or families of systems&#xD;
    where the same use cases may be designed differently in different products within the product family. Consider the case&#xD;
    of a family of telephone switches which have many use cases in common, but which design and implement them differently&#xD;
    according to product positioning, performance and price.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    For larger projects, separating the use case and its realization allows changes to the design of the use case without&#xD;
    affecting the baselined use case itself.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    In a model, a use-case realization is represented as a UML collaboration that groups the diagrams and other information&#xD;
    (such as textual descriptions) that form part of the use-case realization.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    UML diagrams that&amp;nbsp;support use-case realizations can be produced in an analysis context, a&amp;nbsp;design context, or&#xD;
    both, depending on the needs of the project. For each use case in the use-case model, there&amp;nbsp;can be&amp;nbsp;a use-case&#xD;
    realization in the analysis/design model with a realization relationship to the use case. In UML this is shown as a&#xD;
    dashed arrow, with an arrowhead like a generalization relationship, indicating that a realization is a kind of&#xD;
    inheritance, as well as a dependency.&lt;br />&#xD;
&lt;/p>&#xD;
&lt;p align=&quot;center&quot;>&#xD;
    &lt;img height=&quot;109&quot; alt=&quot;Use Case Realisations&quot; src=&quot;./resources/ucrea1.gif&quot; width=&quot;277&quot; />&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    A use-case realization in the&amp;nbsp;design can be traced to a use case in the use-case model.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Class Diagrams Owned by a Use-Case Realization&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    For each use-case realization there may be one or more class diagrams depicting its participating classes. A class and&#xD;
    its objects often participate in several use-case realizations. It is important&amp;nbsp;while designing to coordinate all&#xD;
    the requirements on a class and its objects that different use-case realizations may have. The figure below shows an&#xD;
    analysis&amp;nbsp;class diagram for the realization of the Receive Deposit Item use case. Note the use of&#xD;
    boundary-control-entity stereotypes to represent analysis classes (see &lt;a class=&quot;elementLinkWithType&quot; href=&quot;./../../../core.tech.common.extend_supp/guidances/guidelines/entity_control_boundary_pattern_C4047897.html&quot; guid=&quot;_uF-QYEAhEdq_UJTvM1DM2Q&quot;>Guideline: Entity-Control-Boundary Pattern&lt;/a>).&#xD;
&lt;/p>&#xD;
&lt;p align=&quot;center&quot;>&#xD;
    &lt;img height=&quot;213&quot; alt=&quot;Class diagram for the realization of Receive Deposit Item&quot; src=&quot;./resources/md_ucre3.gif&quot;     width=&quot;328&quot; />&#xD;
&lt;/p>&#xD;
&lt;p align=&quot;center&quot;>&#xD;
    &lt;strong>The use case Receive Deposit Item and its analysis-level class diagram&lt;/strong>.&#xD;
&lt;/p>&#xD;
&lt;h4>&#xD;
    Communication and Sequence Diagrams Owned by a Use-Case Realization&#xD;
&lt;/h4>&#xD;
&lt;p>&#xD;
    For each use-case realization there&amp;nbsp;can be&amp;nbsp;one or more interaction diagrams depicting its participating&#xD;
    objects and their interactions. There are two types of interaction diagrams: sequence diagrams and communication&#xD;
    diagrams. They express similar information, but show it in different ways. Sequence diagrams show the explicit sequence&#xD;
    of messages and are better when it is important to visualize the time ordering of messages, whereas communication&#xD;
    diagrams show the communication links between objects and are better for understanding all of the effects on a given&#xD;
    object and for algorithm design.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Realizing use cases through interaction diagrams helps to keep the design simple and cohesive. Assigning&#xD;
    responsibilities to classes on the basis of what the use-case scenario explicitly requires encourages the design to&#xD;
    contain the following:&#xD;
&lt;/p>&#xD;
&lt;ul>&#xD;
    &lt;li>&#xD;
        Only the functionality actually used in support of a use case scenario&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Functionality that can be tested through an associated test case&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Functionality that is more easily traceable to requirements and changes&#xD;
    &lt;/li>&#xD;
    &lt;li>&#xD;
        Explicitly declared class dependencies that are easier to manage&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p>&#xD;
    These factors help improve the overall quality of the system.&#xD;
&lt;/p></mainDescription>
</org.eclipse.epf.uma:ContentDescription>
