You are here: Home Teaching Winter Term 2016/17 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, 8:00–10:00, HS 51-03-026
Thursday, 8:00–10:00, HS 51-03-026
Exercise Tuesday, 8:00–10:00, HS 51-03-026 (2-weekly)
First session Lecture 18.10.2016
Exercise 25.10.2016
Language of instruction English
Credits 6
Exams see below
Course Catalog Software Design, Modelling and Analysis in UML
ILIAS Registration

 

Quicklinks: News - Formalia - Plan - Links & Literature

 

News

  • 2017-02-15: The errata file has been updated (once again), thanks for the notification.
  • 2017-02-14: The errata file has been updated (again), thanks for pointing out the issues.
  • 2017-02-02: Exam rules decided, see below.
  • 2017-01-25: Exercise Sheet 7.B (WebShop review) has been updated, submission is due Thursday, 2.2., 18:00.
  • 2017-01-24: Extended deadline for the WebShop exercise (6.B) is Thursday, 26.1., 12:00.
  • 2017-01-20: The errata file has been updated (again), thanks for pointing out the mistake.
  • 2017-01-17: The errata file has been updated.
  • 2017-01-17: schedule update - no lecture on February, 9th, but on Monday, February 6th, 8:00 - 10:00 instead (see schedule below).
  • 2016-12-15: Ups, things got a bit mixed-up in the exercise sheet: Exercise 3 should refer to the ether from Exercise 2 (not 1).
  • 2016-12-15: There is a new errata file, thanks for pointing out the mistake.
  • 2016-12-08: Mind the late change to Slide 14 of today's lecture - the atr-mapping for signals carries over from S_0 to S (thanks for pointing that out)
  • 2016-12-08: Please submit as teams in ILIAS to make submission management a bit easier for us - later this day there will be a post in the ILIAS forum with more information on how to submit as a team.
  • 2016-11-29: Written exam on 17.2.2017, see details below.
  • 2016-11-24: All exchange students which need an exam earlier than the regular date (see below), please contact me soon enough such that we can negotiate a date/time for an oral exam.
  • 2016-11-24: The candidate date for the regular exam (which will be a written exam) is Friday, 17.2.2017.
  • 2016-11-10: Register for access to the Rhapsody modelling tool on the host archithor - cf. ILIAS forum for more information.
  • 2016-10-20: Exercise Sheet 1 updated - two mistakes creeped into the earlier version: regular submission is (of course) before the tutorial, i.e. Tue, 8:00, and in Exercise 2 we want to have an attribute 't' of type Exercise*.
  • 2016-10-04: 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

The kind of exam (oral or written) depends on the number of candidates: many candidates/written, few candidates/oral.

  • Kind, date/time, location:
  • Written Exam
  • Friday, February, 17th, 2017
  • 10:00 c.t., 90 minutes (please be there at 10:00 s.t.)
  • HS 101-0-026
  • permitted exam aids: one sheet of A4 paper (at most 200g/m^3) with handwritten notes on front and back
  • Erasmus students (and only Erasmus students): we can arrange individual dates / times for a (then oral) exam 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.

  • Di, 18.10.: VL 01 "Introduction" + exercise sheet 1 online (submit via ILIAS)
    Motivation, Contents, Formalia.
    (Slides (with annotations; without annotations but proper citations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Do, 20.10.: VL 02 "Semantical Model"
    Mathematical Foundation: Signature, Structure, System State.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di, 25.10.:Tutorial 1
  • Do, 27.10.:  VL 03 "Object Constraint Language" + 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, 1.11.: - (all saint's day)
  • Do, 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)
  • Di, 8.11.: Tutorial 2
  • Do, 10.11.: VL 05 "Object Diagrams" + exercise sheet 3 online (submit via ILIAS)
    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, 15.11.: VL 06 "Class Diagrams I"
    Mapping class diagrams to (extended) signatures.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Do, 17.11.: VL 07 "Class Diagrams II"
    Rhapsody demo; visibility and OCL; towards associations.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di, 22.11.: Tutorial 3
  • Do, 24.11.: VL 08 "Class Diagrams III" + exercise sheet 4 online (submit via ILIAS) - Rhapsody-Model
    Associations (syntax, system state, OCL).
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di,  29.11.:   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,  1.12.: VL 10 "Modelling Behaviour"
    Behavioural models in UML; basic UML state machines (syntax, basic causality model); Rhapsody Demo II (the CandD example: UML state machines).
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di, 6.12.: Tutorial 4
  • Do, 8.12.: VL 11 "Core State Machines I" + exercise sheet 5 online (submit via ILIAS)
    Ether, system configuration.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di, 13.12.: VL 12 "Core State Machines II"
    Basic UML state machines continued (action language, transformer, transition relation)
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Do, 15.12.: VL 13 "Core State Machines III"
    Basic UML state machines completed; divergence, initial states, model semantics; more Rhapsody demo.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream.
     The CandD example for Rhapsody animation: CandD-sim.tgz.)
  • Di,  20.12.: Tutorial 5
  • Do,  22.12.: VL 14 "Hierarchical State Machines I" + exercise sheet 6.A online (submit via ILIAS)
    Create and destroy actions; General (hierarchical) UML state machines states (states / system configurations).
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di, 10. 1.: VL 15 "Hierarchical State Machines II" + exercise sheet 6.B online + WebShop.tgz (submit via ILIAS)
    General (hierarchical) UML state machines (transitions / steps) continued.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Do, 12. 1.: VL 16 "Hierarchical State Machines III"
    Initial and final states; tools and techniques for model-based testing; more Rhapsody demo; other pseudo states.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di, 17. 1.: Tutorial 6
  • Do, 19. 1.: VL 17 "Live Sequence Charts I" + exercise sheet 7.A online (submit via ILIAS)
    Passive reactive objects; behavioural features; code generation.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di, 24. 1.: VL 18 "Live Sequence Charts II"
    Constructive vs. reflective description of behaviour; Interactions; LSC abstract syntax.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Do, 26. 1.: VL 19 "Live Sequence Charts III" + exercise sheet  7.B online (submit via ILIAS)
    Cuts, Firedsets; Symbolic Büchi Automaton-based semantics; Symbolic Büchi Automata.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di,  31. 1.:Tutorial 7
  • Do, 2. 2.:  VL 20 "Live Sequence Charts IV"
    Language of a model; Signal and Attribute expressions.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Mo, 6. 2., 8-10, usual room: VL 21 "Model-based SW Engineering"
    LSC rest, i.e. Pre-Charts, Forbidden Scenarios; Model-based/-driven Softtware Engineering; model-based testing and test generation.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Di, 7. 2.: VL 22 " Inheritance & Meta-Modeling - Wrapup & Questions"
    Syntax of inheritance; Desired semantics of inheritance: Liskov Substitution Principle; Domain inclusion and uplink semantics for inheritance; how to read the UML standard documents.
    (Slides (with annotations), 2-up, 6-up, Recording: ILIAS-Download, ILIAS-Stream)
  • Do, 9.2.: no lecture (moved to 6.2.)

Links & Literature