Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

University of Alberta

Software Architecture

University of Alberta via Coursera

Overview

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.

Syllabus

  • 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.

Taught by

Kenny Wong

Reviews

4.5 rating, based on 19 Class Central reviews

4.5 rating at Coursera based on 902 ratings

Start your review of Software Architecture

  • Profile image for Niyasim P
    Niyasim P
    The course gave good insight about Software Architecture styles and patterns. Also ATAM: Method for Architecture Evaluation from Carnegie Mellon University as a reference.
  • Geert Solvie
    Good course, giving an overview about different Architecture Diagrams, Architectural Styles and finally about how to analyse and evaluate an architecture.
    Notes are available which help very much to understand the topics.
    There is a review per module included as well as reviews which are to be assessed by other learners. The latter one is suffering from other learners doing assessments and doing them seriously.
    Anyway, I appreciated the course very much.
  • Anonymous
    Great content in general. Do away with excessive use of peer-reviewed assignments. I don't think these enhance the learning process on such an online platform and they aren't take seriously anyway. Also the format of this course and the other courses in the specialisation in particular is more suited for an actual university course and not a self-spaced self-study online course.
  • Profile image for Borys Bobrovych
    Borys Bobrovych
    A nice course that provides an overview of common existing architectural styles. Students should work on assignments and review assignments of each other. Also, there are present modules and final exams.
  • Anonymous
    Everything in the course was well organised. This is a recommended free course on Coursera for all the beginner software developers out there. The quizzes and assignments are well designed as per what has been taught in the course and it is also a real world problems that we try to tackle. This course is obviously a five star. Thank you!
  • Awais Usman
    It was a well designed course for beginners or to get the things started. Content was very precise and to the point. Assignments were well designed. Those were not difficult. The course can be completed as per the recommended guidelines. Thanks coursera.org and Alberta University for offering the informative course.
  • Anonymous
    The content covered in this course is good. The main presenter was not particularly good at communicating the content throughout the videos though. The peer graded assignments need some improvement, since most peers don't seem to take grading others seriously.
  • SHEKH AFSAR
    FRIST I CLEAR, MY ENGLISH IS BETTER THEN GOOD BUT NOT SO GOOD OR FLUENT.

    I WANT MAKE MY BRIGHT DIMOND FUTURE, BECAUSE I CHANGE MY PERSONALITY. I BELONG A MIDDLE CLASS FAMILY.

    THIS REASON I DID NOT GET ANYTHING AND I NOT ACHIVED OR EARN ANY PLATFORM.
    I NOT GIVEN AN ANY EXCUSE
    "BUT" LET ME ONE THING VERY CLEAR
    I NEVER GIVE UP AND I CAN I WILL
  • Anonymous
    Very good learning materials and a very good opportunity to work with other learners from all over the world. Assignments are helpful but still have some space to improve. I got a hard time understanding an assignment at the very beginning.
  • Anonymous
    Its was nice experience all the video's are very understandable good lecture loved the class even the quizzes are very easy i liked the way of teaching it is very clean and clear
  • Anonymous
    FRIST I CLEAR, MY ENGLISH IS BETTER THEN GOOD BUT NOT SO GOOD OR FLUENT.

    I WANT MAKE MY BRIGHT DIMOND FUTURE, BECAUSE I CHANGE MY PERSONALITY. I BELONG A MIDDLE CLASS FAMILY.

    THIS REASON I DID NOT GET ANYTHING AND I NOT ACHIVED OR EARN ANY PLATFORM. "BUT" I CAN AND I WILL
  • Anonymous
    I liked it so much, very interesting and helpful course!
    The teachers are so delightful. I didn't have any problem with homework as all tasks were discribed in the course. So I would recommend it to my friends to learn all basics, which are related to software architecture.
  • Anonymous
    Sadly I have to leave a bad review. After taking this class I feel like I only learned a little about Software Architecture. Maybe this is a hard topic and also hard to put into a Coursera class but the content, assignments and guidelines could have been much better.

    The course nodes are not great. The assignments are unclear and sometimes too focused on the wrong subject (UML details). The questionares are ok, but sometimes I disagreed with the answer as it depends on the context.
  • Anonymous
    It has been a remarkably learning. I have some knowledge of the topics included in the training but clearly, I have gotten a more structured and deeper concepts about software architecture. It could be valuable to have a more progressive number of exercises to get a better topics' understanding.

    The documentation easy to read and to follow.
  • Anonymous
    This course from University of Alberta, has beautifully covered the fundamentals of Software Architecture, traversed through various Architecture Styles and finally emphasized on the quality attribute which is a very key attribute of Software architecture.
  • Anonymous
    It was a great course that introduced to different architecture types and UML representation of these types. Liked the hands on exercise that enhance my knowledge and also enabled me to put in practice the learning during the course.
  • Anonymous
    the course was well organized. it has good learning materials and excellent talkers. Assignments are helpful. it was a very good opportunity to work with other learners from all over the world. thanks to all
  • Anonymous
    The course helped to understand the concepts of software architecture, some more examples could have been more beneficial. Overall a well planned course.
  • Anonymous
    It is not for beginners and there is so much to learn. In this course, everything was interesting and had value.

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.