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

iOS App Capstone (Coursera) Coursera
Meta

iOS App Capstone (Coursera)

In this capstone course, you’ll demonstrate your proficiency in your new skill set by creating a native iOS app. At this point in the program, you've gained all the skills you need to successfully complete this project. But you might need to refresh your memory when it comes to the previous courses in the program. For that reason, each module in this course will take you through a brief recap of relevant content from previous courses in the program. And don't worry, there will be links too so you can review content in more detail if necessary. In this way, you will be guided through the process of building the Little Lemon app which allows you to show off your new development skills.

Aug 24th 2026
3 Weeks
Programming Reactive Systems (Scala 2 version) (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Programming Reactive Systems (Scala 2 version) (Coursera)

Reactive programming is a set of techniques for implementing scalable, resilient and responsive systems as per the Reactive Manifesto. Such systems are based on asynchronous message-passing, and their basic building-blocks are event handlers. This course teaches how to implement reactive systems in Scala and Akka by using high-level abstractions, such as actors, asynchronous computations, and reactive streams.

Sep 7th 2026
5-12 Weeks
Data Structures and Software Design (edX) EdX
University of Pennsylvania,PennX

Data Structures and Software Design (edX)

Learn how to select, apply, and analyze the most appropriate data representations in your code and design high quality software that is easy to understand and modify. Knowing how to code is only part of the skills needed to become a professional software developer.

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 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 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 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.

Aug 17th 2026
5-12 Weeks
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.

Aug 31st 2026
5-12 Weeks
Engineering Practices for Building Quality Software (Coursera) Coursera
University of Minnesota

Engineering Practices for Building Quality Software (Coursera)

Agile embraces change which means that team should be able to effectively make changes to the system as team learns about users and market. To be good at effectively making changes to the system, teams need to have engineering rigor and excellence else embracing change becomes very painful and expensive. In this course, you will learn about engineering practices and processes that agile and traditional teams use to make sure the team is prepared for change. In additional, you will also learn about practices, techniques and processes that can help team build high quality software. You will also learn how to calculate a variety of quantitative metrics related to software quality.

Aug 17th 2026
4 Weeks
Programación en Python (Coursera) Coursera
Universidad de los Andes

Programación en Python (Coursera)

¡Te damos la bienvenida al curso de Programación en Python de la Universidad de los Andes! El propósito de este curso es ofrecerte un ambiente interactivo para que desarrolles tus habilidades de pensamiento computacional, aprendas a programar en el lenguaje Python y te entrenes en la resolución de problemas utilizando un computador. La estrategia pedagógica empleada es el aprendizaje activo basado en casos.

Aug 31st 2026
4 Weeks