This course provides an overview of the software design field: software design overview, software design process, a survey of software design methods (such as structured design methods, object-oriented design methods, concurrent design methods), design reviews, as well as discussing current topics such as object-oriented programming, refactoring, and design patterns. Testing and validation techniques will be emphasized throughout the course. Program designs will be developed and validated throughout the course. Readings and summaries of current and seminal journal papers and texts will be required.
9 graduate credits
Students should have had an undergraduate course in software engineering, CS 616, and/or software engineering experience.
Students will learn about the software design process. They will learn about a number of design methods. They will explore current topics such as aspect-oriented programming and design patterns. They will learn about verification of design.
Derek Hatley, Peter Hruschka, and Imtiaz Pirbhai
Process for System Architecture and Requirements Engineering
Dorset House Publishing
Requirements Analysis and System Design