Académique Documents
Professionnel Documents
Culture Documents
- Softwarearchitektur -
Software Engineering 1
WS 2011/2012
§ Softwareentwurf
• Ziele
• Entwurfsprinzipien
§ Architekturentwurf
§ Architekturmuster
System-"
Modellierung"
Entwurf!
§ Grobentwurf:
• weitgehend unabhängig von Implementierungssprache
§ Feinentwurf
• angepasst an die Implementierungssprache und Plattform
Dr. Ina Schaefer Software Engineering 1 Seite 5
Arbeitsteilung beim Entwurf
Architekturentwurf
Entwurf Entwurf
Schnittstelle Schnittstelle
1↔2 2↔...
Entwurf Entwurf Entwurf
Subsystem 1 Subsystem 2 Subsystem ...
§ Diese Kriterien gelten auf allen Ebenen des Entwurfs (Architektur,
Subsysteme, Komponenten).
§ Interne Wiederverwendung (reuse) ist ein Maß für die Ausnutzung
von Gemeinsamkeiten zwischen Komponenten
§ Reduktion der Redundanz
§ Erhöhung der Stabilität und Ergonomie
§ Hilfsmittel für Wiederverwendung:
• im objektorientierten Entwurf: Vererbung, Parametrisierung
• im modularen und objektorientierten Entwurf:
Module/Objekte mit allgemeinen Schnittstellen (Interfaces)
§ Aber: Wiederverwendung kann die Kopplung erhöhen:
• Schnittstellenkopplung und Strukturkopplung
System-"
Modellierung" Architektur-"
Spezifikation"
Architektur-"
Entwurf"
Entwurf! Detail-"
Entwurf"
Klassen- bzw. Modul-"
Spezifikationen"
Dr. Ina Schaefer Software Engineering 1 Seite 11
Architekturentwurf im Kontext der SW-Entwicklung
Entwurf der
Anforderungs-
Entwurf der
Systemarchitektur,
analyse,
Softwarearchitektur" Auswahl der
Domänenanalyse"
Hardware"
Feindesign,
Programmierung,
Integration, Testen,
Auslieferung"
Szenarien
Philippe Kruchten, The 4+1 view model of architecture, IEEE Software, November
1995, 12(6), pp. 42-50 (Verwendung im Rational Unified Process - RUP)
Dr. Ina Schaefer Software Engineering 1 Seite 15
Bestandteile der 4+1 Sichten
Feinentwurf
• Endanwender • Programmierung
• Wartung
Grobentwurf
Feinentwurf
Subsystem Umfassendes
Subsystem
Architektur:
Anwendung
UI
Bank
optionaler
grafischer
Name der Stereotyp
Komponente
«component»
WebInterface
HTTP
Database
Webservice
bereitgestellte benötigte
Schnittstelle Schnittstelle
A"
benötigte!
Schnittstelle! bereitgestellte!
Schnittstelle!
B" C"
D"
A"
analoges
Blockdiagramm B" C"
Rechner, Knoten
Datenkommunikations-
Speicherndes Netz
Lokales
Kommunikationsnetz System
Stereotypen kennzeichnen
Node die Arten von Knoten
(Knoten) <<processor>>"
Client"
<<processor>>" <<processor>>"
Server 1" Server 2" Komponenten können
zugeordnet werden
A" B"
Termin-" Anzeigetafel-"
Server" Steuerung"
Termin-Datenbank"
Dr. Ina Schaefer Software Engineering 1 Seite 24
Kriterien für guten Entwurf
§ Wie bereits diskutiert ist auf Kohäsion und Kopplung zu achten:
Phase 2.1
Phase 1 Phase 3
Phase 2.2
Quell- Ziel-
Programm Tokens Syntaxbaum Programm
Fehler-
meldungen
Schicht 2
Schicht 1
Systemkern
Benutzungsschnittstelle
Fachlicher Kern
Persistenzschicht
§ Entwurfsregeln:
• Benutzungsschnittstelle greift nie direkt auf Datenhaltung zu.
• Persistenzschicht verkapselt Zugriff auf Datenhaltung, ist aber
nicht identisch mit dem Mechanismus der Datenhaltung (z.B.
Datenbank).
• Fachlicher Kern basiert auf dem Analyse-Modell
§ Erlaubt das Aufsetzen von interaktiven, batch, etc.
Benutzerschnittstellen und den Austausch von Datenbanken
Dr. Ina Schaefer Software Engineering 1 Seite 32
Variante: 3-Schichten-Referenzarchitektur
Benutzungsschnittstelle
Fachlicher Kern
System-
funktionen
Persistenzschicht
Basissystem
Knoten Kommunikation
"Unintelligentes" Zentrales
Terminal System
§ Beispiele:
• Klassische Großrechner-("Mainframe"-)Anwendungen
• Noch einfachere Variante:
Lokale PC-Anwendungen (identifizieren Zentrale und Terminal)
"Intelligenter"
Client Server
§ Client:
• Benutzungsschnittstelle
• evtl. Fachlogik
§ Anwendungsserver:
• evtl. Fachlogik
• Verteilung von Anfragen auf verschiedene Server
§ Server:
• Datenhaltung, Rechenleistung etc.
§ Kommunikation unter Servern meist breitbandig.
Knoten 1 Knoten 2
Knoten 5 Knoten 3
Knoten 4
Client Client
Dienst
Dienst
Dienst
Client Client
Ereignis e
e
e
e
Ereignis e'
e'
e'
e'
Prozess
2
e’
Prozess
1
Verwendet
Interrupt-Vektor
Ein Service kapselt Zugriff auf die Funktionen und Daten einer
oder mehrerer Applikationen und erbringt bestimmte Leistung
gemäß der Service-Spezifikation.
Service-Spezifikation:
• Servicename und Operationsnamen
• Ein- und Ausgabedaten mit Typen
• Beschreibung der Funktionalität (meist textuell)
• Randbedingungen (Vor- und Nachbedingungen, Invarianten)
• Nicht-funktionale Eigenschaften (z.B. Performance)
• ggf. weitere Informationen (z.B. Release, Herkunft, ...)
➍ Spezifikation abfragen
Service
Service User ➎ Service nutzen ➎
Provider
➋ Service suchen
➊ Spezifikation
publizieren
➌ Spezifikation liefern
Service
Directory
“SOA-Dreieck”
Service
Service SOAP (über HTTP/SMTP)
Provider
User
(WDSL)
Service
Directory
(UDDI)
Schnittstellenorientierung:
Spezifikation abstrahiert von Implementierung.
Interoperabilität:
Einheitliche Kommunikationsstandards
Modularität:
Hohe Kohäsion im Service
Niedrige Kopplung zwischen Services
Bedarfsorientierung:
Leistungsumfang entspricht Prozessaktivitäten.
§ Architekturentwurf
• Prinzipien und Ziele
• 4-Sichten-Modell der Softwarearchitektur
• Architekturmuster für
• Entwurfssicht
• Verteilungssicht
• Ablaufsicht
• Grundbegriffe der Service-orientierten Architekturen