Software Engineering
Document Actions

Software Design, Modelling and Analysis in UML (Vorlesung)

The model-driven approach to software and systems development proposes to address quality and complexity issues in the development process. The usage of modelling languages not only for documentation, but, e.g., for automated analysis, test generation, and code generation is gaining momentum in particular in the context of (safety) critical software development. The necessary pre-requisites are a semantically founded modelling language and methods and tools for analysis. We will take the Unified Modelling Language (UML) as an example and demonstrate how to equip a relevant sublanguage (sometimes referred to as executable core) with precise a precise meaning in line with the official standard documents. To complement these discussions, we provide access to a contemporary UML modelling tool and use it for some of the exercises.

Quicklinks: News - Dates and Times - Formalia - Links & Literature - Plan - Prerequisites

News

  • 2009-11-19: exam date proposal - Monday, 8th of March, 2010, morning.  Please enter any objections into the Doodle polls (see below).
  • 2009-11-17: this uml.sty comprises the quick-and-dirty LaTeX macros that I use to typeset the class and object diagrams in the lecture, this uml.tex is an example for how to use it.
    (Disclaimer: Both come without any support or warranty.)
  • 2009-11-17: Please mail me your username/login name/account name for the faculty pool system - these name will obtain access to a terminal server which is running Telelogic Rhapsody, the UML modelling tool we'll use for some later exercises
  • 2009-11-10: Please choose exam dates: favourable days - unfavourable days - you don't need to insert your real name, just the initials maybe
  • 2009-10-23: recording of lecture 01 online - if you have any comments on the recordings, in particular what is cut out and what is left in, feel free to mail me (= Bernd).
  • 2009-10-23: eLectures module online - note that you can rate individual lectures by assigning 0 to 5 "stars"; you may use this if you want to, but if you assign few "stars" keep in mind that we can't make things better if we don't know what is bad (so: talk to us then).  And recall that there will be a mid-term evaluation of the course.
  • 2009-10-20: Postprocessing of the lecture 01 recording is delayed for technical reasons.  If you were not able to attend the first lecture and want to consider the recording, please contact B. Westphal, then we can provide an intermediate solution.
  • 2009-09-24: Strikeout...
  • 2009-09-24: course homepage online

Dates and Times

Lectures and Tutorials are scheduled according to the plan at the end of this page.

Exercises pipeline:

  • Tuesday, day N: Exercises sheet online
  • Monday, day N+6, 9:00: Early submission
  • Tuesday, day N+7, 9:00: Late submission + Tutorial
  • Thursday, day N+16: Corrected submissions handed out

Formalia

Prerequisites for admission to the final exam and form of the final exam will be announced in the lecture.

Brief summary of the preliminary plan:

  • Sufficient criterion for exam admission: 50% of the total admission points in the exercises (for example, perfect solutions to exercise sheets 1, 3, 5, and 7 and no solutions to 2, 4, and 6 would satisfy this requirement; so would 50% of the points in each exercise).
  • Exam: by default a written exam of the usual form and duration, for bachelor students and on individual request (e.g. time conflicts for visiting students), oral exams can be negotiated; if the number of candidates for a written exam drops below a certain threshold, only oral exams will be offered.
  • The module result ("Note") is completely determined by the exam.

The exercises will be rated on two scales: admission points (given your knowledge before the tutorial, how sensible is your proposal; "good will rating", "upper bound") and exam points (given the additional knowledge from the comments on your proposal and the tutorial, how many points would your proposal at least be worth in a written exam; "evil rating", "lower bound").


Links & Literature


Tentative Plan

  • Di, 20.10.: VL 01 "Motivation"
    Overview, Formalia.
    (Slides (with annotations), 2-up, Recording)
  • Do, 22.10.: VL 02 "Semantical Model" + exercise sheet 1 online
    Why (of all things) UML? Mathematical Foundation: Signature, Structure, System State.
    (Slides (with annotations), 2-up, Recording)
  • Di, 27.10.: VL 03 "OCL"
    Syntax of an (interesting fragment) of OCL and formal semantics over system states.
    (Slides (with annotations), 2-up, Recording)
  • Do, 29.11.: VL 04 "Object Diagrams"
    A notion of consistency for OCL; relating system states and object diagrams.
    (Slides (with annotations), 2-up, Recording)
  • Di, 3.11.: Tutorial 1
  • Do, 5.11.: VL 05 "Class Diagrams I" + exercise sheet 2 online
    Mapping class diagrams to (extended) signatures.
    (Slides (with annotations), 2-up, Recording)
  • Di, 10.11.: VL 06 "Type Systems and Visibility"
    A simple type-system for OCL; an extension to explain the effect of visibility.
    (Slides (with annotations), 2-up, Recording)
  • Do, 12.11.: VL 07 "Class Diagrams II"
    Associations.
    (Slides (with annotations), 2-up, Recording)
  • Di, 17.11.: Tutorial 2
  • Do, 19.11.: VL 08 "Class Diagrams III" + exercise sheet 3 online
    Associations continued.
    (Slides (with annotations), 2-up, Recording)
  • Di, 24.11.: VL 09 "Modelling Structure"
    When is a class diagram a good class diagram?
    (Slides (with annotations), 2-up, Recording)
  • Do, 26.11.: VL 10 "Constructive Behaviour"
    Difference between reflective and constructive descriptions of behaviour, basic UML state machines
    (Slides (with annotations), 2-up, Recording)
  • Di, 1.12.: Tutorial 3
  • Do, 3.12.: VL 11 "Core State Machines I" + exercise sheet 4 online
    Basic UML state machines continued
    (Slides (with annotations), 2-up, Recording)
  • Di, 8.12.: VL 12 "Core State Machines II"
    (Slides (with annotations), 2-up, Recording)
  • Do, 10.12.: VL 13 "Hierarchical State Machines I"
    (Slides (with annotations), 2-up, Recording)
  • Di, 15.12.: Tutorial 4
  • Do, 17.12.: VL 14 "Hierarchical State Machines II" + exercise sheet 5 online
    (Slides (with annotations), 2-up, Recording)
  • Di, 22.12.: VL 15 "tba"
    (Slides (with annotations), 2-up, Recording)
  • Do, 7. 1.: VL 16 "Reflective Behaviour: LSC I"
    (Slides (with annotations), 2-up, Recording)
  • Di, 12. 1.: Tutorial 5
  • Do, 14. 1.: VL 17 "Live Sequence Charts II" + exercise sheet 6 online
    (Slides (with annotations), 2-up, Recording)
  • Di, 19. 1.: VL 18 "Real-Time UML"
    (Slides (with annotations), 2-up, Recording)
  • Do, 21. 1.: VL 19 "Components"
    (Slides (with annotations), 2-up, Recording)
  • Di, 26. 1.: Tutorial 6
  • Do, 28. 1.: VL 20 "Inheritance" + exercise sheet 7 online
    (Slides (with annotations), 2-up, Recording)
  • Di, 2. 2.: VL 21 "Meta-Modeling"
    (Slides (with annotations), 2-up, Recording)
  • Do, 4. 2.: VL 22 "Putting it all together: MDA, MDSE"
    (Slides (with annotations), 2-up, Recording)
  • Di, 9. 2.: Tutorial 7
  • Do, 11. 2.: VL 23 "Wrapup + Questions"
    (Slides (with annotations), 2-up, Recording)

Prerequisites

Courses "Informatik III" (Theoretical Computer Science Basics) and "Softwaretechnik" recommended.


  • Instructors: Andreas Podelski | Bernd Westphal
  • Times & Locations: Tue, 09:00 - 11:00, SR 00 007 (MMR) Geb. 106 | Thu, 11:00 - 12:00, SR 00 007 (MMR) Geb. 106
  • Tutors: O. Mitevski | X. Wu
  • Times & Locations of tutorials: Thu, 12:00 - 13:00, SR 00 007 (MMR) Geb. 106