SOFTWARETECHNIK
Kapitel 2 – Modellierungskonzepte
Vorlesung im Wintersemester 2012/13
FG System- und Software-Engineering
Prof. Dr.-Ing. Armin Zimmermann
Inhalt
Einführung
Klassische Modelle
Objektorientierung
Unified Modeling Language
SSE Zimmermann
Softwaretechnik
Modellierung – 2
Einführung
Wie beschreibt man Software und Systeme?
Zweck: Dokumentation, Kommunikation, Spezifikation,
Vertragsabschluss, Ausschreibung, …
Was wird beschrieben?
Struktur
Schnittstellen
Funktionen
Anforderungen
Abläufe
Begriffsbedeutungen
Arbeitsschritte
…
SSE Zimmermann
Softwaretechnik
Modellierung – 3
Einführung
Wie beschreibt man Software und Systeme?
Arten der Beschreibung
Gespräch, Interview
Text, Prosa
Strukturierter Text
Tabelle
Semi-formales Modell
Formales Modell
SSE Zimmermann
Softwaretechnik
Modellierung – 4
Einführung
Modell
… ist eine Abstraktion eines Systems mit der Zielsetzung,
das Nachdenken über ein System zu vereinfachen, indem
irrelevante Details ausgelassen werden [Brügge]
Beschreibung eines Ausschnitts der Realität
Abstrahiert von
Unwichtigen inneren Details
Unwichtigen äußeren Einflüssen
Verfolgt einen Zweck für eine Anwendung
Diese bestimmen, was und wie im Modell beschrieben wird
„Gutes“ Modell daher nur für einen Zweck bestimmbar
Fragestellung am Anfang genau bestimmen
SSE Zimmermann
Softwaretechnik
Modellierung – 5
Einführung
Modelle
SSE Zimmermann
Softwaretechnik
Modellierung – 6
Einführung
Modellieren
Abbilden signifikanter Eigenschaften
So genau wie nötig – Abstraktionsniveau, Modellart
Deskriptiv / Präskriptiv
Sichtweisen auf ein System
Struktur, Verhalten, Zustand, Interaktion, Test, Rolle, …
… heißt Weglassen
… setzt Verstehen voraus
… ist nicht automatisierbar
SSE Zimmermann
Softwaretechnik
Modellierung – 7
Einführung
Einsatz von Modellen in der SW-Entwicklung
Analysemodell
Entwurfsmodell
wesentliche Entwurfsentscheidungen, Softwarestruktur, ..
Implementierung (-smodell)
Vorgehensmodell
Produktmodell
Beschreibung der im Projekt entstehenden Artefakte und
ihrer Zusammenhänge
nach Rumpe
SSE Zimmermann
Softwaretechnik
Modellierung – 8
Einführung
Modelle für …
Funktionen: Funktionsbaum, Datenflussdiagramm
Daten: Entity Relationship Diagram
Algorithmen: Pseudocode, Programmablaufplan,
Struktogramm, Entscheidungstabelle, Regeln
Systemumgebung: Datenflussdiagramm
Dynamisches Verhalten: Zustandsautomat,
Sequenzdiagramm, Petri-Netz (ggf. mit Zeitmodell)
Objektorientierte Modelle (später)
SSE Zimmermann
Softwaretechnik
Modellierung – 9
Einführung
Entwicklung
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Modellierung – 10
Inhalt
Einführung
Klassische Modelle
Objektorientierung
Unified Modeling Language
SSE Zimmermann
Softwaretechnik
Modellierung – 11
Klassische Modelle
Funktionale Sicht
Funktionsbaum: Hierarchische Dekomposition der Fkt.
Beispiel: Abonnement-Verwaltung
Quelle: Jackisch
SSE Zimmermann
Softwaretechnik
Modellierung – 12
Klassische Modelle
Data Dictionary
Verzeichnis von Daten mit Strukturinformation
Backus-Naur-Form, kontextfreie Grammatik
SSE Zimmermann
Softwaretechnik
Modellierung – 13
Klassische Modelle
Datenmodellierung
System als statische Datenstruktur, Datenbanken-Sicht
Zerlegung in Komponenten
Quelle: Uni Trier
SSE Zimmermann
Softwaretechnik
Modellierung – 14
Klassische Modelle
Entity-Relationship-Model
Daten und ihre Beziehungen
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Modellierung – 15
Klassische Modelle
Datenflussdiagramm
data flow diagram DFD [De Marco 1979]
Fluss und Transformation von Daten zwischen
Funktionen, Speichern und Schnittstellen
kein Kontrollfluss
Quelle: Riedling
SSE Zimmermann
Softwaretechnik
Modellierung – 16
Klassische Modelle
Flussdiagramm
flow chart
Hier:
Geschäftsprozess
mit Vorgängen
und Dokumenten
Quelle: orghandbuch.de, BMI
SSE Zimmermann
Softwaretechnik
Modellierung – 17
Klassische Modelle
Blockschaltbild
Eingebettetes System, HW/SW
SSE Zimmermann
Softwaretechnik
Modellierung – 18
Klassische Modelle
Entscheidungstabellen
Regelbasierte Beschreibung
Bedingungen
Aktionen
Reduktionsregeln
Quelle: orghandbuch.de, BMI
SSE Zimmermann
Softwaretechnik
Modellierung – 19
Klassische Modelle
Pseudocode
Von Programmiersprache abstrahierende,
detaillierte Beschreibung eines Algorithmus
SSE Zimmermann
Softwaretechnik
Modellierung – 20
Klassische Modelle
Programmablaufplan (PAP)
Grafische Beschreibung
des Kontrollflusses
Unstrukturiert, GOTO
SSE Zimmermann
Softwaretechnik
Modellierung – 21
Klassische Modelle
Struktogramm
NassiShneidermanDiagram
Keine Sprünge
daten, teiler+1, rechts)
Quelle: Wikipedia
SSE Zimmermann
Softwaretechnik
Modellierung – 22
Klassische Modelle
Modellierung dynamischen Verhaltens
Diskrete Zustände und atomare Zustandsübergänge
SSE Zimmermann
Softwaretechnik
Modellierung – 23
Klassische Modelle
Zustandsautomat
Verhalten mit Zuständen und -übergängen
Automatenmodelle und -theorie
Ggf. Zerlegung oder kommunizierende Automaten
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Modellierung – 24
Klassische Modelle
Ereignisgesteuerte
Prozesskette (EPK)
Geschäftsprozesse
BPM
Quelle: Krallmann
SSE Zimmermann
Softwaretechnik
Modellierung – 25
Klassische Modelle
Petri-Netz
Grafische Beschreibung von
Nebenläufigkeit und Synchronisation
Prozess1
erzeugen
FreiePufferplätze
ablegen
N
PufferplätzeMitDaten
verarbeiten
Prozess2
SSE Zimmermann
abholen
Softwaretechnik
Modellierung – 26
Inhalt
Einführung
Klassische Modelle
Objektorientierung
Unified Modeling Language
SSE Zimmermann
Softwaretechnik
Modellierung – 27
Objektorientierung
Grundprinzipien der Programmierung
Imperative Programmierung
von-Neumann-Modell
Prozedural, strukturiert (C, Pascal)
Modular (Modula2, Ada83)
Objektorientiert (C++, Ada95, Java)
Deklarative Programmierung
Funktional (Lisp)
Logisch (Prolog)
Datenfluss (Linda)
SSE Zimmermann
Softwaretechnik
Modellierung – 28
Objektorientierung
Entwicklungsrichtung
Bessere Strukturierung für komplexe Zusammenhänge
Abstraktere Sichtweise
Grundprinzip: Zerlegung
Horizontal: Teilsysteme, Module
Vertikal: Schichten
Voraussetzung: Schnittstellen, Kapselung
Nutze fertige Teillösungen (Wiederverwendung, patterns)
Behandle konzeptionell gleiche Dinge gleich
Teile und herrsche!
SSE Zimmermann
Softwaretechnik
Modellierung – 29
Objektorientierung
Objekte
Analyse: als Modell realer Gegenstände
Entwurf: als Beschreibungsmittel für die Software-Lösung
Identität: IK-U5
Zustand: 5km/h
Verhalten:
Anhalten
SSE Zimmermann
Eigenschaft:
Geschwindigkeit
Softwaretechnik
Modellierung – 30
Objektorientierung
Objekte
Ein System besteht aus vielen Objekten
Ein Objekt hat ein definiertes Verhalten
Ein Objekt hat einen inneren Zustand
Menge genau definierter Operationen
Operation wird beim Empfang einer Nachricht ausgeführt
Zustand des Objekts ist Privatsache
Resultat einer Operation hängt vom aktuellen Zustand ab
Ein Objekt hat eine eindeutige Identität
Identität ist unabhängig von anderen Eigenschaften
Es können mehrere verschiedene Objekte mit identischem
Verhalten und identischem inneren Zustand im gleichen
System existieren
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Modellierung – 31
Objektorientierung
Klasse
Gleichartige Objekte mit ggf. verschiedenen Zuständen
Auto
Klasse
Objekte
SSE Zimmermann
Softwaretechnik
Modellierung – 32
Objektorientierung
Klasse
Verhaltensschema – Operationen
Innere Struktur – Attribute
Auto
Auto
Farbe
Geschwindigkeit
Anhalten()
Losfahren()
Klasse
Objekt
<< instanceOf >>
IK-U5
IK-U5: Auto
Farbe = orange
Geschwindigkeit = 5
SSE Zimmermann
Softwaretechnik
Modellierung – 33
Objektorientierung
Klasse und Objekt
Auto
Farbe
Geschwindigkeit
Anhalten()
Losfahren()
class Auto {
private String Farbe;
private float Geschwindigkeit;
public void Anhalten() {
Geschwindigkeit = 0;
}
}
<< instanceOf >>
IK-U5: Auto
Farbe = orange
Geschwindigkeit = 5
SSE Zimmermann
Auto ik_u5;
ik_u5 = new Auto();
ik_u5.Anhalten();
Softwaretechnik
Modellierung – 34
Objektorientierung
Beziehungen zwischen Klassen
Vererbung (Generalisierung, Spezialisierung)
Polymorphie
Fahrzeug
Auto
Rennwagen
SSE Zimmermann
Fahrrad
PKW
Softwaretechnik
Modellierung – 35
Objektorientierung
Beziehungen zwischen Klassen
Assoziationen, Multiplizität, Rollen
Navigation
(Entwurf)
Bilder: Brügge/Dutoit
SSE Zimmermann
Softwaretechnik
Modellierung – 36
Objektorientierung
Beziehungen zwischen Klassen
Aggregation
Quelle: Brügge/Dutoit
Komposition: Teile existieren nicht unabhängig
SSE Zimmermann
Softwaretechnik
Modellierung – 37
Objektorientierung
Vorteile der Objektorientierung
Zuständigkeitsbereiche
Daten, Operationen und Zustand: lokal und gekapselt
Klare Schnittstellen
Definiertes Objektverhalten, Nachrichten
Hierarchie
Vererbung und Polymorphie (Spezialisierung),
Klassenschachtelung
Baukastenprinzip
Benutzung vorgefertigter Klassenbibliotheken, Anpassung
durch Spezialisierung (mittels Vererbung)
nach Rumpe
SSE Zimmermann
Softwaretechnik
Modellierung – 38
Inhalt
Einführung
Klassische Modelle
Objektorientierung
Unified Modeling Language
SSE Zimmermann
Softwaretechnik
Modellierung – 39
Unified Modeling Language
UML
Grafisches Beschreibungsmittel für Aspekte des
Softwareentwurfs diskreter Systeme
Spezifikation, Entwurf, Visualisierung, Konstruktion,
Dokumentation von Software
Für OO-Softwareentwicklung und -prozess geeignet
UML ist weder Methode noch Prozess
Sammlung industriell erfolgreicher Modelle
Einheitliche Notation: Booch,
OMT, use cases, state charts
Nicht alle Elemente müssen
verwendet werden
SSE Zimmermann
Softwaretechnik
Modellierung – 40
Unified Modeling Language
Warum UML?
Objektorientierung ist zur Zeit das optimale
Modellierungs-Paradigma, Industrie-Standard
Kombination von Struktur-, Verhaltens-, Interaktions-,
und Verteilungsmodellen
Für Analyse, Entwurf, Implementierung und Test
einsetzbar
Gute Werkzeugunterstützung für Editieren, Versionierung,
Codegenerierung
Erweiterbarkeit der UML mit Stereotypen und Tags
Semi-formale Modelle, z.T. verschiedene Interpretationen
Offenheit: Erweiterung mit stereotypes, tags, constraints
Nach Rumpe, Nierstrasz
SSE Zimmermann
Softwaretechnik
Modellierung – 41
Unified Modeling Language
Nachteile UML
UML ist in vielen Facetten nicht präzise festgelegt
Werkzeuge für Transformation, Analyse etc. fehlen noch
UML ist keine „kleine Sprache“: Lernaufwand notwendig
Komponenten sind nicht adäquat darstellbar
Sprachen wie die UML werden erlernt durch Übung!
Aber: LV SWT ist kein kompletter UML-Kurs
Quelle: Rumpe
SSE Zimmermann
Softwaretechnik
Modellierung – 42
Unified Modeling Language
Quelle: Störrle
SSE Zimmermann
Softwaretechnik
Modellierung – 43
Unified Modeling Language
Entwicklung der Unified Modeling Language
Grady Booch, Ivar Jacobson, James Rumbaugh (seit 86)
90er Jahre: Objektmodellierungstechnik OMT
Zahlreiche Bücher verfügbar
SE und Geschäftsprozessmodellierung ab [Jacobson92]
Ab 95 bei Rational: OMT+Booch+ClassDiagrams UML
UML Consortium: DEC, I-Logix, Intellicorp, IBM, ICON
Computing, MCI Systemhouse, Microsoft, …
97: Standardisierung bei der OMG
99: UML 1.3, 03: UML 1.5
UML 2.0 Superstructure Spec: Okt. 04
SSE Zimmermann
Softwaretechnik
Modellierung – 44
Unified Modeling Language
Neuerungen in UML 2
Einbettung (embodiment)
Neue Notationen
Architekturdiagramme, Interaktionsdiagramme,
Aktivitätsdiagramme, Zeitverlaufsdiagramme
Metamodell
Verhalten und Funktionalität ist immer Teil eines
Objektmodells
Konsolidiert
Neu erstellt: Interaktionen, Aktivitäten
Formale Semantik erleichtert
Neue Konzepte
CompositePart, Port und Connector, Collaboration, …
SSE Zimmermann
Softwaretechnik
Modellierung – 45
Unified Modeling Language
Überblick über Modelle
Details ggf. in späteren Kapiteln
Structure Diagrams
Class, Object, Component, Composite Structure,
Package und Deployment Diagrams
Behavior Diagrams
Use Case, Activity und State Machine Diagrams
Interaction Diagrams
Sequence, Communication, Timing und
Interaction Overview Diagrams
SSE Zimmermann
Softwaretechnik
Modellierung – 46
Unified Modeling Language
SSE Zimmermann
Softwaretechnik
Modellierung – 47
Unified Modeling Language
Use Case Diagram
Beschreiben Systemfunktion aus Benutzersicht
Scenario: Beispiel für Interaktion
Was, nicht Wie
A patient calls the clinic to make an appointment for a yearly
checkup. The receptionist finds the nearest empty time slot in
the appointment book and schedules the appointment.
Elemente
Actor: löst Ereignisse aus (role)
Communication association: Kommunikationsverbindung
Quelle der folgenden Bilder: Practical UML
SSE Zimmermann
Softwaretechnik
Modellierung – 48
Unified Modeling Language
Use Case Diagram
Use Case ist eine Sammlung von Scenarios
Verwendung
Erste Anforderungsspezifikation (requirements)
Kommunikation mit Kunden
Erstellen von Testfällen (test case generation)
SSE Zimmermann
Softwaretechnik
Modellierung – 49
Unified Modeling Language
Class Diagram
Statischer Überblick über Systemaufbau aus Objekten
Klassen und ihre Beziehungen
Beispiel: Kundenbestellung aus Versandkatalog
SSE Zimmermann
Softwaretechnik
Modellierung – 51
Unified Modeling Language
Class Diagram
Klassen: Name, Attribute, Methoden
Relationen
Association: Objekte beider Klassen stehen in Zusammenhang
und „wissen voneinander“.
Pfeil schränkt Zugriffsrichtung ein
Aggregation: Klasse gehört zu einer Sammlung
Generalization: Vererbungsbeziehung (subclass / superclass)
Relationen können am Ende benannt werden (role name)
Multiplicity am Ende der Relation: Anzahl möglicher Objekte
(Instanzen), die mit einem Objekt am anderen Ende
verbunden sein können
SSE Zimmermann
Softwaretechnik
Modellierung – 52
Unified Modeling Language
Class Diagram Details
Composition
Spezialfall einer aggregation, in der die abhängigen
Objekte nicht alleine existieren können
SSE Zimmermann
Softwaretechnik
Modellierung – 53
Unified Modeling Language
Packages
Gruppierung komplexer Klassendiagramme
SSE Zimmermann
Softwaretechnik
Modellierung – 57
Unified Modeling Language
Object Diagram
Zeigen Objekte anstelle von Klassen (class diagram)
Für kompliziertere Abhängigkeiten benutzt (z.B.
Rekursion)
SSE Zimmermann
Softwaretechnik
Modellierung – 58
Unified Modeling Language
Sequence Diagram
Beschreibung dynamischer Zusammenarbeit
zwischen Objekten über Zeitachse
Objekte
Nachrichten, Aufrufe als Pfeile
Existierend: gestrichelt (lifeline)
Aktiv: Rechteck (activation bar)
Synchron:
Asynchron:
Unspezifiziert:
Bedingungen in eckigen Klammern
SSE Zimmermann
Softwaretechnik
Modellierung – 59
Unified Modeling Language
Sequence Diagram
Beispiel: Hotelreservierung
SSE Zimmermann
Softwaretechnik
Modellierung – 60
Unified Modeling Language
Collaboration Diagram
Beschreiben wie sequence diagrams Zusammenarbeit
von Objekten, aber aus Sicht der Rollen (nicht Zeiten)
SSE Zimmermann
Softwaretechnik
Modellierung – 62
Unified Modeling Language
Statechart Diagram
Verhalten von Objekten: Zustände und Zustandsübergänge
(state, state transition)
Beispiel: Online-Banking
SSE Zimmermann
Softwaretechnik
Modellierung – 63
Unified Modeling Language
Statechart Diagram
Zustände können andere enthalten: Nebenläufigkeit
Zustandsraum Kreuzprodukt der Unterzustandsmengen
SSE Zimmermann
Softwaretechnik
Modellierung – 64
Unified Modeling Language
Activity Diagram
Entspricht Flussdiagramm
Fokus: Statechart – Objekt und Zeit,
Activity Diagram – Prozess und Reihenfolge
Aktivitäten: benannte Kästchen,
danach jeweils eine Transition (Pfeil)
Transitionen können abhängig von Bedingungen
unterschiedliche Ziele haben
Transitionen können
aufspalten (fork) und
vereinigen (join)
SSE Zimmermann
Softwaretechnik
Modellierung – 65
Unified Modeling Language
Activity
Diagram
Beispiel
Geldautomat
SSE Zimmermann
Softwaretechnik
Modellierung – 66
Unified Modeling Language
Vergleich von Ablaufmodellen
SSE Zimmermann
Softwaretechnik
Modellierung – 67