You are here: Home Teaching Winter Term 2015/16 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 Tuesday, 10:00–12:00, SR 51-03-026
Thursday, 10:00–12:00, SR 51-03-026
Exercise Tuesday, 10:00–12:00, SR 51-03-026 (2-weekly)
First session Lecture 20.10.2015
Exercise 27.10.2015
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

  • 2016-02-05: Errata updated (Lecture 17, Sl 14 & L 18, Sl 4)
  • 2016-01-23: Exercise Sheet 6, Exercise 3.(iv) - (vi): object u should be in the state configuration defined by { s1, s5 } with x = 0 and be stable.
  • 2016-01-07: created a new errata document - thanks for pointing out the mistakes in the slides!
  • 2015-11-24: exam date fixed - see below (examination office demanded an answer today...) - Erasmus students by individual arrangement
  • 2015-11-18: no lecture tomorrow, 19th of November - lecturer is ill (and hopes that the information reaches you in time).  Unless announced otherwise, tutorial on Tuesday will take place.
  • 2015-11-12: note that the recording of Lecture 6 is shorter than usual because the lecture was - we finished up Tutorial 2 first
  • 2015-11-12: slides of Lecture 4 (OCL Semantics) updated - definition of iterate() now also cares for \bot (cf. Slide 20), and Slide 11 is back
  • 2015-10-20: see Welcome message in the ILIAS forum for contact information of tutor Milan and me
  • 2015-10-19: tentative plan updated
  • 2015-09-25: 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 an oral exam:

  • Tuesday, 22nd of March, 2016
  • 30 min., times available at examination office,
  • 52-00-017
  • Erasmus students (and only Erasmus students): we can arrange individual dates / times if necessary - please contact us appropriately soon.

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 (up to 24.11.).

 

  • Errata (last update: 2016-01-07)
  • Di, 20.10.: VL 01 "Introduction" + exercise sheet 1 online (submit via ILIAS)
    Motivation, Contents, Formalia.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Do, 22.10.: VL 02 "Semantical Model"
    Mathematical Foundation: Signature, Structure, System State.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di, 27.10.:Tutorial 1
  • Do, 29.10.:  VL 03 "OCL Syntax" + exercise sheet 2 online (submit via ILIAS)
    Syntax of an (interesting fragment) of OCL.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di, 3.11.: VL 04 "OCL Semantics"
    Formal semantics of an (interesting fragment) of OCL over system states.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Do, 5.11.: VL 05 "Object Diagrams"
    Relating system states and object diagrams; a notion of consistency for OCL.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di, 10.11.: Tutorial 2
  • Do, 12.11.: VL 06 "Class Diagrams I" + exercise sheet 3 online (submit via ILIAS)
    Mapping class diagrams to (extended) signatures.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di, 17.11.: VL 07 "Class Diagrams II"
    Extended signatures cont'd; visibility and OCL; Rhapsody demo; Stereotypes.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Do, 19.11.: -
  • Di, 24.11.: Tutorial 3
  • Do, 26.11.: VL 08 "Class Diagrams III" + exercise sheet 4 online (submit via ILIAS)
    Associations (syntax, system state, OCL).
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di,  1.12.:   VL 09 "Class Diagrams IV"
    Associations cont'd; Notes in diagrams; Elements of UML diagram style.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Do,  3.12.: VL 10 "State Machines Overview" + exercise sheet 4 online
    Basic UML state machines (syntax, basic causality model); more Rhapsody demo.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di, 8.12.: Tutorial 4
  • Do, 10.12.: VL 11 "Core State Machines I" + exercise sheet 5 online (submit via ILIAS)
    Basic UML state machines continued (ether, system configuration)
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di, 15.12.: VL 12 "Core State Machines II"
    Basic UML state machines completed (action language, transformer)
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Do, 17.12.: VL 13 "Core State Machines III"
    Basic UML state machines completed (transition relation); Rhapsody demo.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream.
     The CandD example for Rhapsody animation: CandD.tgz.)
  • Di,  22.12.: tba.
  • Do,  7. 1.: Tutorial 5
  • Di, 12. 1.: VL 14 "Core State Machines IV"
    Divergence, Initial states, model semantics; create and destroy actions.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Do, 14. 1.: VL 15 "Hierarchical State Machines I" + exercise sheet 6 online (submit via ILIAS)
    General (hierarchical) UML state machines syntax; initial and final states; towards AND and OR states
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di, 19. 1.: VL 16 "Hierarchical State Machines II"
    Hierarchical states cont'd; other pseudo-states; deferred Events; passive reactive objects; behavioural features
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Do, 21. 1.: VL 17 "Live Sequence Charts I"
    Constructive vs. reflective description of behaviour; Dynamic Reflective Descriptions, Interactions, Sequence Diagrams, LSC syntax
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di, 26. 1.: Tutorial 6
  • Do, 28. 1.: VL 18 "Live Sequence Charts II" + exercise sheet 7 online (Vending Machine and submission via ILIAS)
    Symbolic Büchi Automata; language of a model; Signal and Attribute expressions
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di,  2. 2.: VL 19 "Live Sequence Charts III"
    Cuts, Firedsets; Symbolic Büchi Automaton-based semantics; Pre-Charts; Forbidden Scenarios
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Do, 4. 2.: VL 20 "Inheritance"
    Syntax of inheritance; Desired semantics of inheritance: Liskov Substitution Principle; Domain inclusion and uplink semantics for inheritance, idea and principles
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di, 9. 2.: Tutorial 7
  • Do, 11. 2.: VL 21 "Meta-Modeling"
    how to read the UML standard documents
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)

Links & Literature