Domain Partitioning  «Prev  Next»

Use cases and domain partitioning - Exercise

Partition the domain based on use cases


Objective:Partition the use case functionality for the online ticketing system.

Exercise scoring

Full credit is 10 points. You will receive 5 points for each of the two dependencies correctly defined.

Background/overview

The use case model (usecasemodel.gif) is provided as a download for you. This item was created during the earlier parts of this series. You will continue to use the same problem throughout the remainder of this course. You will find all diagrams needed for course project exercises on the Resources page. If you have not already opened the exercise zip file, do so now.

Booking system problem statement

Our auditorium is used for different types of events. Some of the events are one-time events like basketball games. Other events consist of a number of shows, like plays or concerts.
The event planner can change the floor plan for each event. Some events use the floor for seating (like concerts) and others do not (like basketball games). All of the show seating charts for the same event should be based on the same floor plan.
The event planner schedules events and shows. Once an event is negotiated, the event planner decides on the floor plan and schedules the individual shows for the event. Once the shows are scheduled, the event planner prices the shows.
Pricing is done using a pricing plan. A pricing plan consists of a set of price tiers. Each price tier contains prices for one or more price types; i.e. adult, senior, student, and child. The event planner assigns each price tier to a group of seats in a show, one tier per seat. The event planner may also add one or more discounts to the show to try to improve sales.
Customers can purchase seats online. Once they provide us with their mailing address, they can look up shows and select the seats they want to reserve. We will only accept credit card payments. If they want refunds, we will credit the card used to purchase the ticket.

Instructions

The problem statement will re-familiarize you with the system. Use the use case model provided as your source for the functionality of the system. Group the use cases into cohesive groupings that define a meaningful and complete unit of work. Provide a name for each grouping. Do not worry about dependencies or classes yet. You will add them in the following lessons.

Hints

Visualize how a user would want to do his job. The use cases provide the tools to accomplish their work.
How much work needs to be done at the same time? Could different people perform different parts of the work at separate times, or even in different departments or locations without causing a problem with the system? Would completing one task alone really accomplish a significant unit of work for the user? When in doubt, separate the use cases into smaller groups. You can always use them in combination to support larger, more complex tasks.

Submitting your exercise

To submit the exercise, follow the steps below:

Step 1

In the text area below, type in your solution.