CS 618 - Software Design

Bulletin Description

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

Expected Preparation

Students should have had an undergraduate course in software engineering, CS 616, and/or software engineering experience.

Student Learning Outcomes

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.

Syllabus Information


Possible Textbooks:

Derek Hatley, Peter Hruschka, and Imtiaz Pirbhai
Process for System Architecture and Requirements Engineering
Dorset House Publishing
ISBN: 0-932633-41-2

Karl Wiegers
Software Requirements
Microsoft Press
ISBN: 0-7356-0631-5

Leszek Maciaszek
Requirements Analysis and System Design
Addison Wesley
ISBN: 0-201-70944-9