QUASAR - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

QUASAR

Description:

QUASAR Referentin: Ceren Alkis Betreuer: Gerd Beneken Merkmale einer Komponente Sie importiert andere Schnittstellen. Sie exportiert (implementiert) ein oder mehrere ... – PowerPoint PPT presentation

Number of Views:53
Avg rating:3.0/5.0
Slides: 24
Provided by: www4InTu
Category:
Tags: quasar

less

Transcript and Presenter's Notes

Title: QUASAR


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 sdm AG
  • Begann am 5.Mai 1998 in München und wurde von
    Prof. Johannes Siedersleben geleitet.
  • Pragmatisch -gt Aus Industrie
  • Problem Die Qualifikation der Mitarbeiter
  • Projekte bei vielen
    unterschiedlichen Kunden
  • Ziel Normierung von Sprache in der Firma
  • Die unterschiedliche Architekturideen vieler sdm
    Projekte einzusammeln und in wieder verwendbare
    Form zu bringen.

3/22
4
Merkmale einer Komponente
Komponenten
  • 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
Merkmale einer Schnittstelle
Schnittstellen
  • 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
Kompositionsmanager
Konfiguration
  • 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
Cx
Cy
R
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 mit XML
Konfiguration
lt?xml version1.0gt ltconfigurationgt
ltinterface name R"gt ltinterface name S"gt
ltinterface name T"gt ltinterface name U"gt
ltinterface name V"gt ltinterface name W"gt
ltcomponent name Cxgt ltexport interface
R/gt ltexport interface S/gt
ltimport interface U/gt ltimport interface
T/gt lt/componentgt
ltcomponent name Cygt ltexport interface
U/gt ltimport interface
V/gt lt/componentgt ltcomponent name Czgt
ltexport interface T/gt ltexport interface
V/gt ltimport interface W/gt
lt/componentgt
12/22
13
Konfiguration
ltcomposition name Cgt ltobject name x
component Cx/gt ltobject name y
component Cy/gt ltobject name z
component Cz/gt ltbinding interace U
importer x exporter y/gt ltbinding
interace T importer x exporter z/gt
ltbinding interace V importer y exporter
z/gt ltexport interface R/gt
ltexport interface S/gt ltexport interface
T/gt ltimport interface W/gt
lt/compositiongt lt/configurationgt
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
A- und T-Software
Softwarekategorien
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
Kommunikation zwischen Komponenten verschiedener
Kategorien
Softwarekategorien
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 und Komplexität
Softwarekategorien
  • 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
Schafkopf
Kartenspiel- GUI
Kartenspiel
Dateisystem
Swing
0
17/22
19
Softwarekategorien
Kartenspielinfo Präsentation
realerSpieler Präsentation
Kartenspiel- verwaltung Präsentation
C
B
realerSpieler
Kartenspiel- verwaltung
D
E
Kartenspiel- steuerung
F
virtuellerSpieler
Kartenspielinfo
A
G
H
Komponenten und Schnittstellen des
Schafkopfsystems
Schafkopf- strategie
Schafkopfregeln
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
Write a Comment
User Comments (0)
About PowerShow.com