VOOZH about

URL: https://www.coursera.org/learn/software-architecture

⇱ Software Architecture | Coursera


Software Architecture

Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.

Software Architecture

81,378 already enrolled

Included with

β€’

Learn more

Gain insight into a topic and learn the fundamentals.
4.5

948 reviews

Intermediate level
Some related experience required
Flexible schedule
1 week at 10 hours a week
Learn at your own pace

Gain insight into a topic and learn the fundamentals.
4.5

948 reviews

Intermediate level
Some related experience required
Flexible schedule
1 week at 10 hours a week
Learn at your own pace

Build your subject-matter expertise

This course is part of the Software Design and Architecture Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • Learn new concepts from industry experts
  • Gain a foundational understanding of a subject or tool
  • Develop job-relevant skills with hands-on projects
  • Earn a shareable career certificate

There are 4 modules in this 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.

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.

What's included

6 videos8 readings1 assignment2 peer reviews

6 videosβ€’Total 42 minutes
  • 3.1.1 – Architecture Overview and Processβ€’17 minutes
  • 3.1.2 – Kruchten's 4 + 1 Model Viewβ€’6 minutes
  • 3.1.3 – UML Component Diagramβ€’4 minutes
  • 3.1.4 – UML Package Diagramβ€’6 minutes
  • 3.1.5 – UML Deployment Diagramβ€’5 minutes
  • 3.1.6 – UML Activity Diagramβ€’5 minutes
8 readingsβ€’Total 80 minutes
  • Meet Your Presenter – Sam Jefferyβ€’10 minutes
  • Meet Your Facilitatorsβ€’10 minutes
  • Software Architecture – Course Notesβ€’10 minutes
  • Software Architecture Glossaryβ€’10 minutes
  • Discussion: Introduce Yourselfβ€’10 minutes
  • Peer Review Request Forumβ€’10 minutes
  • Capstone Assignment 3.1 - Draw a Component Diagram (Solution)β€’10 minutes
  • Capstone Assignment 3.2 - Draw a Deployment Diagram (Solution)β€’10 minutes
1 assignmentβ€’Total 30 minutes
  • Module 1 Reviewβ€’30 minutes
2 peer reviewsβ€’Total 120 minutes
  • Capstone Assignment 3.1 – Draw a Component Diagramβ€’60 minutes
  • Capstone Assignment 3.2 – Draw a Deployment Diagramβ€’60 minutes

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.

What's included

9 videos3 readings1 assignment

9 videosβ€’Total 64 minutes
  • 3.2.1 – Abstract Data Types and Object-Orientedβ€’6 minutes
  • 3.2.2 – Main Program and Subroutineβ€’5 minutes
  • 3.2.3 – Databasesβ€’9 minutes
  • 3.2.4 – Layered Systemsβ€’8 minutes
  • 3.2.5 – Client Server n-Tierβ€’9 minutes
  • 3.2.6 – Interpretersβ€’5 minutes
  • 3.2.7 – Pipes and Filtersβ€’5 minutes
  • 3.2.8 – Event Basedβ€’10 minutes
  • 3.2.9 – Process Controlβ€’7 minutes
3 readingsβ€’Total 30 minutes
  • State Transition Systemsβ€’10 minutes
  • Publish–Subscribeβ€’10 minutes
  • Discussions: Architectural Stylesβ€’10 minutes
1 assignmentβ€’Total 30 minutes
  • Module 2 Reviewβ€’30 minutes

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!

What's included

4 videos1 assignment

4 videosβ€’Total 43 minutes
  • 3.3.1 – Quality Attributesβ€’16 minutes
  • 3.3.2 – Analyzing and Evaluating an Architectureβ€’14 minutes
  • 3.3.3 – Relationship to Organizational Structureβ€’3 minutes
  • 3.3.4 – Product Lines and Product Familiesβ€’9 minutes
1 assignmentβ€’Total 30 minutes
  • Module 3 Reviewβ€’30 minutes

Now, in the final module of the course, you will evaluate the proposed architecture to extend the functionality of the example Android code base.

What's included

4 readings1 assignment1 peer review

4 readingsβ€’Total 40 minutes
  • Capstone Assignment 3.3 - Analyze and Evaluate an Architecture (Solution)β€’10 minutes
  • Discussion: Last Word – Software Architectureβ€’10 minutes
  • Acknowledgementsβ€’10 minutes
  • Creditsβ€’10 minutes
1 assignmentβ€’Total 30 minutes
  • Final Examβ€’30 minutes
1 peer reviewβ€’Total 60 minutes
  • Capstone Assignment 3.3 – Analyze and Evaluate an Architectureβ€’60 minutes

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.

Instructor

Instructor ratings
4.5 (192 ratings)
University of Alberta
12 Coursesβ€’483,225 learners

Explore more from Software Development

Why people choose Coursera for their career

πŸ‘ Image

Felipe M.

Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
πŸ‘ Image

Jennifer J.

Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
πŸ‘ Image

Larry W.

Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
πŸ‘ Image

Chaitanya A.

"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."

Learner reviews

  • 5 stars

    69.33%

  • 4 stars

    19.91%

  • 3 stars

    5.69%

  • 2 stars

    2.31%

  • 1 star

    2.73%

Showing 3 of 948

AB
Β·

Reviewed on Dec 28, 2020

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.

ZX
Β·

Reviewed on Apr 16, 2018

It's introduction of software architecture, mainly focus on basic concepts, lack of practical examples.

ZH
Β·

Reviewed on Jul 14, 2021

This is a very very excellent course of which I've ever taken & would like to recommend it to my friends to expore.

Frequently asked questions

You'll learn how to understand, document, and evaluate software architecture. It starts with representing a system in UML and from different viewpoints, then builds into common architecture patterns and the tradeoffs behind them. You'll apply that by drawing diagrams for a Java-based Android application and evaluating its design with the Architecture Tradeoff Analysis Method (ATAM).

Some software development experience is helpful before you start, but prior UML expertise isn't essential. The course moves quickly into system structure, architectural styles, and design tradeoffs while teaching you how to represent them with UML. Because the capstone analyzes a Java-based Android application, you'll get more from the course if classes, functions, and components already feel familiar.

It's beginner-friendly for software architecture if you already have some programming or software engineering context. The course explains the core ideas clearly, starting with representation and communication, then moving into styles, quality attributes, and evaluation. If you're completely new to how software systems are built, the intermediate pace may feel fast.

Plan for about 10 hours in total. At roughly 10 hours a week, many learners could finish in about a week, though you may want a little longer if you spend extra time on the diagram assignments or capstone analysis. The course includes lessons, readings, quizzes, and peer-reviewed assignments.

Yes, but the hands-on work is guided rather than build-from-scratch. You'll create UML component and deployment diagrams, and in the capstone you'll analyze a Java-based Android application's architecture using ATAM. That practice helps you apply each idea to a realistic system instead of only reading about architectural styles.

You'll spend most of the course on how architectures are described, how common architectural styles differ, and how architecture is evaluated in practice. That includes UML and multiple architectural views, plus styles such as layered and event-based systems that you compare in terms of qualities and tradeoffs. It also connects architecture to real development concerns, including team structure and product planning.

After finishing, you should be able to describe a system's architecture in UML, compare likely tradeoffs between design styles, and evaluate an existing architecture in a more structured way. For example, you could document the components and deployment of a multi-application system, then use ATAM to discuss risks, strengths, and quality priorities. That's a solid outcome if you need to review architecture decisions or communicate them more clearly with a team.

It's more concept-first than project-heavy. You'll get guided practice through diagram assignments and a capstone analysis, but the main value is learning how to think about system design and tradeoffs.

Choose this course if you want software architecture explained through both visual modeling and design evaluation, not just a tour of style names. It starts with UML and architectural views, then connects those ideas to quality attributes and ATAM through guided assignments on a Java-based Android app. If your goal is to communicate architecture clearly and assess design tradeoffs in a structured way, this course is a particularly good fit.

Financial aid available,

ΒΉ Some assignments in this course are AI-graded. For these assignments, your data will be used in accordance with Coursera's Privacy Notice.