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:
- Developed in groups of 3
- About 12 – 16 pages per person
- (Informal) Presentations of ongoing results in the excercises
- 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 two object diagrams created by the ObjectToClass plugin (requires USE 5.0.1 or higher) and pictures of the resulting class diagrams after the transformation. These diagrams do not have to include every class in the final class diagram(s) but should illustrate the incomplete development process towards a complete class diagram. Also explain if and how much this approach helped to create the final class diagram(s).
- 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 ]).
Operations (incl. parameters and potential return values)
- Verbal explanation of all operations as well as pre- and postconditions
- The OCL representation or 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'
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 and pre- resp. postconditions 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
- Evaluation of your queries represented via multiple object diagrams, which illustrate your queries
- Please also give the query results
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)