You are here: Home Teaching Winter Term 2013/2014 Software Design, Modelling, and …

Software Design, Modelling, and Analysis in UML

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 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.
Course type Lecture
Instructors Prof. Dr. Andreas Podelski, Bernd Westphal
Lecture Monday, 10:00–12:00, SR 106-04-007
Wednesday, 10:00–12:00, SR 106-04-007
Exercise Wednesday, 10:00–12:00, SR 106-04-007
First session Lecture 21.10.2013
Exercise tba
Language of instruction English
Credits 6
Exams see below
Course Catalog Software Design, Modelling and Analysis in UML

 

Quicklinks: News - Formalia - Plan - Links & Literature

 

News

  • 2014-01-08: problem fixed, Lecture 13 & 14 now with sound
  • 2013-12-18: recording of Lecture 13 has no sound - we're working on a fix
  • 2013-12-04: exam form and date fixed (see below)
  • 2013-10-28: room change - lectures and tutorials are from now on in 106-04-007 (Videokonferenzraum) - except for Monday, November 11th, 2013, then we're back in 051-00-034 once
  • 2013-10-17: homepage online

Formalia

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

Admission criteria

50% of the total admission (or: good will) points in the exercises are sufficient for exam admission. (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). 

Exercise Submission Scheme

The exercise sheets are online early in order to allow you to be aware of the tasks while following the lecture. There will be an early/regular submission scheme following a pattern to be announced.

Note: 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").

Exam

There will be oral exams on Tuesday, 11 March 2014, and Wednesday, 12 March 2014.

Note: The module result (grade, "Note") is completely determined by the exam.

Resources

Slides, Exercises, and Recordings

Note: the following plan is tentative

in the sense that the assignment of topics to dates is subject to change depending on the flow of the lecture. The assignment of form (lecture or tutorial) to dates is fixed. Slides will be typically only provided after the lecture.

 

Further note that recordings  are first published on the eLectures server, the links here are only updated later.  Thus please check the eLectures portal first for quickest updates (they may even support RSS).

Note: the TechSmith Screen Capture Codec seems to be necessary for playback of the recordings provided on the Electure portal.

  • Mo, 21.10.: VL 01 "Introduction"
    Motivation, Overview, Formalia.
    (Slides (with annotations), 2-up, 6-up, no recording)
  • Mi, 23.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, 6-up, no recording)
  • Mo, 28.10.: VL 03 "OCL"
    Syntax of an (interesting fragment) of OCL.
    (Slides (without annotations), 2-up, 6-up, Recording (no audio...))
  • Mi, 30.10.: Tutorial 1
  • Mo, 4.11.: VL 04 "OCL Semantics" + exercise sheet 2 online
    Formal semantics of an (interesting fragment) of OCL over system states.
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mi, 6.11.: VL 05 "Object Diagrams, OCL Continued"
    Relating system states and object diagrams; a notion of consistency for OCL.
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mo, 11.11.: VL 06 "Class Diagrams I"
    Mapping class diagrams to (extended) signatures.
    (Slides (with annotations), 2-up, 6-up, no recording)
  • Mi, 13.11.: Tutorial 2
  • Mo, 18.11.: VL 07 "Type Systems and Visibility" + exercise sheet 3 online
    A simple type-system for OCL; an extension to explain the effect of visibility.
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mi, 20.11.: VL 08 "Class Diagrams II"
    Associations (syntax, system state).
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mo, 25.11.: VL 09 "Class Diagrams III" + exercise sheet 4 online
    Associations completed, associations and OCL.
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mi, 27.11.: Tutorial 3
  • Mo,  2.12.:  VL 10 "Modelling Behaviour"
    When is a class diagram a good class diagram? Constructive vs. reflective description of behaviour.
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mi,  4.12.: VL 11 "Core State Machines I"
    Basic UML state machines (syntax, system configuration, transformers, re-use semantics of create)
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mo, 9.12.: VL 12 "Core State Machines II" + exercise sheet 5 online
    Basic UML state machines continued (run-to-completion: discard, dispatch, commence).
    (Slides (with annotations), 2-up, 6-up, Recording (no audio...))
  • Mi, 11.12.: Tutorial 4
  • Mo, 16.12.: VL 13 "Core State Machines III"
    Basic UML state machines continued (environment interaction, error)
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mi, 18.12.: VL 14 "Core State Machines IV"
    Basic UML state machines completed (environment interaction, error)
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mi,  8. 1.: Tutorial 5 + exercise sheet 6 online
  • Mo,  13. 1.: VL 15 "Core State Machines V"
    Initial states, model semantics, Rhapsody demo
    (Slides (with annotations), 2-up, 6-up, Rhapsody-Project, Recording (first half no audio, sorry...))
  • Mi, 15. 1.: VL 16 "Hierarchical State Machines I"
    General (hierarchical) UML state machines syntax; initial and final states
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mo, 20. 1.: VL 17 "Hierarchical State Machines II" + exercise sheet 7 online
    Composite states.
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mi, 22. 1.: Tutorial 6
  • Mo, 27. 1.: VL 18 "Live Sequence Charts I"
    Remaining pseudo-states; Dynamic Reflective Descriptions, Interactions, Sequence Diagrams, LSC syntax; Symbolic Büchi Automata; language of a model; Signal and Attribute expressions
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mi, 29. 1.: VL 19 "Live Sequence Charts II"
    LSC abstract syntax; Symbolic Büchi Automaton-based semantics
    (Slides (with annotations), 2-up, 6-up, Recording (first half, audio only...), Recording (second half))
  • Mo, 3. 2.: VL 20 "Inheritance I"
    Deferred Events, Behavioural Features, Passive Objects; Syntax of inheritance; Desired semantics of inheritance: Liskov Substitution Principle
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mi,  5. 2.: Tutorial 7
  • Mo, 10. 2.: VL 21 "Inheritance II"
    Domain inclusion and uplink semantics, idea and principles
    (Slides (with annotations), 2-up, 6-up, Recording (first half, audio only), Recording (second half))
  • Mi, 12. 2.: VL 22 "Meta-Modeling" + "Wrapup + Questions"
    how to read the UML standard documents
    (Slides (with annotations), 2-up, 6-up, Recording (lost))

Links & Literature