Chevron Left
Back to Software Architecture

Learner Reviews & Feedback for Software Architecture by University of Alberta

717 ratings
161 reviews

About the Course

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. In the Capstone Project you will document a Java-based Android application with UML diagrams and analyze evaluate the application’s architecture using the Architecture Tradeoff Analysis Method (ATAM). After completing this course, you will be able to: • Compare and contrast the components, connections, protocols, topologies, constraints, tradeoffs, and variations of different types of architectural styles used in the design of applications and systems (e.g., main program and subroutine, object-oriented, interpreters, pipes and filters, database centric, event-based). • Describe the properties of layered and n-tier architectures. • Create UML ipackage, component, and deployment diagrams to express the architectural structure of a system. • Explain the behaviour of a system using UML activity diagrams. • Document a multi-application system with a layered architecture....

Top reviews


Dec 23, 2019

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.


Jul 21, 2021

This course integrates the previous courses (Object oriented design and Design patterns) and applies the knowledge taught in those courses to real life problems. Highly recommended.

Filter by:

151 - 160 of 160 Reviews for Software Architecture


Aug 20, 2021


By Diego A H M

Sep 26, 2021

me gusto mucho la sección de estilos arquitectónicos y diagrama de componentes, no fue claro la parte de atributos de calidad y Metodo ATAM , para análisis de disemio

By Refat A R - 2

Aug 22, 2021


By Eric A

Mar 7, 2022

It's fine. I was expecting more about how to come up with the internal design of an applcation, but the grand-scheme examples are good to consider.

I still have some gripes, though:

The instructions for assignment 3.1 are very misleading. It says you need to make a component diagram of an application, then says to install Android Studio and look over an app's code, which implies you have to make a diagram of the Android app. I had been working on it for an hour before I noticed the real instructions at the very bottom of the page, which do not actually require you to run the app or really look at the source code at all; the whole app is just one single component in the diagram. I could understand making it optional or recommended, but please just make the instructions say what to do. The 3.1.5 video doesn't show examples of <<uses>> arrows, and doesn't show a label for a link between nodes, but the grading rubric for assignment 3.2 requires both of those. I don't think the definition of a sensitivity point makes sense. The solution to the last assignment doesn't say which category each scenario should have been.

The website reloaded itself while I was grading an assignment and lost all of my radio button choices. I was more than halfway done with it. It also reloaded while I was writing this review.

By Peter B

Nov 14, 2021

I am a bit disappointed. I did not mean, that the course is not useful, but most of the material is blurred, incoherent, out of the blue, and not presented well. Kruchten's 4+1 View has bad naming, blurry explanations, needs real examples. I asked for clarifications about the material on the forum for Week 2 six times (without answers). You had better check ATAM in the original papers (30+ pages) and Quality Attributes are foggy (Week 3). The solution for the last capstone assignment does not cover half of the assignment (Week 4). There are testing questions for not presented terms. But, the science that is behind the course (Kruchten's Views, UML, ATAM, Architecture types) are very useful, so for me (who never heard of half of them) taking the course worth it. I mean, the course showed me what needs to understand for becoming a better programmer.

By Ершова Т А

Mar 27, 2022

Some of the links didn't work. When installing the application I asked for help to solve problems, I did not receive a response. The examples of using the technique from module 4 were not sufficient to complete the task. Judging by the projects that I had to check, many people did not understand how to move from scenario to a utility tree. A lot of theory and terms without explanation of how this knowledge will be useful in practice. Only the first model has been worked out in detail (with questions during the video, tasks for self-fulfillment). Modules 2 and 3 are just a set of videos about terms. Tests do not show a practical understanding of the topic, but only how well the student remembered the terms. The course is good for getting acquainted with terminology, with UML diagrams. For real architectural design, it gives very little.

By Roman V

Oct 6, 2021

Theory and useless UML. Not recommended for experienced specialists. Academic approach and no value

By Dániel S

Dec 20, 2021

This course is easy. The part that is actually about the different software architectures is interesting, but not too deep. The course does not prepare you for final capstone assignment.

By Daniel C A

Dec 17, 2021

Basic, should have had more practice and real world examples

By Ulan Z

Nov 29, 2021