Software Architecture (Coursera)

Offered by University of Alberta,
Software Architecture (Coursera)

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.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

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.

Course 3 of 4 in the Software Design and Architecture Specialization

Syllabus

WEEK 1
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.

WEEK 2
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.

WEEK 3
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!

WEEK 4
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.

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

Related Courses

Android App Components - Intents, Activities, and Broadcast Receivers (Coursera) Coursera
Vanderbilt University

Android App Components - Intents, Activities, and Broadcast Receivers (Coursera)

This MOOC builds upon the overview of Java and Android covered in Course 1 by delving deeper into core Android components, such as Activities, Broadcast Receivers, Intents, and Intent Filters. You will learn by example how to program these core Android components together with basic Java file I/O classes (such as File, InputStream, OutputWriter, etc.) and Android storage mechanisms (such as Shared Preferences).

Jun 1st 2026
4 Weeks
Design Patterns (Coursera) Coursera
University of Alberta

Design Patterns (Coursera)

This course extends object-oriented analysis and design by incorporating design patterns to create interactive applications. Through a survey of established design patterns, learners will gain a foundation for more complex software applications. Finally, learners will identify problematic software designs by referencing a catalog of code smells. You will be challenged in the Capstone Project to redesign an existing Java-based Android application to implement a combination of design patterns. You will also critique a given Java codebase for code smells.

Jun 1st 2026
4 Weeks
Architecting Solutions on AWS (Coursera) Coursera
AWS

Architecting Solutions on AWS (Coursera)

Are you looking to get more technical? Are you looking to begin working in the cloud, but don’t know where to go next? Are you looking to up your game by prepping for the AWS Solutions Architect Associate Exam? Do you see yourself as a cloud consultant, but can’t quite envision how your days would be? Are you puzzled how to match a customer’s requirements with the right AWS services/solutions? If so, you are in the right place!! You’ll learn how to plan, think, and act like a Solution Architect in a real-life customer scenario.

Jun 1st 2026
4 Weeks
Test-Driven Development Overview (Coursera) Coursera
LearnQuest

Test-Driven Development Overview (Coursera)

In this introductory course you will get both a full overview of what TDD is, when it can and can't be applied, and what its benefits are for practitioners and organizations. You will also have the opportunity to get hands on with a few fun introductory projects where you can apply what you have learned and experience the benefits of this approach to problem solving yourself.

Jun 1st 2026
4 Weeks
Agile Analytics (Coursera) Coursera
University of Virginia

Agile Analytics (Coursera)

Few capabilities focus agile like a strong analytics program. Such a program determines where a team should focus from one agile iteration (sprint) to the next. Successful analytics are rarely hard to understand and are often startling in their clarity. In this course, developed at the Darden School of Business at the University of Virginia, you'll learn how to build a strong analytics infrastructure for your team, integrating it with the core of your drive to value.

Jun 1st 2026
4 Weeks
Development Methodologies Overview (Coursera) Coursera
LearnQuest

Development Methodologies Overview (Coursera)

This course provides an introduction to a few of the main development methodologies used by application programmers today. These methodologies provide a framework and structure for the process of development to ensure teams can work together and all critical steps are followed. We'll discuss the Software Development Lifecycle (SDLC), Agile concepts, Continuous Integration/Continuous Delivery and 12 Factor for cloud development.

Jun 1st 2026
3 Weeks
Architecting and Installing the Apigee Hybrid API Platform (Coursera) Coursera
Google Cloud

Architecting and Installing the Apigee Hybrid API Platform (Coursera)

This course introduces you to the fundamentals and practices used to install and manage Google Cloud's Apigee API Platform for hybrid cloud. Through a combination of lectures, hands-on labs, and supplemental materials, you will learn how to install and operate the Apigee API Platform. What you will learn: develop a good understanding of Apigee hybrid architecture; understand the Apigee hybrid terminology and organizational model; learn how to install and operate the hybrid platform.

Jun 1st 2026
2 Weeks
IBM COBOL Software Development Practices (Coursera) Coursera
IBM,LearnQuest

IBM COBOL Software Development Practices (Coursera)

This course is aimed at anybody interested in COBOL or or software development. In this course, you will be introduced to core practices, systems, and methodologies associated with IBM COBOL software development. You will learn about COBOL as a self-documenting language. You will review working with existing coding. This course also covers quality assurance (QA), technical support and project management.

Jun 1st 2026
3 Weeks
Python Data Representations (Coursera) Coursera
Rice University

Python Data Representations (Coursera)

This course will continue the introduction to Python programming that started with Python Programming Essentials. We'll learn about different data representations, including strings, lists, and tuples, that form the core of all Python programs. We will also teach you how to access files, which will allow you to store and retrieve data within your programs. These concepts and skills will help you to manipulate data and write more complex Python programs.

Jun 1st 2026
4 Weeks
Mastering the Software Engineering Interview (Coursera) Coursera
University of California, San Diego

Mastering the Software Engineering Interview (Coursera)

You’ve hit a major milestone as a computer scientist and are becoming a capable programmer. You now know how to solve problems, write algorithms, and analyze solutions; and you have a wealth of tools (like data structures) at your disposal. You may now be ready for an internship or (possibly) an entry-level software engineering job. But can you land the internship/job? It depends in part on how well you can solve new technical problems and communicate during interviews. How can you get better at this? Practice!

Jun 1st 2026
4 Weeks
SRS Documents: Requirements and Diagrammatic Notations (Coursera) Coursera
University of Colorado System

SRS Documents: Requirements and Diagrammatic Notations (Coursera)

As requirements are being gathered and prioritized, they also need to be documented. In Diagrammatic Notations and Software Requirements Specification Writing, we discuss and practice the process of turning requirements into something readable to the customers at a high level, and the developers. When a designer or developer reads your document, they should be able to understand the overall idea, the scope, the domain, the resources, the expectations, and why alternative choices are not selected. To create a document in this way, you use a balance between storytelling (with pictures!) and complex diagrams.

Jun 1st 2026
5-12 Weeks