At the end of this course, the students; 1) Describe general concepts and approaches of software architectures. 2) Analyze and design software architectures. 3) Know and apply architectural design patterns and frameworks. 4) Know and apply service-oriented architecture model.
5) Know and apply service-, model-, and aspect-oriented development approaches.
MODE OF DELIVERY
Face to face
PRE-REQUISITES OF THE COURSE
No
RECOMMENDED OPTIONAL PROGRAMME COMPONENT
None
COURSE DEFINITION
Introduction to software architecture. Architectural modeling. Architectural styles. Architecture description languages. Analyzing and reviewing software architectures. Architectural patterns and frameworks. Component-oriented development. Architecture-based development. Service-oriented architectures. Model-driven development. Aspect-oriented development.
COURSE CONTENTS
WEEK
TOPICS
1st Week
Introduction to course. Fundamental concepts
2nd Week
Rationale for software architecture design
3rd Week
Modeling software architecture design
4th Week
Architectural design methods
5th Week
Domain modelling
6th Week
Architectural views
7th Week
View modeling
8th Week
Mid-term
9th Week
Architectural patterns
10th Week
Architectural patterns
11th Week
Architectural patterns
12th Week
Architecture implementation
13th Week
Architecture evaluation
14th Week
Course summary and review
RECOMENDED OR REQUIRED READING
1. Bass, L., Clements, P. and Kazman, R., "Software Architecture in Practice", ISBN: 321154959, Addison-Wesley, (2003). 2. Larman, C., "Applying UML and Patterns", ISBN: 0131489062, Prentice-Hall, (2004).