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

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.

Sep 7th 2026
3 Weeks
Global Software Development (edX) EdX
Delft University of Technology,DelftX

Global Software Development (edX)

Develop the technical and organizational skills you need to practice software engineering in a globally distributed environment. Software engineering operates ever more frequently in globally distributed settings, in a practice that is known as Globally Distributed Software Engineering (GDSE). In this course, you will obtain a practical overview of the organization and operation of software engineering of this practice. As such, it is aimed at professionals in distributed software development teams, and executives setting up and leading such teams who would like to develop the required technical and organizational skills.

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.

Sep 14th 2026
4 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
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
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.

Aug 31st 2026
4 Weeks
Mastering the Software Engineering Interview (Coursera) Coursera
University of California, San Diego

Mastering the Software Engineering Interview (Coursera)

You’ve hit a major milestone as a computer scientist and are becoming a capable programmer. You now know how to solve problems, write algorithms, and analyze solutions; and you have a wealth of tools (like data structures) at your disposal. You may now be ready for an internship or (possibly) an entry-level software engineering job. But can you land the internship/job? It depends in part on how well you can solve new technical problems and communicate during interviews. How can you get better at this? Practice!

Aug 31st 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.

Aug 31st 2026
4 Weeks