CS201J: Engineering Software, Fall 2003
|
Notes: Thursday 25 September 2003
Schedule
- Now: Problem Set 3
Due to the Hurricane delay, the dates of PS4 (which will be handed out in section tomorrow) and Exam 1 have been changed:
- Thursday, 2 October before class: Design Document for Problem Set 4
- Thursday, 16 October: Final Report for Problem Set 4
- Thursday, 16 October: Exam 1 will be handed out
- Tuesday, 21 October: Exam 1 is Due
Notes Why does software design matter?
Modular Dependency Diagrams
If the specification of M changes, then all modules that depend on M need to be reconsidered.
- A → B means A depends on the specification of (uses) B
- A dashed arrow B means A depends on the existence of (weakly uses) B
Section Tomorrow In section tomorrow, you will work on the design problem below:
Due to recent budget cuts at the University, SEAS has decided to replace the student advising office with a computer program. The program will take student course selections as input and either approve or disapprove of the course selections based on whether or not the student has satisfied the necessary prerequisites. (Note: the advising office does many other useful things too, of course. The administration is still working on ways to replace those functions with programs.)
All courses have a department mnemonic (e.g., "CS") and course number (e.g., 201). (As a further cost saving measure, the administration has decided to eliminate deviant courses that have extra modifiers after the number so you don't need to worry about handling courses with names like "CS201J".) Courses also have a name that purports to describes their content (e.g., "Engineering Software").
The program need to store information on courses and their prerequisites. A course may have no prerequisites, or may have multiple prerequisites or alternate prerequisites. For example, the prerequisites for "CS201: Engineering Software" are "either CS101: Intro to Computer Science OR CS200: Computer Science from Ada and Euclid to Quantum Computing and the World Wide Web". The prerequisites for "UBW101: Underwater Basketweaving" are "SCU101: Scuba Diving AND (either ART253: Introduction to Basketweaving OR SPD101: Weaving Webs for Poets)".
You've been hired to design the prerequisites checking program. Describe your design using a modular dependency diagram, and a brief description that describes each of the modules in your design. If a module is an abstract data type, write an overview specification of the data type and identify important methods (but you do not need to specify them). Explain a brief strategy for implementing and testing your design.
University of Virginia Department of Computer Science CS 201J: Engineering Software |
Sponsored by the National Science Foundation |
cs201j-staff@cs.virginia.edu |