You are here: Home Teaching Winter Term 2011/2012 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, 12:00–14:00, SR 106-00-007
Wednesday, 12:00–14:00, SR 106-00-007
Exercise Tuesday, 12:00–14:00, SR 106-00-007
First session Lecture 25.10.11
Exercise 08.11.11
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

  • 2012-03-14: preliminary results of the written exam:
    1.0 1.3
    1.7
    2.0
    2.3
    2.7
    3.0
    3.3
    3.7
    4.0
     [88,78] (78,73]
    (73,68]
    (68,63]
    (63,58]
    (58,53]
    (53,48]
    (48,43]
    (43,38]
    (38,33]
     1 0
    3
    0
    1
    1
    1
    2
    2
    1

    Exam review ("Klausureinsicht") will be on Thu, March 22nd, 14:00 - 16:00
  • 2012-02-15: too bad, I forgot the advertisement block:
    • in Summer Semester 2012: Lecture Real-Time Systems
    • if you want to conduct a Master Team Project or your Master's thesis in areas related to the lecture (formal methods, defining formal semantics, designing an own DSL with syntax and semantics, etc.) feel free to contact me.
  • 2012-02-15: annotated slides of Lecture 20 have been updated to carry the new annotations from today
  • 2012-02-13: typo in exercise sheet 07: Figure 1 gives the state machine of C_0, not of C_3.
  • 2012-02-09: exercise sheet 07 updated (added note on substitution in bonus task)!  If the name is not exercise-20120209-2.pdf, then you have the old one.
  • 2012-02-01: Achtung: LSC slides from today are in the PDF of Lect. 17
  • 2012-01-18: for technical questions regarding Rhapsody, please approach Evis if you get stuck
  • 2012-01-18: the Rhapsody project in the lecture didn't work since we used a hollow diamond where we meant to use a filled diamond (composition) - the project available for download should have fixed this issue and sports two communicating objects.
  • 2012-01-16: exercise sheet 05 updated (submission dates were wrong)!  If the name is not exercise-20120116-1.pdf, then you have the old one.
  • 2011-12-07: exercise sheet 03 updated!  If the name is not exercise-20111207-1.pdf, you have the old one (with task 4 being about state machines).
  • 2011-12-07: mmh, seems that we have lost the best part of the audio recording before the break, and don't have any recording for after the break - which is a pity given the lively discussion
  • 2011-12-06: exam dates fixed - see below
  • 2011-11-21: lecture continues, lecturer no longer ill
  • 2011-11-14: Rhapsody access should be available - please try it out
  • 2011-11-09: for access to the Rhapsody tool (for exercise sheet 2) please mail your pool account name by Friday, 2011-11-11, 13:27 [just realised: 11:11 would have been a much funnier deadline time ;-)]
  • 2011-10-27: first recordings online
  • 2011-10-24: student position taken

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

For the students in the master program, there will be

  • a written exam of length 90 min. - unless the number of candidates drops below a certain threshold
  • date/time: Friday, 9.3.2012, 10:00
  • room: SR 101-01-009/13

 

For the students in the bachelor program, there will be

  • oral exams of length 30 min.
  • dates/times: Friday, 24.2.2012 - please ask for time slots at the examination office

 

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.

 

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

  • Di, 25.10.: VL 01 "Introduction"
    Motivation, Overview, Formalia.
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mi, 26.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, Recording)
  • Mi, 1.11.: VL 03 "OCL"
    Syntax of an (interesting fragment) of OCL and formal semantics over system states.
    (Slides (without annotations), 2-up, 6-up, Recording)
  • Di, 8.11.: Tutorial 1
  • Mi, 9.11.: VL 04 "Object Diagrams" + exercise sheet 2 online
    A notion of consistency for OCL; relating system states and object diagrams.
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Di, 22.11.: VL 05 "Class Diagrams I"
    Mapping class diagrams to (extended) signatures.
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mi, 23.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, 6-up, Recording)
  • Di, 29.11.: Tutorial 2
  • Mi, 30.11.: VL 07 "Class Diagrams II" + exercise sheet 3 online
    Associations (syntax, system state).
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Di, 6.12.: VL 08 "Class Diagrams III"
    Associations continued (associations and OCL).
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mi, 7.12.: VL 09 "Class Diagrams IV"
    Associations completed. When is a class diagram a good class diagram?
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Di, 13.12.: Tutorial 3
  • Mi, 14.12.: VL 10 "Core State Machines I" + exercise sheet 4 online
    Basic UML state machines  (syntax, ether, signal event)
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Di, 20.12.: VL 11 "Core State Machines II"
    Basic UML state machines continued (system configuration, transformers, re-use semantics of create)
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mi, 21.12.: VL 12 "Core State Machines III"
    Basic UML state machines continued (run-to-completion: discard, dispatch, commence). Difference between reflective and constructive descriptions of behaviour.
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Di, 10. 1.: Tutorial 4
  • Mi, 11. 1.: VL 13 "Hierarchical State Machines I" + exercise sheet 5 online
    Basic UML state machines completed (environment interaction, error), initial states, model semantics; General (hierarchical) UML state machines; Mid-Term (naja) Evaluation
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Di, 17. 1.: VL 14 "Hierarchical State Machines II"
    Hierarchical state machines continued: composite state and the remaining pseudo-states
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mi, 18. 1.: VL 15 "Deferred Events, Passive Objects, Methods"
    History and other remaining pseudo-events; Rhapsody Demo
    (Slides (with annotations), 2-up, 6-up, Rhapsody-Project, Recording)
  • Di, 24. 1.: Tutorial 5
  • Mi, 25. 1.: VL 16 "Methods, Live Sequence Charts I" + exercise sheet 6 online
    Dynamic Reflective Descriptions, Interactions, Sequence Diagrams, LSC syntax  
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Di, 31. 1.: VL 17 "Live Sequence Charts II"
    Symbolic Büchi Automaton-based semantics
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mi,  1. 2.: VL 18 "Live Sequence Charts III, Inheritance I"
    LSC semantics completed; Syntax of inheritance
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Di, 7. 2.: Tutorial 6
  • Mi, 8. 2.: VL 19 "Inheritance II, Meta-Modeling" + exercise sheet 7 online
    Desired semantics of inheritance: Liskov Substitution Principle, outlook on domain inclusion and uplink semantics; how to read the UML standard documents
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Di, 14. 2.: VL 20 "Inheritance III"
    Full elaboration of domain inclusion and uplink semantics, idea and principles
    (Slides (with annotations), 2-up, 6-up, Recording)
  • Mi, 15. 2.: Tutorial 7 + "Wrapup + Questions"
    (Slides (with annotations), 2-up, 6-up, Recording)

Links & Literature