Skip to content
IRC-Coding IRC-Coding
UML Unified Modeling Language Class Diagram Sequence Diagram Activity Diagram OCL Modeling

UML Fundamentals: Diagram Types & Class Diagrams

Learn UML modeling: structure & behavior diagrams, relationships (association, aggregation, composition), sequence diagrams & OCL constraints.

S

schutzgeist

2 min read

UML Fundamentals – Diagram Types, Class Diagram, Sequence Diagram & OCL

This article is a definition of terms for UML – including exam questions and tags.

In a Nutshell

UML is a standardized visual language for modeling software and systems that offers structured and behavior-oriented diagrams to consistently document requirements, design, and communication.

Compact Technical Description

UML separates structure and behavior. Structural diagrams such as class diagram and package diagram describe static elements, behavior-oriented diagrams such as activity diagram, sequence diagram, and state diagram show processes and reactions. Central relationships are association, aggregation, composition, and generalization, supplemented by dependencies and realization. Visibilities control access, multiplicities describe cardinalities, stereotypes and profiles allow adaptation to domains. Textual constraints are formulated with OCL, such as invariants, preconditions, and postconditions.

Exam-Relevant Key Points

  • Structural diagrams such as classes, objects, packages, components, deployment
  • Behavior diagrams such as activity, sequence, communication, states, use cases
  • Understand relationships: association, aggregation, composition, generalization, realization, dependency
  • Correctly note cardinalities and reconcile with business rules
  • Use OCL for precise conditions, derive acceptance criteria and tests from them
  • Model states with guard conditions and actions, check security-relevant transitions
  • Profitability through early error detection, better communication
  • Version, review, and accept models, document relationship to requirements and test cases

Core Components

  1. Notation elements: class, attribute, operation with visibility
  2. Relationships: association, aggregation, composition, generalization
  3. Multiplicities and role labels on edges
  4. Packages, namespaces, import and visibility rules
  5. Components and interfaces with realization
  6. Activity elements: action, decision, merge, fork, synchronization
  7. Interaction elements: lifeline, message, activation in sequence model
  8. State machine with states, transitions, guard, entry and exit
  9. Profiles, stereotypes, tagged values for domain-specific customization
  10. OCL for invariants, preconditions, postconditions, and derived test cases

Practical Example

Domain: Library Loan

Class Diagram:
Classes: Reader, Medium, Loan
Relationships: Reader to Loan (1 to *), Medium to Loan (1 to *)
Loan has attributes: startDate, endDate, isExtended
Operation: extend() with rule: endDate = endDate + 14 days if Medium is extendable

Sequence: "Borrow Medium"
Actors: Reader, System, Catalog, Loan Service
Flow:
1. Reader sends "Borrow Medium" to System
2. System queries Catalog for availability
3. Catalog responds "available"
4. System calls Loan Service: create Loan with Reader and Medium
5. Loan Service creates Loan and confirms, System reports success

OCL Example:
Context Loan::inv ReturnDateValid: self.endDate > self.startDate

Advantages and Disadvantages

Advantages

  • Common language for business and technical teams
  • Better analysis and design quality
  • Faster test derivation
  • Clear documentation, improved maintainability

Disadvantages

  • Learning curve
  • Risk of excessive models
  • Lack of binding without process and maintenance
  • Possible misunderstandings with inconsistent notation

Typical Exam Questions (with Short Answer)

  1. Main categories of UML diagrams? Structural diagrams (classes, packages, components) and behavior diagrams (activity, sequence, states, use cases).
  2. Difference between aggregation vs. composition? Aggregation = weak whole-part relationship without lifecycle binding, composition = strong relationship with shared lifespan.
  3. Use OCL in UML? For precise formal constraints such as invariants, preconditions, and postconditions that translate well into tests.
  4. *Cardinalities 1, , 0..1? 1 = exactly one element, * = zero to any number, 0..1 = optional single element.
  5. Delimit systems in UML? Via system boundaries in use case diagram and package/component interfaces.
  6. Derive test cases from UML? From scenarios in sequence/activity diagrams and OCL conditions.
  7. Use generalization? When common properties are moved to base class, specializations extend/override.
  8. Correct class diagram for IHK? Classes with meaningful names, attributes with types/visibility, operations, relationships with cardinalities, roles.

Most Important Sources

  1. https://www.omg.org/spec/UML
  2. https://martinfowler.com/books/uml.html
  3. https://de.wikipedia.org/wiki/Unified_Modeling_Language
Back to Blog
Share:

Related Posts