The way that software components — subroutines, classes, functions, etc. — are arranged, and the interactions between them, is called architecture. In this course you will study the ways these architectures are represented, both in UML and other visual tools. We will introduce the most common architectures, their qualities, and tradeoffs. We will talk about how architectures are evaluated, what makes a good architecture, and an architecture can be improved. We'll also talk about how the architecture touches on the process of software development.
This course is part of the Software Design and Architecture Specialization
Offered By
About this Course
Offered by

University of Alberta
UAlberta is considered among the world’s leading public research- and teaching-intensive universities. As one of Canada’s top universities, we’re known for excellence across the humanities, sciences, creative arts, business, engineering and health sciences.
Syllabus - What you will learn from this course
UML Architecture Diagrams
In this module you will learn about software architecture. You will learn why architecture is important, what perspectives need to be considered, and how to communicate architecture using UML.
Architectural Styles
Software comes in all shapes and sizes. The architecture you choose will affect every part of your software, from its security and efficiency, to its modularity and maintainability. In this module we will examine the different architectures that you have to choose from to shape your software.
Architecture in Practice
The architecture is the most fundamental aspect of software. You will learn how development teams describe architectures, plan successful architectures based on quality attributes, and evaluate the resulting architecture. You will also learn how architecture relates to organization structure and even product planning!
Capstone Challenge
Now, in the final module of the course, you will evaluate the proposed architecture to extend the functionality of the example Android code base.
Reviews
- 5 stars68.40%
- 4 stars21.15%
- 3 stars5.75%
- 2 stars2.27%
- 1 star2.40%
TOP REVIEWS FROM SOFTWARE ARCHITECTURE
The contents of the course is quite information. Plus the assignments gives the learners more practical insight and how to deal with real life situations.
This is my 3rd course in the Software Design and Architecture Specialization, as the previous ones it is well designed and useful.
I have learnt many concepts such as various diagrams. Quality attributes and how to evaluate architecture.\n\nIt is outstanding course.
Combining practical knowledge with the information from this course i succeed to see the big picture of software architecture. Nice work.
About the Software Design and Architecture Specialization
In the Software Design and Architecture Specialization, you will learn how to apply design principles, patterns, and architectures to create reusable and flexible software applications and systems. You will learn how to express and document the design and architecture of a software system using a visual notation.

Frequently Asked Questions
When will I have access to the lectures and assignments?
What will I get if I subscribe to this Specialization?
Is financial aid available?
More questions? Visit the Learner Help Center.