<?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>\base_concepts\guidances\concepts\composite_role.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: composite_role.xmi<br/><br/>
<!-- END NON-TRANSLATABLE -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: presentationName<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:presentationName,_P9gp0BtHEdqSLrJ4Ij2LVA CRC: 4237901683 -->Composite Role<!-- END:presentationName,_P9gp0BtHEdqSLrJ4Ij2LVA -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: briefDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:briefDescription,_P9gp0BtHEdqSLrJ4Ij2LVA CRC: 1553505890 -->A Composite Role is a special Role Descriptor that relates to more than one Role. It represents a grouping of Roles with the main purpose of reducing the number of Roles defined in Method Content for a Process.<!-- END:briefDescription,_P9gp0BtHEdqSLrJ4Ij2LVA -->
<br/><br/><br/>
<!-- START NON-TRANSLATABLE -->
Attribute: mainDescription<br/><br/>
<!-- END NON-TRANSLATABLE -->
<!-- START:mainDescription,-FD4UbInbyzlaGxB9oPHdcg CRC: 2643451568 --><p>
    A Composite Role is a grouping of Roles that can be used in an Activity or Process to reduce the number of Roles. A
    Composite Role is thus for the Tasks and Work Products defined for the Roles it refers to. A typical use of this
    construct occurs within a Process designed for a small team in which multiple standard Roles from the Method Content
    are assigned to a single resource. By using a Composite Role the Process suggests a typical clustering of Roles to
    Resources.<br />
</p>
<p>
    A simple example is a Composite Role named <em><strong>Developer</strong></em> that groups together the
    <em><strong>Implementer</strong></em> and <em><strong>Tester</strong></em> Roles. Now, every time one of the Roles
    Implementer or Tester would normally be used within the breakdown structure, Developer is used instead. Hence, if a
    Task Descriptor is added to the Process, that has Implementer or Tester as the primary performer, this Role would be
    automatically be substituted by&nbsp;the Composite Role instance Developer that links back to either Tester or
    Implementer (or both if both were listed as the Task performers).
</p><!-- END:mainDescription,-FD4UbInbyzlaGxB9oPHdcg -->
</body>
</html>
