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

Software Design Methods and Tools (Coursera) Coursera
University of Colorado System

Software Design Methods and Tools (Coursera)

Since many software developers are compulsive coders, they have created software over the years to help them do their job. There are tools which make design and its associated tasks easier. The course introduces some basic tools and techniques to help you with design. Tools aren’t always tangible, however. The last two lessons of this course discuss questions of Ethics in software development. The purpose here is, as with tools, to equip you to better carry our your responsibilities as a designer. Students will be required to have a prior knowledge of writing and delivering software and some programming knowledge in java.

Oct 12th 2026
5-12 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
Software Design as an Abstraction (Coursera) Coursera
University of Colorado System

Software Design as an Abstraction (Coursera)

The design step in developing software has some unique characteristics. First of all, it’s the only step where drawing pictures of things is the norm. Why is that? What do pictures do that other representations cannot do? Pictures have varying levels of detail; pictures have context. Pictures…paint a picture. Why are these things important? In this course, too, we begin looking at other disciplines (building architecture is a favorite one) for lessons on design.

Oct 12th 2026
5-12 Weeks
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 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
Software Architecture for the Internet of Things (Coursera) Coursera
EIT Digital

Software Architecture for the Internet of Things (Coursera)

This course will teach you how to design futureproof systems that meet the requirements of IoT systems: systems that are secure, interoperable, modifiable and scalable. Moreover, you'll learn to apply best-in-class software architecture methods to help you design complex IoT and other applications. Lastly, you'll come to understand the business impact of the technical decisions that you make as an IoT system architect.

Oct 26th 2026
5-12 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.

Oct 5th 2026
4 Weeks
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.

Oct 12th 2026
4 Weeks