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. The lecture firstly examines the motivations and expectations behind today's and upcoming employments of model-based development procedures. Taking the Unified Modelling Language (UML) as an example, we consider the necessary prerequisites, first of all a precise syntax and semantics of a relevant sublanguage, which is sometimes referred to as executable core. Based on this foundation, recent and current research topics in analysis of UML models are discussed.
Quicklinks: News - Dates and Times - Formalia - Links & Literature - Plan - Prerequisites
News
- 2009-03-24: written exam exhibition ("Klausureinsicht") 11:00 - 12:00
- 2009-03-11: the written exam takes place on Wednesday, March 18th, 10:00 - 12:00, room 101 01 009/013. It will last 90 min., starting at 10:15, so please be there in time.
- 2009-02-18: notes from last tutorial (temporarily) available for download
- 2009-02-16: corrections on last exercises and admission details have been sent out
- 2009-02-11: corrections of 6.2/7.1/7.2/7.* will be sent out by Friday, together with total points, admission information, and a copy of the notes from today's tutorial; if you submitted handwritten solutions you can pick up the original at my office from Monday on
- 2009-01-29: date, time, and room for outstanding lecture fixed (see below)
- 2009-01-27: advertisements for the last lectures
- 2009-01-26: we should start to schedule the date of the written exam. Two doodles are set up for this purpose:
- one to indicate your favourite days and
- one to indicate inconveniences (everything else counts as don't care).
- 2009-01-22: concerning exercise 6.2+7.1: please submit the Rhapsody project as an archive (tar or zip) by mail; if in doubt, package the whole directory created for your project.
- 2009-01-21: ok, it seems now possible to start multiple instances of Rhapsody with animation enabled; in case of problems, please contact us. One point remains: all modelling is done on a single shared host, so it may be the case that the system is not so responsive if all groups work at the same time.
- 2009-01-21: to access the modeling tool, connect to archithor.informatik.uni-freiburg.de via RDP (under Linux, e.g., using rdesktop(1)). The tool is in the Telelogic folder. Recall:
- Animation uses a TCP-port which is bound by the Rhapsody application. So starting a second instance of Rhapsody will fail to bind this port, and animation doesn't work. (Modelling, code generation, and building, does, though).
- So please: make sure you've closed the application after doing your work.
- If in doubt, store your project on a local disk (like 'My Documents', not your network-mounted home, for instance; otherwise compiling may fail with dubious error messages
- 2009-01-19: no make-up-lecture in the afternoon today, we don't have the room...
- 2009-01-12: for the hand-on exercise with the case tool please
- ensure that you have a valid FAW account (cf. here)
- mail the login name of your account to me by Friday, 2009-01-16
- 2009-01-09: additional literature on state machine semantics available
- 2008-12-22: no lecture on 2009-01-07; note: the exercise sheet 05 will though be online
- 2008-12-12: corrected version of exercise 04 online (an attempt to consistently rename the Java snippet went miserably wrong)
- 2008-11-12: we now have links to the instructors' homepages, e.g. for consultation hours and contact details (see Instructors on the bottom of the page)
- 2008-11-10: no longer mirroring slides in old CMS, please contact us in case of problems
- 2008-11-05: changed procedure for exercises: everything turned in before the corresponding tutorial, i.e. before 11:00AM local time on the corresponding Wednesday, counts for exam admission; if turned in before Monday, 11:00, corrections will be available already on that Wednesday, otherwise correction time is at the discretion of your tutor
- 2008-11-04: slides now in addition scaled down and 2-up for printing
- 2008-10-31: the recordings we have are now online in the eLectures portal (intentionally restricted to IP adresses of the university)
- 2008-10-28: slides are mirrored on the old CMS for full accessibility, but should now also be accessible directly via the links on this page...
- 2008-10-27: on popular demand, we're trying to record the lectures starting with today; when postprocessing completes, we'll announce where recordings can be found
- 2008-10-22: from the next event on we'll switch to english for both, the lectures and the tutorials
- 2008-10-22: dates for the exams are not yet decided, there are wishes for February...
Dates and Times
Lectures and Tutorials are scheduled according to the plan at the end of this page.
Formalia
Prerequisites for admission (?) to and form of the final exam have been announced in the lectures 01, slide 7, (cf. here) and 03, slide 2, (cf. here).
Brief summary:
- prerequisite: 50% of the total regular 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, on individual request (e.g. time conflicts for visiting students), oral exams can be negotiated; if the number of participants drops below a certain threshold, only oral exams will be offered
- the module result ("Note") is completely determined by the exam
Links & Literature
- The Standard
- Unified Modeling Language (UML) Specification, Superstructure, version 2.1.2
- Unified Modeling Language (UML) Specification, Infrastructure, version 2.1.2
- Unified Modeling Language (UML) Specification, version 2.1.2, Documents Homepage
The official standardised definition of the language UML.
- OCL
- Object Constraint Language Specification, version 2.0
The official standardised definition of the language OCL. Our semantical model will be based on the one from this document. - A. Kleppe, J. Warmer: The Object Constraint Language, Second Edition, Addison-Wesley, 2003.
Good presentation of OCL syntax and semantics, in particular of the semantical model in which OCL terms are evaluated.
- Object Constraint Language Specification, version 2.0
- State Machines
- D. Harel, E. Gery: Executable Object Modeling with Statecharts, IEEE Computer, 30(7):31-42, 1997.
This is one of the first usable proposals for an executable view on UML diagrams, based on classes and state-machines. - W. Damm, B. Josko, A. Pnueli, A. Votintseva: A discrete-time UML semantics for concurrency and communication in safety-critical applications, SCP 55(1-3): 81-115, March 2005.
Operational UML Semantics for core state machines. - Damm, Josko, Pnueli, Votintseva: A Formal Semantics for a UML Kernel Language, IST/33522 Omega Technical Report, 2003.
Companion to the previous publication: how to compile hierarchical state machines into core state machines (including definitions of well-formedness, e.g., of transitions)
- D. Harel, E. Gery: Executable Object Modeling with Statecharts, IEEE Computer, 30(7):31-42, 1997.
- Sequence Diagrams
- J. Klose: Live Sequence Charts - A Graphical Formalism for the Specification of Communication Behavior, PhD thesis, Carl von Ossietzky Universität Oldenburg, 2003.
The verification-oriented dialect of LSCs. - D. Harel, R. Marelly: Come Let's Play - Scenario-based Programming Using LSCs and the Play-Engine, Springer-Verlag, 2003.
The animation-oriented dialect of LSCs
- J. Klose: Live Sequence Charts - A Graphical Formalism for the Specification of Communication Behavior, PhD thesis, Carl von Ossietzky Universität Oldenburg, 2003.
- Methodology
- B. P. Douglass: Doing Hard Time, Addison-Wesley, 1999.
Spiral-shaped development process complementing the previous paper. - B. P. Douglass: ROPES: Rapid Object-Oriented Process for Embedded Systems, i-Logix Inc., Whitepaper, 1999.
Whitepaper extract from the previous book. - O. Laitenberger, C. Atkinson: Generalizing Perspective-based Inspection to handle Object-Oriented Development Artifacts, In: Proc. ICSE '99, 494-503, IEEE CS-Press.
Reading techniques philosophy. - G. H. Travassos, F. Shull, J. Carver, V. R. Basili: Reading Techniques for OO Design Inspections, Technical Report CS-TR-4353, University of Maryland, 2002.
Concrete reading techniques. - Marc Lettrari, Efficient State Space Exploration of Reactive Object-Oriented Programs, Dissertation, Universität Oldenburg, 2005.
Checking existence of scenarios and configurations, test case generation.
- B. P. Douglass: Doing Hard Time, Addison-Wesley, 1999.
- Textbooks
- B. Oesterreich: Analyse und Design mit UML 2.1, 8. Auflage, Oldenbourg, 2006.
Standard introduction into UML notation. - H. Stoerrle: UML 2 fuer Studenten, Pearson Studium Verlag, 2005.
And another one.
- B. Oesterreich: Analyse und Design mit UML 2.1, 8. Auflage, Oldenbourg, 2006.
- Miscellaneous
- B. Dobing, J. Parsons: How UML is used, Communications of the ACM, 49(5):109-114, 2006.
This survey supports the relevance of our choice of diagrams to be considered more closely in the lecture. - Uwe Kastens, Hans Kleine Büning: Modellierung - Grundlagen und formale Methoden, Zweite Auflage, Carl Hanser Verlag.
General Discussion of Modelling, not focusing on UML, but also considering plain set-theory, graphs, petri nets, and their use for modelling tasks.
- B. Dobing, J. Parsons: How UML is used, Communications of the ACM, 49(5):109-114, 2006.
Plan
- Mi, 22.10.: VL "Motivation"
(Slides, 2-up) - Mo, 27.10.: VL "Semantical Model"
(Slides (with annotations), 2-up, Electure) - Mi, 29.10.: VL "OCL" + Ausgabe Übung 1 (Exercises)
(Slides (with annotations and fix), 2-up, Errata, Electure) - Mo, 3.11.: VL "Object Diagrams"
(Slides (with annotations), 2-up, Electure) + Abgabe Übung 1 - Mi, 5.11.: Übung 1 ("broken lecture" notes, definitions of model)
- Mo, 10.11.: VL "Class Diagrams I"
(Slides (with annotations), 2-up, Electure) - Mi, 12.11.: VL "Type Systems and Visibility" + Ausgabe Übung 2 (Exercises)
(Slides (with annotations), 2-up, Electure) - Mo, 17.11.: VL "Wrap Up CD I, Start CD II"
(Slides (with annotations), 2-up, Electure) + Abgabe Übung 2 - Mi, 19.11.: Übung 2
- Mo, 24.11.: VL "Class Diagrams II cont'd"
(Slides (with annotations), 2-up, Electure) - Mi, 26.11.: VL "Class Diagrams II cont'd" + Ausgabe Übung 3 (Exercises)
(Slides (with annotations), 2-up, Electure) - Mo, 1.12.: VL "Modelling Structure"
(Slides (with annotations), 2-up, Electure) + Abgabe Übung 3 - Mi, 3.12.: Übung 3
- Mo, 8.12.: VL "Modelling Structure cont'd, Constructive Behaviour"
(Slides (with annotations), 2-up, Electure) - Mi, 10.12.: VL "Core State Machines I" + Ausgabe Übung 4 (Exercises)
(Slides (with annotations), 2-up, Electure) - Mo, 15.12.: VL "Core State Machines II"
(Slides (with annotations), 2-up, Electure) + Abgabe Übung 4 - Mi, 17.12.: Übung 4
- Mo, 22.12.: VL "Hierarchical State Machines"
(Slides (with annotations), 2-up, Errata, Electure) - Mi, 7. 1.: No VL + Ausgabe Übung 5 (Exercises)
- Mo, 12. 1.: VL "State Machines Wrapup, Reflective Behaviour: LSCs" (Slides (with annotations), 2-up, Electure) + Abgabe Übung 5
- Mi, 14. 1.: Übung 5
- Mo, 19. 1.: VL "Live Sequence Charts" (Slides (with annotations), 2-up, Electure)
- Mi, 21. 1.: VL "LSCs cont'd, Methodology" (Slides (with annotations), 2-up, Electure) + Ausgabe Übung 6 und 7.1 (Exercises, Skeleton-Project)
- Mo, 26. 1.: VL "Techniques and Tools for UML in the Development Process" (Slides (with annotations), 2-up, Electure) + Abgabe Übung 6.1
- Mi, 28. 1.: Übung 6
- Mo, 2. 2.: VL "Inheritance" (Slides (with annotations), 2-up, Electure)
We integrate a notion of inheritance into the theory, thus we'll have to re-consider every aspect again: signatures, system states, OCL typing and semantics, actions and transformers, state machines, and interactions. (Thus possibly a good repetition of the theory.) - Mi, 4. 2.: VL "Inheritance Cont'd, Meta-Modelling" (Slides (with annotations), 2-up, Electure)+ Abgabe Übung 6.2+7.1 und Ausgabe Übung 7.2 (Exercises)
Meta-Modelling is the idea that if modelling languages can be used to model "things", and if models are "things", then why not model models in a modelling language? This concept is underlying many standards from the OMG, including UML, for certain reasons we'll study.
(Addendum: Full slides for the benefits of meta-modelling (Slides (with annotations), 2-up) - Mo, 9. 2.: VL "Real-Time UML and Components" (Slides (with annotations), 2-up, Electure)+ Abgabe Übung 7.2
Up to now, the computations of our model are un-timed, there is no notion of how long a sequence of system states take to compute except for the discrete number of steps. Yet a relevant non-functional aspect of (software) systems is real-time. We'll discuss what UML provides to specify real-time requirements and how this sorts in into our theory.
(Addendum: Full slides for the real-time part, which we condensed into "two sentences" in the lecture (Slides (with annotations), 2-up) - Di, 10.2., 16:00-18:00, standard room: VL "Wrapup" [make up for 2009-01-07] (Slides, 2-up, Electure/Lecture, Electure/Q&A Session)
Recapitulation of the lecture: what can fairly be assumed of participants of the lecture? What concepts and notions shall they now? What procedures shall they be able to apply? What situations and techniques shall they be able to assess? - Mi, 11. 2.: Übung 7 (notes, 2-up)
Prerequisites
Vorlesung "Softwaretechnik".
- Instructors: Andreas Podelski | Bernd Westphal
- Times & Locations: Mon, 11:00 - 13:00 c.t., HS 00 006 Geb. 082 | Wed, 11:00 - 13:00 c.t., HS 00 006 Geb. 082
- Tutors: Daniel Dietsch | Marco Muñiz
