| <?xml version="1.0" encoding="UTF-8"?> |
| <org.eclipse.epf.uma:GuidanceDescription 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:epf="http://www.eclipse.org/epf" epf:version="1.5.0" xmlns:rmc="http://www.ibm.com/rmc" |
| rmc:version="7.5.0" xmi:id="-8LfKJab2khAUjdmnImaXPA" |
| name="architecture_mechanism_attributes,_eQ_s8Om5Edupia_tZIXEqg" guid="-8LfKJab2khAUjdmnImaXPA" |
| changeDate="2008-10-13T17:07:16.872-0700" version="7.2.0"> |
| <mainDescription><p>
 |
| The following shows an example of how to capture information for <a class="elementLink"
 |
| href="./../../../core.tech.common.extend_supp/guidances/concepts/arch_mechanism_2932DFB6.html"
 |
| guid="_mzxI0A4LEduibvKwrGxWxA">Architectural Mechanisms</a>. The attributes of two possible mechanisms are shown:
 |
| Persistence and Communication.
 |
| </p>
 |
| <h1>
 |
| Persistence
 |
| </h1>
 |
| <p>
 |
| For all classes with instances that may become persistent, you need to identify:
 |
| </p>
 |
| <ul>
 |
| <li>
 |
| <p>
 |
| <b>Granularity</b><b>:</b> What is the range of size of the objects to keep persistent?
 |
| </p>
 |
| </li>
 |
| <li>
 |
| <p>
 |
| <b>Volume</b><b>:</b> How many objects (number) do you need to keep persistent?
 |
| </p>
 |
| </li>
 |
| <li>
 |
| <p>
 |
| <b>Duration</b><b>:</b> How long does the object typically need to be kept?
 |
| </p>
 |
| </li>
 |
| <li>
 |
| <p>
 |
| <b>Retrieval mechanism</b><b>:</b> How is a given object uniquely identified and retrieved?
 |
| </p>
 |
| </li>
 |
| <li>
 |
| <p>
 |
| <b>Update frequency</b><b>:</b> Are the objects more or less constant? Are they permanently updated?
 |
| </p>
 |
| </li>
 |
| <li>
 |
| <p>
 |
| <b>Reliability</b><b>:</b> Do the objects need to survive a crash of the process, the processor, or the whole
 |
| system?
 |
| </p>
 |
| </li>
 |
| </ul>
 |
| <h1>
 |
| Communication
 |
| </h1>
 |
| <p>
 |
| For all model elements that need to communicate with components or services that are running in other processes or
 |
| threads, you need to identify:
 |
| </p>
 |
| <ul>
 |
| <li>
 |
| <p>
 |
| <b>Latency</b><b>:</b> How fast must processes communicate with another?
 |
| </p>
 |
| </li>
 |
| <li>
 |
| <p>
 |
| <b>Synchronicity</b><b>:</b> Asynchronous communication
 |
| </p>
 |
| </li>
 |
| <li>
 |
| <p>
 |
| <b>Size of message</b><b>:</b> A spectrum might be more appropriate than a single number
 |
| </p>
 |
| </li>
 |
| <li>
 |
| <p>
 |
| <b>Protocol:</b> Flow control, buffering, and so on
 |
| </p>
 |
| </li>
 |
| </ul>
 |
| <p>
 |
| Notice that there is no design-level information or specification here. Instead, this is more about collating and
 |
| refining architecturally significant requirements.
 |
| </p></mainDescription> |
| </org.eclipse.epf.uma:GuidanceDescription> |