Skip to main content
CoursebeginnerFree

Software Architecture

Coursera

⏱ Four weeks of study, 5 – 8 hours/week

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.

Visit resource

More resources on Software Architecture

WebsiteFree

InfoQ Architecture & Design

InfoQ's architecture section publishes practitioner talks, case studies, and news on distributed systems, microservices, and scaling decisions at named companies. Reading it regularly builds a sense of which architectural trade-offs working teams actually make, and why.

WebsitePaid

Software Architecture Patterns

Mark Richards' short O'Reilly report describing five common architecture patterns (layered, event-driven, microkernel, microservices, space-based) with the characteristics and trade-offs of each. After reading it you can name the pattern behind a system and argue why it fits.

WebsiteFree

InfoQ Architecture

InfoQ's architecture and design section, publishing practitioner articles, QCon conference talk write-ups and annual trend reports from working architects. Useful for tracking how large organisations actually structure systems and which approaches are gaining or losing traction.

WebsiteFree

Martin Fowler's Website

Martin Fowler's collection of essays on software architecture: microservices, monoliths, refactoring, evolutionary design and the role of the architect. Reading it gives you the vocabulary and reasoning most architecture discussions assume, plus warnings about when patterns backfire.

BookPaid

Clean Architecture

Robert C. Martin's argument that system structure should be organised around use cases, with dependencies pointing inward and frameworks, databases and UI kept as replaceable details. Explains SOLID principles, component boundaries and how architectural choices preserve future options.

BookPaid

Software Architecture in Practice

The SEI's textbook treatment of architecture as a discipline: quality attribute scenarios, tactics for achieving availability, performance, security and modifiability, documentation methods and evaluation with ATAM. Gives you a repeatable way to justify design decisions against stated requirements.

See all Software Architecture resources →