<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE EctropicDesign SYSTEM "EctropicDesign.dtd">

<!-- Note.  This is a translation of an example worked in BOOST, which -->
<!-- is a combination CRC card and UML static diagram tool.  Because -->
<!-- that tool does not represent scenarios or goals, there is no -->
<!-- scenario or goal information here.  Also, some information from the -->
<!-- UML static diagrams which is not in the current EctropicDesign DTD -->
<!-- (e.g., superclasses) is represented here only as XML comments. -->

<EctropicDesign name = "ATM">

<Class name="BalanceInquiry"/>
<!-- Superclass: CustomerRequest -->
 
<Class name="CashDispenser">
<Responsibility tag="CashDispenser-give">
<Text>Give the customer money</Text></Responsibility>
</Class>

<Class name="CustomerID">
<Responsibility tag="CustomerID-getpin">
<Text>Getting PIN and storing it</Text></Responsibility>
<Responsibility tag="CustomerID-getcardnumber">
<Text>Getting card# and storing it</Text></Responsibility>
</Class>

<Class name="CustomerRequest"/> 
<!-- Subclasses: BalanceInquiry, Deposit, Withdrawl -->
 
<Class name="Deposit"/>
<!-- Superclass: CustomerRequest -->

<Class name="NetworkConnectionToBank">
<Responsibility tag="NetworkConnectionToBank-request">
<Text>Pass on transaction request, and return response</Text>
</Responsibility>
</Class>

<Class name="Receipt">
<Responsibility tag="Receipt-record">
<Text>Needs to record transactions for bank and customer</Text>
</Responsibility>
<Responsibility tag="Receipt-dispense">
<Text>Dispense physical receipt to customer</Text>
</Responsibility>
</Class>

<Class name="Transaction">
<Responsibility tag="Transaction-send" collaborator="NetworkConnectionToBank">
<Text>Send Transaction to Bank</Text>
</Responsibility>
<Responsibility tag="Transaction-trigger" collaborator="Withdrawl">
<Text>Trigger transaction's activity if approved</Text>
</Responsibility>
</Class>

<Class name="Withdrawl">
<!-- Superclass: CustomerRequest -->
<!-- Attributes: amount -->
<Responsibility tag="Withdrawl-amount">
<Text>Find out amoutn of Withdrawl</Text>
</Responsibility>
<Responsibility tag="Withdrawl-getid" collaborator="CustomerID">
<Text>Get the customer ID information</Text>
</Responsibility>
<Responsibility tag="Withdrawl-getapproval" collaborator="Transaction">
<Text>Get approval for the transaction</Text>
</Responsibility>
<Responsibility tag="Withdrawl-dispense" collaborator="CashDispenser">
<Text>Dispense $$</Text>
</Responsibility>
<Responsibility tag="Withdrawl-inform" collaborator="Receipt">
<Text>Inform the receipt about the withdrawl</Text>
</Responsibility>
</Class>

</EctropicDesign>
