Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Dozenten: Markus Rentschler Andreas Stuckert Version 17.07.2015 Software Engineering I VE 09: Statische Basiskonzepte 2 Vorlesung Software Engineering.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Dozenten: Markus Rentschler Andreas Stuckert Version 17.07.2015 Software Engineering I VE 09: Statische Basiskonzepte 2 Vorlesung Software Engineering."—  Präsentation transkript:

1 1 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Vorlesung Software Engineering I Statische Basiskonzepte 2 (Architektur)

2 2 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Statik FunktionenDatenDatenstrukturenArchitektur Dynamik KontrollstrukturenZuständeProzesseZeitliches Verhalten Logik AbhängigkeitenEntscheidungstabellenMathematikRegeln Systemsichten und Modellierung Beschreiben das Verhalten und die Veränderungen während der Laufzeit. Beschreiben die feste Struktur des Systems, die sich während der Laufzeit nicht ändert. Beschreiben die Programmfunktion logisch und mathematisch

3 3 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Definiton: Software-Architektur Was ist Software-Architektur? J.Siedersleben: “Es geht um die Frage, wie man Millionen Programmzeilen großer Systeme so strukturiert, dass im Ergebnis die gewünschte Qualität erreicht wird: Wartbarkeit, Flexibitlität, Performance und andere Eigenschaften.„ H.Balzert: “eine strukturierte oder hierarchische Anordnung der Systemkomponenten sowie Beschreibung ihrer Beziehungen“ T.Posch: „Softwarearchitektur entstand aus der Notwendigkeit heraus, immer größer und komplexer werdende Software zu beherrschen."

4 4 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Definition: Software Architektur Software-Architektur beschreibt die Beziehungen der Fachkomponenten untereinander, mit weiteren Systemkomponenten, sowie der Systemumgebung. Auswahlkriterien: - Art der Aufgabenstellung - Realisierungsvorgaben - nicht-funktionale Systemanforderungen Ziel: - klare Struktur - eindeutige "Rollen" der Komponenten - wenige, klar umrissene Kommunikationsschnittstellen Verkürzt kann man sagen, dass eine Architektur regelt, welche Komponente mit welcher kommuniziert.

5 5 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Keinerlei Architektur

6 6 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Prinzip Strukturierung Strukturierung = (separation of concerns / Unterteilung in Aspekte) Arten der Unterteilung –zeitliche Unterteilung: Anforderungsanalyse / Entwurf / Programmierung / Test –qualitative Unterteilung: Effizienz / Robustheit / Korrektheit –perspektivische Unterteilung: Statik /Dynamik / Logik (Datenstrukturen / Datenfluss / Kontrollfluss) –Dekomposition (Unterteilung in Bestandteile): Komponente 1, Komponente 2 (-> diese Unterteilung ist so wesentlich, dass sie unter dem Prinzip Modularität gesondert betrachtet wird!)

7 7 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Prinzip: Strukturierung DekompositionKomposition Legende Komponente / Modul A B A ruft B auf

8 8 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Prinzip: Modularität Unterteilung eines komplexen Systems in Komponenten / Module –Anwendungsbeispiele Schreiben eines Berichts (Gliederung) Bau eines Autos (Arbeitsteilung) –Modularität als Ergebnis der Dekomposition –Modularität als Grundlage der Komponierbarkeit –Modularität als Voraussetzung für Wiederverwendung –Modularität als Voraussetzung für lokale Änderungen –Bestandteile eines Moduls Operationen Objekttypen Beziehungen zwischen Objekttypen

9 9 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Prinzip: Modularität ff. Kohäsion (cohesion). Ein Maß für die Stärke des inneren Zusammenhangs eines Moduls. Je höher die Kohäsion ist, desto besser. Kopplung (coupling). Ein Maß für die Abhängigkeit zwischen zwei Modulen. Die Modularisierung ist umso besser, je geringer die wechselseitige Kopplung zwischen den Modulen ist.

10 10 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Prinzip: Modularität ff. Ziel von Modularität: –hohe Kohäsion –geringe Kopplung –Geheimnisprinzip („Information Hiding“) d.h. –enger interner Zusammenhalt innerhalb eines Moduls –wenig Wechselwirkungen mit anderen Modulen –außerhalb des Moduls nur bekannt, was die Komponente leistet. Wie sie ihre Leistungen erbringt, wird nach außen verborgen. Nur dann –Wiederverwendung in kleinen Teilen –lokale Änderbarkeit

11 11 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Prinzip: Modularität ff. hohe Kohäsion / geringe Kopplung geringe Kohäsion / geringe Kopplung geringe Kohäsion / hohe Kopplung hohe Kohäsion / hohe Kopplung

12 12 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Prinzip: Abstraktion –Trennung von wichtigen und unwichtigen Merkmalen –„Unterschlagung“ / „Wegabstraktion“ der unwichtigen und Betonung der wichtigen zum Zweck der Konzentration auf das Wesentliche –Gängige Abstraktionen die Signatur einer Operation abstrahiert von der Realisierung der Operation die Konstrukte einer Programmiersprache abstrahieren von Prozessorendetails ein Datenflussdiagramm abstrahiert von den Aufrufstrukturen zwischen Komponenten

13 13 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Prinzip: Abstraktion ff. wichtigunwichtig für mit dem Auto Reisende für mit dem Zug Reisende Straßen Gleise, Hauptbahnhöfe Radwege Straßen, Radwege Abstraktion Straßenkarte: wichtigunwichtig für den Anwender für den Vorstand für den Entwickler Oberflächen, Funktionalität Rentabilität Schnittstellen zwischen Komponenten Interne Struktur Plattform Schulungsaufwand für neue Software Abstraktion Software:

14 14 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Software ist Gegenstand von Änderungen. Ursachen für Änderungen: –(Geplante) Inkrementelle Entwicklung –Beseitigung von Fehlern (korrektive Wartung) –Verbesserung nichtfunktionaler Eigenschaften (perfektive Wartung) –Erweiterung der Funktionalität wegen sich ändernder Rahmenbedingungen (adaptive Wartung) –(Ungeplante) Erweiterung der Funktionalität wegen Erkenntnisgewinn während der Entwicklung Prinzip: Änderungsnotwendigkeit

15 15 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Prinzip: Objektorientierung Die Programmstruktur besteht nicht direkt aus Abläufen, sondern aus Objekten mit Eigenschaften und Methoden (Daten und darauf operierenden Funktionen) Das Programm besteht aus Interaktionen zwischen den Objekten Die Objekte werden stets nur von außen betrachtet und verbergen ihren inneren Aufbau.  Modularität und Abstraktion

16 16 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Notationen für Architektur Blockdiagramme  UML: Implementierungsdiagramme, auch Klassendiagramm als kleinste modulare Einheit aus Architektursicht. Konfigurationsdiagramm  UML: Verteilungsdiagramm

17 17 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Blockdiagramme –Blockdiagramme sind kein Bestandteil von UML! –(Gleichwertige Notation in UML: Implementierungsdiagramm) –Blockdiagramme sind ein verbreitetes Hilfsmittel zur Skizzierung der logischen Struktur einer Systemarchitektur. –Subsystem umfasst Objekte bestimmter Klassen –Schnittstelle ist klar definiert (Aufrufschnittstelle, Kommunikationsprotokoll)

18 18 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 UML:Implementierungsdiagramm

19 19 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Konfigurationsdiagramme

20 20 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 UML: Verteilungsdiagramm

21 21 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Architekturmuster und -patterns Allgemeine Definitionen –Muster (Patterns) beschreiben häufig auftretende Entwurfsprobleme und dazu universell verwendbare generische Lösungsschemen. –Architekturmuster beziehen sich auf die Architektur von Softwaresystemen. –Entwurfsmuster (Design Patterns) sind weniger stark abstrahiert und beziehen sich eher auf die Softwarekodierung. Die bekanntesten Design Patterns sind von GoF beschrieben (Gang of Four: Gamma, Helm, Johnson und Vlissides). Arten von Architekturmustern –Struktur (Layer, Pipes and Filters, Blackboard) –Verteilte Systeme (Broker, P2P, Client-Server) –Interaktive Systeme (MVC / Model-View-Controller, Presentation-Abstraction-Control) –Adaptierbare Systeme (Microkernel, Reflection) –Ereignisverarbeitung (Proactor, Reactor) –Synchronisation (Object Synchronizer) Arten von Entwurfsmustern (Design Patterns) –Erzeuger-Muster (Prozess der Objekterzeugung: Abstract Factory, Builder, Factory Method, Prototype, Singleton) –Struktur-Muster (Zusammenbau von Klassen und Objekten: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy) –Verhaltens-Muster (Algorithmen sowie Aufgabenteilung zwischen Klassen: Iterator, Mediator, Observer, State, Strategy, Template Method, Visitor)

22 22 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Architekturmuster Allgemeine Strukturierung – Schichten – Pipes and Filter – Datenhaltung (Blackboard) Strukturierung von Realzeitsystemen – Monitorstruktur Strukturierung verteilter Systeme – Peer-To-Peer – Client-Server – Mehrschichtige Architekturen – Broker Strukturierung Interaktiver Systeme – Model-View-Controller (MVC) – Presentation-Abstraction-Control (PAC)

23 23 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Allgemein: Schichtenarchitektur Verboten!

24 24 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Allgemein: Pipe and Filter Architektur

25 25 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Allgemein: Datenhaltungsarchitektur

26 26 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Realzeit: Monitor-Architektur

27 27 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Verteilt: Peer-to-Peer-Architektur

28 28 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Verteilt: Client-Server-Architektur

29 29 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Verteilt: Broker-Architektur

30 30 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Broker - Architektur Entkopple Client und Server durch eine so genannte Broker–Komponente –Server registrieren sich beim Broker –Server macht seine Dienste durch eine Schnittstelle bekannt Clients greifen auf die Dienste des Servers durch Aufträge über den Broker zu –Broker lokalisiert passenden Server, gibt Auftrag weiter und –Ergebnisse/Ausnahmen an den Client zurück Hinzufügen, Entfernen, Austausch und Migration von Komponenten zur Laufzeit Für Entwickler und Benutzer sollte es zwischen zentralisierten Systemen und verteilten Systemen keinen Unterschied geben

31 31 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Broker - Architektur: CORBA CORBA – Common Object Request Broker Architecture Standardarchitektur für objekt-orientiertes, verteiltes Rechnen der Object Management Group (OMG) im Rahmen der OMA Interoperabilität zwischen Objekten durch Schnittstellenbeschreibung in Interface Definition Language (IDL) Objektimplementierungen in verschiedenen Implementierungssprachen durch Abbildung des Objekt–Modells auf Elemente der IDL plattformübergreifende Kommunikation durch CORBA–Architektur als Instanz des Broker–Architekturmusters

32 32 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Mehrschichten-Architektur

33 33 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Mehrschichtenarchitektur

34 34 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Zwei-Schichten-Architektur

35 35 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Drei-Schichten-Architektur

36 36 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Schichtenmodelle zur Netzwerkkommunikation Als das OSI-Modell entwickelt wurde, sollte es zum bereits existierenden DoD-Modell abwärtskompatibel sein.

37 37 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 OSI Schichtenarchitektur

38 38 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 Architekturmuster: Model-View-Controller Strukturierung in die drei Einheiten Datenmodell (engl. model), Präsentation (engl. view) und Programmsteuerung (engl. controller). Ziel des Musters ist ein flexibler Programmentwurf, der eine spätere Änderung oder Erweiterung erleichtert und eine Wiederverwendbarkeit der einzelnen Komponenten ermöglicht.

39 39 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 09: Statische Basiskonzepte 2 MVC: Beispiel


Herunterladen ppt "1 Dozenten: Markus Rentschler Andreas Stuckert Version 17.07.2015 Software Engineering I VE 09: Statische Basiskonzepte 2 Vorlesung Software Engineering."

Ähnliche Präsentationen


Google-Anzeigen