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
|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.
- Groups of 3 people preferred
- (Informal) Presentations of ongoing results in the excercises (show from own laptop or send the results to email@example.com)
- The homework may be written in English or German
General structure of a UML/OCL homework resp. case study:
Informal description of the modeled domain; Presentation in the tutorial; Coordination with tutor
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
- 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
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
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.
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)