Software Architecture

Coursera Courses ↗ · Coursera

Open Course on Coursera

Free to audit · Opens on Coursera

Software Architecture

Coursera · Intermediate ·🏗️ Systems Design & Architecture ·1mo ago
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.
Watch on Coursera ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Related AI Lessons

Java Design Patterns in Practice: Real JDK Examples for Interviews
Learn Java design patterns through real-world examples from the JDK, essential for acing interviews and improving coding skills
Medium · Programming
Hytale Servers Will Fail Treasure Hunts Until We Fix Our Event Handling
Learn how to identify and fix event handling issues in server optimization to prevent failures in treasure hunts
Dev.to · pretty ncube
I Thought Domain-Driven Design Was a Waste of Time. I Was Wrong.
Learn how Domain-Driven Design can improve software development and why it's essential for backend engineers to understand its value
Dev.to · Mostafijur Rahman
Why Next.js Dominates Modern Web Development
Learn why Next.js dominates modern web development and how it enables faster, scalable websites and applications
Medium · UX Design
Up next
Databases, Scalability and Containers on AWS
Coursera
Watch →