Assignment Description

SOEN344 - Software Architecture and Design II Instructor: Dr. C. Constantinides Term assignment

Due date: '''Thursday March 29. '''

This is an individual assignment.

Your assignment is to build part of the functionality of a system that handles booking of events by multiple (concurrent) clients. As you are only building a subset of the system and in order to be able to get a functioning system, as well as to avoid having to enter data possibly multiple times during test runs, certain things would have to be hard coded.

The domain is a theater that organizes various types of events (concerts, comedy nights, etc.). An event contains a unique identification number, a title, a date and time that will take place, a maximum capacity (different events may take place in one of three halls of the theater) and it can be ‘open’ or ‘closed’ depending on whether bookings can still be made, or an event is fully booked. Events are stored in a catalog. You can prepare a file that contains such events. To keep things simple, you can consider two shows per hall per day, over some weekend (Friday –Sunday). In such a system, the system administrator would be able to enter information and create an event to be stored into the system. Actors are system administrators and clients. Clients correspond to agents who act on behalf of individual customers.

You must build the following functionality using object-oriented methods and Java, in three iterations.

'''1. Iteration 1''': View all events: A client should be able to view all events in the system.

'''2. Iteration 2''': Create bookings: Clients receive requests from individuals and attempt to create bookings. A request is made up of a first and last name, event, hall, date and time.

You need to figure out how to handle requests by the same individual for multiple seats.

You can prepare a file with several lines of such requests, one file per client. Expect to have many clients which you will implement as threads that all run at the same time while reading a request from their file, and proceed to make a booking. In response to a booking request, the system accepts or rejects the request based on availabilities. There are no race conditions, i.e. all clients are treated equally. '''3. Iteration 3''': View all bookings for a given event.

You must submit a report that contains artifacts of all appropriate activities over all three iterations.

Your implementation artifacts must be stored (and be accessible) in a code repository.