Grundlagen der Software-Modellierung - November 2014

 
WEITER LESEN
Grundlagen der Software-
      Modellierung
      4. November 2014
Überblick
 Wozu modellieren wir in der Softwareentwicklung?
      Definition des Modellbegriffs in der Softwareentwicklung
 Welche Aspekte eines Softwaresystems werden
  modelliert?
 Was ist objektorientierte Modellierung?
 Wie kommen wir von Anforderungsbeschreibungen zu
  ersten Modellen?
      Welche Objektklassen können wir identifizieren?
      Welche Eigenschaften und Fähigkeiten haben die Objekte?
      Welche Beziehungen finden wir zwischen Objekten?
Taentzer                 Einführung in die Softwaretechnik        98
Warum modellieren?
• Menschliche kreative Tätigkeit ist ohne Modelle undenkbar: Die reale Welt
  steckt voller komplexer Zusammenhänge - ein Modell erlaubt es, verein-
  fachende, reduzierende Sichten auf einen Teil davon (das "Original") her-
  zustellen und sich daran zu orientieren.

• Eine komplexe geistige Aufgabe ist nur dann lösbar, wenn man sich nach-
  einander auf ausgewählte Aspekte konzentrieren kann. Modelle ermöglich-
  en einen Überblick über sonst unüberschaubare, komplexe Strukturen.

• Anhand von Modellen kann man Informationen und Erfahrungen sammeln,
  Schlüsse ziehen, Vergleiche anstellen, Alternativen bewerten, Entscheid-
  ungen treffen, Strategien entwickeln, etc - die für die Bearbeitung des
  Originals von Nutzen sind und sich an diesem selbst nicht (so leicht)
  vollziehen lassen.

 Taentzer                Einführung in die Softwaretechnik             99
Modell und Original
Modell: Idealisierte, vereinfachte, in gewisser Hinsicht ähnliche Darstellung
        eines Gegenstands, Systems oder sonstigen Weltausschnitts mit
        dem Ziel, daran bestimmte Eigenschaften des Originals besser
        studieren zu können.

Original:

                                                               Modell:

                 modellierte
                Eigenschaften

                                                                           Abbild
                       nicht modellierte
                        Eigenschaften
                                                               zusätzliche Eigenschaften

            (nach Stachowiak)

 Taentzer                       Einführung in die Softwaretechnik                          100
Modellbegriff / Modell als Vor- und Nachbild
 Herkunft des Modellbegriffs:
 modulus (lat): Maß, Regel, Form, Muster, Vorbild
 Ein Modell kann als Vorbild oder Nachbild auftreten – je
  nachdem, ob es vor oder nach dem Original entsteht.
  Beispiele für Nachbild-Modelle:
             Geographie: Landschaft-Reliefs, Landkarten;        nach
             Biologie/ Medizin: Körpermodelle;
             Soziologie: Gruppendynamik-Modelle
  Beispiele für Vorbild-Modelle:
             Architektur: Hausbau;
             Hardware: Chip-Schaltplan;                         vor
             Verwaltung: Bebauungsplan
 In der Software-Entwicklung haben (Anwendungs-) Modelle
 oft Vor- und Nachbild -Charakter.

 Taentzer                    Einführung in die Softwaretechnik   101
Weitere Beispiele von Modellen
Außerhalb der Informatik:
- Land-, See-, Himmelskarten
- Blaupausen, Modelle für Gebäude und andere Bauwerke
- Mathematische Modelle: Graphen, Verbände, algebraische Strukturen
- Physikalische und chemische Modelle: Atomium, Molekularstrukturen,
  Molekularbewegung
- Biologie: DNS-Struktur, Doppel-Helix
- Mode: Ersatzperson
- Spielzeug (Eisenbahnen, Autos, Puppenhäuser, ..)
Innerhalb der Informatik:
- Daten- und Prozessmodelle
- Softwarearchitekturmodelle
- Analyse- und Entwurfsmuster
Taentzer                Einführung in die Softwaretechnik          102
Übersicht über Anforderungen:
         Anwendungsfalldiagramme
Ausschnitt aus
einem
Anwendungs-
falldiagramm:

 Taentzer        Einführung in die Softwaretechnik   103
Elemente von Anwendungsfalldiagrammen
                              Aktor,

                              Anwendunsgfall mit Bezeichner B,
            B

 S                            Systemgrenze (mit Systembezeichner S),

                              Kommunikationsbeziehung (zwischen
                              Aktoren und Anwendungsfällen)
           ,
                   -   Beziehung zwischen zwei
                                  Anwendungsfällen (s. nächste Folie).

                              -   Vererbung zwischen Anwendungs-
                                  fällen oder zwischen Aktoren

Taentzer        Einführung in die Softwaretechnik                    104
Beziehungen zwischen Anwendungsfällen
A                          Eine Ausführung von Anwendungsfall A schließt die
                 Ausführung von Anwendungsfall B ein.
                            Bsp: "Auftrag bearbeiten" schließt "Zahlung veranlassen"
                            ein.
                 B

                           Eine Ausführung von Anwendungsfall A kann (unter
A
                            bestimmten Bedingungen) durch eine Ausführung von
                  Anwendungsfall B erweitert werden.
                            Bsp: Beim "Auftrag bearbeiten" wird - falls eine Anfrage
                            dafür vorlag - noch ein Katalog versandt.
                 B

      A
                           Anwendungsfall A generalisiert Anwendungsfall B, d.h. B
                            steht für eine Menge von Spezialfällen von A.
                            Bsp: "Auftrag bearbeiten" generalisiert "Kaufauftrag
      B                     bearbeiten" und "Verkaufsauftrag bearbeiten"

    Taentzer                  Einführung in die Softwaretechnik                    105
Beispiel: ein einfaches Anwendungsfalldiagramm
                        Leergut-Automat

                             Stück            Bericht
                          zurückgeben        erstellen
             Benutzer

                                     Stamm-
                                   daten ändern

                                                                 Operator

    Stück zurückgeben wird durch den Kunden (= Automatenbenutzer) ausgelöst,
     der eine Menge von Dosen, Flaschen oder Kisten zurückgeben will.
     Beschreibung des Ablaufs:
       Mit jedem zurückgegebenen Stück erhöht das System die Anzahl der
         registrierten Stücke sowie die Tagesgesamtanzahl für die betreffende
         Kategorie.
       Wenn der Kunde alle Stücke abgeliefert hat, drückt er einen
         Quittungsknopf und erhält eine Quittung über alle abgelieferten Stücke
         und deren Gesamtanzahl.

 Taentzer                    Einführung in die Softwaretechnik              106
Beziehungen zwischen Aktoren

                       Vorlesungsverzeichnis

                           Vorlesung
            Benutzer        suchen             Vorlesung
                                               eintragen

                                     Dozent
                                    eintragen

           Verwalter

  Ein Aktor kann von anderen Aktoren seine Anwendungfälle erben.
  Bsp: „Verwalter" erbt die Anwendungsfälle von „Benutzer“. Er ist
  auch ein Benutzer.

Taentzer                    Einführung in die Softwaretechnik        107
Weiteres Beispiel: Anwendungsfalldiagramm

Taentzer      Einführung in die Softwaretechnik                           108
Objektorientierte Modellierung
• Objektorientierte Modellierung (OOM) gibt es als Begriff etwa seit
  dem Aufkommen der OO-Analyse (ca. 1988).
• Hervorstechendes Ziel der OOM: Objektorientierung als
  durchgängiges Paradigma für die gesamte Softwareentwicklung.
Aspekte der OO-Modellierung
OO-Modellierung hat (mindestens) drei wichtige Aspekte:
(a) ontologischer Aspekt: Die Welt wird als zusammengesetzt aus
    unterscheidbaren, identifizierbaren und im einzelnen beschreibbaren
    Objekten aufgefasst.
(b) struktureller Aspekt: Es werden sowohl einfache als auch komplexe
    Objekte betrachtet. Letztere sind hierarchisch definiert, d.h.
    zusammen-gesetzt aus kleineren Bestandteilen, die selbst wieder
    Objekte sein können.
(c) Verhaltensaspekt: Objekte werden sowohl durch statische Merkmale
    (= Attribute) als auch durch dynamische (= Operationen) beschrieben.
Taentzer                Einführung in die Softwaretechnik              109
Zentrale Konzepte der OO-Modellierung
 Klasse (auch “Objekttyp”): beschreibt die strukturellen und verhaltens-
  mäßigen Merkmale einer Menge gleichgearteter Objekte. Operationen
  (Methoden) gehören mit zum Objekt.
 “semantische” Standardbeziehungen (auf Klassen und Objekten) wie
  z.B.
       Instanziierung,
       Generalisierung/Spezialisierung,
       Gruppierung (Aggregation oder Komposition),
       Assoziation

Einige Methoden gestatten zusätzlich die Formulierung von Constraints
(Bedingungen), die etwa den Integritätsbedingungen bei Datenbanken
entsprechen und z.B. die Ausprägungen von Attributen oder die Koexistenz
von Beziehungen einschränken und regeln.
Taentzer                   Einführung in die Softwaretechnik          110
Von den Anforderungen zum OO-Modell
 Nach OOSE werden parallel zur Bearbeitung der Anwendungsfälle
  Objektlisten für den Anwendungsbereich und daraus eine erste
  Version von Klassen- und Objektdiagrammen erstellt.
 Diese bilden zusammen mit den Anwendungsfällen das
  "Analysemodell".
 Aus den Objektlisten werden Klassenkandidaten ausgewählt und
  verschiedenen Klassenarten zugeordnet.
 Pro Klasse werden aus den Anwendungsfallbeschreibungen und
  Objekt-listen Attribute, Operationen und Klassenbeziehungen
  bestimmt.
 Klassen, Attribute, Operationen und Beziehungen werden in Form von
  UML-Klassendiagrammen dargestellt.

Taentzer               Einführung in die Softwaretechnik          111
Objektklassen im Analysemodell
 Identifizierung von Objekten:
      beteiligte Personen bzw. deren Rollen: Verkäufer, Ehefrau
      Objekte, welche Zustände eines Prozesses wiedergeben: Reparatur,
       Abfahrt, Vorstellung
      Objekte, die wichtige Sachgegenstände für den Prozess beschreiben:
       Vertrag, Rechnung, Fahrkarte
      Objekte des Alltags des Fachgebiets: Film, Zug, Hotel
      Objekte, die Infrastruktur beschreiben: Raum, Datum, Abteilung
 Analyse der Substantive in Anforderungsbeschreibungen
 Ähnliche Objekte werden in Klassen zusammengefasst.
 Ähnliche Klassen können zu gemeinsamen Oberklassen generalisiert
  werden.

Taentzer                  Einführung in die Softwaretechnik                 112
Analyse der Anwendungsfälle (1)
   wird (hier) nicht als                                   Synonyme (müssen als
Klasse modelliert (Unikat)                                 solche erkannt werden!)

     Anwendungsfall “Bestellung annehmen”
     • Das Zentrum empfängt Bestellungen der Einzelhändler
       telefonisch von 9 bis 17 Uhr (S7).
                                                                                Klassen-
     • Die eingehenden Bestellungen der Kunden werden vom                      Kandidaten
       Sachbearbeiter in Bestellformularen erfasst (S8).
     • Eine Kundenbestellung kann aus mehreren Bestellposten
       bestehen. Diese beziehen sich auf einzelne Produkte (S9).
     • Jeder Bestellposten wird auf dem Formular in einer Zeile              generalisieren?
       notiert (S10).

  wird im Klassenmodell                         nicht im Kernmodell - ist
  nicht benötigt (Akteur)                          erst für E/A wichtig
  Taentzer                   Einführung in die Softwaretechnik                       113
Analyse der Anwendungsfälle (2)
          Anwendungsfall “Bestellung bearbeiten”

 siehe    • Der Anwendungsfall “Lagerbestand ermitteln” wird benutzt,
            um für jeden Posten der gerade bearbeiteten                     (weitere)
 oben!
            Kundenbestellung den aktuellen Lagerbestand des                 Klassen-
                                                                           Kandidaten
            zugehörigen Produktes zu ermitteln (S11).

Syno-     • Wenn das Zentrum eine Bestellung entgegennimmt, wird
              jeder Bestellposten in eine der beiden folgenden Karteien    Kandidat für
 nym
                                                                            Generali-
              eingeordnet: (a) Lieferkartei, (b) Wartekartei (S13).
                                                                            sierung?
Syno-     • Falls für einen Bestellposten genügend Waren auf Lager
nym ?         sind, dann wird dieser in die Lieferkartei eingetragen und
              der Lagerbestand entsprechend korrigiert (S14).
              Anderenfalls wird der Bestellposten in die Wartekartei
              eingetragen (S15).

   Taentzer                      Einführung in die Softwaretechnik              114
Beziehungen zwischen Objektklassen
 Datenabhängigkeiten zwischen Objekten:
      Ein Objekt stellt Informationen für ein Anderes zur Verfügung.
      Ein Objekt ist Teil eines anderen Objekts: Jedes Attribut, das mehr
       als einen Wert speichern soll (Listen, Mengen, etc.) wird als
       Assoziation modelliert.
 Funktionaler Zusammenhang:
      Ein Objekt benötigt eine bestimmte Funktion eines anderen Objekts.
 spezielle Assoziationen: Ganzes-Teil-Beziehungen
      Aggregation: Teile können auch ohne das Ganze existieren.
      Komposition: Teile können nicht ohne das Ganze existieren.
 Analyse der Beziehungen in Anforderungsbeschreibungen.

Taentzer                 Einführung in die Softwaretechnik             115
Analyse der Anwendungsfälle (3)

   Anwendungsfall “Bestellung annehmen”
   • Das Zentrum empfängt Bestellungen der Einzelhändler                Enthaltenseins
     telefonisch von 9 bis 17 Uhr (S7).                                  -beziehung:
                                                                         Bestellung -
   • Die eingehenden Bestellungen der Kunden werden vom                    Posten
     Sachbearbeiter in Bestellformularen erfasst (S8).
   • Eine Kundenbestellung kann aus mehreren Bestellposten
     bestehen. Diese beziehen sich auf einzelne Produkte (S9).
   • Jeder Bestellposten wird auf dem Formular in einer Zeile
     notiert (S10).

                                            Beziehung Bestellposten -
                                                    Produkt
Taentzer                   Einführung in die Softwaretechnik                   116
Analyse der Anwendungsfälle (4)
       Anwendungsfall “Bestellung bearbeiten”
       • Der Anwendungsfall “Lagerbestand ermitteln” wird benutzt,
         um für jeden Posten der gerade bearbeiteten                      Beziehung
         Kundenbestellung den aktuellen Lagerbestand des                Lagerbestand-
                                                                           Produkt
         zugehörigen Produktes zu ermitteln (S11).
       • Wenn das Zentrum eine Bestellung entgegennimmt, wird
           jeder Bestellposten in eine der beiden folgenden Karteien      Beziehung
                                                                           Kartei -
           eingeordnet: (a) Lieferkartei, (b) Wartekartei (S13).
                                                                          Bestellung
       • Falls für einen Bestellposten genügend Waren auf Lager
           sind, dann wird dieser in die Lieferkartei eingetragen und
           der Lagerbestand entsprechend korrigiert (S14).
           Anderenfalls wird der Bestellposten in die Wartekartei
           eingetragen (S15).

Taentzer                      Einführung in die Softwaretechnik               117
Beispiel für
           ein erstes Klassendiagramm

Taentzer         Einführung in die Softwaretechnik   118
Beziehungen zwischen Objektklassen
• In der UML werden verschiedene Arten von Beziehungen explizit
  unterschieden. Diese sind:

                 Generalisierung / Spezialisierung, auch Vererbung genannt

                 Assoziation (evtl. als Aggregation oder Komposition, s. unten)

                 gerichtete Assoziation,

                 Abhängigkeit

 Es lassen sich verschiedene Arten von Abhängigkeiten unterscheiden,
  die durch Stereotypen kenntlich gemacht werden:

>          >                  >

Taentzer                   Einführung in die Softwaretechnik                  119
Attribute und Operationen in Objektklassen

 Attribute als das Gedächtnis von Objekten:
  Summe der Attributwerte bilden den Zustand eines Objekts

 Operationen definieren die Fähigkeiten der Objekte:
    Objekte erzeugen und zerstören
    Speichern und Laden eines aktuellen Objektzustands
    Zustandsänderungen (Attributänderungen)
    Berechnungen, die auf dem aktuellen Zustand basieren

 Taentzer                Einführung in die Softwaretechnik    120
Klassen und Attribute
 Klassen sind Mengen von Objekten mit
      gleichen Strukturmerkmalen (Attributen)
      gleichen Verhaltensmerkmalen (Operationen)
      gleichen Beziehungen zu anderen Objekten

                 Person

Klasse:      name: String
             vorname: String                                       Maier: Person
             geburtstag: Datum              Objekt:
             adresse: String                                   name = Maier
                                                               vorname = Thomas
             alterBerechnen()                                  geburtstag = 31.12.1975
             adresseDrucken()                                  adresse = Krummbogen 29,
                                                               35037 Marburg

Taentzer                   Einführung in die Softwaretechnik                              121
Klassen und Attribute
                                                                   Person
Syntax:     Attributbezeichner : Attributtyp
                                                               - name: String
                                                               - vorname: String
                                                               - geburtstag: Datum
                                                               - adresse: Adresse
• Der Attributtyp ist in der UML nicht
  weiter spezifiziert. Er kann z.B. ein
  Klassenbezeichner, ein primitiver
                                                       Kennzeichner für
  Datentyp, ein Typ einer
                                                       Sichtbarkeit:
  Implementierungssprache oder ein
                                                       +     öffentlich sichtbar
  zusammengesetzter Typ sein.
                                                       #     geschützt
• Attribute können (vor dem Attribut-
                                                       ~      paketweit
  bezeichner) bzgl. ihrer Sichtbarkeit
                                                       -     nur privat sichtbar
  gekennzeichnet werden.

Taentzer                  Einführung in die Softwaretechnik                          122
Operationen
 Syntax: [Sichtbarkeit] Name ( Parameterliste ) : Typ
 Parameter:
      Syntax: Richtung Name : Typ
      mögliche Richtungen: in, out, inout

 Wie kommt man zu Operationen?                                      Person
      Auf welche Fragen soll das Objekt
       antworten können?
      Welche Aktionen soll es ausführen                + alterBerechnen(): int
                                                        + datenDrucken(in d: Datei): void
       können?

Taentzer                 Einführung in die Softwaretechnik                                  123
Beispiel: Bestellformulare
             Bestellformular für Einzelhändler
Datum:         _____________
Bestell-Nr: R _____________
Einzelhändler: _______________________________
Adresse:      _______________________________
Telefon:      _____________
Lfd-Nr.    Produkt     Menge               Bestellformular für Produzenten
______ _________ ________         Datum:         ___________
______ _________ ________         Bestell-Nr: W ___________
______ _________ ________         Produzent:    ____________________________
                                  Adresse:      ____________________________
                                  Telefon:      ___________
                                         Lfd-Nr.      Produkt      Menge
                                         ______       _________    ________
                                         ______       _________    ________
                                         ______       _________    ________

  Taentzer                     Einführung in die Softwaretechnik              124
Beispiel: Verfeinertes Analysemodell

Taentzer       Einführung in die Softwaretechnik   125
Zusammenfassung
 In der Softwareentwicklung werden Modelle zur Abbildung
  eines Weltausschnitts (Analyse) und zum Entwurf eines
  Softwaresystems (Design) verwendet.
 Einen Überblick über die funktionalen Anforderungen
  geben Anwendungsfalldiagramme.
 Außerdem werden Datenstrukturen, Zugriffsmöglichkeiten,
  Abläufe und Architekturen von Softwaresystemen
  modelliert.
 Zur Erstellung eines ersten Klassenmodells wird die
  Anforderungsbeschreibung hinsichtlich Objektklassen,
  ihren Attributen und ihren Beziehungen untersucht.
Taentzer           Einführung in die Softwaretechnik   126
Sie können auch lesen