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.
Offered By
About this Course
Learner Career Outcomes
25%
25%
12%
Learner Career Outcomes
25%
25%
12%
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
TOP REVIEWS FROM SOFTWARE ARCHITECTURE
This is a excellent course for Software architects, addressing all key areas needed in the field. Good content, definitely recommend this course for anyone aspiring to be a Software architect.
Absolutly Fantastic Courses!! Well Designed. I got what I was looking for. Using Andoid as a way to pratices is also a very good idea. Thank you very all of you.
This was a very insightful and interesting course which gave a deep and thorough knowledge of all aspects of Software architecture. Very well designed. Thanks
It was definitely interesting at first, but later modules were quite boring as they went into philosophical level. But overall it was good experience, thanks.
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?
Will I earn university credit for completing the Course?
More questions? Visit the Learner Help Center.