[major=SE | course_id=SWD392 | syllabus_id=13798 | semester=7 | combo=core | title=Software Architecture and Design]
Course ID: SWD392
Title EN: Software Architecture and Design
Title VI: Kiến trúc và thiết kế phần mềm
Credits: 3.0
Prerequisites: SWE201c, PRO192
Description: This is a course in concepts and methods for the architectural design of software systems of
sufficient size and complexity to require the effort of several people for many months.
Fundamental design concepts and design notations are introduced. Several design methods are
presented and compared, with examples of their use. Students will undertake a term project
working in small groups addressing the design of a relatively complex software system.
Student tasks: Students must attend at least 80% of contact slots in order to be accepted to the final examination.
- Student is responsible to do all exercises given by instructor in class or at home and submit on time
- Constantly follow announcements on LMS at https://flm.fpt.edu.vn/ for up-to-date course information regarding assignment submission and feedback on assignments and project work.
Tools: -Internet
-The Rational Software Architect CASE tool
-Visual Paradigm, MagicDraw, and Visio
Course type: traditional
Decision: 1402/QĐ-ĐHFPT dated 12/12/2025
Approved date: 2025-12-12
CLO1: Know the Fundamentals of Software Design that includes Software Design Process, Concepts, Notations and Methods
[1] category=Course Project; type=on-going; weight=25.0; duration=Option 1: 30 slots; Option 2 (For Constructivism Approach only): Follow lecturer's proposal; question_type=All LOs; grading_guide=Software Design and Modeling; completion_criteria=; clos=5
[2] category=Progress test; type=on-going; weight=15.0; duration=Option 1: 30'; ; Option 2 (For Constructivism Approach only): Follow lecturer's proposal; question_type=All LOs; grading_guide=All LOs; completion_criteria=; clos=>0
[3] category=Final exam; type=Final exam; weight=60.0; duration=145 minutes; question_type=All CLOs; grading_guide=All subjects in syllabus; completion_criteria=; clos=4
[4] category=Practical Exam; type=Final exam; weight=20.0; duration=85'; question_type=All LOs; grading_guide=All studied chapters; completion_criteria=; clos=4
[5] category=Theory Exam; type=Final exam; weight=40.0; duration=60'; question_type=All LOs; grading_guide=All LOs; completion_criteria=; clos=4
[1] desc=Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures; author=H. Gomaa; publisher=Cambridge University Press; edition=1st Edition; isbn=9780521764148; main=True; online=; note=Books24x7, https://library.books24x7.com/toc.aspx?bookid=41618
[2] desc=UML Distilled: A Brief Guide to the Standard Object Modeling Language; author=Fowler; publisher=Addison-Wesley; edition=3rd edition; isbn=978-0321193681; main=; online=; note=
[3] desc=https://gmu.blackboard.com/webct/; author=; publisher=; edition=; isbn=; main=; online=True; note=
[4] desc=Design Patterns Elements of Reusable Object-Oriented Software; author=Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides; publisher=Addison-Wesley Publishing Company; edition=; isbn=; main=; online=; note=
Session 1: Course Introduction
Intro to Software Design (Chapter 1-2)
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: Slide, Video
Materials: SWD392
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 2: Course Introduction
Intro to Software Design (Chapter 1-2)
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 3: Course Introduction
Intro to Software Design (Chapter 1-2)
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 4: Intro to Software Design (Chapter 3-4)
Course Project introduction
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)
CLO2: Able to explain the steps in Using COMET/UML, design concepts and multiplicity of associations Collaborative Object Modeling and architectural design method (COMET)
Session 1: Intro to Software Design (Chapter 3-4)
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 2: Intro to Software Design (Chapter 3-4)
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 3: Requirements and Use Case Modeling (Chapter 5-6)
Software Quality Attributes (Chapter 20)
Topic: Offline; Teaching type: CLO2, CLO3; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 4: Requirements and Use Case Modeling (Chapter 5-6)
Software Quality Attributes (Chapter 20)
Topic: Offline; Teaching type: CLO2, CLO3; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)
CLO3: Able to use artifacts in developing Software Analysis Model : classes and objects,statecharts for state dependent objects, object interaction diagrams for each use case Using AI tools generating UML diagrams
Session 1: Requirements and Use Case Modeling (Chapter 5-6)
Software Quality Attributes (Chapter 20)
Topic: Offline; Teaching type: CLO2, CLO3; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 2: Requirements and Use Case Modeling (Chapter 5-6)
Software Quality Attributes (Chapter 20)
.
Use ChatGPT to generate use case descriptions based on user requirements.

Use GitHub Copilot to generate boilerplate code for logic implementation based on the use case
Topic: Offline; Teaching type: CLO2, CLO3; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 3: Analysis Modeling – Static modeling (Chapter 7)
Analysis Modeling – Object and Class Structuring (Chapter 8)
Topic: Offline; Teaching type: CLO2, CLO3; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 4: Analysis Modeling – Static modeling (Chapter 7)
Analysis Modeling – Object and Class Structuring (Chapter 8)
Topic: Offline; Teaching type: CLO2, CLO3; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)
CLO4: Able to design overall Software Architecture in developing Software Design Model Analyzing design solutions with AI-driven improvement recommendations.
Session 1: Analysis Modeling – Static modeling (Chapter 7)
Analysis Modeling – Object and Class Structuring (Chapter 8)
Topic: Offline; Teaching type: CLO2, CLO3; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 2: Analysis Modeling – Static modeling (Chapter 7)
Analysis Modeling – Object and Class Structuring (Chapter 8)
Topic: Offline; Teaching type: CLO2, CLO3; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 3: Analysis Modeling – Dynamic Interaction Modeling (Chapter 9, 11)
Finite State Machines and Statecharts (Chapter 10)
Topic: Offline; Teaching type: CLO2, CLO3; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 4: Analysis Modeling – Dynamic Interaction Modeling (Chapter 9, 11)
Finite State Machines and Statecharts (Chapter 10)
Topic: Offline; Teaching type: CLO2, CLO3; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)
CLO5: Able to design relational database in developing Software Design Model
Session 1: Analysis Modeling – Dynamic Interaction Modeling (Chapter 9-10-11)
Finite State Machines and Statecharts (Chapter 10)
Topic: Offline; Teaching type: CLO2, CLO3; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 2: Analysis Modeling – Dynamic Interaction Modeling (Chapter 9-10-11)
Finite State Machines and Statecharts (Chapter 10)
Generate UML architecture diagrams using PlantUML code.
Topic: Offline; Teaching type: CLO2, CLO3; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 3: Introduction to Design Patterns (Material 3)
Topic: Offline; Teaching type: CLO6; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 4: Creational & Structural Patterns
Topic: Offline; Teaching type: CLO7; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)
CLO6: Able to explain the structure and document a Design Pattern
Session 1: Behavioral Patterns
Topic: Offline; Teaching type: CLO8; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 2: Use ChatGPT to suggest appropriate design patterns.
Progress test 1
Course Project- On-going Assessment 1
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO5, CLO6; LO: TU
ITU: Slide, Video
Download: Do presentation

Session 3: Course Project- On-going Assessment 1
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO5, CLO6; LO: TU
ITU: Slide, Video
Download: Do presentation

Session 4: Course Project- On-going Assessment 1
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO5, CLO6; LO: TU
ITU: Slide, Video
Download: Do presentation
CLO7: Effectively utilize AI tools (ChatGPT, PlantUML, Copilot) to support software architecture analysis and design, including: suggesting appropriate architectural models based on system requirements, generating UML diagrams (Use Case, Class, Sequence, Statechart...)
Session 1: Course Project- On-going Assessment 1
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO5, CLO6; LO: TU
ITU: Slide, Video
Download: Do presentation

Session 2: Overview of Software Architecture (Chapter 12)
Software Subsystem Architectural Design (Chapter 13)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 3: Overview of Software Architecture (Chapter 12)
Software Subsystem Architectural Design (Chapter 13)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 4: Overview of Software Architecture (Chapter 12)
- Software Subsystem Architectural Design (Chapter 13)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)
Session 1: Overview of Software Architecture (Chapter 12)
- Software Subsystem Architectural Design (Chapter 13)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 2: Designing Object-Oriented Software Architectures (Chapter 14)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 3: Designing Object-Oriented Software Architectures (Chapter 14)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 4: Designing Object-Oriented Software Architectures (Chapter 14)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)
Session 1: Designing Object-Oriented Software Architectures (Chapter 14)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 2: Designing Client/Server Software Architectures (Chapter 15)
Client/Server Software Architectures Case Study (Chapter 21)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 3: Designing Client/Server Software Architectures (Chapter 15)
Client/Server Software Architectures Case Study (Chapter 21)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 4: Designing Client/Server Software Architectures (Chapter 15)
Client/Server Software Architectures Case Study (Chapter 21)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)
Session 1: Designing Client/Server Software Architectures (Chapter 15)
Client/Server Software Architectures Case Study (Chapter 21)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 2: Progress test 2
Using ChatGPT and PlantUML suggest applying relevant patterns in the design
Course Project- On-going Assessment 2
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6; LO: TU
ITU: Slide, Video
Download: Do presentation

Session 3: Course Project- On-going Assessment 2
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6; LO: TU
ITU: Slide, Video
Download: Do presentation

Session 4: Course Project- On-going Assessment 2
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6; LO: TU
ITU: Slide, Video
Download: Do presentation
Session 1: Course Project- On-going Assessment 2
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6; LO: TU
ITU: Slide, Video
Download: Do presentation

Session 2: Designing Service-Oriented Architectures (Chapter 16)
Service-Oriented Architectures Case Study(Chapter 22)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 3: Designing Service-Oriented Architectures (Chapter 16)
Service-Oriented Architectures Case Study(Chapter 22)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 4: Designing Service-Oriented Architectures (Chapter 16)
Service-Oriented Architectures Case Study(Chapter 22)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)
Session 1: Designing Service-Oriented Architectures (Chapter 16)
Service-Oriented Architectures Case Study(Chapter 22)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 2: Designing Component-Based Software Architectures (Chapter 17)
Component-Based Software Architectures Case Study (Chapter 23)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 3: Designing Component-Based Software Architectures (Chapter 17)
Component-Based Software Architectures Case Study (Chapter 23)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 4: Designing Component-Based Software Architectures (Chapter 17)
Component-Based Software Architectures Case Study (Chapter 23)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)
Session 1: Designing Component-Based Software Architectures (Chapter 17)
Component-Based Software Architectures Case Study (Chapter 23)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 2: Designing Concurrent and Real-time Software Architectures (Chapter 18)
Real-time Software Architectures Case Study (Chapter 24)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 3: Designing Concurrent and Real-time Software Architectures (Chapter 18)
Real-time Software Architectures Case Study (Chapter 24)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 4: Designing Concurrent and Real-time Software Architectures (Chapter 18)
Real-time Software Architectures Case Study (Chapter 24)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)
Session 1: Designing Concurrent and Real-time Software Architectures (Chapter 18)
Real-time Software Architectures Case Study (Chapter 24)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: Slide, Video
Download: Read Slide
Watch Video
Do quizzes and assignments (if any)

Session 2: Progrest test 3
Course Project:
Support writing architectural documentation.
Generate UML diagrams with example code using PlantUML or Mermaid.
Suggest design pattern, architectural Patterns application rules
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6; LO: TU
ITU: 
Download: Do presentation

Session 3: Course Project - Final Evaluation (Team 1-2-3-4)
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6; LO: TU
ITU: 
Download: Do presentation

Session 4: Course Project - Final Evaluation (Team 1-2-3-4)
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6; LO: TU
ITU: 
Download: Do presentation
Session 1: Course Project - Final Evaluation (Team 1-2-3-4)
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6; LO: TU
ITU: 
Download: Do presentation

Session 2: Course Project - Final Evaluation (Team 5-6)
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6; LO: TU
ITU: 
Download: Do presentation

Session 3: Course Project - Final Evaluation (Team 5-6)
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6; LO: TU
ITU: 
Download: Do presentation

Session 4: Course Review
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4, CLO5, CLO6; LO: TU
ITU: 
Download: Do presentation