CS711 : Software Design

Course Overview

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 Calendar

TopicLectureResourcePage
Introduction: Software Processes1Reading Material
Software Processes (Agile Methods)2Reading Material
XP – Planning Game3Reading Material
Rational Unified Process (RUP)4Reading Material
Introduction to Software Design5Reading Material
Software Design Components6Reading Material
Internal Abstraction : Modularization7Reading Material
3-Tier Architecture8Reading Material
Assignment No. 1
Software Design Components (Criteria)9Reading Material
Software Design Components (Criteria)-110Reading Material
Software Design Components (Techniques )11Reading Material
Software Design Components (Techniques )-112Reading Material
Software Design Components (Techniques )-213Reading Material
Open / Close Principle14Reading Material
Unified Modelling Language (UML)15Reading Material
Assignment No. 2
Generalization16Reading Material
Relationships between Classes (Association )17Reading Material
Relationships between Classes ( Aggregation )18Reading Material
Relationships between Classes (Composition)19Reading Material
Relationships between Classes (Generalization)20Reading Material
Problem Statement - 121Reading Material
Categories of UML Diagrams22Reading Material
Mid-term Examination
Swim Lanes23Reading Material
Categories of UML Diagrams-124Reading Material
Object Creation25Reading Material
Panel Discussion on Scenario26Reading Material
Motivation for Design Pattern27Reading Material
Categories of Design Patterns28Reading Material
Definition of Factory Method29Reading Material
Singleton Design Pattern30Reading Material
Problem Statement of Singleton Example31Reading Material
Course viva
Category of Performing Cloning32Reading Material
Builder Design Pattern33Reading Material
Structural Design Patterns34Reading Material
Academic Research Paper
Façade Design Pattern35Reading Material
Composite Design Pattern36Reading Material
Flyweight Design Pattern37Reading Material
Presentations
Proxy Design Pattern38Reading Material
Category 3: Behavioral Patterns39Reading Material
Observer Design Pattern40Reading Material
Template Design Pattern41Reading Material
Memento or Souvenir Design Pattern42Reading Material
Command Design Pattern43Reading Material
Architectural Design Patterns44Reading Material
Refactoring45Reading Material
Final-term Examination
 
 
Back to Top