Entwurf von Informationssystemen (SoSem 2012, VAK 03-703.02, 6 SWS / 8 ECTS)
Überblick:

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.

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.

Hinweise:

Allgemein:

  • Diese Seiten werden während der Veranstaltung ständig ergänzt und aktualisiert.

Mündliche Prüfungen:

  • Mögliche Prüfungsbereiche (txt-file)
  • Anmeldung zur mündlichen Prüfung (nicht Fachgespräch) während der Lehrveranstaltungszeit, also spätestens 21.07.2012, per Mail an gogolla@informatik.uni-bremen.de.
  • Termin für die Prüfungen:
    Woche vor den Lehrveranstaltungen des WinSem 2012/2013, also 08.10.2012-12.10.2012. Genauer Termin kommt per Mail.
Termine:

Vorlesung:

  • Donnerstag 10 - 12 Uhr, MZH 1460
  • Donnerstag 14 - 16 Uhr, SFG 1030

Letzte Veranstaltungswoche, Do. 19.7., 14-16:
Vorstellung Prüfungsstoff und Erinnerung an den Vorlesungsinhalt

Tutorium:

  • Dienstag 12 - 14, MZH 1470 (erstes Tutorium am 24.04.)
Literatur:

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

Material zur Vorlesung:

Folien und ergänzendes Material:

  • ER-Modell vs. UML: Klassendiagramm einer Bibliotheksdatenbank
  • Konzepte des USE-Tools (UML-based Specification Environment) (pdf-file, USE-Download, USE-Documentation, SourceForge)
  • USE-file des CivilStatus-Beispiels
  • Beispiel zu 'Postcondition' versus 'Ausführungsreihenfolge': USE-file und CMD-file
  • Einordnung und Eigenschaften von OCL (pdf-file)
  • Grundsätzliche Idee zum Aufzeigen von Konsistenz und Unabhängigkeit von Invarianten (txt-file)
  • Komlexe OCL-Werte und Terme (Beispiele vom 24.05., txt-file)
  • "The Essence of OCL Collection on One Page" (pdf-file)
  • Semantik von UML-Klassendiagrammen (pdf-file)
  • Modelle und Transformationen - Alternative Modellierungen eines Systems (pdf-file, Nachtrag pdf-file)
  • Metamodellierung ER- und Relationenmodell (pdf-file)
  • Beispiele zur Metamodellierung:
Material zur Hausarbeit:

Übungsblätter:

  • 1. Übungsblatt (pdf)

Struktur einer UML/OCL-Hausarbeit bzw. einer Fallstudie:

  1. informelle Beschreibung des modellierten Weltausschnitts; Vorstellung im Tutorium; Abstimmung mit den Betreuern
  2. Klassenstruktur

    • Grundsätzlich: Sinnhafte, aber dennoch möglichst kurze, und sprechbare Bezeichner für alle Modellelemente wählen; also z.B. für Klassen (z.B. Person, Company), Attribute (z.B. salary), Operationen (z.B. raise, raiseSal, raiseSalary, hire, fire), Parameter (z.B. aSalary, anEmployer), Assoziationen (z.B. WorksFor, Job, Employment, Marriage, Fatherhood, Authorship), Rollen (z.B. employer, employee), Invarianten (z.B. nameUnique, agePositive, ageGreaterEqual0, age_GE_0, maleHasNoHusband), Vorbedingungen (z.B. salaryRaisePositive, aPercentBetween0And10, selfIsFemale, isFemale) und Nachbedingungen (z.B. salaryAssigned, nameModified, jobLinkEstablished), Bezeichner entweder einheitlich Deutsch oder einheitlich Englisch, Bezeichner im Java-Stil, also mit Klein- und Grossbuchstaben, in der Regel ohne Unterstrich (Ausnahme ist beispielsweise _GE_ für 'GreaterEqual' oder ähnliches)
    • je nach Umfang ein oder mehrere Klassendiagramme
    • falls erforderlich Details verbergen, wie z.B. Attribut-, Operations-, Assoziations-, Rollennamen, Multiplizitätsangaben
    • es müssen aber alle Details in der Gesamtheit der Diagramme bzw. im Diagramm dargestellt werden
    • verbale Erläuterung der Klassen, Attribute, Assoziationen, Rollen und Multiplizitätsangaben, gegebenenfalls auch der Vererbungsbeziehungen
  3. Invarianten

    • verbale Erläuterung
    • Invariantentext
    • Diskussion der Konsistenz, Vollständigkeit und Unabhängigkeit der Gesamtheit der Invarianten
    • Constraints, also Invarianten und Vor- und Nachbedingungen, sollten in der Regel möglichst begrenzte Sachverhalte formulieren, eine Invariante soll z.B. *nicht* als 'A and B' formuliert werden, wenn 'A' und 'B' nicht in einem (zwingendem) Zusammhang stehen (z.B. 11<=numPlayers and numPlayers<=13), besser ist hier die Formulierung mit zwei unabhängigen Invarianten
  4. Operationen (inklusive der Parameter und möglicher Rückgabewerte)

    • verbale Erläuterung der Operation und der Vor- und Nachbedingungen
    • Text der Vor- und Nachbedingungen zusammen mit Operationssignatur
    • verbale Erläuterung der Realisierung der Operation
    • Kommandosequenz oder Generator-Prozedur mit Kommentaren
    • universell einsetzbar, gesteuert über Parameter
    • enthalten keine konkreten Objekte wie 'ada:Person' oder 'ibm:Company'
  5. Szenarios (Testfälle)

    • verbale Erläuterung der Auswahl der Szenarios
    • Gesamtheit der Szenarios muss alle interessanten Eigenschaften des beschriebenen Systems verdeutlichen
    • bezogen auf die Gesamtheit aller Szenarios: alle Klassen und Assoziationen müssen instanziiert werden, alle Attribute müssen verwendet werden, alle Operationen müssen aufgerufen werden
    • positive und negative Szenarios
    • positiv: Invarianten und Vor- und Nachbedingungen sind erfüllt
    • negativ: mindestens eine Invariante oder Vor- und Nachbedingung schlägt fehl
    • verbale Erläuterung des einzelnen Szenarios
    • Dokumentation der Szenarios in angemessener Weise als Kommandosequenz, Kommandosequenz-Protokoll (z.B. bei Fehlschlagen von Vor- oder Nachbedingungen), Sequenzdiagramm und gegebenenfalls mit einem oder mehreren Objektdiagrammen, u.U. auch für Zwischenschritte
    • Erläuterung des Erfülltseins oder des Fehlschlagens von Invarianten oder Vor- und Nachbedingungen
    • enthalten konkrete Objekte wie 'ada:Person' oder 'ibm:Company' und konkrete Abläufe wie 'ibm hires ada; sun fires bob'
    • rufen (die universellen) Kommandosequenzen oder Generator-Prozeduren mit den konkreten Objekten oder Werten auf
  6. Anfragen (OCL-Terme, Queries)

    • verbale Erläuterung der Anfrage
    • gegebenenfalls Erklärung von Details oder Besonderheiten der eingesetzen OCL-Sprachmittel
    • Auswertung in der Regel in mehreren Objektdiagrammen
    • Gesamtheit der ausgewählten Objektdiagramme muss die Anfrage verdeutlichen
    • jeweils Anfrageergebnis
  7. äussere Form der eigentlichen Hausarbeit

    • PDF-Dokument, Din A4, 11pt, möglichst LaTeX, Schriftgrösse in Diagrammen auch etwa 11pt, keine unnötigen weissen Flächen in Diagrammen, keine dunklen Hintergründe, keine Screenshots der Kommando-Shell, Kommandosequenzen und Kommandosequenz-Protokolle in Textform (erhalten mittels 'Markieren' und 'Kopieren' aus der Komando-Shell), anschliessend Bereinigung von unübersichtlichen Umbrüchen, Vereinfachung von Pfaden und Erstellung eines übersichtlichen, klaren Layouts
  8. Struktur und Benennung der Dateien

    • <ShortNameForApplication>.use - Modell
    • <ClassName>_<OpName>.cmd - Realisierung der Operationen
      ...
      <ClassName>_<OpName>.cmd
      und/oder
      <ShortNameForApplication>.assl mit procedure <ClassName>_<OpName>(...)
    • TC_01_<NameForTest>.cmd - Szenarios/Testfälle/TestCases
      ...
      TC_99_<NameForTest>.cmd
    • QU_01_<NameForQuery>.cmd - Anfragen/Queries
      ...
      QU_99_<NameForQuery>.cmd
    • <ShortNameForApplication>.tex - Dokumentation/Text der Hausarbeit
      <ShortNameForApplication>.pdf
    • /intern - Verzeichnis für weitere Dateien
Beispiel-Hausarbeiten:

Home|People|Teaching|Publications
Last change: 09.08.2012 by (opti@informatik.uni-bremen.de)