CS711 Software Design

CS711 Software Design

 COURSE CONTENT

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 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.

Download Section

CS711 Handouts

CS711 PPT Slides

CS711 Video Lectures

CS711 Midterm

CS711 Final Term

CS711 Viva