1 / 23

QUASAR

QUASAR. Referentin: Ceren Alkis Betreuer: Gerd Beneken. AGENDA 1. Motivation 2. Komponenten und Schnittstellen 2.1 Komponenten 2.2 Schnittstellen 2.3 Konfiguration 2.3.1 Konfiguration und Implementierung von Klassen 2.3.2 Komponenten Verbinden

tale
Download Presentation

QUASAR

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. QUASAR Referentin: Ceren Alkis Betreuer: Gerd Beneken

  2. AGENDA • 1. Motivation • 2. Komponenten und Schnittstellen • 2.1 Komponenten • 2.2 Schnittstellen • 2.3 Konfiguration • 2.3.1 Konfiguration und Implementierung von Klassen • 2.3.2 Komponenten Verbinden • 2.3.3 Kompositionsmanager • 3. Softwarekategorien • 3.1 A- und T- Software • 3.2 Softwarekategorien und Komplexität • 3.3 Kommunikation zwischen Komponenten verschiedener • Kategorien 2/22

  3. Motivation Quasar-Projekt • Die Qualitätssoftwarearchitektur der sd&m AG • Begann am 5.Mai 1998 in München und wurde von Prof. Johannes Siedersleben geleitet. • Pragmatisch -> Aus Industrie • Problem: Die Qualifikation der Mitarbeiter Projekte bei vielen unterschiedlichen Kunden • Ziel: Normierung von Sprache in der Firma • Die unterschiedliche Architekturideen vieler sd&m Projekte einzusammeln und in wieder verwendbare Form zu bringen. 3/22

  4. Komponenten Merkmale einer Komponente • Sie importiert andere Schnittstellen. • Sie exportiert (implementiert) ein oder mehrere Schnittstellen. • Sie versteckt die Implementierung und kann durch andere Komponenten ersetzt werden, die dieselbe Schnittstelle exportieren. • Sie eignet sich als Einheit der Wiederverwendung, denn sie macht nur minimale Annahmen über die Umgebung. • Sie kann andere Komponenten enthalten. • Sie ist neben der Schnittstelle die wesentliche Einheit des Entwurfs, der Implementierung und der Planung. 4/22

  5. Schnittstellen Merkmale einer Schnittstelle • Sie verbindet entweder Komponenten untereinander oder Komponenten mit dem Benutzer. • Sie definiert die Funktionalität, die die Komponente zur Verfügung stellt und beschreibt wie diese zu benutzen ist. • Sie gestatten es, die Abhängigkeiten in der Schnittstelle zu konzentrieren und jede Abhängigkeit von der Implementierung zu vermeiden. • Die Trennung der Schnittstelle und Implementierung unterstützt die Änderbarkeit des Systems. 5/22

  6. Konfiguration Konfiguration Konfiguration und Implementierung von Klassen • Die Festlegung der implementierenden Klasse nennen wir Konfiguration. • Nutzer und Implementierung sind voneinander unabhängig; die • Konfiguration bringt sie zusammen. 6/22

  7. Austauschbarkeit der Implementierung Konfiguration new ArrayList ArrayList (Exporteur) ListUser (Importeur) List new MyList alternativ: Konfiguration ListUser (Importeur) MyList (Exporteur) List 7/22

  8. Konfiguration Ein Beispiel für die Konfiguration der Klassen: ListUser läuft mit jeder Klasse, die List implementiert. public class ListUser{ private List list; public ListUser (List list){ this.list = list; } public void foo () { Iterator i = list.iterator(); } } public static void main (String[ ] args){ List list = new ArrayList (); ListUser lu = new ListUser (list); lu.foo(); } 8/22

  9. Konfiguration Kompositionsmanager • Die Aufgabe des Kompositionsmanagers ist eine geeignete Umgebung für die Komponenten herzustellen. • Jeder Manager verwaltet eine oder mehrere Komponenten. • Jede Komposition exportiert eine Teilmenge der Schnittstellen, die die enthaltenen Komponenten exportieren und sie importiert genau die Schnittstellen, die lokal nicht versorgt werden können. 9/22

  10. Konfiguration Komponenten Verbinden Kompositionsmanager R Cx Cy U S V Cz T T W 10/22

  11. Konfiguration public class CManager { private Cx x; private Cy y; private Cz z; public CManager() { x = Cx.getCx(); y = Cy.getCy(); z = Cz.getCz(); y.bindV(z); x.bindU(y); x.bindT(z); } public void bindW(W w) { z.bindW(w); } public R getR() { return x; } public S getS() { return x; } public T getT() { return z; } } 11/22

  12. Konfiguration Konfiguration mit XML <?xml version=„1.0“> <configuration> <interface name = „R"> <interface name = „S"> <interface name = „T"> <interface name = „U"> <interface name = „V"> <interface name = „W"> <component name = „Cx“> <export interface = „R“/> <export interface = „S“/> <import interface = „U“/> <import interface = „T“/> </component> <component name = „Cy“> <export interface = „U“/> <import interface = „V“/> </component> <component name = „Cz“> <export interface = „T“/> <export interface = „V“/> <import interface = „W“/> </component> 12/22

  13. Konfiguration <composition name = „C“> <object name = „x“ component = „Cx“/> <object name = „y“ component = „Cy“/> <object name = „z“ component = „Cz“/> <binding interace = “U“ importer = „x“ exporter = „y“/> <binding interace = “T“ importer = „x“ exporter = „z“/> <binding interace = “V“ importer = „y“ exporter = „z“/> <export interface = „R“/> <export interface = „S“/> <export interface = „T“/> <import interface = „W“/> </composition> </configuration> 13/22

  14. Softwarekategorien Softwarekategorien • Sie geben an, welches Wissen in der Software enthalten ist und wovon die Software abhängt. • Die Softwareeinheiten sollten möglichst nur zu einer einzigen Kategorie gehören. (Prinzip der Trennung der Zuständigkeiten) • Analysiere zuerst die Softwarekategorien und zerlege danach auf dieser Basis das System in Komponenten. 14/22

  15. AT Gemischte Form der Anwendung und Technik Softwarekategorien A- und T-Software 0 Grundlage jeder Kategorie A Software, die sich nur mit der Anwendung befasst T Software, die mindestens ein technisches API kennt R Akzeptable AT- Software A + 0 = A T + 0 = T A + T = AT 15/22

  16. Softwarekategorien Kommunikation zwischen Komponenten verschiedener Kategorien Sichtbarkeitsregel: Für Software einer hohen Kategorie ist Software von verfeinerten Kategorien sichtbar. Kategorie Komponente a b H S K c 16/22

  17. Softwarekategorien Softwarekategorien und Komplexität • Jede Kategorie kann eine oder mehrere andere Kategorien verfeinern. • Die Wurzelkategorie ist die Kategorie 0. • Eine Softwarekategorie a nennen wir rein, wenn es im Kategoriegraphen genau einen Weg von a zur Kategorie 0 gibt. • Unreine Kategorien vermengen zwei oder mehr Kategorien. 19/22

  18. Beispiel: Kategorien einer Schafkopf Implementierung Softwarekategorien Schafkopf- strategien Kartenspiel- GUISwing Kartenspiel- GUI Schafkopf Dateisystem Swing Kartenspiel 0 17/22

  19. Softwarekategorien Kartenspielinfo Präsentation Kartenspiel- verwaltung Präsentation realerSpieler Präsentation C B realerSpieler Kartenspiel- verwaltung D E Kartenspiel- steuerung F Kartenspielinfo virtuellerSpieler A G H Komponenten und Schnittstellen des Schafkopfsystems Schafkopfregeln Schafkopf- strategie 18/22

  20. Softwarekategorien 20/22

  21. Zusammenfassung: • Quasar: Qualitätssoftwarearchitektur • Konzepte: • Denken in Komponenten und Schnittstellen • Kategorien 21/22

  22. LITERATUR: • Moderne Softwarearchitektur Johannes Siedersleben • Softwaretechnik Peter Brössler, Johannes Siedersleben • Pattern-orientierte Softwarearchitektur Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal 22/22

  23. Danke für Ihre Aufmerksamkeit

More Related