CS711 - Sofware Design
Course Page
Mcqs
Q & A
Video
Downloads
Course Category: Computer Science/Information Technology
Course Level: Graduate
Credit Hours: 3
Pre-requisites: CS304 CS504

Course Synopsis

This course focuses on understanding the different interrelationships between requirements and design aspects of Software development. The aim is to comprehend and classify different higher-level architectural patterns and their interrelationship to patterns with respect to efficient Software Design techniques. Problem solving of designing the software design as per specific requirements will be discussed with adequacy of a specific architectural pattern for a certain problem. Discussion on design metaphors, components, contracts with their relationship to system design to develop the software design document. Utilization of a modeling language (e.g. UML) to document a system design as per standard procedures along with know how to and be able to validate if a specific implementation is compliant with the intended architecture.

Course Learning Outcomes

Upon successful completion of this course, students should be able to:
  • Understand different interrelationships between requirements and design aspects of Software development
  • Comprehend and classify different higher-level architectural patterns and their interrelationship to patterns with respect to efficient Software Design techniques
  • Explain the notion of design patterns and describe a subset of patterns
  • Use patterns to solve real-world problems
  • Interpret and construct UML models of software

Course Contents

Introduction: Software Processes, Software Design Basics, Software Architecture, Software Design Principles, Software Patterns, Design Patterns, Design Patterns, Creational Design Patterns, Introduction to Architectural Patterns, Structural Design Patterns, Behavioral Patterns, Idioms, Anti-Patterns, Model Driven Architecture, Service Oriented Architecture (SOA)
Course Instructor

Sheraz Pervaiz
MS in Software Technology Stuttgart University of Applied Sciences, Germany
Books

Anti- Patterns, Identification, Refactoring, and Management by Phillip A. Laplante

Design Patterns Elements of Reusable Object Oriented Software by Erich Gamma

Head First Design Pattern by Eric T Freeman

Pattern Oriented Software Architecture by Frank Buschmann

Software Architecture Design Pattern in Java by Partha Kuchana

The Design Pattern – Java Companion by James W. Cooper