01.01.2015 Views

UML Weekend Crash Course™ - To Parent Directory

UML Weekend Crash Course™ - To Parent Directory

UML Weekend Crash Course™ - To Parent Directory

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

66<br />

Saturday Morning<br />

For example, the problem statement tells you that the receiving and stocking jobs are<br />

independent. Years ago they were, but now the staff unloads the trucks and places the products<br />

into inventory right away. Although the tasks may remain distinct, there is no longer a<br />

real distinction in the roles of the people doing the work. Perhaps the actor definitions<br />

should be merged, as illustrated in Figure 6-4.<br />

Receiving<br />

Stock Clerk<br />

Receiving<br />

+<br />

=<br />

Figure 6-4<br />

Merging two roles into one role<br />

Step 6: Evaluate the Use Cases for dependencies<br />

Apply the dependency stereotype between Use Cases when one Use Case<br />

always calls on another Use Case to help it with a task that the calling Use Case cannot<br />

handle. The included Use Case may already exist or it may recur in a number of Use Cases<br />

and need to be isolated. For example, updating inventory is one of the requirements for<br />

ShipOrder, StockProduct, and FillOrder. Figure 6-5 isolates the UpdateInventory requirement,<br />

defining it once rather than three times, and calls on it from the original three<br />

Use Cases.<br />

Ship Order<br />

<br />

Update<br />

Inventory<br />

<br />

Stock Product<br />

<br />

Fill Order<br />

Figure 6-5 dependencies from the problem statement<br />

You can see right away that we place a high priority on reuse. Everything in a project<br />

has the potential for reuse. Use Cases, classes, work flows, analysis procedures, work products,<br />

analysis documents, design documents, and code make up only a short list of possible<br />

reusable resources.<br />

Step 7: Evaluate the Use Cases for dependencies<br />

One Use Case may or may not use another Use Case depending upon a stated condition.<br />

When the condition is met, the call is made to the other Use Case. When the condition is<br />

not met, the call is not made.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!