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

Overview:

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

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

Appointments:

Lecture:

  • Wednesday: 10 - 12, weekly
  • Thursday: 10 - 12, weekly

Tutorial:

  • Monday: 14 - 16, weekly (starting in the second week)
Literature:

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

Material:

Slides and supplementary material:

Examination via homework assignment:

The homework assignment has to be submitted until Thursday, August the 13th.
Please 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)). A printed version is NOT required this semester. Important: mark for each section in the homework assignment the person(s) that were responsable for it.

Homework assignment (term paper):

  • Groups of 3 people preferred
  • 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; 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
    • Invariant example from the tutorial
  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:

Home|People|Teaching|Publications
Letzte Änderung: 08.07.2020 von Andreas Kästner