UML Summary

Atakan Demircioğlu
Developers Keep Learning
4 min readJun 26, 2022

What is UML?

  • UML (Unified Modeling Language) is basically for visualizing a system design.
  • Helpful for documentation.
  • Helpful for understanding the structure and behavior of the system.
  • UML isn’t a programming language. (visual language or unified modeling language)
  • UML has direct relation whit OOP.

What are UML pros?

  • Helpful for developers to understand potential errors in programs.
  • It is a visual representation and this makes more understandable the relations with classes, entities and etc.
  • It is a standard for OOP languages. This provides a common language to describe relationships.
  • Well known for most of the developers independent of programming language.
  • Easy to plan before codding.
  • Increase the readability and re-usability because developers don’t read all of the code. Developers can easily understand the structure from UML and this can prevent duplicating codes.
  • They are great free open source tools for creating UMLs.

UML Diagram Types

UML Diagrams are classified into two general types.

  1. Structural Diagrams (static aspects or structure of a system)
  2. Behavioral Diagrams (dynamic aspects or behavior of the system)
  • Class diagrams, sequence diagrams, and use case diagrams are the popular ones.

Structural Diagrams

Deployment Diagram: Depict the physical resources in a system, including nodes, components, and connections. Determines how the software is deployed.

Composite Structure Diagram: provides a logical overview of all or part of a software system at a micro-level. Shows the internal part of a class.

Package Diagram: Organize elements of a system into related groups to minimize dependencies between packages.

Profile Diagram: Diagram that uses stereotypes, tagged values, and constraints to extend and customize UML.

Class Diagram: The backbone of almost every object-oriented method, including UML.

https://www.visual-paradigm.com/guide/uml-unified-modeling-language/uml-class-diagram-tutorial/

Object Diagram: Describes the static structure of a system at a particular time.

https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-object-diagram/

Component Diagram: Describes the organization of physical software components, including source code, run-time (binary) code, and executables.

Behavioral Diagrams

Communication Diagram: Emphasizes the messages exchanged between objects in an application.

https://www.lucidchart.com/pages/uml-communication-diagram

State Machine Diagram: Typically is used to describe state-dependent behavior for an object.

https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-state-machine-diagram/

Activity Diagram: Activity diagrams are used to model workflow or business processes and internal operations.

https://www.lucidchart.com/pages/uml-activity-diagram

Sequence Diagram: Describes how, and in what order a group of objects works together. These diagrams are used by software developers and business professionals to understand requirements for a new system or to document an existing process.

https://www.geeksforgeeks.org/unified-modeling-language-uml-sequence-diagrams/

Usecase Diagram: Use case diagrams are referred to as behavior diagrams used to describe a set of actions that some system or systems should or can perform in collaboration with one or more external users of the system (actors). There is a great article about this.

Timing Diagram: A timing diagram is a specific behavioral modeling diagram that focuses on timing constraints.

The Interaction Overview Diagram: Focuses on the overview of the flow of control of the interactions. The interaction overview diagram is similar to the activity diagram, in that both visualize a sequence of activities.

The difference is that, for an interaction overview, each individual activity is pictured as a frame that can contain a nested interaction diagram.

https://en.wikipedia.org/wiki/Interaction_overview_diagram

References:

--

--

Atakan Demircioğlu
Developers Keep Learning

Passionate about blogging and sharing insights on tech, web development, and beyond. Join me on this digital journey! 🚀