CS 3500 Assignment #9: Movie Complex Sales System: Requirements Document and Design Notebook Due: Friday, November 22, 2013 The purposes of this assignment are: * to understand the basics of requirements specifications * to learn the basics of design process This is a design assignment - there is no code to write. Next assignment will ask you to implement your design. Collaboration between students is forbidden on this assignment. You are responsible for keeping your code hidden from all other students. You will submit this assignment within Web-CAT. Your pdf files of documents should begin with a block that lists: 1. Your name, as you want the instructor to write it. 2. Your email address. 3. Any remarks that you wish to make to the instructor. Grading: -- completeness of the scenarios or use cases -- well structured collaboration between the modules -- well defined constraints -- quality of the presentation Assignments submitted between 12:00 am and 11:59 pm the day after the due date will receive a 20 percentage point penalty on the assignment. This assignment will have two parts: (1) requirements document and (2) design document -------------------------------------------------------------------- The problem: Your goal is to design a Java application that will manage the sales of movie tickets in a cinema complex. The complex consists of several theaters that show movies at different times. The same movie may be showing in more than one theater. The ticket prices may be different for children, adults, and seniors. There may also be a different price for the matinees. The cinema complex wants to be able to analyze its sales by various criteria - tickets sold to seniors, tickets for a specific movie, matinee ticket sales, etc. Some cinema complexes may also have luxury theaters with higher fixed price for all patrons. --------------------------------------------------------------------- Requirements document: Design a requirements document for the movie ticket sales system. It is OK not to cover all options described above - and note them as possible extensions of the system. At the minimum you should allow for several theaters within the complex, at least three ticket price categories, at least three time slots per theater, at least five different movies shown. You also need to design the way the user will interact with the system (should include console an GUI) how the system can be initialized and updated (change in the schedule, seating, etc.), and what reports can the system generate - or what queries cane the theater manager ask. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The requirements document should start with a collection of 'scenarios' (also knows as 'use cases') that describe the ways the system will be used (see p. 260 of Liskov-Guttag). Next you should define 'domains' the 'relations' among them, and 'constraints' given either as equations or written in natural language. These documents and how they are created is described in Liskov/Guttag on pages 278-281. There are many different approaches to requirements engineering---some of which are discussed in Liskov. Other approaches can be seen in: - http://agile.csc.ncsu.edu/SEMaterials/CoursePack.pdf - http://www.ccs.neu.edu/course/cs3500f13/cs3500f13jys/Slides/Class20.pdf For this assignment, you should include at least two of the following approaches: - Use cases, scenarios, or user stories - define 'domains' the 'relations' among them, and 'constraints' given either as equations or written in natural language. These documents and how they are created is described in Liskov/Guttag on pages 278-281. - List functional and non-functional requirements --------------------------------------------------------------------- Design document: Design the modules of this system together with expected class structure. Document the higher level design with a module dependency diagram and a UML diagram or CRC cards for the class structure. Again, bite only what you can chew. Design the system in at least two parts: the basic system that you can implement easily, and its extension that covers the minimum requirements specified earlier. The extension should show how the original design can be upgraded to the more complex one. --------------------------------------------------------------------- We expect you to produce a professionally looking document. Search for tools that will enable you to create diagrams, or use ASCII art if all else fails. Plan on implementing your design as next assignment - so, be conservative in what you think you can accomplish. We will focus on the quality of your documents, not on how many features does your design cover. --------------------------------------------------------------------- For this assignment, you will submit the following: -- Cover page - with your name and a table of contents of what is in the document/s -- Requirements specification document, which will include at least two of the following: -- Scenarios or use cases document -- Domains - Relations - Constraints -- List functional and non-functional requirements -- Module dependency diagram -- CRC cards or UML diagram You can combine all of these into one document, or submit a zip file with all documents in it. Name your cover page TicketSellerYOURNAME.xxx (where .xxx is .pdf or .docx, or whatever format you have chosen that can be opened on a CCIS Windows or Linux lab machine). --------------------------------------------------------------------- A sample document is in the course directory: /course/cs3500f13/Assignments/A9/