Skip to main content
BookintermediateFree

Clean Architecture

Robert C. Martin

Clean Architecture - A book resource

Visit resource

This link may earn us a small commission at no extra cost to you. Affiliate disclosure

More resources on Software Architecture

WebsiteFree

Software Architecture Patterns

O'Reilly book companion site with patterns

WebsiteFree

InfoQ Architecture

Top resources and talks on software architecture

WebsiteFree

Martin Fowler's Website

Articles on software architecture patterns and practices

WebsiteFree

martinfowler.com

Martin Fowler's website is a hub of his writings on software architecture, design patterns, refactoring, and agile practices, featuring in-depth articles, essays, talks, and information about his books.

WebsiteFree

softwarearchitecture.org

SoftwareArchitecture.org is a resource hub for software architecture concepts, patterns, and best practices. It offers tutorials, articles, design patterns, and reference guides to help architects and developers design scalable, maintainable systems.

CourseFree

Software Architecture

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.

See all Software Architecture resources →