System Design Example ===================== 1. System to be described: ---------------------- A printer system used by students to print projects, homeworks, etc. Students approach a room where the printer resides and where an employee hands out a print job submitted by students. Students submit requests from printer requests consoles. Diagram of the System: Technician | | v Employee -----> Printer Controller ----> Printer ^ | | Printer Console ^ | | Person (student) 2. Uses Cases: ----------- Use Case #1 (Person printing a document) ---------------------------------------- Prerequisites: A document exist and is ready to be printed. Set of actions: If there is space in the printer spool specify name of document to print via the Console printer controller receives document and process it else printing of the document is denied and appropriate message generated in console. Effects: A document has been printed or a message to the effect the printing was not possible has been generated. Use Case #2 (Technician fixing printer problem) ------------------------------------------------ Prerequisites: A problem has been identified in the printer controller. Set of actions: A technician enters his password in the printer controller (to gain acces to the system). The technician asks for a status report. The printer problem area is identified. Technician proceeds to repair the problem area in the printer. Effects: The printer is now operational. Controller reflects this status. User #3 (Employee picks up printed document for student) -------------------------------------------------------- Prerequisites: A job has been sent to the printer by a student. Student approached printer consoler for submission of job. Set of actions: A student inquires about a particular job. The employee checks the stack of printed jobs in the printer tray. If student document is found document is handed to student else student is informed about missing document Effects: A student has a printed document or has been informed the document is not present. 3. For each part of the system: ---------------------------- Name: Printer Description: Provide paper printouts of documents. Must keep track of: Paper quantity and other printer status information. Name: Printer Controller Description: Used by the Employee and Technician to interact with printer. Must Keep track of: Must keep track of documents to be processed, documents already finished, and status of the printer. Name: Printer Request Console Description: Used by students to submit a document to print. Must Keep track of: Users allowed in the system, and currently in the system. 4. For each interaction between parts: ----------------------------------- Interaction #1 (Controller and Printer) The Controller sends documents to process to the printer. It also gathers status information from the printer which makes available to the Employee or technician. Interaction #2 (Console and Controller) Console sends job to the controller which determines whether the document can be printed or not. It schedules the job to printed. Status information about the job is send back to the Console.