UML Definition
The Unified Modeling Language (UML) is a general-purpose, developmental, modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.
![](https://i0.wp.com/mikeguzman.dev/wp-content/uploads/2024/01/image-4.png?resize=659%2C1024&ssl=1)
UML Tool
Create flowcharts & diagrams online with Lucidchart. No download needed. Use Lucidchart to visualize ideas, make charts, diagrams & more.
![](https://i0.wp.com/cdn-cashy-static-assets.lucidchart.com/marketing/chart/homepage/shared-vision.png?w=740&ssl=1)
UML Class Diagram
![](https://i0.wp.com/cdn-images.visual-paradigm.com/home/15.0/vp_logo_header.png?w=740&ssl=1)
The UML Class diagram is a graphical notation used to construct and visualize object-oriented systems.
A class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of a system:
- classes
- their attributes
- operations (or methods)
- and the relationships among objects
Example
![](https://i0.wp.com/mikeguzman.dev/wp-content/uploads/2024/01/image-5.png?resize=630%2C444&ssl=1)
UML Class Notation
![](https://i0.wp.com/mikeguzman.dev/wp-content/uploads/2024/01/image-6.png?resize=300%2C159&ssl=1)
Class Access Modifiers
![](https://i0.wp.com/mikeguzman.dev/wp-content/uploads/2024/01/image-7.png?resize=300%2C107&ssl=1)
Perspectives of Class Diagram
The choice of perspective depends on how far you are in the development process. During the formulation of a domain model, for example, you would seldom move past the conceptual perspective. Analysis models will typically feature a mix of conceptual and specification perspectives. Design model development will generally start with a heavy emphasis on specification and evolve into implementation perspectives.
Perspectives:
- Conceptual: represents the concepts in the domain
- Specification: the focus is on the interfaces of Abstract Data Type (ADTs) in the software
- Implementation: describes how classes will implement their interfaces.
![](https://i0.wp.com/mikeguzman.dev/wp-content/uploads/2024/01/image-8.png?resize=740%2C145&ssl=1)
Relationships between classes
![](https://i0.wp.com/mikeguzman.dev/wp-content/uploads/2024/01/image-9.png?resize=300%2C273&ssl=1)
Cardinality
![](https://i0.wp.com/mikeguzman.dev/wp-content/uploads/2024/01/image-10.png?resize=231%2C300&ssl=1)
Class Diagram Example
![](https://i0.wp.com/mikeguzman.dev/wp-content/uploads/2024/01/image-11.png?resize=740%2C352&ssl=1)