Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Das Dilemma des Architekten Ziel: ein gut designtes System, welches mit zukünftigen Anforderungen umgehen kann, ohne dass es zu Einschränkungen in der.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Das Dilemma des Architekten Ziel: ein gut designtes System, welches mit zukünftigen Anforderungen umgehen kann, ohne dass es zu Einschränkungen in der."—  Präsentation transkript:

1 1 Das Dilemma des Architekten Ziel: ein gut designtes System, welches mit zukünftigen Anforderungen umgehen kann, ohne dass es zu Einschränkungen in der Qualität kommt Problem: zukünftige Anforderungen sind praktisch nicht absehbar => über- oder unterdesignte Systeme

2 2 Bestandteile der Software-Architektur (1) Kernfunktionalität dient zur Behandlung zentraler Grundaufgaben einer Klasse Querschnittsfunktionalität ist nicht auf einzelne isolierte Klassen beschränkt, sondern über das gesamte System verteilt

3 3 Bestandteile der Software-Architektur (2) Beispiele: Banksystem: –Kernfunktionalität: Kontenverwaltung –Querschnittsfunktionalität: Sicherheit, Kundenverwaltung, Datenerfassung, Rechnungslegung Internetshop: –Kernfunktionalität: Produktverwaltung –Querschnittsfunktionalität: Sicherheit, Kundenverwaltung, Datenerfassung, Rechnungslegung

4 4 Objektorientierte Programmierung (OOP) konzentriert sich auf die Verwaltung der Kernfunktionalität starke Kopplung zwischen den Kernaufgaben und der Querschnittsfunktionalität OOP wurde für die Identifikation der Funktionalitäten von komplexen Systemen und ihrer anschließenden Modularisierung entwickelt über viele Klassen hinweg verstreute Aufrufpositionen

5 5

6 6 Beispiel in der OOP (1)

7 7 Beispiel in der OOP (2)

8 8 Aspektorientierte Programmierung (AOP) (1) strikte Trennung zwischen den Kernfunktionalitäten und den Querschnittsaufgaben durch Einführung einer neuen Modularisierungseinheit, dem Aspekt einzelne Aspekte können weiter entwickelt werden ohne Auswirkungen auf die Kernfunktionalität volle Konzentration auf die optimale Entwicklung einer Komponente ohne Rücksicht auf die Kopplung mit anderen Komponenten

9 9 Aspektorientierte Programmierung (2) Kernfunktionalität und Querschnittsfunktionalität werden unabhängig voneinander entwickelt es besteht während der Entwicklung der Kernfunktionalität keine Notwendigkeit zur Berücksichtigung der Querschnittsfunktionalität keine Klasse der Kernfunktionalität enthält einen Aufruf einer Querschnittsfunktionalität

10 10

11 11 Gefahren bei der OOP (1) Code – Streuung –der selbe Sachverhalt ist in vielen Klassen implementiert: Mehrfachvorkommen in genau denselben Klassen (nicht redundant) mit dieser Klasse verbundene Implementierungen sind ebenfalls über mehrere Klassen verteilt Vorkommen des selben Codes mit Ergänzungen

12 12

13 13 Gefahren bei der OOP (2) Auswirkungen der Nichtmodularisierung: Code - Verflechtung –Klasse muss gleichzeitig mit vielen Anweisungen umgehen –mehrere Anwendungen sind mit den Kernoperationen verflochten

14 14

15 15 Gefahren bei der OOP (3) Aus Codestreuung und Codeverflechtung resultieren: –schlechte Verfolgbarkeit –geringe Produktivität –geringe Wiederverwendung des Codes –Qualitätsverlust –Probleme bei der Weiterentwicklung

16 16 Stufen der Systementwicklung mit der AOP (1)

17 17 Stufen der Systementwicklung mit der AOP (2) die Querschnittsfunktionalitäten werden selbständig modularisiert und mittels Weaver zum fertigen Programm zusammengefügt die AOP vollzieht sich in den Schritten: –Zerlegung in Aspekte –Zerlegung der Anforderungen zur Identifikation der Kern- und Querschnittsfunktionalitäten

18 18 Stufen der Systementwicklung mit der AOP (3) –Implementierung der Funktionalitäten: jede Funktionalität wird unabhängig von den anderen implementiert –Zusammenstellung der Aspekte: Aufstellung der Regeln zur Synthetisierung auf Grundlage dieser Regeln wird das fertige System zusammengesetzt

19 19 Das Weben –Prozess des Zusammensetzens des Systems aus unterschiedlichen Kernmodulen durch Befolgen der Regeln für das Weben –in der AOP werden durch virtuelle Ereignisse in dem Programm bestimmte Aktionen ausgelöst, die mit dem System „verwoben“ werden

20 20 Der Weber Die Einheit, welche den Code verwebt, kann auf folgende verschiedene Arten arbeiten: die Code zu Code – Übersetzung: –Vorübersetzung der Aspekte –Erzeugen des fertigen Codes durch den Sprachcompiler der Quellcode wird in Klassen übersetzt der Aspektweber verwebt die Klassen

21 21 Beispiel in der AOP (1) Regel 1: Erschaffe ein Erfassungsobjekt! Regel 2: Erfasse den Beginn jeder „public“ Operation! Regel 3: Erfasse die Fertigstellung der „public“ Operationen!

22 22 Beispiel in der AOP (2)

23 23 Vorteile der AOP Zuständigkeit der einzelnen Klassen ist leichter erfassbar höhere Modularisierung leichte Systemerweiterbarkeit späte Bindung der Designentscheidung bessere Wiederverwendbarkeit des Codes Reduzierung der Kosten bei der Implementierung neuer Merkmale


Herunterladen ppt "1 Das Dilemma des Architekten Ziel: ein gut designtes System, welches mit zukünftigen Anforderungen umgehen kann, ohne dass es zu Einschränkungen in der."

Ähnliche Präsentationen


Google-Anzeigen