50
5/1 Universität Stuttgart Wissensverarbeitung und Numerik Institut für Kernenergeti und Energiesystem Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf Simulation komplexer technischer Anlagen Teil II: Elemente zum Bau virtueller Anlagenkomponenten Kapitel 5: Wiederverwendung bei Entwurf und Programmierung Inhalt Von der Analyse zum Entwurf Objektorientierter Entwurf mit Hilfe von Entwurfsmustern Frameworks Antipattern Elemente der objektorientierten Programmierung - Kurse beachten

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

Embed Size (px)

Citation preview

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

5/1

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Simulation komplexer technischer Anlagen

Teil II: Elemente zum Bau virtueller Anlagenkomponenten

Kapitel 5:Wiederverwendung bei Entwurf und Programmierung

Inhalt

Von der Analyse zum Entwurf

Objektorientierter Entwurf mit Hilfe von Entwurfsmustern

Frameworks

Antipattern

Elemente der objektorientierten Programmierung - Kurse beachten

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

5/2

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Das sollten Sie heute lernen

Schichtenkonzept der Wiederverwendbarkeit Entwurfs als Modellierungsschritt

Entwurfsentscheidungen

Entwurfsziele

Entwurfsmuster Antipattern Framework OO Programmiersprachen

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

5/3

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Ergebnisse der Analyse

Analyse bedeutet die Abstraktion eines Problembereichs zu einer isolierten, definierten, allgemeingültigen Beschreibung und zu Anforderungen.

Ergebnis der Analyse ist eine Beschreibung eines realen Systems durch: Objekte Beziehungen der Objekte untereinander Eigenschaften und Verhalten der Objekte

und durch Angabe der gewünschten Funktionalität des geplanten SW-Systems etwa über Use Cases oder Anwendungsfälle.

Um die Funktionalitäten umzusetzen sind eine Vielzahl weiterer Schritte nötig

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

5/4

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Objekt & Klasse

Systeme

Anwendungen

Frameworks: Implementierung

MikroArchitektur: Entwurfsmuster

Kapselung von Daten und Methoden

Horizontale & Vertikale Frameworks Metadaten

Kapselung von Altlasten GUIs

Klassenhierarchien

Zusammenarbeit einzelner Klassen

Vom Objekt zum System - Aggregationsstufen

heute

Entwürfe sollten auf allen Stufen stattfinden - Top Down Ansatz

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

5/5

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Von der Analyse zum Entwurf: Mikro-Architektur

Die in der Analyse gefundenen Objekte sind eine Grundlage des

Entwurfs. Weitere, wichtige Grundlagen sind persönliche Erfahrungen und Entwurfsmuster

Der Schwerpunkt der Micro-Architektur liegt in „kleinen Entwürfen“, welche ein begrenztes Problem innerhalb einer Anwendung lösen.Solche kleinen Entwürfe können auch das Ergebnis eines Zwischenschrittes der Top Down Analyse sein

Die Anzahl betroffener Objekte ist relativ gering. Entwurfsmuster kombinieren mehrere Objekte so, dass die

Anwendung an künftige Änderungen leicht angepasst werden kann.

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

5/6

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Ziele des Entwurfs (1)

Entwurf ist Abstraktion des Lösungsbereichs im Hinblick auf Implementierung

Entwicklung einer Software-Architektur

Spezifikation eines Software-Systems, das bestimmte Anforderungen erfüllen muß:

Funktion/Korrektheit Erweiterbarkeit/Wartbarkeit/Lesbarkeit Wiederverwendbarkeit Portabilität, Effizienz

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

5/7

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Ziele des Entwurfs (2)

Die zentralen Fragen lauten nun: Wie können diese Ziele erreicht werden ? Gibt es ein optimales Verfahren, Software zu entwerfen ? Wie sieht der Lösungsraum aus: Daten(-typen), Funktionen, Dateien,

Programme ...

Merke: Softwaresystem ist ebenfalls (wie Realität) komplex und muß

geeignet strukturiert werden Architektur

Ergebnis: Spezifikation als formale Beschreibung der zu implementierenden

Software

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

5/8

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Die Schwierigkeit des Entwurfs

Das Entwickeln einer Software-Architektur ist ein gestalterischer Prozeß.

Ein Standardverfahren, das zum richtigen Entwurf führt, gibt es nicht.

Auch einen richtigen oder falschen Entwurf gibt es nicht. Es gibt nur, an den Erfordernissen gemessen, gute oder schlechte Entwürfe,

Entwürfe sind Modelle virtueller Systeme.

Entwerfen bedeutet immer ein Abwägen mehrerer, konkurrierender Alternativen und ein möglichst gutes Erfüllen der sich widersprechenden Entwurfsziele. Dabei sind pragmatisches Vorgehen und Nutzung von Erfahrungen gefragt. Iterative Verbesserung muß möglich sein.

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

5/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 01/02 Kap. 5: Entwurf

Schwierige Entwurfstätigkeiten

Finden passender SW-Objekte die während der Analyse-Phase gefundenen Objekte reichen oft

nicht

Festlegen der Objektgranularitäten komplexe Objekte dürfen nicht beliebig groß werden

Festlegen der Objekt/Methodenschnittstellen mit den richtigen Schnittstellen steht und fällt ein Entwurf

Festlegen der Objektimplementierung der richtige Einsatz von Vererbung kann den Aufwand vermindern

Wiederverwendungsmechanismen aktiv und passiv nutzen / vorsehen Vererbung ist bei weitem nicht die einzigste Möglichkeit

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

5/10

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Beispiele für Entwurfsentscheidungen

Implementierung der Part-Of-Relation? als Objekt, Zeiger, Liste, Array, ...

Virtuelle Methoden oder parametrisierten Typen? Flexibilität zur Laufzeit oder nur zur Compilezeit weniger oder mehr Effizienz bei der Ausführung des Programms

Vererbung oder Delegation? vermeiden von Mehrfachvererbung auf Kosten eines komplexeren

Entwurfs

Behandlung von mehrdimensionalen Klassifizierungshierarchien? durch Mehrfachvererbung oder mit parametrisierten Typen?

Erfahrung und Problemkenntnisse nötig

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

5/11

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Prinzipien der objektorientierten Softwareentwicklung

Die Erfahrungen, die Mitarbeiter der Abteilung Wissensverarbeitung und Numerik am IKE mit der objektorientierten Softwarentwicklung machten, wurden in zwei papieren zusammengestellt. Sie werden laufend ergänzt und stehen allen Studierenden in aktueller Form im Netz unter

http://www-is.ike.uni-stuttgart.de/intra/q-management/

richtlinien/entwicklung/oo richtlinien-v10-pdf

zur Verfügung.

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

5/12

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Entwurfsmethoden

Analog zu den vorgestellten Analyse-Methoden gibt es entsprechende Entwurfsmethoden, z.B. nach Booch, Coad/Yourdon, Rumbaugh und dazu Unterstützung durch UML und Case Tools

Viel wichtiger jedoch sind prinzipielle Erkenntnisse: wie läßt sich die Wartbarkeit von Code verbessern? wie läßt sich die Wiederverwendbarkeit von Code erhöhen? wie kann möglichst portabler Code geschrieben werden? wie kann ein Entwurf übersichtlich gehalten werden?

Außerdem müssen die Möglichkeiten der Programmiersprachen beim Entwurf berücksichtigt werden.

Eigene und fremde Erfahrungen lassen sich in Entwurfsmustern weitervermitteln und weiterverwenden

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

5/13

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Wartbarkeit

Wartung heißt meistens erweitern und anpassen alles, was sich in einem Programm ändern könnte, in abstrakten Klassen kapseln, um flexibel zu sein. Die Merkregel hier lautet:

Programmieren mit Schnittstellen, nicht mit Implementierungen

Beispiel: Abstrakter Datentypmodul

Beispiel: Iteratoren eine Schnittstelle zum Durchlaufen von Datenstrukturen wie Listen,

Bäume, Arrays, ... Vorteil: Datenstrukturen können (in Grenzen) ohne den die Datenstruktur

benutzenden Code ausgetauscht werden

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

5/14

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Wiederverwendbarkeit, Portabilität und Übersichtlichkeit

Wiederverwendbarkeit: Wiederverwendung heißt den gleichen Code in einer anderen

Umgebung für die selbe Funktion einzusetzen. Beim Entwurf andere Einsatzgebiete erkennen und bedenken.

Portabilität: Portieren von Software bedeutet das Übertragen eines Programmes

in eine andere Betriebssystemumgebung Kapseln aller betriebssystemkritischen API´s und Vorgehensweisen Möglichst keine Abweichungen von Standards

Übersichtlichkeit Sinnvolle Namen verwenden An bekannten Konzepten orientieren (Entwurfsmuster)

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

5/15

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Begriffsbestimmung: Was sind Entwurfsmuster

Zitat:"Ein Entwurfsmuster beschreibt ein Problem, das immer wieder in unserer Umwelt vorkommt, und beschreibt dann den Kern einer Lösung des Problems, so daß die Lösung millionenfach für Probleme dieses Typs verwendet werden kann, ohne zweimal genau dasselbe zu tun." (frei nach C.Alexander, Gamma et.at. S. 2).

Entwurfsmuster sind abstrakte Anweisungen, wie Software implementiert werden kann, damit bestimmte Eigenschaften eines Entwurfs erreicht werden, z.B. Änderbarkeit, Wartbarkeit, Wiederverwendbarkeit....

Entwurfsmuster sind programmiersprachenunabhängig

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

5/16

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Entwurfsmuster und persönliche Erfahrung

Entwurfsmuster: eine Zwischenlösung zwischen Frameworks und persönlicher Erfahrung

Persönliche Erfahrung: Schwierigster Weg:

nicht dokumentiert, daher schlecht nachvollziehbar von Person zu Person unterschiedlich

Wichtigster Weg: Software-Entwurf ist keine mechanische Tätigkeit, sondern ein

kreatives Abwägen von Alternativen, daß auf den Menschen angewiesen ist und sich (noch?) nicht automatisieren läßt.

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

5/17

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Was sind Entwurfsmuster nicht

Rezepte Rezepte können blind angewandt werden. Entwurfsmuster müssen zu

ihrer Anwendung verstanden werden, da sie wegen der breiten Anwendbarkeit sehr abstrakt sind.

Entwurfs-Regeln Entwurfsmuster sind keine starren Vorgaben, sondern flexible, anpaßbare

Vorschläge

Frameworks Frameworks sind komplette Speziallösungen

Idiome Idiome (Programmierstile) sind sprachspezifische Konstrukte

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

5/18

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Bestandteile eines Entwurfsmusters

Mustername kurze, prägnante Umschreibung der mit dem Muster realisierten

Funktionalität

Problembeschreibung Beschreibung dessen, was erreicht werden soll

Problemlösung Beschreibung, wie das gewünschte Ziel erreicht wird

Konsequenzen der Anwendung Beschreibung der Auswirkungen der Anwendung des Musters auf

andere Zielgrößen des Entwurfs, z.B. Effizienz, Speicherbedarf, Erweiterbarkeit, etc.

Diskussion von Alternativen

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

5/19

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Anwendung von Entwurfmustern

Anhand der Beschreibungen der Entwurfsmuster (Konsequenzen!) ein passendes auswählen

Übertragen des Entwurfsmusters in den konkreten Anwendungsfall

Informationen zum Thema Entwurfsmuster: E. Gamma et.al.: Design Patterns, Addison Wesley, 1994 J. Coplien, D. Schmidt: Pattern Languages of Program Design, Addison

Wesley, 1994 Konferenzen, z.B. PLoP, C++World, etc. WWW: Patterns Home Page

(http://st-www.cs.uiuc.edu/users/patterns/patterns.html)

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

5/20

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Vor- und Nachteile von Entwurfsmustern

Vorteile: einheitliche Kommunikationsbasis Dokumentationswerkzeug explizite Erweiterungspunkte eines Systems konstruieren geringere Gefahr der unbeabsichtigten Zerstörung eines Entwurfs in der

Wartung

Nachteile: manchmal zu kompliziert noch keine umfassenden, praktikablen Kataloge nur für eine bestimmte Ebene des Entwurfs sinnvoll

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

5/21

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Beispiel 1: Abstrakte Simulation

Name OODS - object oriented distributed simulation

Zweck: Definition der Grundstruktur von Objekten zur verteilten Simulation

Ziele: Generelle Beschreibung von Bausteinen in Simulationssysteme Kapselung von Funktionalität

Konsequenzen: Hohe Komplexität durch rekursive Vererbung Semantik der Daten muß in Schnittstelle verlagert werden Semantik der Anwendung nicht transparent

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

5/22

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

OODS_SimulationModel

OODS_Object

NameTypeDescription

CloneModel(...)SimulateModelState(...)

OODS_Parameter OODS_Port

SimulateModelState(...)GetModelState(...)

1

1

* *

1..*

*

1..*

*

1

*

* *

*

*

*

1

OODS_State

TimeValues

OODS_Value

Add(...)Subtract(...)...

Struktur des Entwurfsmusters Abstrakte Simulation

OODS Objekt enthält OODS S.M., Port, State und Para.

OODS S.M. verwendet

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

5/23

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Objekt & Klasse

Systeme

Anwendungen

Frameworks: Implementierung

MikroArchitektur: Entwurfsmuster

Kapselung von Daten und Methoden

Horizontale & Vertikale Frameworks Metadaten

Kapselung von Altlasten GUIs

Klassenhierarchien

Zusammenarbeit einzelner Klassen

Vom Objekt zum System - Aggregationsstufen

heute

Entwürfe sollten auf allen Stufen stattfinden - Top Down Ansatz

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

5/24

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Entwurf und Entwurfsmuster

Aufgabe des Entwurfs ist - aufbauend auf dem Ergebnis der Analyse - die Erstellung der Softwarearchitektur und die Spezifikation der Komponenten, d.h. die Festlegung von deren Schnittstellen, Funktions- und Leistungsumfang. Das Ergebnis soll die zu realisierenden Programme auf einem höheren Abstraktionsniveau widerspiegeln.

Ein Entwurfsmuster gibt eine bewährte, generische Lösung für ein immer wiederkehrendes Entwurfsproblem an, das in bestimmten Situationen auftritt. Es lassen sich klassen- und objektbasierte Muster unterscheiden. Klassenbasierte Muster werden durch Vererbungen ausgedrückt. Objektbasierte Muster beschreiben in erster Linie Beziehungen zwischen Objekten.

Entwurfsmuster beschreiben in abstrakter Form eine bewährte Entwurfslösung und setzen sie in Bezug zur Problemstellung und zur Systemumgebung.

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

5/25

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Architektur von Softwaresystemen

Architektur meint die logische und die physische Struktur eines Softwaresystems

Die Architektur beschreibt die wesentlichen strukturellen Elemente, deren Schnittstellen und Zusammenarbeit

Eine Architektur ist eine Menge von Architektur Mustern mit einer Menge von Architektur Operationen,die die Instanzierung von Architektur Exemplaren aus Architektur Mustern ermöglichen.

Damit beschreibt die Architektur Struktur und Verhalten eines Systems. Die Wahl der Architektur hat unter Gesichtspunkten wie Nutzung, Funktionalität, Performance, Robustheit, Wiederverwendbarkeit oder Verständlichkeit zu erfolgen. Wirtschaftliche und technische Randbedingungen sind einzuhalten. All dies bedeutet, dass ständig Kompromisse nötig sind und bewährte Lösungen mit bedacht werden sollten.

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

5/26

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Beispiel 2: Das Strategy-Pattern

Zweck:

Definition einer Familie von austauschbaren Algorithmen.

Ziele: Kapselung von Algorithmen und ihren Daten flexibles Ändern des Verhaltens eines Objekts vermeiden von Fallunterscheidungen im Code

Konsequenzen: Wiederverwendung ohne Vererbung. Das Strategy-Pattern ist ein

Beispiel für Delegation. Es entsteht ein gewisser Kommunikationsoverhead

(Funktionsaufrufe) Der Entwurf wird wegen der erhöhten Anzahl von Objekten

komplexer

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

5/27

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Das Strategie-Entwurfsmuster Strategy Pattern

KonkreteStrategieB

+ AlgorithmusSchnittstelle()

KonkreteStrategieC

+ AlgorithmusSchnittstelle()

KonkreteStrategieA

+ AlgorithmusSchnittstelle()

Kontext

+ KontextSchnittstelle()

Strategie

+ AlgorithmusSchnittstelle()11

+strategie

1 1

Class A ClassB

Class A ClassB

Class A ClassB

*11 *

Class A ClassB

*11 *

Vererbung

Abhängigkeit

Assoziation

Aggregation

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

5/28

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Beispiel: Integrationsalgorithmen in Simulationsprogrammen

Simulationsmodelle (z.B. für eine Wand) bestehen aus Differentialgleichungen.

Zur Lösung dieser Differentialgleichungen (z.B. in der Methode “BerechneTemperatur“) gibt es viele verschiedene Verfahren, die problemabhängig vom Anwender ausgewählt werden müssen.

Gesucht: Entwurf/Implementierung, der eine flexible Auswahl und eine einfache Erweiterbarkeit der Palette ermöglicht.

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

5/29

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Konkrete Anwendung: Zeitintegration

1 1 Integrator

_ZeitSchrittWeite

IntegriereZeitschritt

RungeKuttaIntegrator

IntegriereZeitschritt

EulerIntegrator

IntegriereZeitschritt

Wand

_Temperatur_Integrator_Material

BerechneTemperaturSetzeIntegrator

Vererbung

Aggregation

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

5/30

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

class Wand{public: void BerechneTemperatur (); void SetzeIntegrator ();private: Temperatur _Temperatur; Parameter _Material; Integrator* _Integrator;};

void Wand:: SetzeIntegrator (Integrator * integ) { _Integrator = integ; }

void Wand:: BerechneTemperatur (float waerme_strom, float delta_t) { // Berechnen der Wandtemperatur nach einem Zeitschritt aus // // dT // -- = m * c * Q // dt float dT_dt = _Material * waerme_strom; _Integrator->IntegriereZeitschritt(_Temperatur, dT_dt, delta_t);}

Implementierung

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

5/31

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Makro-Architektur - Frameworks

Der Schwerpunkt liegt in der Wiederverwendung sowohl von Entwurf als auch von Software-Code mit dem Ziel, eine spezielle Lösung für ein domänenspezifisches Problem zu finden.

Kombination einer oder mehrerer Mikro-Architekturen.

Ebene für den Einsatz von Frameworks

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

5/32

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Frameworks

"Ein Framework ist eine Anzahl wiederverwendbarer Klassen mit einer Systemarchitektur zur Erstellung von Anwendungen. Es stellt

den Königsweg dar: ein kompletter und geprüfter Entwurf samt Implementierung von Basisfunktionalität kann wiederverwendet werden.

Ein Framework besteht also aus einer Menge von zusammen-arbeitenden Klassen, die einen wiederverwendbaren Entwurf für einen bestimmten Anwendungsbereich implementieren. Es besteht aus konkreten und insbesondere aus abstrakten Klassen, die Schnittstellen definieren. Die abstrakten Klassen enthalten sowohl abstrakte als auch konkrete Operationen. Im allgemeinen wird vom Anwender (=Programmierer) des Frameworks erwartet, daß er Unterklassen definiert, um das Framework zu verwenden und anzupassen.

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

5/33

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

ExtensionPoint

Pattern

Framework

*

1

*

*

1

*

Component

**

**

*

*

*

*11

Beziehung zwischen Komponenten, Pattern und Frameworks

Eine Komponente kann in mehreren Patterns und Frameworks implementiert werden und ein Pattern oder ein Framework kann durch mehrere Komponenten implementiert werden.

Ein Framework kann mehrere Pattern enthalten und bietet Extension Points an Erweiterungsstellen beschreiben, wo und wie das Framework zu erweitern ist, damit das

Framework im Kontext einer konkreten Anwendung eingesetzt werden kann.

Class A ClassB

*11 *

Assoziation

implementiert

implementiert

Besteht ausenthält

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

5/34

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Anwendung von Frameworks

Wiederverwendung als White-Box Frameworks, Wiederverwendung und Erweiterung durch

Vererbung Black-Box Frameworks, Wiederverwendung und Erweiterung durch

Aggregation

Informationen zum Thema Frameworks Buschmann et al.: Pattern-Oriented Software Architecture: A System of

patterns, Wiley, 1996. G. Rogers, : Framework-Based Software Development in C++, Prentice

Hall, 1997. Konferenzen, z.B. PLoP, C++World, etc. WWW: Patterns Home Page

(http://st-www.cs.uiuc.edu/users/patterns/patterns.html)

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

5/35

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Vorgehensweise bei der Framework-Entwicklung

Identifiziere die spezifische(n) Domäne(n), wo das Framework angewandt werden soll.

Definiere Use Cases (Anwendungsfälle), welche das Framework erbringen soll.

Identifiziere bekannte Akteure, welche mit dem Framework agieren sollen.

Identifiziere Patterns oder andere geprüfte Lösungen, welche die Framework-Entwicklung unterstützen sollen.

Entwerfe Schnittstellen und spezifiziere Komponenten des Frameworks.

Implementiere die Schnittstellen des Frameworks prototypisch. Beschreibe und dokumentiere Erweiterungsstellen. Schreibe Prüfspezifikationen und plane den Entwicklungsprozess.

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

5/36

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Was sind Anti-Patterns ?

Ein Anti-Pattern beschreibt einen Lösungsvorschlag für ein bestimmtes Problem, welcher für den Software-Entwurf oder den gesamten Entwicklungsprozeß negative Konsequenzen hat.

Ein Anti-Pattern tritt auf, wenn die am Software-Projekt Beteiligten keine bessere Lösung für das Problem kennen, nicht genügend Erfahrung in Lösung bestimmter Probleme haben oder ein erprobtes Lösungsmuster in einem falschen Kontext einsetzen.

Anti-Patterns gliedern sich in: Entwurf-Antipatterns (Software-Entwickler) Architektur-Antipatterns (Software-Architekt) Management-Antipatterns (Projektleiter)

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

5/37

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Bestandteile eines Anti-Patterns

Hintergrund Antipattern (Generelle Form) Symptome und Konsequenzen Ursache Ausnahmen Verbesserungsvorschlag Variationen Beispiel Verwandte Antipatterns

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

5/38

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Anwendung von Antipatterns

Anti-Patterns sind überall.

Anti-Pattterns verdeutlichen die Fehler in dem Entwicklungprozess.

Informationen zum Thema Anti-Patterns W. Brown et al.: Anti Patterns, Wiley, 1998 WWW: The Portland Pattern Repository(http://c2/com/ppr)

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

5/39

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

CASE - Computer Aided Software Engineering

Durch die Formalisierung wird es möglich eine Vielzahl von Aufgaben bei der Software Entwicklung zu automatisieren. Dadurch kann die Software Produktivität gesteigert und die Softwarequalität verbessert werden. CASE befasst sich mit computergestützten Hilfsmitteln zur Erreichung dieses Zieles.

Wir unterscheiden CASE oder Software Entwicklungsumgebungen, CASE Plattformen

und CASE Werkzeuge CASE Werkzeuge stellen zur Softwareproduktion benötigte

Funktionen oder Dienstleistungen zur Verfügung CASE Plattformen (frameworks) stellen Basisdienstleistungen zur

Verfügung, die von CASE Werkzeugen in Anspruch genommen werden können.

CASE Umgebung heisst die Summe aus Plattform und Werkzeugen

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

5/40

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Basisdienste einer CASE Plattform

Reposity Service verwaltet Objekte und ihre Beziehungen

Data Integration Service verwaltet und verarbeitet Metadaten (Daten über Daten)

vertikale + horizontale Tools

Process Management Service unterstützt die Verarbeitung von Workflows und das Rollenmanagement

Interface User Service trennt Bedienung und Funktionalität und erlaubt Anpassung der Bedienung an Nutzung

Me

ss

age

Se

rvice

unte

rstützt K

omm

un

ikatio

n(T

ool-Tool; S

ervice-Service; T

ool-Service)

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

5/41

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Definition OO-Programmiersprache

Objektbasiert Datenabstraktion Klassen Beispiele: Visual Basic

Objektorientiert objektbasiert Vererbung Polymorphismus Beispiele: C++, Java, Smalltalk, ...

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

5/42

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Problem: Welche Programmiersprache ist die richtige ?Auswahlkriterien sind wichtig !

Problem: Welche Programmiersprache ist die richtige ?Auswahlkriterien sind wichtig !

Überblick OO-Programmiersprachen

OO-Programmiersprachen gibt es sehr viele:

Simula 67, Smalltalk, Object Pascal, Modula 3, C++, Objective C, CLOS, Ada 95, Eiffel, Beta, Object COBOL, Java, Python, Dylan; Self, Oberon, Occam, Russel, Arjuna, CC++, ...

(ca. 45 im comp.object FAQ)

Falls Sie sich erst einarbeiten müssen, empfehlen wir das JAVA Tutorial von SUN:

http://java.sun.com/docs/books/tutorial/

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

5/43

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Auswahlkriterien anhand von Beispielen (1)

Ada 95 C++ Eiffel Smalltalk Java

Programm-Ausführung

compiliert compiliert compiliert interpretiert/Bytecode/compiliert

interpretiert/Bytecode/compiliert

Typisierung ja,

statisch

ja,

dynamisch

ja,

dynamisch

nein,dynamisch

ja,

dynamisch

Laufzeit-effizienz

(Performance)gut hoch gut schlecht

schlecht(wird nochverbessert)

Komplexität hoch sehr hoch erträglich erträglich erträglich

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

5/44

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Auswahlkriterien anhand von Beispielen (2)

Ada 95 C++ Eiffel Smalltalk Java

Variablen-Kapselung

pub/priv pub/prot/priv priv priv pub/prot/privpackage

Methoden-Kapselung

pub/priv pub/prot/priv pub/priv public pub/prot/priv

Nebenläufig-keit

ja indirekt nein indirekt ja

Persistenz nein nein nein nein nein

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

5/45

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Auswahlkriterien anhand von Beispielen (3)

Ada 95 C++ Eiffel Smalltalk Java

Normung Standard(DOD)

Standard(ANSI)

proprietär proprietär demnächstStandard (ANSI)

Verbreitung mäßig sehr hoch gering mittel stark wachsend

besondereVorteile

Normung nähe zu C durchdachtesKonzept

PrototypingGUI

Mobile CodeInternet

besondereNachteile

aufwendigeCompiler

nähe zu CKomplexität

geringeVerbreitung

Laufzeit-effizienz

dynamischeEntwicklung

Literatur zu C++:

Deitel/Deitel: The Complete C++ Training Course (Bk/CD-ROM) Student Edition. 0-13-082925-0. Jg.1998. Verlag prentice hall. Www.prenhall.co.u

Ford/Topp: An Introduction to Computing Using C++ and Object Technology. 0-13-268152-8. Jg. 1998.

Kruse/Ryba: Data Structure and Program Design in C++. 0-13-768996-0. Jg. 1998.

Johnsonbaugh/Kalin: Applications Programming in C++. 0-13-748963-3. Jg. 1998.

Collopy: Introduction to C++ Programming: A Modular Approach. 0-13-888801-9. Jg. 1998.

Ramteke: Introduction to C and C++ for Technical Students. 0-13-249608-9. Jg. 1998.

Kashani: Programming in C++: An Applied Approach. 0-13-228818-4. Jg. 1998.

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

5/46

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

FORTRAN als Programmiersprache der Numerik (1)

Geschichtliche Entwicklung1954 John Backus von IBM begann, ein automatisches Programmiersystem zu entwickeln, das

Programme, die in mathematischer Notation geschrieben wurden, in Maschinenbefehle für den IBM 704-Computer umwandelt. Daraus entstand

1957 der erste FORTRAN-Compiler.

1958 IBM führt FORTRAN ein;

erste Erweiterung: Subroutinen

Anfang 60er FORTRAN hat sich seit FORTRAN II ständig weiterentwickelt. Es gab inzwischen viele FORTRAN-Compiler, jeder hatte seine eigenen Zusatzfunktionen, die nicht im Original-Compiler zu finden waren. Die Portabilität der Programme war durch die vielen Dialekte nahezu unmöglich.

Zur gleichen Zeit fing die ASA (American Standards Association, heute AmericanNational Standards Institute (ANSI) an, viele Aspekte der Datenverarbeitung zu standardisieren, u.a. auch Programmiersprachen.

1966 Erste standardisierte FORTRAN-Version FORTRAN66

1978 Ein neuer Standard wurde vorgestellt: FORTRAN77

Erneuerungen: viele neue Ein- und Ausgabemöglichkeiten, wie z.B. direkter Zugriff auf Dateien; IF-THEN-ELSE-Konstrukte, Character-Datentyp u.a.

Sobald FORTRAN77 vollständig war, haben sich ANSI und ISO der neuen FORTRAN-Version gewidmet, die heute FORTRAN90 heißt. Viele Verbesserungsvorschläge an FORTRAN77 wurden in FORTRAN90 übernommen.

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

5/47

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

FORTRAN

als Programmiersprache der Numerik (2)

1978-81 Verbesserungsvorschläge wurden gesammelt.

1979-85 Die meisten technischen Veränderungen wurden als detaillierte Vorschläge präsentiert. Anschließend wurden sie diskutiert und das Komitee stimmte über sie ab.

Eine große Menge der technischen Arbeit war bereits 1985 beendet.

Die folgenden 5 Jahre wurden die Vorschläge noch verfeinert.

1987 Vorversion des neuen Standards war fertiggestellt.

1990 Erneute Überarbeitung und technische Arbeit vollendet.

1991 FORTRAN90 offizieller internationaler Standard (ISO).

1992 U.S. nationaler Standard (ANSI).

Es gibt viele Gründe dafür, warum ein neuer Standard notwendig ist:

Es existieren inzwischen viele Dialekte des FORTRAN77-Standards, die verschiedene Teile des neuen FORTRAN90-Standards, vor allem Syntaxveränderungen, enthalten. Gerade deswegen ist es notwendig, diese Veränderungen und Verbesserungen in einem für alle Hersteller verbindlichen Standards festzuhalten.

Computertechnologie und Programmiermethoden entwickeln sich sehr schnell weiter. FORTRAN77 weist einige offenbare Unzulänglichkeiten auf.

Die Portabilität wurde durch den neuen Standard verbessert.

Die Computer-Hardware, die das Sprachen-Design beeinflußt, hat sich durch die Parallel- und Vektorrechner verändert.

Genauso gibt es viele Gründe dafür, nicht auf eine andere moderne Programmiersprache zurückzugreifen. Es bleibt so z.B. die Kompatibilität mit dem alten Standard und dem bereits in großer Menge existierenden Code erhalten. FORTRAN77-Programme müssen also nicht in FORTRAN90 umgeschrieben werden. Außerdem wurden einige Eigenschaften des alten FORTRAN-Standards in FORTRAN90 verbessert, einige davon werden in der nächsten FORTRAN-Version wohl wegfallen.

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

5/48

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Äquivalente Konstrukte in C++ und Fortran 90

Konstrukte C++ F90

KlasseZugangsbeschränkung Überdachen

Classprotected

moduleprivateoptional::<name> +if (present(<name>) then :end if

Zugangsöffnung Vererbung

Publicfriend

useüber use, das es erlaubt,daß Teile eines Moduls vonanderen verwendet werden

Objekte Initialisierung Beendung

über constructorüber destructor

nutzerdefiniertes Createfehlt

Static class variables static save

Dynamische Speicherplatz-verwaltung

new allocatable

Matrixoperationen nutzerdefiniert Array Operationen

Methoden object. Member Function ( )verbindetDaten + MethodenFest angebunden

Call Member Function ( )

über Schnittstelle angebunden

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

5/49

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

JAVA als Programmiersprache der Zukunft

JAVA ist die Programmiersprache der Zukunft

Es ist weitgehend rechnerunabhängig, voll objektorientiert und wesentlich einfacher als C++.

Insbesondere unterstützt JAVA voll die Komponententechnik.

Informationen zu JAVA Kursen finden Sie auf den Seiten des Informatik Verbundes Stuttgart IVS unter

http://www.iasweb.de/ivs/ivs/index.htm

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

5/50

Universität Stuttgart  W

isse

nsv

erar

be

itu

ng

un

d N

um

erik

Institut für Kernenergetikund Energiesysteme

Simulation technischer Systeme, WS 01/02 Kap. 5: Entwurf

Diese Fragen sollten Sie jetzt beantworten können

Geben Sie mindestens 3 Aggregationsstufen an und beschreiben Sie ihre Funktion bei der Wiederverwendung

Was sind Entwurfsmuster und welche Bedeutung haben sie Beschreiben Sie das Strategy Pattern Was sind Frameworks Beschreiben Sie die Beziehung zwischen Entwurfsmustern,

Frameworks und Komponenten und veranschaulichen Sie sie durch ein UML Diagramm

Wie entwickelt man ein Framework Was ist ein Antipattern Geben Sie 3 Kriterien zur Auswahl einer Programmiersprache an und

begründen Sie ihre Bedeutung