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

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
Laboratório de Programação Orientada a Objetos - Parte 1 (Coursera) Coursera
Universidade de São Paulo, Brasil

Laboratório de Programação Orientada a Objetos - Parte 1 (Coursera)

Este curso apresenta os conceitos mais importantes em torno do paradigma de desenvolvimento mais comum da indústria de software hoje: a Programação Orientação a Objetos (POO). Oferecido pelo Departamento de Ciência da Computação do Instituto de Matemática e Estatística da USP, o curso é voltado para quem já conhece os conceitos básicos de POO e quer se aprofundar no assunto, tornando-se um excelente programador. Ele funciona bem como uma sequência natural aos 2 cursos anteriores do Prof. Fabio Kon do IME-USP no coursera: Introdução à Ciência da Computação com Python.

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

Oct 19th 2026
3 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
Python Scripting: Dates, Classes and Collections (Coursera) Coursera
LearnQuest

Python Scripting: Dates, Classes and Collections (Coursera)

This course is the second course in a series that aims to prepare you for a role working as a programmer. In this course, you will be introduced to the four main concepts in programming: Advanced String Operations and Dates, Modeling Classes, Development of Classes and Collections. Labs will allow the students to apply the material in the lectures in simple computer programs designed to re-enforce the material in the lesson.

Oct 12th 2026
4 Weeks
Leadership Principles for Software Engineers (Coursera) Coursera
Advancing Women in Tech

Leadership Principles for Software Engineers (Coursera)

Learn real-world software engineering management skills to succeed and impress in your first (or next) management role at elite engineering organizations. NANCY WANG, Director of Engineering and General Manager of AWS Data Protection Services and Founder, Advancing Women in Tech (AWIT), shares with you the engineering skills cultivated at AMAZON (the #2-ranked company in the Fortune 500), with supplemental practices from GOOGLE and MICROSOFT. Develop the skills and mental models that the world's best engineering managers apply to attract and retain world-class engineering talent.

Oct 25th 2026
3 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
Introduction to Java Programming: Writing Good Code (edX) EdX
Universidad Carlos III de Madrid - UC3M,UC3Mx

Introduction to Java Programming: Writing Good Code (edX)

Learn to program in an easy and interactive way and enter the fascinating world of computer science. This is an introductory course to learn programming with Java designed to teach how to code good programs in Java, understanding “good” as both correct and efficient. Basic principles of software engineering will be introduced to make it easier for our future self and others to reuse code. Ethical issues and the intellectual property of our programs will also be addressed in the last part of this course. Examples and case studies will be provided, so that learners can implement simple but increasingly complex programs in Java.

Self Paced
Self-Paced