Skip to content

SE322 - Software Design and Architecture

SE322 develops the software design and architecture skills needed to move from requirements into well-structured software systems. The course covers software architecture fundamentals, architectural views, quality attributes, architecture styles and patterns, detailed design principles, design patterns, architecture evaluation, and architecture documentation.

Open SE322 slides


Course Information

Item Details
Course code SE322
Course title Software Design and Architecture
Credits 3 credits
Contact hours 4 contact hours: 3 lecture hours and 1 tutorial hour
Prerequisite SE311
Program role Required core course in the BSSE program
Primary textbook Carlos Otero, Software Engineering Design: Theory and Practice, CRC Press, 2012

Course Description

The course builds a thorough understanding of software design. It highlights middleware architectures, software architecture styles, architectural views, design patterns, UML-based architecture documentation, design metrics, software evolution, reengineering, and reverse engineering.


Course Learning Outcomes

By the end of SE322, students should be able to:

  1. Recognize the principles, strategies, and process of software design and architecture.
  2. Analyze an existing software architecture or design.
  3. Differentiate how architectural styles and design patterns enhance or degrade a system's functional and non-functional properties.
  4. Justify architecture or design decisions given a collection of requirements.
  5. Present concise and unambiguous architecture and design descriptions.
  6. Create, implement, and present an architecture and design in a group project.

Topics Covered

  • Syllabus, Background, and Problem Solving

    Software engineering review and problem-solving foundations.

  • Introduction to Software Engineering Design

    Why software engineering design matters, design challenges, the design process, and design fundamentals.

  • Software Architecture

    Architecture fundamentals, key architecture tasks, architecture process, requirements engineering, and the 4+1 view model.

  • Software Quality Attributes

    Architecture and requirements, quality attribute considerations, quality design decisions, and major quality attributes.

  • Architecture Styles and Patterns

    Architecture style and pattern history, classification, and design trade-offs.

  • Principles of Detailed Design

    Component design, object-oriented internal structure, SOLID principles, and internal component behavior.

  • Design Patterns

    Creational, structural, and behavioral design patterns in detailed design.

  • Architecture Evaluation and Documentation

    Architecture evaluation, ATAM, documenting views, documenting beyond views, and documenting quality.


Assessment Breakdown

Assessment Weight
Final exam 40%
Midterm exam 20%
Assignments, lab activities, and case studies 15%
Phased project with four deliverables 10%
Two quizzes 10%
Attendance 5%

Slide Coverage

Syllabus area Site material
Introduction Chapter 1 slides
Software architecture Chapter 2 slides
Quality attributes Chapter 3 slides
Architecture patterns Chapter 4 slides
Detailed design principles Chapter 5 slides
Structural design patterns Chapter 7 slides