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

1 Introduction: Software Processes
2 Software Processes (Agile Methods)
3 Software Design Basics
Academic paper
4 Rational Unified Process (RUP)
5 Introduction to Software Design
6 Software Design Components
7 Internal Abstraction : Modularization
Assignment 01
8 3-Tier Architecture
9 Software Design Components (Criteria)
10 Software Design Components (Criteria)-1
11 Software Design Components (Techniques )
12 Software Design Components (Techniques )-1
13 Software Design Components (Techniques )-2
Assignment 02
14 Open / Close Principle
15 Unified Modelling Language (UML)
16 Generalization
17 Relationships between Classes (Association )
18 Relationships between Classes ( Aggregation )
19 Relationships between Classes (Composition)
20 Relationships between Classes (Generalization)
21 Problem Statement
22 Categories of UML Diagrams
23 Swim Lanes
24 Categories of UML Diagrams-1
Midterm Exams
25 Object Creation
Course viva
26 Panel Discussion on Scenario
27 Motivation for Design Pattern
28 Categories of Design Patterns
29 Defination of Factory Method
30 Singleton Design Pattern
Presentation
31 Problem Statement of Singleton Example
32 Category of Performing Cloning
33 Builder Design Pattern
34 Structural Design Patterns
35 Façade Design Pattern
36 Composite Design Pattern
37 Flyweight Design Pattern
38 Proxy Design Pattern
39 Category 3: Behavioral Patterns
40 Observer Design Pattern
41 Template Design Pattern
42 Memento or Souvenir Design Pattern
43 Command Design Pattern
44 Architectural Design Patterns
45 Refactoring
Finalterm Exams