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.
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:
- Recognize the principles, strategies, and process of software design and architecture.
- Analyze an existing software architecture or design.
- Differentiate how architectural styles and design patterns enhance or degrade a system's functional and non-functional properties.
- Justify architecture or design decisions given a collection of requirements.
- Present concise and unambiguous architecture and design descriptions.
- 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 |