Software Engineering: Modeling Software Systems using UML (Coursera)

Software Engineering: Modeling Software Systems using UML (Coursera)

Software Development Life Cycle (SDLC) is the process of developing software through planning, requirement analysis, design, implementation, testing, and maintenance. This course focuses on the requirement analysis phase of SDLC, and you will learn how to use UML models to capture the system requirements and to facilitate communication between client/users and developers.

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

UML is a general purpose visual modeling language for systems. It can be used to highlight different aspects of the system that are of interest to different stakeholders. Data requirements are captured in the domain model, which describes the important concepts of the application domain as classes, associations between them and constraints on them. Functional requirements are captured in the use-case model to describe the interactions between the system and its environment (users, other systems).
UML incorporates the current best practices in Object-Oriented modeling techniques. Basic object-oriented programming (OOP) concepts are required to attempt the course. It is recommended to take the courses in the order they are listed, as they progressively develop techniques and concepts about software engineering, but it is not a hard requirement.
Course 1 of 3 in the Software Engineering Specialization.

Syllabus

WEEK 1
Introduction to Software Engineering
Welcome to the first module of this course! In this module, you will learn: (1) Developing large software systems is a complex process.(2) How to deal with the complexity of software development.(3) What is software engineering.

WEEK 2
Modeling Software Systems Using UML
In this module, you will learn: (1) What is UML. (2) How to model a software system as a collection of collaborating objects. (3) The basic modeling components (Class, Association and Aggregation/Composition) of UML class diagrams.

WEEK 3
Types of Relationships in Class Diagram
In this module, you will learn: (1) The basic modeling components (Association Class, Inheritance and Other Constraints) of UML Class Diagram.

WEEK 4
System Requirements Capture and Domain Modeling
In this module, you will learn: (1) What is requirements capture and its role in the software development process. (2) How to capture data requirements in a domain model. (3) How to evaluate attributes, classes, and associations in a domain model.

WEEK 5
Use Case Modeling
In this module, you will learn: (1) How to capture functional requirements in a use case model. (2) How to evaluate use cases in a use case model.

WEEK 6
Use Case Specification
In this module, you will learn: (1) How to write use case specification to describe the behavior within a use case.

WEEK 7
Non-Functional Requirements
In this module, you will learn: (1) How to capture non-functional requirements. (2) How to validate system requirements.

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

Related Courses

Unix Tools: Data, Software and Production Engineering (edX) EdX
Delft University of Technology,DelftX

Unix Tools: Data, Software and Production Engineering (edX)

Grow from being a Unix novice to Unix wizard status! Process big data, analyze software code, run DevOps tasks and excel in your everyday job through the amazing power of the Unix shell and command-line tools. Processing information is the hallmark of all modern organizations, which are increasingly digital: absorbing, processing and generating information is a key element of their business.

Self Paced
Self-Paced
Introduction to Embedded Systems Software and Development Environments (Coursera) Coursera
University of Colorado Boulder

Introduction to Embedded Systems Software and Development Environments (Coursera)

Welcome to the Introduction to Embedded Systems Software and Development Environments. This course is focused on giving you real world coding experience and hands on project work with ARM based Microcontrollers. You will learn how to implement software configuration management and develop embedded software applications. Course assignments include creating a build system using the GNU Toolchain GCC, using Git version control, and developing software in Linux on a Virtual Machine.

Jul 20th 2026
4 Weeks
Applications of Software Architecture for Big Data (Coursera) Coursera
University of Colorado Boulder

Applications of Software Architecture for Big Data (Coursera)

The course is intended for individuals who want to build a production-quality software system that leverages big data. You will apply the basics of software engineering and architecture to create a production-ready distributed system that handles big data. You will build data intensive, distributed system, composed of loosely coupled, highly cohesive applications.

Jul 20th 2026
4 Weeks
Desenvolvimento Ágil de Software (curso baseado em projetos e problemas) (IFSULDEMINAS) Other Providers
Instituto Federal de Educação, Ciência e Tecnologia do Sul de Minas Gerais - IFSULDEMINAS

Desenvolvimento Ágil de Software (curso baseado em projetos e problemas) (IFSULDEMINAS)

Desenvolvimento Ágil de Software utilizando Projetos, Problemas e uma Comunidade de Aprendizagem. No curso, o estudante aprende desenvolvendo projetos e resolvendo problemas reais (curso inspirado nas metodologia ativas de aprendizagem baseada em projetos e problemas).

Not Available
5-12 Weeks
Version Control with Git (Udacity) Udacity
Udacity

Version Control with Git (Udacity)

Learn to track and manage changes. This course covers the essentials of using the version control system Git. You'll be able to create a new Git repo, commit changes, and review the commit history of an existing repo. You'll also learn how to keep your commits organized using tags and branches and you'll master the art of merging changes by crushing those pesky merge conflicts.

Self Paced
Self-Paced
Introducción a la Ingeniería del Software (edX) EdX
Universidad Autonoma de Madrid,UAMx

Introducción a la Ingeniería del Software (edX)

Conoce las distintas fases de desarrollo por las que pasa un proyecto informático, así como las actividades de gestión necesarias para lograr finalizar el proyecto con éxito. ¿Alguna vez te has preguntado qué es y para qué sirve la Ingeniería de Software? ¿Quieres saber por qué es tan necesaria esta disciplina y por qué se utiliza tanto en entornos tecnológicos? ¿O cuál es el motivo de que muchos proyectos informáticos no finalizan en tiempo y coste o con la calidad deseada?

Self Paced
Self-Paced
Introduction to Object-Oriented Programming with Java II: Object-Oriented Programming and Algorithms (edX) EdX
Georgia Institute of Technology,GTx

Introduction to Object-Oriented Programming with Java II: Object-Oriented Programming and Algorithms (edX)

Learn the basics of object-oriented programming and algorithms. Students will build on the skills learned from “Introduction to Object-Oriented Programming with Java I: Foundations and Syntax Basics” and learn the basics of writing classes that serve as blueprints of concepts or objects that are represented in a programming problem. Students will leverage the concepts of inheritance, interfaces, and polymorphism to program reusability and flexibility in classes. Finally, students will gain experience walking through and analyzing algorithms that are applied on data (including objects) in many object-oriented programs.

Self Paced
Self-Paced
A Crash Course in Data Science (Coursera) Coursera
Johns Hopkins University

A Crash Course in Data Science (Coursera)

By now you have definitely heard about data science and big data. In this one-week class, we will provide a crash course in what these terms mean and how they play a role in successful organizations. This class is for anyone who wants to learn what all the data science action is about, including those who will eventually need to manage data scientists. The goal is to get you up to speed as quickly as possible on data science without all the fluff. We've designed this course to be as convenient as possible without sacrificing any of the essentials.

Jul 13th 2026
1 Week
Object-Oriented Programming Concepts (Coursera) Coursera
LearnQuest

Object-Oriented Programming Concepts (Coursera)

In Object-Oriented Concepts, we will introduce the core concepts behind modern, object-oriented, programming. We will discuss objects, classes, messaging, inheritance, polymorphism, and more. As with Fundamentals of Programming, we will illustrate the concepts using the Python language, but they will be portable to other object-oriented programming languages.

Jul 13th 2026
3 Weeks