The location of the files is "src/ucdd". Each use case is named with this format UC001.xml where 001 is a unique id for each use case. Example:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<usecase id="UC001" risk="high" priority="high" progress="100%">
<name>Example Use Case 001</name>
<description>
This is an example borrowed from the "use case driven
object modeling" book. In this example we are not including
the sequence diagram information.
<description>
<section>
<name>BASIC COURSE</name>
<text>
The system creates a new trade with the ticket number from the order and
brings up a Bond Trade Entry window. The AT uses this window to enter the
appropiate values for the associated trade.
</text>
<text>
When the AT chooses to submit the trade, the system
validates both general trade values and bond-specific
values (for instance, it makes sure the coupon rate
is "reasonable") before processing the trade.
</text>
<text>
If the trade passes all validation tests, the system submits
it to the Trade Queue, from which the trade is later sent to
the Back Office System for further clearing and processing.
</text>
</section>
<section>
<name>ALTERNATE COURSE</name>
<text>
If the validation fails, notify the user, highlight the erroneous values,
and get new values from the user.
</text>
</section>
</usecase>
A sequence has several steps. In each step there is an initiator <i>, a message <m>, and a receiver <r>. A step is also a sequence which means that it can contain nested steps.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<usecase id="UC002" risk="high" priority="high" progress="100%">
<name>Example Use Case 002 with sequence information</name>
<description>
This is an example borrowed from the "use case driven
object modeling" book. It is the same example as UC001
but in this case we are including the sequence diagram
information.
</description>
<section>
<name>BASIC COURSE</name>
<text>
The system creates a new trade with the ticket number from the order and
brings up a Bond Trade Entry window. The AT uses this window to enter the appropiate values
for the associated trade.
</text>
<sequence>
<step>
<i>BondTradeEntryWindow</i>
<m>getTicketNumber()</m>
<r>Order</r>
</step>
<step>
<i>BondTradeEntryWindow</i>
<m>create()</m>
<r>Trade</r>
</step>
<step>
<i>BondTradeEntryWindow</i>
<m>show()</m>
<r>BondTradeEntryWindow</r>
</step>
<step>
<i>BondTradeEntryWindow</i>
<m></m>
<r>AssistantTrader</r>
</step>
</sequence>
<text>
When the AT chooses to submit the trade, the system
validates both general trade values and bond-specific
values (for instance, it makes sure the coupon rate
is "reasonable") before processing the trade.
</text>
<sequence>
<step>
<i>AssitantTrader</i>
<m>onMouseClick()</m>
<r>SubmitButton</r>
<step>
<i>SubmitButton</i>
<m>validateGenericTradeInfo()</m>
<r>Trade</r>
</step>
<step>
<i>SubmitButton</i>
<m>validateBondInfo</m>
<r>Trade</r>
</step>
</step>
</sequence>
<text>
If the trade passes all validation tests, the system submits
it to the Trade Queue, from which the trade is later sent to
the Back Office System for further clearing and processing.
</text>
<sequence>
<step>
<i>SubmitBotton</i>
<m>insert()</m>
<r>TradeQueue</r>
</step>
</sequence>
</section>
<section>
<name>ALTERNATE COURSE</name>
<text>
If the validation fails, notify the user, highlight the erroneous values,
and get new values from the user.
</text>
<sequence>
<step>
<i>SubmitButton</i>
<m>highlightErroneous()</m>
<r>BondTradeWindow</r>
</step>
</sequence>
</section>
</usecase>
The classes used in the sequence diagrams are included in a file called classes.xml located in the same directory. Usually src/ucdd.
<app-data> <classdef name="BondTradeEntryWindow" type="view" > </classdef> <classdef name="Order" type="entity" > </classdef> <classdef name="Trade" type="entity" > </classdef> <classdef name="AssistantTrader" type="actor" > </classdef> <classdef name="SubmitButton" type="view" > </classdef> <classdef name="TradeQueue" type="entity" > </classdef> </app-data>