Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3:

Ähnliche Präsentationen


Präsentation zum Thema: "Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3:"—  Präsentation transkript:

1

2 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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)

3 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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

4 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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

5 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Kurzfassung Kap. 3 Problemstellung Die 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 Vortragseinheit Ausgehend 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.

6 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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

7 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Erfahrungen vom Bau realer Anlagen Integration der Teile im System Systemumfang mehrerer Personenjahre Systementwicklung interdisziplinär und iterativ Systemverständnis dynamisch (Änderung im Entwurf angelegt) Systemgrundlage theoriegestützt (Gesamtsystem mehr als Teile) Validierung des Systems Qualitätssicherung bei Komponenten, Subsystemen und Gesamtsystem Risikoanalysen Systemüberwachung durch regelbasierten Vergleich von Indikatoren

8 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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

9 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Die drei Dimensionen eines Objektes Technische ObjekteObjekte im Softwareengineering benötigen Beschreibung- Produktdaten / Zustand haben Verhalten- Operationen / Funktionalität erfahren Veränderungen- Versionen / Geschichte Funktionale Komplexität Daten- Komplexität Komplexität des zeitabhängigen Verhaltens Simulations- Systeme Echtzeit- Systeme Informations- Systeme

10 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 SE-Methoden zur Reduktion der Komplexität Zerlegung in Teilaufgaben Zeitliche Zerlegung - Software-Lebenszyklus Strukturierung der Beschreibung- Datenabstraktion, strukturierte Analyse Funktionale Zerlegung- Modularisierung Zerlegung von Funktionalitäten - Basisprinzipien zur Kapselung AbstraktionsprinzipBeschreibung GeheimnisprinzipImplementierung SchichtenkonzeptTeilsysteme

11 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Modellpräsentation im Software-Lebenszyklus Anwender grundlegender Wechsel der Modell-Repräsentation z.B. SA z.B. SD klassische Prog.-Sprachen AnalyseDesign Implementierung "..muss unbedingt.." 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.

12 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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.

13 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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

14 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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

15 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Die 3 K im Softwareengineering Kommunikation Elektronic Mail Adressbooks Shared Databases Kollaboration Electronic Discussions Electronic Meetings Shared Application Groupware Infrastructure Workflow Automation Scheduling Calendaring Koordination

16 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Systemarchitektur Das Konzept für Kommunikation und Kooperation

17 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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.

18 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Objekte und ihre Eigenschaften -1 Objekte sind 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 Einheiten kapseln 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

19 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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.

20 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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.

21 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Objekte und ihre Eigenschaften -2 Objekte als Mitglieder einer Klasse Klassen 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 - Komponenten Zusammengesetzte 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 Objekte Hat 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.

22 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Objekte und ihre Eigenschaften -3 Objekte und ihr Verhalten Polymorphie - verschiedene Objekte reagieren unterschiedlich auf die gleiche Botschaft Realisierung durch bedingte Eigenschaften Gleichzeitigkeit- Concurrency aktive Objekte sind laufende Prozesse Objekte und OOA Kapselung 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.

23 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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

24 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 3. Konstrukt - Vererbung Klassen 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

25 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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ützen Methoden wie Datenmodellierung mit Entity Relationsship Diagrammen Funktionsmodellierung mit Modularisierungskonzept Verhaltensmodellierung mit Datenflussdiagrammen

26 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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 Modelle der Eigenschaften und des Verhaltens von Elementen der realen Welt. Objekte sind Modelle der Eigenschaften und des Verhaltens von Elementen der realen Welt.

27 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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

28 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Objekte im SE reduzieren Komplexität Sie werden allgemein beschriebenKlassen + Attribute Sie haben ein definiertes VerhaltenKlassen + Methoden Sie sind vielfach verwendbarKlassen + Instanzen Sie sind eindeutig identifizierbarIdentitä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

29 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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.

30 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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

31 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 3. Konstrukt - Vererbung Klassen 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

32 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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.

33 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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

34 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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

35 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Geheimnisprinzip und Lokalität Information Hiding Wird 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 Entscheidungen Entscheidungen 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.

36 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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.

37 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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

38 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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)

39 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Komponenten n Eine Komponente ist ein unabhängiger, austauschbarer Teil eines Softwaresystems, der eine sinnvolle Aufgabe im Kontext einer Softwarearchitektur erledigt. n 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. n Eine Komponente kann mehrere Klienten haben, kennt aber nicht den Kontext in dem sie benutzt wird.

40 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Anforderungen an Komponenten n Komponenten folgen einem oder mehreren Standards. n Komponenten sind in sich geschlossen. n Komponenten spezifizieren genau, was sie verlangen und liefern können. n Komponenten sind konfigurierbar.

41 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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.

42 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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

43 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Komponentenarchitekturen n Komponentenarchitekturen stellen einen verteilungs-transparenten Kommunikationsmechanismus bereit. n Komponentenarchitekturen regulieren Interaktion zwischen Komponenten und ihrer Umgebung. n Komponentenarchitekturen definieren die Rollen einzelner Komponenten im System.

44 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 COM-Ansatz Component Object Model Bestandteile von COM: –Schnittstelle (Interface) –Implementierung –Apartments –COM Services IUnknown IOleObject IDataObject IPersistStorage IOleDocumen t

45 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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.

46 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Software-Komponenten Eigenschaften 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

47 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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 Komponenten ADT-Modul als Prozess Vererbung von Daten und Methoden Systmbausteine Dienst FKT-Modul als Prozess Multiuserfähig, eigenes Repository Verwaltung mit ORB der OMG Steuerung mit Vorgangs- bearbeitung nach WfMC Komponenten- und diensteorientierte Systeme

48 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Architektur eines objektorientierten Systems Kommunikationsschiene (Middleware) object services common facilitiesapplication objects Simulation FM INTESOL Client LOTUS Notes Datentopf für Dokumente bedarfsgerechte Betriebsführung Datentopf für IFC Objekte DB ServiceWorkflow Service Facility Management LifeSPACES Client CAD Arch. CAD HKLS

49 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 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

50 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Objekte als Repräsentation von Dingen - der ontologische Ansatz -1 Dinge Die 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 Dingen Eigenschaften 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 Dingen Dinge ändern ihren Zustand. Zustandsänderungen werden durch Ereignisse ausgelöst und durch Übergangsgesetze beschrieben.

51 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Objekte als Repräsentation von Dingen - der ontologische Ansatz -2 Wechselwirkungen Dinge können den Zustand anderer Dinge beeinflussen. Wechselwirkungen sind gemeinsame Eigenschaften der wechselwirkenden Dinge. Vereinigung Dinge können zu neuen Dingen vereinigt werden. Bei der Vereinigung entstehen neue Eigenschaften, die das vereinigte Ding charakterisieren. Klassifizierung Dinge mit einer vorgegebenen Menge von Eigenschaften bilden eine Art. Eine Art ist beschrieben durch die Menge ihrer Eigenschaften und die sie verbindenden Beziehungen.

52 Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3: Virt. Anlagen 2 Objekte als Repräsentation von Instanzen - der Ansatz der Klassifizierungstheorie Instanz bedeutet das Wissen von der Existenz eines Dinges in der Welt, wird beschrieben durch Eigenschaften. Eigenschaften beschreiben 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 Instanzen Eine Instanz kann aus Teilinstanzen bestehen, eine zusammengesetzte Instanz hat eigene Eigenschaften.


Herunterladen ppt "Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Simulation technischer Systeme, WS 02/03Kap. 3:"

Ähnliche Präsentationen


Google-Anzeigen