Design of Information Systems (Entwurf von Informationssystemen) (SoSe 2019, VAK 03-MB-703.02, 6 SWS / 8 ECTS)


The course Design of Information Systems continues the course Database Systems and studies design and modeling of Database Systems. The course introduces the Unified Modeling Language UML with its different diagram forms (Use case, Class, Object, Sequence, Collaboration, Statechart, Activity, Component, and Deployment diagram). The formal semantics of selected UML language features and the relationships between such language features is treated. Further central topics include the Object Constraint Language OCL (a textual sublanguage within UML) and the UML metamodel. UML is applied to carry out the conceptual and logical design of database schemata and to describe the fundamentals of data models in a formal way.

Der Kurs Entwurf von Informationssystemen setzt den Kurs Datenbanksysteme fort und beschäftigt sich mit dem Entwurf und der Modellierung von Datenbanksystemen. Es wird die graphische Software-Beschreibungssprache Unified Modeling Language (UML) mit ihren verschiedenen Diagrammarten (Use case, Class, Object, Sequence, Collaboration, Statechart, Activity, Component und Deployment Diagramm) diskutiert. Ausführlich behandelt werden die formale Semantik von ausgewählten UML-Sprachmitteln und die Beziehungen der UML-Sprachmittel untereinander. Weitere Schwerpunkte bilden die Object Constraint Language OCL (eine textuelle Teilsprache innerhalb von UML) und das UML-Metamodell. Angewendet wird UML um den konzeptionellen und logischen Entwurf von Datenbankschemata vorzunehmen und die Grundlagen von Datenmodellen formal zu beschreiben.

Oral Exams:
  • Possible exam topics (txt-file)
  • Early exam appointments are available on Wednesday, 10th July and Thursday, 11th July.
  • Late exam appointments are available on Wednesday, 25th September and Thursday 26th September.
  • Register for an exam in the wiki in Stud.IP.


  • Wednesday: 16 - 18, weekly, Lecture, Room: MZH 8090
  • Thursday: 10 - 12, weekly, Lecture, Room: MZH 8090


  • Monday: 16 - 18, weekly (starting in the second week), Excercise, Room: MZH 6190

James Rumbaugh and Ivar Jacobson and Grady Booch The Unified Modeling Language Reference Manual, 2nd Edition Addison-Wesley, Reading, Massachusetts, USA 2005


Slides and supplementary material:

  • Introduction of the Course Design of Information Systems (pdf-file)
  • Our UML/OCL tool USE: UML-based Specification Environment (external link)
  • Introductory Modeling Example for UML, OCL and USE (pdf-file)
  • Social Network example model including class diagram, system state and queries (zip-file)
  • Examples for complex OCL expressions (txt-file)
  • Animation of dynamic behavior (pdf-file)
  • Variations of the textual USE model (pdf-file)
  • UML associations (Example for all association kinds, Example for StudentWorld, zip file StudentWorld, Example Parents)
  • OCL concepts in overview form (Slides)
  • OCL Collection Operationen iterate und closure (Slides)
  • OCL expressions discussed 2019-June-06 (txt-file)
  • Metamodeling (pdf) Metamodel for ER and Relational Data Model (pdf)
  • Example for representing a UML Class diagram as a Metamodel Object Diagram from 2019-06-19 (png-file)
  • Additional material will be uploaded here during the course
Examination via homework assignment:

The homework assignment has to be submitted until Thursday, August the 8th.
Please put a printed version of the assignment in my (Andreas Kästner) post box (Nr. 33) in the MZH 6th floor and also send me a mail containing a zip archive with all files (document (pdf) as well as sources for USE model (.use and .clt) and scripts (.soil and .olt)). Make sure that the printed version is properly bound (e.g. with a folder). Important: mark for each section in the homework assignment the person(s) that were responsable for it.

Homework assignment:

  • Groups of 3 people preferred
  • (Informal) Presentations of ongoing results in the excercises (show from own laptop or send the results to
  • The homework may be written in English or German

General structure of a UML/OCL homework resp. case study:

  1. Informal description of the modeled domain; Presentation in the tutorial; Coordination with tutor
  2. Class structure / UML class diagram

    • Fundamentals: Always choose meaningful but short and pronounceable names / identifiers for all model elements like classes (e.g. Person / Company), attributes (e.g. name / salary), operations (e.g. hire, raiseSalary, fire), parameters (e.g. aSalary, anEmployer), associations / association classes (e.g. WorksFor, Marriage, Authorship), roles (e.g. employer, employee), invariants (e.g. nameUnique, agePositive, ageGreaterEqual0 or shorter, but coherent: age_GE_0), preconditions (e.g. salaryRaisePositive, aPercentBetween0and10, isFemale) and postconditions (e.g. salaryAssigned, nameModified, worksForLinkEstablished). All names / identifiers have to be consistent, i.e. in same language and textural style (upper and lower case, usage of underscore etc.).
    • At least one class diagram, more if necessary
    • Verbal descriptions of classes, attributes, associations, roles, multiplicities and generalisation
    • Discussion about diverse modeling alternatives (e.g. via ternary relationships, association classes vs. class + association)
    • Quick Tour of the USE Tool in the USE Wiki and the USE manual with class diagram syntax and OCL standard library
  3. Invariants

    • Verbal descriptions of constraints for the model
    • The OCL representation of all constraints (expressions)
    • Discussion about consistence, integrity, completeness and independence of all invariants
    • All constraints, i.e. invariants, pre- and postconditions, should be preferably minimal. That is, you should rather think about decomposing complex conditions, which cover multiple aspects or independent issues, into several individual conditions (e.g. [ 11 <= numberPlayers and numberPlayers <= 13 ] is split into two invariants (A) [ 11 <= numberPlayers ] as well as (B) [ numberPlayers <= 13 ]).
    • OCL Operations Reference and OCL Specification
  4. Operations (incl. parameters and potential return values)

    • Verbal explanation of all operations as well as pre- and postconditions
    • The OCL representation of pre- and postconditions (expressions) as well as the operation signature
    • Verbal description of the SOIL operation source code
    • Command sequence, generator procedure or SOIL definitions incl. comments
    • Please note: operations should be generic, i.e. their control flow is solely influenced by parameters and they never contain names of concrete objects like 'bob:Person' or 'ibm:Company'
    • Basic SOIL operation example
  5. Scenarios (Test Cases)

    • Verbal explanation and rationale of scenario / test case selection
    • Your test cases should cover all interesting properties of your modeled systems
    • Your scenarios have to cover all classes, associations, attributes, operations, etc.
    • Please construct positive and negative scenarios
      • positive: Invariants, pre- resp. postconditions and inherent constraints are fulfilled
      • negative: At least one condition (invariant, pre- or postcondition) fails
    • Verbal description of all single test cases
    • Documentation of your test executions: command sequence, command sequence result protocol (e.g. failing conditions), sequence diagrams, object diagrams with illegal states, etc.
    • Explanation of failure / success of conditions (invariants, pre- and postconditions)
    • Please note: Your test cases contain concrete objects like 'ada:Person' or 'samsung:Company' as well as concrete procedures like 'samsung hires ada; sun fires bob'. This way, they call command sequences, generator procedures or SOIL definitions with concrete objects or attribute values.
  6. Queries (OCL terms / queries)

    • Verbal explanation and OCL expression of query
    • Where necessary, describe details or particularities of the used OCL language features
    • Please also give the query results
    • Compared to operations, queries never have side effects (change of system state). Queries should also be applied to an example system state

Form and layout of your housework

  • PDF document, DIN A4, 11pt (also in figures / diagrams), we recommend LaTeX, no unnecessary white spaces in diagrams, no black background color, no screen shots of the USE command shell, command sequences and protocols in textual form via mark and copy from the command shell, no confusing line breaks or word wraps, simplification of paths, clear and consistent layout
  • Always remember: others want/must read your homework (at least Martin and me)
Example homeworks from previous semesters:

Letzte Änderung: 29.07.2019 von Andreas Kästner