Software Engineering
Document Actions

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: Please use the same sign as "your name" in both, your real name is (of course) not necessary.
  • 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
    We will then arrange RDP-based access to a host where the tool can be used.
  • 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


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".


Available resources