Copyright 2019 - CSIM - Asian Institute of Technology

Selected Topic: Software Architecture Design I

Course code: AT70.9013
Credits: 1(1–0)
This course is elective

Course objectives

Designing, developing, and evolving complex software systems requires a mastery of analytical and technical skills, as well as a knowledge of appropriate processes, architectures and design patterns. Software architects building complex systems must create the illusion of simplicity through decomposition, abstraction, and encapsulation of functionality. Software Architecture I and II teach the fundamentals of software architecture, drawn from research and best practice on large software projects. Students will learn techniques and tools for modeling, analyzing, evaluating, and controlling the development of complex software systems. In Software Architecture Design I, students will develop the basic object-oriented analysis and modeling skills necessary for understanding, designing, and maintaining a software architecture. Software Architecture I should be taken concurrently with AT70.90C, Selected Topics: Software Development Methodologies.

Learning outcome

Software engineering, Software architecture, Object-oriented analysis.


Experience programming in a high-level programming language, e.g. C or Java, or by permission of the instructor.

Course outline

I. Introduction

  1. The importance of software architecture
  2. Iterative software development
  3. The Unified Modeling Language (UML)
  4. Architectural views
  5. Object-oriented analysis and design

II. Use Cases

  1. Actors
  2. Scenarios
  3. Use case diagrams

III. Problem Domain Modeling

  1. UML classes
  2. UML relationships
  3. Package analysis

IV. Use Case Realization

  1. Objects and messages
  2. UML interaction diagrams

V. UML Modeling Tools

Learning resources


Larman (2005): Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3 rd edition, Prentice Hall.


Arlow and Neustadt (2004): UML 2 and the Unified Process , 2 nd edition, Addison-Wesley.
Booch (2006): Handbook of Software Architecture ,
Booch, Rumbaugh, and Jacobson (2005): The Unified Modeling Language User Guide , 2nd Edition, Addison-Wesley.
Fowler (2003): UML Distilled: A Brief Guide to the Standard Object Modeling Language , Third Edition. Addison-Wesley. Pilone and Pitman (2005): UML 2.0 in a Nutshell , O'Reilly.

Back to the list


Login Form


School of Engineering and technologies     Asian Institute of Technology