What is OOAD

Object-oriented analysis and design with UML 2

For some time now, UML has developed into the standard notation for describing object-oriented systems. In addition to the successful standardization efforts by OMG, it owes this primarily to its good suitability for describing a wide range of application domains in the required details. Static aspects as well as dynamic and architectural facts can be modeled. Even though efforts have recently been made to use UML to describe domains that are not represented in an IT system, the focus of this course is clearly on the object-oriented software development process. All UML diagram types are discussed and brought into the context of object-oriented development. Examples are used for this, which are practiced and discussed together. The software lifecycle serves as the methodological framework for the course. The different phases of the software life cycle are prepared and documented with UML diagrams. The course has a focus on supporting the analysis and design discipline. It is also shown how the UML is integrated into the process of software development, after all, the UML only provides a notation and requires a suitable process model. The topic is developed using a continuous case study.

Note: You will deepen your knowledge in several group exercises. One of the tools available to you is Poseidon for UML (Community Edition) from Gentleware AG.


Experience with object-oriented programming is recommended.

I am not sure if my previous knowledge is sufficient:


  • Object Orientation Concepts:
    • Object, class, aggregation, inheritance, message, association, collaboration, role, responsibility, state, event
  • UML diagrams as the modeling language:
    • Static view
    • Dynamic vision
    • Distribution view
    • Implementation view
    • Design patterns as the language of design
    • Changes and extensions of UML 2 compared to version 1.4:
    • Better separation concept - diagram
    • The UML metamodel
  • Software life cycle:
    • Procedure model: what is it
    • the importance of a process model for software development
    • Object-oriented life cycles and iterative design process
    • Specification methods and implementation
    • Is it possible to develop subsystems in parallel?
    • Risk management
    • A use case-driven, iterative and risk-controlled process model, outlook on the Rational Unified Process
  • Requirements determination:
    • Use cases, use case diagrams, description of use cases
    • Activity diagrams
    • Nonfunctional requirements
    • Glossary, architecture document
  • Analysis process
    • Initial architectural design
    • Architecture examples
    • What belongs in an architecture description?
    • Package diagrams, distribution diagrams, component diagrams, composition structure diagrams
    • Description of user interfaces
    • How do you find responsibilities?
    • How do you find relationships?
    • Domain classes, class diagram, CRC cards
    • Further analysis mechanisms, robustness analysis
    • Effect of the analysis results on project management
  • Design process
    • Architecture refinement
    • How do you find classes?
    • How do you find methods?
    • How does the transition from the external view to the internal view take place?
    • The importance of design knowledge
    • Design Patterns and Other Design Mechanisms
    • Communication diagram, communication diagram vs. collaboration diagram
    • Class diagram: specification view, implementation view
    • Interface concept in UML 2.0
    • Sequence diagrams, state diagrams, timing diagrams
    • Are UML diagrams consistent?
    • Interaction overview diagram
    • Subsystems and subject areas, class libraries
    • Case tool support?
    • Reverse engineering
    • Comments on refactoring, bad smells in UML diagrams

target group

Developers who already program object-oriented and would like to benefit from the UML standard for modeling.


4 to 10 people