| <?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.3/uma.ecore" epf:version="1.0.0" xmi:id="_iCwb8MM3EdmSIPI87WLu3g" name="repres_interfaces_to_ext_systems,_0gjdYMlgEdmt3adZL5Dmdw" guid="_iCwb8MM3EdmSIPI87WLu3g" changeDate="2007-02-26T12:05:55.921+0000" version="1.0.0"> |
| <mainDescription><p> |
| Interfaces with external systems should be consistently handled throughout the system, so markers need to be identified |
| in the architecture to make sure that the team develop the coherant software. The architecture need not include a |
| specific, detailed design for each system interface. It is often enough to simply identify the existence of the |
| interfacre as a significant part of the architecture and create a subsystem to encapsulate the detail, so that it can |
| be developed later. |
| </p> |
| <p> |
| The <a class="elementLink" |
| href="./../../../openup_basic/guidances/concepts/entity_control_boundary_pattern,_uF-QYEAhEdq_UJTvM1DM2Q.html" |
| guid="_uF-QYEAhEdq_UJTvM1DM2Q">Entity-Control-Boundary Pattern</a>&nbsp;provides the basis for a useful technique to |
| support this. |
| </p> |
| <p> |
| If the system communicates with another system, define one or more boundary classes to describe the communication |
| protocol. An external system may be anything from software to hardware units that the current system will use, such as |
| printers, terminals, alarm devices, and sensors. In each case, a boundary class that mediates the communication with |
| the external system will be identified. |
| </p> |
| <p> |
| Example: |
| </p> |
| <blockquote> |
| <p> |
| An automated teller machine (ATM) must communicate with the ATM network to ascertain whether a customer's bank |
| number and PIN are correct, and whether the customer has sufficient funds to withdrawal the requested amount. The |
| ATM network is an external system (from the perspective of the ATM); therefore, you would use a |
| <strong>boundary</strong> class to represent it in a use-case analysis. |
| </p> |
| </blockquote> |
| <p> |
| If the interfaces with the system are simple and well-defined, a single class may be sufficient to represent the |
| external system. Often, however, these interfaces are too complex to be represented by using a single class; they often |
| require complex collaborations of many classes. Moreover, interfaces between systems are often highly reusable across |
| applications. As a result, in many cases, a subsystem models the system interfaces more appropriately. |
| </p> |
| <p> |
| The use of a subsystem allows the interface to the external system to be defined and stabilized, while leaving the |
| design details of the system interface hidden as the system evolves.<br /> |
| </p></mainDescription> |
| </org.eclipse.epf.uma:ContentDescription> |