Case study: Cinema Booking System

 

Problem domain: use case diagram

 

 

Problem domain: use case descriptions, with Actions and Data

 

Use case: “Purchase Advance Tickets” 

    Description:

Actor requests to view Showings for a DateTime

System retrieves a list of Showings, including DateTime, Film Title for each Showing

 

Actor selects a Film Title

System retrieves Film Details, including Film Title, Age Rating, Duration, Short Trailer

 

Actor specifies Ticket Type required (student, child, adult )

Actor supplies Quantity of Tickets required

If insufficient seats available, System cancels Booking

Otherwise, System calculates Cost

 

If Actor not satisfied with Cost, System cancels Booking

Otherwise, Actor supplies Payment Card Details, including Card Type (Credit/Debit), Card Number, Expiry Date

System transacts Payment


Analysis reveals the following - 

Actions:

            RetrieveShowingsList

                                    uses: DateTime, ShowingNumber

            RetrieveFilmDetails

                          uses: Title, AgeRating, Duration, Trailer 

            CheckSeatAvailability

                         uses: ShowingNumber, Seats 

            CalculateCost

                        uses: BookingNumber, Quantity, TicketType, Cost 

            CancelBooking

                        uses: BookingNumber                           

            TransactPayment

                        uses: CardType, CardNumber, ExpiryDate

Data:

            DateTime

            ShowingNumber

            Title

            AgeRating

            Duration

            Trailer

            Seats

            TicketType

            BookingNumber

            Quantity          

Cost

            CardNumber

            CardType

            ExpiryDate

           

Use case: “Collect Tickets”

    Description:

Actor provides Payment Card Details

System looks up Booking Details

System prints Tickets for Booking

 

            Analysis reveals the following - 

Actions:

            LookUpPayment

                        Uses: CardNumber, BookingNumber 

            PrintTickets

                        Uses: CardNumber, BookingNumber, TicketType 

Data:

            CardNumber

            CardType

            CardExpiry

 

Use case: “Add Film”

    Description: 

Actor supplies Film Details, including Title, Age Rating, Duration, Short Trailer

System creates Film Details

 

            Analysis reveals the following - 

Actions:           

            CreateFilm

                        Uses: Title, AgeRating, Duration, Trailer 

Data:

            Title

            AgeRating

            Duration

            Trailer

 

Use case: “Delete Film”

    Description:

Actor requests a list of current Titles

System retrieves a list of current Titles

Actor selects Title

System deletes Film Details

 

            Analysis reveals the following - 

Actions:

            RetrieveFilmList

                        Uses: Title                       

            DeleteFilm

                        Uses: Title, AgeRating, Duration, Trailer 

Data:

            Title

            AgeRating

            Duration

            Trailer

 

Use case: “Add Screen”

    Description:

Actor provides Screen Details, including Screen Number and Capacity

System creates Screen Details

 

            Analysis reveals the following - 

Actions:

            CreateScreen

                        Uses: ScreenNumber, Capacity

Data:

            ScreenNumber

            Capacity

 

Use case: “Add Showing”

    Description

Actor requests to add a showing

System retrieves a list of current Titles

System retrieves a list of current Screens

Actor supplies Showing Details, including Date and Time, Title, Screen Number

System creates Showing Details

 

Analysis reveals the following - 

Actions:

            RetrieveFilmList

                        Uses:    Title 

            RetrieveScreenList

                        Uses: ScreenNumber, Capacity

                        CreateShowing

                                    Uses: DateTime, Title, ScreenNumber

            Data:

                        DateTime

                        FilmTitle

                        ScreenNumber

                        Capacity

 

Use case: “Cancel Showing”

    Description:

Actor requests to cancel a Showing

System retrieves a list of current Showings

Actor selects a ShowingNumber

System cancels Showing

 

Analysis reveals the following - 

Actions:

            RetrieveShowingsList

                        Uses: ShowingNumber, DateTime

            CancelShowing

                        Uses: ShowingNumber, DateTime 

Data:

            ShowingNumber

 

SUMMARY

        Number of actions is: 15

        Number of data is: 16

        Number of uses is: 39