Fall 2004
JMU CS665 - Software Requirements and Design
Help Policies Solutions Study-Aids Tools
Syllabus


Description: This course provides an in-depth study of the state-of-the-art in software design (including requirements engineering, analysis, and design). Topics include formal techniques for system specification and verification, security models, software analysis and design methods and techniques, software architectures, and design patterns.
Textbook: The primary textbooks for this course is:

Fox, C.J. (2004) Guide to Software Design.

You will be provided with an electronic copy. You should also obtain a book on the Unified Modeling Language.

Outline: This course is organized as follows, though specific topics and dates may change. (Readings are listed in the right-most column.)
Part I: Introduction
8/24 Software Design Ch. 1,2
Part II: Product Design
8/31 Analysis: Identifying Needs and Desires Ch. 3,4
9/7 Resolution: Generating Requirements Ch. 5
9/14 Modeling in Product Design: Introduction , Use Cases and Prototyping Ch. 6,7
Part III: Engineering Design
9/21 Team Meeting
9/28 JMU Closed Due to Inclement Weather
10/5 Analysis: Conceptual Models and Resolution: Class Models Ch. 9 and Ch. 11,12
10/12 Resolution (cont.): Interaction Models and State Models Ch. 13, 14
10/19 Mid-Term Exam
Part IV: Improving your Design Skills
10/26 Characterizing Good Designs
11/2 Using Features of Object-Oriented Programming Languages: Visibility/Secrecy , Interfaces and Abstract Classes , Packaging , Iterator and Composite Pattern Ch. 15,16
11/9 Improving Designs with Patterns: Proxy , Command and Observer Ch. 19,21
11/16 Improving Designs with Patterns (cont.): Architectural Patterns and Model-View-Controller Ch. 17,18
11/23 Improving Designs with Patterns (cont.): Singleton and Factory Method Ch. 20
11/30 Discussion of Final Project

Attendance at lectures is not mandatory but is strongly encouraged. You are expected to come to class prepared to ask and answer questions. Hence, you should complete the readings on a topic before it is discussed in lecture.

Grading: Final grades will be based on your performance on: 1 in-class exam (30% total) , 1 final exam (30% total) , several assignments (20% total) and 1 final project (20% total).
Homework Assignments: 6 homework assignments will be assigned during the semester. Note that their due dates are subject to change. Note also that the links to asssignments on Canvas will only work if you first login to Canvas.
Product Analysis for Papyrus; Due: 9/7
Alternative Product Designs for Papyrus; Due: 9/14
Use Case Diagrams and Descriptions for Papyrus; Due: 9/21
Conceptual Models for Papyrus; Due: 10/12
Class Models for Papyrus; Due: 10/26
Class Implementations for Papyrus; Due: 11/2

Make sure you read and understand all of the policies related to homework assignments.

Final Project: Each student must complete a project. All project materials are due on 11/30 . Make sure you read and understand all of the policies related to projects.
Office Hours: You may meet with Prof. Bernstein during his scheduled office hours or you may schedule an appointment with him.

Copyright 2019