The Grant License use case from the City of Nirvana License and Tax System will be used as a comprehensive example. As you study this example, note how the essential events become a larger number of practical events and that for this use case, there are practical manual events and practical operator events.
Essential Use Case
(Top)
The two main events in the Grant License essential use case are:
| Event: Business Applies for License | |
| Message Stimulus: | Receive License Application and Fee from Business. |
| Update Response: | Create entry in application pending log. |
| Message Response: | Send Fee to Treasurer. |
| Message Response: | Send License Application to Zoning. |
| Event: Zoning Approves License Application | |
| Message Stimulus: | Receive License Application with complete approved attributes including zoning code. |
| Update Response: | Delete application from pending log. |
| Update Response: | Create new business Entity instance. |
| Update Response: | Create new Business instance with open state. |
| Update Response: | Create new owner Entity instance [if not already exist]. |
| Update Response: | Create new Ownership instance. |
| Update Response: | Create new LicenseHist instance for current tax year with issued state. |
| Message Response: | Send License Certificate to Business. |
Note that there is already a delegation pattern here because it is essential that the system delegate zoning approval to another actor.
System Architecture
(Top)
The architectural choices are:
Manual Partition
(Top)
The practical events in the manual partition are:
| Event: Owner Mails Application and Fee | |
| Message Stimulus: | License Applications arrive in a batch in the mail. |
| Business Rule: | Verify that application is signed and that a check is enclosed for the correct amount. Stamp all checks with for deposit only stamp. |
| Update Response: | Put check for license fee in Treasurer's Inbox. |
| Update Response: | Put License Application in Application Inbox. |
| Event: Owner Delivers Application and Fee | |
| Message Stimulus: | Accept signed application and check for license fee from business representitive. |
| Update Response: | Put check for license fee in Treasurer's Inbox. |
| Update Response: | Put License Application in Application Inbox. |
| Event: Zoning Expects Applications | |
| Temporal Stimulus: | It is about 3:30 pm. |
| Update Response: | Add each License Application in Application Inbox to application pending log. |
| Message Response: | Send License Applications to Zoning. |
| Event: Treasurer Expects Fees | |
| Temporal Stimulus: | It is about 3:30 pm. |
| Message Response: | Send License Fee Transmittal Form and checks for licence fees to Treasurer. |
| Event: Zoning Approves License Application | |
| Message Stimulus: | Receive approved License Applications from Zoning |
| Update Response: | Mark application returned in pending log. |
| Message Response: | Enter License Application into automated system. |
| Event: Zoning Fails to Return License Application | |
| Temporal Stimulus: | It is 7 days since application was enter in pending log and it has not been marked as returned. |
| Message Response: | Contact Zoning to check on status |
| Event: Automated Partition Accepts Application | |
| Message Stimulus: | Automated system confirms Application entry |
| Update Response: | Put approved application in Approved Bin (for later manual filing) |
| Event: Automated Partition Fails to Accept Application |
| Event: Business Needs License Certificate |
| Event: Automated Partition Prints License Certificates |
| Event: Automated Partition Fails to Print License Certificates |
Automated Partition
(Top)
The practical events in the automated partition are:
| Event: Operator Enters License Application | |
| Message Stimulus: | Operator clicks accept on Application Screen. |
| Update Response: | If valid, create new business Entity instance. |
| Update Response: | If valid, create new Business instance with open state. |
| Update Response: | If valid, create new owner Entity instance [if not already exist]. |
| Update Response: | If valid, create new Ownership instance. |
| Update Response: | If valid, create new LicenseHist instance for current tax year with accepted state. |
| Message Response: | If valid, return Application accepted message. |
| Message Response: | If invalid, return appropriate error message. |
| Event: Operator Requests License Certificates |
Note that this event list does not include details for automated events such as Operator Selects Enter License Application or Operator Selects Print License Certificates which would be triggered by a selection from a main menu.
Prepared by David L. March -- Last Revised on April 13, 2003
COPYRIGHT © 2003 BY DAVID L. MARCH