Software Architecture & Design (Udacity)

Software Architecture & Design (Udacity)

Offered at Georgia Tech as CS 6310. Software Architecture and Design teaches the principles and concepts involved in the analysis and design of large software systems. This course is split into four sections: (1) Introduction, (2) UML and Analysis, (3) Software Architecture, and (4) Software Design.

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

This course will equip students with the skills and knowledge necessary to accomplish the following objectives:

  • Express the analysis and design of an application using UML
  • Specify functional semantics of an application using OCL
  • Specify and evaluate software architectures
  • Select and use appropriate architectural styles
  • Understand and apply object-oriented design techniques
  • Select and use appropriate software design patterns
  • Understand and perform a design review

What You Will Learn

Lesson 1
Introduction

  • Introduction
  • Browser Exercise (Analysis)
  • Design Concepts

Lesson 2
UML and Analysis

  • Review of UML
  • Object Oriented Analysis Exercise
  • UML Class Models

Lesson 3
Software Architecture

  • KWIC Exercise
  • Overview of Software Architecture
  • Architectural Views

Lesson 4
Software Design

  • Components
  • Coffee Maker Exercise
  • Object Design

Prerequisites and Requirements
Students are expected to have completed an undergraduate software engineering course or have industry experience in software development.

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

Related Courses

Fundamentals of Software Architecture for Big Data (Coursera) Coursera
University of Colorado Boulder

Fundamentals of Software Architecture for Big Data (Coursera)

The course is intended for individuals looking to understand the basics of software engineering as they relate to building large software systems that leverage big data. You will be introduced to software engineering concepts necessary to build and scale large, data intensive, distributed systems. Starting with software engineering best practices and loosely coupled, highly cohesive data microservices, the course takes you through the evolution of a distributed system over time.

Jun 22nd 2026
4 Weeks
Software Engineering Essentials (edX) EdX
Technische Universität München - TUM,TUMx

Software Engineering Essentials (edX)

Learn agile methods, object-oriented programing and best practices for analysis, design, testing and management in software engineering. The world of software engineering requires high flexibility, an influx of new ideas, and the courage to challenge traditional approaches. As a software engineer, you need to know the methods, workflows and tools to handle continuously growing complexity and shortened development cycles. You must be able to work in teams to build high-quality software.

This course is archived
5-12 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 15th 2026
4 Weeks
Copywriting: Improve User Experience One Word at a Time (OpenSAP) OpenSAP
SAP

Copywriting: Improve User Experience One Word at a Time (OpenSAP)

The words that you use throughout your app or site are just as important as the interaction and visual design. But the words – or copy – are often an afterthought. All too frequently we use words like “Submit” and “Cancel” on our UIs as if we’re talking to a computer and not a human. We need to bring a personal touch to the words on the screen. This openSAP course Copywriting: Improve User Experience One Word at a Time explains why it’s vital to think about the words as part of your design. Using real-world examples, you’ll get practical advice on how to write effective and compelling copy that will delight your users.

Self Paced
Self-Paced
UML Class Diagrams for Software Engineering (edX) EdX
KU Leuven University,KULeuvenX

UML Class Diagrams for Software Engineering (edX)

Learn how unified modeling language (UML) class diagrams are created and used to visualize and conceptualize the design of a system. Have you ever wondered how software architects, requirements engineers and business analysts sketch and draw out their plans for a software system? In this computer science course, you will gain an in-depth understanding of Unified Modeling Language (UML) class diagrams, which are used to visually represent the conceptual design of a system.

Self Paced
Self-Paced
Software Design for Non-Designers (openSAP) OpenSAP
SAP

Software Design for Non-Designers (openSAP)

This free Software Design for Non-Designers interactive course aims to explain common aspects of design as way to improve user experience in software engineering, and will provide an introduction to a few basic steps you can apply to your next project. It is taught by Scott Klemmer from UC San Diego, and a team of design-driven development experts from SAP.

Self Paced
Self-Paced
Software Development Process (Udacity) Udacity
Georgia Institute of Technology,Udacity

Software Development Process (Udacity)

In SDP, you will learn how to select and implement the ideal software process for your development project. Through Professor Orso's engaging examples and interviews with industry insiders, you will learn both conceptual and practical aspects of software engineering. The course covers requirements engineering, architecture and design, testing and maintenance, and software quality in general.

Self Paced
Self-Paced
Introducción a UML (Coursera) Coursera
Universidad de los Andes

Introducción a UML (Coursera)

Bienvenidos a este curso de introducción al Lenguaje de Modelado Unificado, o UML por su sigla en inglés. Este curso surge como respuesta a la necesidad de los ingenieros de software de desarrollar la habilidad de abstraer y representar en un modelo problemas o soluciones. Esta habilidad es especialmente importante en el mundo del software donde las tecnologías son tan cambiantes. Un modelo te provee una forma de comunicar y validar un entendimiento, independiente de la tecnología en la que construirás una solución.

Jun 8th 2026
4 Weeks
Software Design as an Element of the Software Development Lifecycle (Coursera) Coursera
University of Colorado System

Software Design as an Element of the Software Development Lifecycle (Coursera)

This course talks about software development lifecycles a description/prescription for how we write software. Design is a step in this life cycle, and the course explores the implications of this. Design has a role in the life cycle; it is always there, regardless of the kind of life cycle we’re talking about. Why is that? Why was design considered as a step in this life cycle?

Jun 22nd 2026
5-12 Weeks
Software Architecture Patterns for Big Data (Coursera) Coursera
University of Colorado Boulder

Software Architecture Patterns for Big Data (Coursera)

The course is intended for individuals looking to understand the architecture patterns necessary to take large software systems that make use of big data to production. You will transform big data prototypes into high quality tested production software. After measuring the performance characteristics of distributed systems, you will identify trouble areas and implement scalable solutions to improve performance. Upon completion of the course you will know how to scale production data stores to perform under load, designing load tests to ensure applications meet performance requirements.

Jun 22nd 2026
4 Weeks