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.

Slides:



Advertisements
Ähnliche Präsentationen
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
Advertisements

Neukonzeptionierung des SVNCheckers > Malte Legenhausen > DLR > Folie 1 Observer - Pattern Malte Legenhausen, Robert Werschnitzke Asea Brown.
Alarm- und Ausrückeordnung (AAO)
N Beratung n Betreuung n Koordinierung Umsetzung der Betriebssicherheitsverordnung im Rahmen des Arbeits- und Gesundheitsschutzmanagementsystems NRW (AGM.
Fakultät Architektur, Lehrstuhl für Bauökonomie und Computergestütztes Entwerfen Informationstechnologien (IT) in der Architektur Raster- oder Vektorgrafik.
Tutorium Software-Engineering SS14 Florian Manghofer.
© Till Hänisch, 2002 BA Heidenheim Methoden zur Aufwandsabschätzung Allgemein: –Reduktion der Komplexität –Vergleich mit Erfahrungswerten Probleme: –Erfassen.
Einführung in die Aspektorientierte Programmierung Seminarbetreuung: PD Wolfram Amme Bearbeitung: Martin Boehmer.
Zehn Schritte zu Linux Der Weg in eine andere Welt...
Energy as a driver in open-ended evolution Von Tim Hoverd & Susan Stepney Präsentation von Sebastian Schrage.
1 Objektorientierte Softwareentwicklung. Dr. Wolfram Amme, Objektorientierte Softwareentwicklung, Informatik II, FSU Jena, SS Phasen objektorientierter.
Microsoft Azure Die Cloud-Plattform für moderne Unternehmen ModernBiz 1 Kleine und mittlere Unternehmen (KMU) wünschen sich die Möglichkeit und Flexibilität,
Einführung in AspectJ ● Inhalt: 1)Überblick 2)Elemente des crosscuttings in AspectJ 3)„Hello World“ in AspectJ 4)Wie Aspekte in Java verwoben werden 5)Join.
Pflegestärkungsgesetz II
Mapbender Funktionalität Geoportal & Meta-Management
Web App-Entwicklung – der richtige Technologiemix macht’s
Schulungsunterlagen der AG RDA
Praktische Informatik 1
Eine Präsentation von Sandro Schluep und Leon Wink.
Objective C Universität zu Köln
LeaseCalc Die neue Einkaufs-, Verwaltungs- und Abrechnungssoftware
Weiterbildung im Baukastensystem Kompetenzen in Modulen
EbM Kongress 2011  24. – 26. März 2011  TU Berlin
Geschäftsprojektplan
Neue Entwicklungen im GeoPortal.rlp
Signifikantes Ereignis INES-Stufe 1
Modul Nationale und Internationale Tourismuspolitik
FBV Stand: 2007 Zweck der Feuerbeschau, verhüten der Gefahren für…
Logisches Datenmodell
Objective C Universität zu Köln
IT-Ausbildung und Geschäftsportfolio im Systemhaus ACI
Einführung in die Stadtsoziologie
1AHWIL Dennis Can, Lucas Hofbauer, Fabian Harra
Micros Systems Incorporated
Erwerb Ferienhaus Niederlande
Bei dieser Präsentation wird sicher eine Diskussion mit dem Publikum entstehen, die zu Aktionsschritten führt. Verwenden Sie PowerPoint, um diese Aktionsschritte.
Handlungsfelder Aspekte Prämissen Inhalte Umsetzungsprozesse
Kapitel I: Grundlagen von Computernetzen
„Virtueller Seminarraum“ - SS 2003 Laborprojekt / Forschungsprojekt
Kapitel 5: Betriebliche Anwendungssysteme
Web-Kartografie in der amtlichen Statistik Deutschlands − Regionale Statistik, Bundes- und Europawahlen, zukünftige Aktivitäten − Arbeitsgruppentreffen.
Die Kindertageseinrichtung ein modernes Bildungsunternehmen?
Bärbel Fritsche, Fachleiterin
Vote électronique Top oder Flop? Wo steht Graubünden?
Friederike Kleinfercher Abteilung Forschung und Entwicklung
Was ist ein eBook und wie löst man es ein
Stadt Mönchengladbach
Herzlich Willkommen zur Projektvorstellung der DORFGESUNDHEITSHÜTTE
Crowdfunding in Österreich – Herbst 2018
Was tun, wenn der Bescheid ausläuft?
Methodische Grundlagen des Software-Engineering
Bewertung von kommunalem Schriftgut
Geschäftsprojektplan
Mögliche Stoffverteilung im Grundkurs
DESIGN THINKING.
Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein.
Energieleitlinie: Wieso brauchen wir das?
Inken Klassen BMAS, Referat VIGruEF1, Europäischer Sozialfonds
(wird seit 1950 auch Deming-Kreis genannt!)
Thema: Terme und Variablen Heute: Gleichungen aufstellen und lösen
Präsentation von Darleen und Michèle
WIR SCHÜLER GESTALTEN UNSERE SCHULE MIT!
Bugtracker Tool.
Implementieren von Klassen
Organisationsfähigkeit Ausgewählte Folien für Lehreinheit C2
Modularisierung und Modulare Programmierung
Von Wietlisbach, Lenzin und Winter
Erasmus+ JUGEND IN AKTION ab 2021
Objektorientierte Programmierung
Klicken Sie auf jede Stufe, um mehr zu efahren.
 Präsentation transkript:

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 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 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 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

6 Beispiel in der OOP (1)

7 Beispiel in der OOP (2)

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 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

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

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

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 Stufen der Systementwicklung mit der AOP (1)

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 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 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 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 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 Beispiel in der AOP (2)

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