Software Architecture
Keep adding new skills with 10,000+ programs for $239 (usually $399). Save now.
Software Architecture
This course is part of Software Design and Architecture Specialization
Instructor: Kenny Wong
81,378 already enrolled
Included with
Learn more
948 reviews
948 reviews
Skills you'll gain
Tools you'll learn
Details to know
See how employees at top companies are mastering in-demand skills
Build your subject-matter expertise
- 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
Offered by
Explore more from Software Development
- Status: Free TrialU
University of Alberta
Specialization
- Status: Free Trial
Course
- Status: Free Trial
- Status: Free TrialU
University of Alberta
Course
Why people choose Coursera for their career
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
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.
Reviewed on Apr 16, 2018
It's introduction of software architecture, mainly focus on basic concepts, lack of practical examples.
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.
More questions
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.
