universität stuttgart wissensverarbeitung und numerik i nstitut für k ernenergetik und e...
TRANSCRIPT
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Das sollten Sie in der Vorlesung lernen Was ist ein Modell und wie können wir es einsetzen (Kap.0) Was ist eine virtuelle Anlage und was nutzt sie (Kap.2) Wie aufwendig ist der Bau virtueller Anlagen im Vergleich zu
realen Anlagen (Kap.3) HEUTE Techniken zum Bau virtueller Anlagen
Der Rational Unified Process als Vorgehensmodell für die Softwareentwicklung (Kap.10)
Die Unified Modelling Language als Basis der Modellierung (Kap.4) Komponententechnologie als Basis der Implementierung (Kap.5) Produktmodelle als Basis der Systembeschreibung (Kap.6) Gewöhnliche Differentialgleichungen als Basis der Beschreibung des
Verhaltens (Kap.8) Das V-Modell als Basis des Qualitätsmanagements (Kap.11)
Techniken zum Bau virtuellerSysteme Architekturen verteilter Systeme (Kap.9) Agenten zur Erbringung von Dienstleistungen (Kap.9)
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Simulation komplexer technischer Anlagen
Teil I: Reale und virtuelle Anlagen
Kapitel 3: Elemente zur Modellierung, Implementierung und zum Betrieb virtueller Anlagen
Inhalt• Erfahrungen vom Bau realer Anlagen
• Objekte als Elemente der Modellierung
• Nutzen der Objektorientierung
• Zusammenfassung von Objekten zu Komponenten und Diensten
• Komponentenbasierte Systeme
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Das sollten Sie im 3. Kapitel lernen
Grenzen des klassischen Softwareengineering
Elemente zum Bau virtueller Anlagen
Objekte zur Modellierung
Komponenten als Bausteine Implementierung
Dienste als Elemente einer Arbeitsumgebung
Grundzüge komponentenbasierter Systeme
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Kurzfassung Kap. 3
ProblemstellungDie Verwendung objektorientierter Techniken erlaubt es, die Produktivität aller an der Planung, Erstellung und Wartung von Softwareprodukten Beteiligten entschieden zu steigern. Drei Gründe lassen sich dafür angeben:- Objekte erleichtern die Modellierung komplexer Prozesse. - Objekttechniken helfen, den Bruch zwischen Analyse, Entwurf und Implementierung komplexer
Systeme zu vermeiden. - Systeme, in denen Objekte über Botschaften wechselwirken, enthalten Bausteine, mit denen, ähnlich
wie mit Komponenten technischer Systeme, wiederverwendbare Softwarekomponenten zur Verfügung stehen, die vielfach verwendet, flexibel umgruppiert und in neuen Anwendungen
zusammengestellt werden können. Damit lassen sich auch Anwendungen angehen, die sokomplex sind, dass sie mit tradionellen Mitteln kaum oder nur mit ungewöhnlichen Anstrengungen realisiert werden können.
Ziel der VortragseinheitAusgehend von den Erfahrungen der technischen Realisation von komplexen Anlagen und Systemen formulieren wir Eigenschaften von Objekten der technischen Welt. Sie werden charakterisiert durch die Dimensionen
Daten, Funktionen und Zeit.Die Komplexität in den Daten kann durch Einführung abstrakter Datentypen reduziert werden. Funktionen können in Form von Modulen Details von einem Nutzer verbergen. Die Kapselung von Daten und Methoden führt zu Objekten. Schließt man die Dimension Zeit ein, so erhält man Prozesse und Dienste.Diese Begriffe werden eingeführt und es wird gezeigt, zu welchen Konsequenzen dies für die Modellierung von Softwaresystemen führen kann.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Erfahrungen vom Bau realer Anlagen
Reduktion der Komplexität durch
Strukturierung der Anlage
Diversifikation der Funktionalitäten
Formalisierung der Beschreibung
Wiederverwendung bewährter Objekte
Systematisierung der Weiterentwicklung
Techniken
Identifizierung von Einheiten
Beschreibung über Schnittstellen, Funktionen und Parametern
Verwendung in verschiedenen Zusammenhängen
Verfolgung der Änderungen über gesamte Lebensdauer
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Erfahrungen vom Bau realer Anlagen
Integration der Teile im SystemSystemumfang mehrerer Personenjahre
Systementwicklung interdisziplinär und iterativ
Systemverständnis dynamisch (Änderung im Entwurf angelegt)
Systemgrundlage theoriegestützt (Gesamtsystem mehr als Teile)
Validierung des SystemsQualitätssicherung bei Komponenten, Subsystemen und Gesamtsystem
Risikoanalysen
Systemüberwachung durch regelbasierten Vergleich von Indikatoren
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Technische Objekte reduzieren Komplexität
Sie werden allgemein beschrieben
Sie haben ein definiertes Verhalten
Sie sind vielfach verwendbar
Sie sind eindeutig identifizierbar
Sie werden über Schnittstellen angesprochen
Botschaften - Daten oder Methoden
Sie verbergen innere Details durch
Kapselung von Daten und Methoden
Sie können selber aus Objekten aufgebaut sein und erben deren Daten und Methoden
Sie verändern sich mit der Zeit
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Die drei Dimensionen eines Objektes
Technische Objekte Objekte im Softwareengineeringbenötigen Beschreibung - Produktdaten / Zustand
haben Verhalten - Operationen / Funktionalität
erfahren Veränderungen - Versionen / Geschichte
FunktionaleKomplexität
Daten-Komplexität
Komplexität deszeitabhängigenVerhaltens
Simulations-Systeme
Echtzeit-Systeme
Informations-Systeme
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
SE-Methoden zur Reduktion der Komplexität
Zerlegung in TeilaufgabenZeitliche Zerlegung - Software-Lebenszyklus
Strukturierung der Beschreibung - Datenabstraktion, strukturierte Analyse
Funktionale Zerlegung - Modularisierung
Zerlegung von Funktionalitäten - Basisprinzipien zur Kapselung
Abstraktionsprinzip Beschreibung
Geheimnisprinzip Implementierung
Schichtenkonzept Teilsysteme
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Modellpräsentation im Software-Lebenszyklus
Anwender
grundlegender Wechsel der Modell-Repräsentation
z.B. SA z.B. SDklassische
Prog.-Sprachen
Analyse Design Implementierung
"..mussunbedingt.."
PROC....IF.... WHILE.. X:=...u.s.w.
Die Brüche zeigen den Wechsel von einer Methode zu einer anderen. Meist bedeutet dies, dass bei Änderungen eines Entities der unteren Ebene nicht auf die Definitionen des entsprechenden Entities der darüberliegenden Ebene durchgegriffen werden kann.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Grenzen der klassischen Entwurfsmethoden
Zeitliche Zerlegung zu starr,statt Wasserfall - Kreislauf mit der Möglichkeit der Iteration und der
Verbesserung in kleinen Schritten
Informationsquellen oft nur iterativ erfassbar.(z.B. Anwendungskenntnis, Quellenstudium, grundlegende Ereignisse)
Datenflüsse zu inflexibel,statt abstrakten Datentypen - Beschreibung von Teilsystemen - Objekten.
Funktionale Zerlegung zu prozedural (nur im Kleinen anwendbar),statt Zeitscheiben - Vernetzung.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Was wir brauchen
Konstrukte für adäquate Modellierung
- Objekte
Durchgängige Methoden von Modellierung bis Programmierung
- der Rational Unified Process
Wiederverwendbarkeit bewährter Lösungen auf allen Ebenen
- Klassen, Frameworks und Komponenten
Verteilte Entwicklung durch Identifikation von Komponenten mit Kapselung von Daten und Methoden und
Schnittstellen, die auch Semantik berücksichtigen
Verteiltes Betreiben durch Dienste und Standardisierung der Kommunikation
Gemeinsame Interpretation durch Produktmodelle
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Die 3S im Softwareengineering
Simplifizierung
durch bessere Konstrukte zur Modellierung
Spezialisierung
durch vertikale (Dienste) und horizontale (Komponenten)Kapselung von Daten und Methoden
Standardisierung
von Schnittstellen und Kommunikation
Virtuelle Anlagen
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Die 3 K im Softwareengineering
Kommunikation
Elektronic MailAdressbooks
Shared Databases
Kollaboration
Electronic DiscussionsElectronic Meetings
Shared Application
Groupware
Infrastructure
Workflow Automation
Scheduling Calendaring
Koordination
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Systemarchitektur
Das Konzept für Kommunikation und Kooperation
Assistenz
Application SharingMultimediastandard
T.120Anbieter
setztDienst
auf
wartetDienst
ServerProzess
Nutzer
steuertVerarbeitung
KlientenProzess
Datenzugriffz.B. CORBA
Nutzung
beurteiltErgebnisse
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Was ist ein Objekt ?[Meyers Enzyklopädisches Lexikon, 1976]:
Objekt: “Allgemeiner Gegenstand [des Interesses] insbesondere der einer Beobachtung, Untersuchung, Messung (...) unterworfene [materielle] Gegenstand
[Jackson: "System Development", 1983]
Reale Welt wird durch Entitäten beschrieben, sowie durch die Aktivität, die diese ausführen bzw. an ihnen ausgeführt werden ...enger Bezug zu Prozessmodell und geordneter Menge von Aktivitäten
[Vetter: "Strategie der Anwendungssoftware-Entwicklung", 1988]:
Realität manifestiert sich in Entitäten (individuelle, identifizierbare Exemplare von Dingen, Personen oder Begriffen ...)
Entitäten repräsentieren die für eine Unternehmung relevanten Informationsobjekte
[Booch, G.: Object-oriented Analysis and Design, 1994]:
Ein Objekt hat einen Zustand, ein Verhalten und eine Identität: die Struktur und das Verhalten von ähnlichen Objekten ist festgelegt in ihrer gemeinsamen Klasse; die Begriffe Instanz und Objekt sind austauschbar.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Objekte und ihre Eigenschaften -1
Objektesind identifizierbare Dinge,
erinnern ihren eigenen Zustand,reagieren auf Anforderungen, ihren Zustand zu ändern,
sind charakterisiert durch Eigenschaften vom Typ Daten (Instanz, Parameter, Zustandsvariablen) und Operation (Methoden), wechselwirken mit anderen Objekten durch Anfordern von Diensten oder Informationen.
Objekte als identifizierbare Einheitenkapseln Daten und Operationen auf diese Daten, verbergen Implementierungsdetails (Beschreibung und Verhalten bilden Einheit)
können Prozesse auf Rechner überdauern (Persistenz)
Ein erster Ansatz für Objekte sind Datenobjekte als Instanzen abstrakter Datentypmodule
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Wie beschreiben wir ein Objekt
Zustand- Menge von (normalerweise statischen) Eigenschaften, die das Verhalten des Objekts bestimmen (Attribute)
- Die aktuellen (normalerweise dynamischen) Werte der Attribute.
Verhalten- Definiert, wie ein Objekt auf Anfragen anderer Objekte reagiert
- Wird durch eine Menge von Operationen für dieses Objekt definiert
Identität- Die Identität eines Objekts ist die Eigenschaft, die es von allen anderen
Objekten eindeutig unterscheidet
- Name darf nicht mit Identität verwechselt werden.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
1. Konstrukt: Klassen zur Beschreibung
Eine Klasse beschreibt eine Menge von Objekten mit gleicher Struktur und gleichem Verhalten
Klassen existieren nicht als konkretes, greifbares Element
Eine Klasse ist eine Abstraktion, die "Essenz eines Objektes"
Eine Klasse verbirgt (kapselt) Datenstrukturen, Merkmale zur Implementierung und Kontrollfluss der Methoden
Eine Klasse liefert Operationen, die verwendet werden, und Attribute, die Zustand beschreiben.
Objekte sind Instanzierungen (konkrete Realisierungen) einer Klasse.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Objekte und ihre Eigenschaften -2
Objekte als Mitglieder einer KlasseKlassen beschreiben Struktur und Verhalten einer Menge von Objekten
Unterklassen spezialisieren Oberklassen, indem sie von einer oder mehreren Oberklassen Instanzvariablen und Methoden erben
Objekte als Teil eines neuen Ganzen - KomponentenZusammengesetzte Objekte reduzieren Komplexität
Zusammensetzung erfolgt über Assoziation, Kommunikation oder Relation
Assoziationen verbinden Objekte zu größeren Einheiten
Kommunikation vermittelt Anforderungen
Relationen beschreiben gemeinsame Eigenschaften.
Objekte als Klassen - geklonte ObjekteHat man eine Vielzahl gleicher Objekte, die sich nur durch ihre Identifikation unterscheiden, so kann man sie durch Klassen erzeugen (Serienproduktion). Das Objekt wirkt dann bezüglich der geklonten Objekte wie die Klasse bezüglich den Objekten.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Objekte und ihre Eigenschaften -3
Objekte und ihr VerhaltenPolymorphie - verschiedene Objekte reagieren unterschiedlich
auf die gleiche Botschaft
Realisierung durch bedingte Eigenschaften
Gleichzeitigkeit - Concurrencyaktive Objekte sind laufende Prozesse
Objekte und OOAKapselung von statischem und dynamischem Verhalten (Daten und Methoden).
Nicht alles sind Objekte. Keine Objekte sind z.B. Eigenschaften.
Spezialisierung durch Vererbung ist nur dann sinnvoll, wenn die Unterklasse neue Eigenschaften hat.
Zusammengesetzte Objekte sind nur dann sinnvoll, wenn sie neue Eigenschaften haben.
Botschaften verbinden Objekte.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
2. Konstrukt - Beziehungen
Beziehungen zwischen Objekten- Die Funktion eines Systems wird durch die Zusammenarbeit vieler Objekte erbracht
- Objekte tauschen Botschaften
- Objekte können aggregiert werden
- Objekte können Methoden anderer Objekte benutzen.
Beziehungen zwischen Klassen- Die Beschreibung eines Systems erfolgt durch Angabe der Klassen und ihrer Beziehungen
- Wichtige Konstrukte
Vererbung - Klassen können erweitert werden
Benutzung - Klassen können aus anderen Klassen aufgebaut werden
Parametrisierung - Klassen können modifiziert werden
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
3. Konstrukt - VererbungKlassen können Merkmale von einer (single-inheritance) oder mehreren (multiple-inheritance) Klassen übernehmen, modifizieren oder ergänzen. Die erbende Klasse heißt abgeleitete Klasse. Die vererbende Klasse ist die Oberklasse.
Beispiel:
- Klasse Bild referenziert
- Klasse Fenster referenziert
- Klasse Größe, Lage, Inhalt
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Wie kann man Objekte finden ?
Als erste Antwort ergibt sich aus dieser Einführung:Objekte sind während der Modellierungsphase zu identifizieren
- objektorientierte Analyse Objekte müssen durch Klassen beschrieben werden
- objektorientierter Entwurf.
Bei der Abstraktion sind Konstrukte hilfreich wie Generalisierung - Spezialisierung
Ganzes - Teil
Benutzung
Polymorphie
Die ideale Aufteilung kann nur iterativ gefunden werden. Dabei nützenMethoden wie
Datenmodellierung mit Entity Relationsship Diagrammen
Funktionsmodellierung mit Modularisierungskonzept
Verhaltensmodellierung mit Datenflussdiagrammen
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Modellierung mit Objekten
Daher sind Objekte - nicht wahr, aber brauchbar
- nicht verifizierbar, aber validierbar
- nicht richtig, aber nützlich.
Das gilt bei der Suche nach Objekten und ihrer Abstraktionen in Klassen zu bedenken.
Objekte sind
Modelleder Eigenschaften und des Verhaltens
von
Elementen der realen Welt.
Objekte sind
Modelleder Eigenschaften und des Verhaltens
von
Elementen der realen Welt.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Technische Objekte reduzieren Komplexität
Sie werden allgemein beschrieben
Sie haben ein definiertes Verhalten
Sie sind vielfach verwendbar
Sie sind eindeutig identifizierbar
Sie werden über Schnittstellen angesprochen
Botschaften - Daten oder Methoden
Sie verbergen innere Details durch
Kapselung von Daten und Methoden
Sie können selber aus Objekten aufgebaut sein und erben deren
Daten und Methoden
Sie verändern sich mit der Zeit
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Objekte im SE reduzieren Komplexität
Sie werden allgemein beschrieben Klassen + Attribute
Sie haben ein definiertes Verhalten Klassen + Methoden
Sie sind vielfach verwendbar Klassen + Instanzen
Sie sind eindeutig identifizierbar Identität
Sie werden über Schnittstellen angesprochen
Botschaften - Daten oder Methoden
Sie verbergen innere Details hinter Schnittstelle durch
Kapselung von Daten und Methoden
Sie können selber aus Objekten aufgebaut sein und erben deren
Daten und Methoden Beziehungen
Sie verändern sich mit der Zeit
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
1. Konstrukt: Klassen zur Beschreibung
Eine Klasse beschreibt eine Menge von Objekten mit gleicher Struktur und gleichem Verhalten
Klassen existieren nicht als konkretes, greifbares Element
Eine Klasse ist eine Abstraktion, die "Essenz eines Objektes"
Eine Klasse verbirgt (kapselt) Datenstrukturen, Merkmale zur Implementierung und Kontrollfluss der Methoden
Eine Klasse liefert Operationen, die verwendet werden, und Attribute, die Zustand beschreiben.
Objekte sind Instanzierungen (konkrete Realisierungen) einer Klasse.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
2. Konstrukt - Beziehungen
Beziehungen zwischen Objekten- Die Funktion eines Systems wird durch die Zusammenarbeit vieler Objekte erbracht
- Objekte tauschen Botschaften
- Objekte können aggregiert werden
- Objekte können Methoden anderer Objekte benutzen.
Beziehungen zwischen Klassen- Die Beschreibung eines Systems erfolgt durch Angabe der Klassen und ihrer
Beziehungen
- Wichtige Konstrukte
Vererbung - Klassen können erweitert werden
Benutzung - Klassen können aus anderen Klassen aufgebaut werden
Parametrisierung - Klassen können modifiziert werden
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
3. Konstrukt - VererbungKlassen können Merkmale von einer (single-inheritance) oder mehreren (multiple-inheritance) Klassen übernehmen, modifizieren oder ergänzen. Die erbende Klasse heißt abgeleitete Klasse. Die vererbende Klasse ist die Oberklasse.
Beispiel:
- Klasse Bild referenziert
- Klasse Fenster referenziert
- Klasse Größe, Lage, Inhalt und darin Objekte
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Nutzen der Objektorientierung
Adäquate Modellierung
Durchgängigkeit der Methoden
Geheimnisprinzip und Lokalität
Wiederbenutzbarkeit von „Komponenten“ und
Klassen können verteilt entwickelt, implementiert und gewartet werden.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Adäquate Modellierung durch neue Konstrukte wie
Abstraktion - Prozedurale Abstraktion
Datenabstraktion
Klassifikation - Ordnung von Wissen
Zuordnung Objekte zu Klassen
Diversifikation - Ganzes + Teile
Aggregation - Zusammenfassung von Teilen
Verteilung - Client-Server Strukturen
Tausch von Botschaften über Schnittstellen
Kapselung
Dadurch wird es möglich komplexere Systeme einfacher zu beschreiben (modellieren).
Notwendig Modellierungssprache mit entsprechenden Konstrukten
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Durchgängigkeit der Methodik
Die Modellierung muss unterstützt werden durch adäquate Umsetzung bei Entwurf und Implementierung.
Werkzeuge zur Unterstützung der Entwicklung objektorientierter Software müssen daher das Konstrukt Klasse in allen Phasen des Lebenszyklus unterstützen und eine möglichst automatisierbare Verwaltung der Objekte gewährleisten.
Durchgängigkeit umfasst den horizontalen Methodenverbund (verschiedene Sichten innerhalb
einer Phase im Lebenszyklus), den vertikalen Methodenverbund (Verwaltbarkeit aufeinander
aufbauender Methoden zweier Phasen).
Das erfordert Methoden für objektorientierten Entwurf und objektorientierte Programmierung, die Speicherung von Objekten und an die Objektorientierung angepasste Vorgehensmodelle zur Softwareerstellung und zum Qualitäts-management
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Geheimnisprinzip und Lokalität
Information HidingWird beispielsweise ein ADT-Matrix erstellt, könnte er eine Datenstruktur enthalten, die die Repräsentation von Zeilen in einer Datenbank entspricht. Der Zugriff auf diese Struktur wird von außen zum Beispiel durch Funktionen wie "Gib Element (x,y)" oder "Berechne Determinante" vorgenommen. Wie die Matrix in der Datenbank bzw. im ADT dargestellt ist oder wie die Determinante bestimmt wird, ist das Geheimnis des ADT. Dieses erfolgreiche Prinzip kann allgemeiner eingesetzt werden
Lokalität von EntscheidungenEntscheidungen werden dort getroffen, wo sie anfallen. Damit bleiben die Auswirkungen von Änderungen dieser Entscheidungen auf einen Modul beschränkt. Sprachen, die den Begriff der Ausnahme kennen, mögen durch die unterschiedliche Handhabung von Algorithmen für Normalfälle und zur Behandlung von Fehlern zur Vereinfachung der Programmstruktur beitragen, sie begünstigen aber die Trennung von Entdeckung und Behandlung von Fehlern und behindern so die Modulgeschütztheit.
Verwendet man statt ADT's Klassen, so lassen sich diese Prinzipien konsequenter umsetzen.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Wiederverwendbarkeit und Änderbarkeit
Der Wunsch nach Wiederverwendbarkeit entsteht aus der Erfahrung, dass viele Teile von Software-Systemen nach ähnlichem Muster aufgebaut sind.
Wiederverwendbarkeit ist deshalb wünschenswert, weil sie alle anderen Aspekte der Software-Qualität beeinflusst.
Existierende und getestete Software genügt eher den Anforderungen nach Korrektheit und Robustheit und sie muss nicht mehr erstellt werden.
Wiederverwendbarkeit ist anzustreben in den Bereichen
Analyse, Entwurf und Implementierung
Durch eine starke Kapselung nach innen (Information Hiding) und die lose Kopplung nach außen (Lokalität der Entwurfsentscheidungen) entstehen Code-Blöcke, die isoliert vom Rest eines Gesamtsystems betrachtet werden können. Das erhöht die Änderbarkeit und unterstützt die Wiederverwendbarkeit des Bausteins.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Technische Objekte sind mehr als Objekte des SE
Sie haben ein definiertes Verhalten, das sich nicht nur auf eine
Datenstruktur bezieht - Komponenten und Dienste
Sie sind vielfach verwendbar, auch in unterschiedlichen Kontexten -
Verwendung der Semantik der Schnittstellen
Sie verbergen innere Details durch
Kapselung von Daten undIoder Methoden
Sie sind in der Regel aus Objekten aufgebaut und erben deren Daten und
Methoden
Sie verändern sich mit der Zeit
Diese Eigenschaften können im Rahmen der OO umgesetzt werden,
sind aber nicht selber angelegt -
Übergang zu Komponenten
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Von Klassen zu Komponenten und Diensten
Aus Klassen werden Komponenten und Dienste, wenn sie außer Funktionalität auch Introspektion (Metainformation) anbieten
Komponenten und Dienste geben dadurch der Entwicklungsumgebung Auskunft über ihre Schnittstelle (Parameter und Modelle)
Komponenten und Dienste verbergen hinter ihrer Schnittstelle Details ihrer Implementierung. Diese muss daher nicht in einer oo-Sprache erfolgen
Komponenten und Dienste ermöglichen eine neue Dimension der Anwendung und der Anwendungsentwicklung. Diese erfolgt unter Verwendung von Klassen, Pattern, Frameworks und Komponenten, die der Entwicklungskultur angepasst werden.
Komponenten: Verwendung von Software (Entwicklungsaspekt) Dienste: Verwendung von Ergebnissen (Verteilungsaspekt)
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Komponenten
Eine Komponente ist ein unabhängiger, austauschbarer Teil eines Softwaresystems, der eine sinnvolle Aufgabe im Kontext einer Softwarearchitektur erledigt.
Eine Komponente ist auch eine standardisierte, wiederverwendbare und im Vorfeld implementierte Einheit, welche benutzt wird, um Konstrukte einer Programmiersprache zu erweitern und Softwareanwendungen zu bauen.
Eine Komponente kann mehrere Klienten haben, kennt aber nicht den Kontext in dem sie benutzt wird.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Anforderungen an Komponenten
Komponenten folgen einem oder mehreren Standards.
Komponenten sind in sich geschlossen.
Komponenten spezifizieren genau, was sie verlangen und liefern können.
Komponenten sind konfigurierbar.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Die Stärken von Komponenten und Objekten
Objekte programmiersprachliche Einheiten aus
Datenstrukturen und Funktionen
Programmiermechanismen: Kapselung, Vererbung und Polymorphie
als Einheiten der Wiederverwendung zu klein
Klassenbibliotheken, Frameworks und Entwurfsmuster unterstützen Wiederverwendung, sind aber nicht leicht zu handhaben
Analyse, Entwurf und Implementierung
Komponenten
einsetzbare Software-Einheiten mit eigenständiger Funktionalität
über Schnittstellen schnell zu kompletten Applikationen kombinierbar
programmiersprachliche Realisierung im Prinzip egal
wichtigste Architekturen: COM, Java Beans und EJB, CCM
Komponentenmarkt insgesamt noch klein
Anwendung
Objektorientierte Programmiersprachen wie Java, C++ und Smalltalk sind gut geeignet, um Komponenten und Applikationen zu realisieren.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Eigenentwicklung vs. Komponentensoftware
Nachteile:– teuer– mit sehr großem
Aufwand wartbar– meistens „zu spät“
Vorteile:– standardisiert– Wartung wird vom
Komponenten-Anbieter übernommen
Vorteile:– Entwicklung unterliegt
eigener Kontrolle– eine optimale Anpassung
möglich
Nachteile:– verlangt eine Anpassung
an den Standard– keine
Wettbewerbsvorteile– Entwicklung unterliegt
nicht eigener Kontrolle
Eigenentwicklung Komponentensoftware
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Komponentenarchitekturen
Komponentenarchitekturen stellen einen verteilungs-transparenten Kommunikationsmechanismus bereit.
Komponentenarchitekturen regulieren Interaktion zwischen Komponenten und ihrer Umgebung.
Komponentenarchitekturen definieren die Rollen einzelner Komponenten im System.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
COM-AnsatzComponent Object Model
Bestandteile von COM:– Schnittstelle (Interface)– Implementierung– Apartments– COM Services
IUnknown
IOleObject
IDataObject
IPersistStorage
IOleDocument
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Ziele der Komponentenorientierung
Beschleunigung der Anwendungsentwicklung Wiederverwendung vorgefertigter Bausteine Qualitätssteigerung Kostensenkung Einsatz unterschiedlicher Programmiersprachen Einbindung von Fremdkomponenten Skalierbarkeit der Anwendung Verteilte Anwendungen Plattform-Unabhängigkeit
Als größer dimensionierte Software-Bausteine erleichtern Komponenten die Wiederverwendung und die Anwendungsentwicklung.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Software-KomponentenEigenschaften in Bezug auf Bildung von Systemen
Besitzt Interkommunikationsfähigkeit
- Einsatz über die Grenzen von Netzen, Sprachen, Protokollen, Adressräumen, Betriebssystemen und Werkzeugen hinweg
Besitzt klare Schnittstelle
- Von Implementierung getrennt
- Wohldefinierte Kommunikation mit Außenwelt
Ist keine vollständige Applikation
Ist frei kombinierbar mit anderen Komponenten
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Systeme aus Objekten, Komponenten und Diensten
Können Dienste die sie betreffenden Metainformationen selber verarbeiten, so spricht man von Agenten.
Homogene Systeme
ADT-Modul FKT-Modul
Sammlung von Methoden, die auf eine Datenstruktur wirken
Methode zur Verarbeitung von Datenstrukturen
Implementierung als Folge von Methoden von ADTs
Implementierung als Samm-lung von Fkt-Modulen
Verteilte Systeme
Objekte und KomponentenADT-Modul als ProzessVererbung von Daten und MethodenSystmbausteine
DienstFKT-Modul als ProzessMultiuserfähig, eigenes Repository
Verwaltung mit ORB der OMG
Steuerung mit Vorgangs-bearbeitung nach WfMC
Komponenten- und diensteorientierte Systeme
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Architektur eines objektorientierten Systems
Kommunikationsschiene (Middleware)
object services
common facilities application objects
Simulation FMINTESOLClient
LOTUS Notes
Datentopf fürDokumente
bedarfsgerechteBetriebsführung
Datentopf fürIFC Objekte
DB ServiceWorkflow Service
FacilityManagement
LifeSPACESClient
CAD Arch. CAD HKLS
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Diese Fragen sollten Sie jetzt beantworten können
Was ist ein Objekt und wie beschreiben wir es
Was ist eine Klasse und zu was nutzt sie
Welche Beziehungen zwischen Klassen verwendet man zur
Modellierung
Wie erweitert man Klassen durch Vererbung
Warum fasst man Klassen zu Komponenten zusammen
Was sind Komponenten und Dienste
Wie sieht die Grundstruktur komponentenbasierter Systeme aus
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Objekte als Repräsentation von Dingen - der ontologische Ansatz -1
DingeDie Welt besteht aus Dingen mit Eigenschaften und Zuständen. Es gibt keine zwei Dinge mit identischen Eigenschaften.
Eigenschaften können ein oder mehrere Dinge betreffen, haben begrenzten Wertebereich, können einander bedingen.
Zustand von DingenEigenschaften werden über Attribute beschrieben.
Die Summe aller Attribute bildet das Modell der Dinge.
Die Werte der Attribute zu einem Zeitpunkt definieren den Zustand der Dinge.
Dynamik von DingenDinge ändern ihren Zustand.
Zustandsänderungen werden durch Ereignisse ausgelöst und durch Übergangsgesetze beschrieben.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Objekte als Repräsentation von Dingen - der ontologische Ansatz -2
WechselwirkungenDinge können den Zustand anderer Dinge beeinflussen.Wechselwirkungen sind gemeinsame Eigenschaften der wechselwirkenden Dinge.
VereinigungDinge können zu neuen Dingen vereinigt werden.
Bei der Vereinigung entstehen neue Eigenschaften, die das vereinigte Ding charakterisieren.
KlassifizierungDinge mit einer vorgegebenen Menge von Eigenschaften bilden eine Art.
Eine Art ist beschrieben durch die Menge ihrer Eigenschaften und die sie verbindenden
Beziehungen.
Universität Stuttgart W
isse
nsv
erar
be
itu
ng
un
d N
um
erik
Institut für Kernenergetikund Energiesysteme
Simulation technischer Systeme, WS 02/03 Kap. 3: Virt. Anlagen 2
Objekte als Repräsentation von Instanzen
- der Ansatz der Klassifizierungstheorie
Instanzbedeutet das Wissen von der Existenz eines Dinges in der Welt,
wird beschrieben durch Eigenschaften.
Eigenschaftenbeschreiben Instanzen durch
- Angaben zum Ding (Struktur)
- Angaben zu seinen Beziehungen zu anderen Dingen (Relation)
- Angaben zu möglichen Veränderungen der Werte von Eigenschaften (Verhalten)
Konzepte (Modelle)fassen die Eigenschaften, durch die Instanzen beschrieben werden, zusammen,
können erweitert werden, um andere Sichten zu erlauben.
Zusammengesetzte InstanzenEine Instanz kann aus Teilinstanzen bestehen,
eine zusammengesetzte Instanz hat eigene Eigenschaften.