Skip to Main Content

Software Design and Architecture: Course Outline

The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships between them.

Topics

Introduction to Software Design

  • Introduction to Software Architecture
  • Introduction to Software Design
  • Design Vs. Architecture

Software Architecture Core Concepts

  • Define Software Architecture
  • Architecture Address NFR
  • Architectures and Technologies

Software Architecture Business Cycle

  • Where do architecture comes from
  • Software process and architecture business cycle
  • What makes a good architecture

Software Architecture Business Cycle

  • Activities in software process and architecture business cycle
  • Architectural Structures and views

Quality Attributes in Software Architecture

  • Motivation
  • What are the different Quantity attributes
  • Performance, Scalability, Modifiability, Security, Availability, Robustness
  • How to Achieve quality attributes at architectural level

Software Architecture Process

  • Process Outline
  • Architecture Design
  • Validation

Case Study (solution)

  • Architecture Patterns
  • Structural View
  • Behavioural View
  • Implementation Issues

Topics

Documenting Software Architecture

  • Architecture Requirements
  • Solution
  • Architecture Analysis

Introduction to design

  • Introduction to Unified modelling language (UML)
  • Structural and behavioural diagrams

Introduction to design

  • Introduction to Unified modelling language (UML)
  • Structural and behavioural diagrams

Activity

  • Modeling structural (class diagram) and behavioral diagram (use case, sequence diagram and state machine diagram) of online shopping application

Introduction to Software Product Line engineering

  • Overview
  • What makes SPL works
  • Architectures for Product Lines

Aspect Oriented Architecture

  • Introduction to Aspect-Oriented Programming (basic concepts)
  • Aspect oriented architecture
  • Aspect oriented Modelling using UML
  • Aspect Oriented Modelling tools

Model-Driven Architecture

  • What is MDA?
  • Why MDA?
  • State of the Art Practices and Tools

Text Books

E-Books (Full Text)