5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche...

60
1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012 Softwaretechnik (CNAM) 5. Design: Architektur-Grundlagen Wintersemester 2011 / 2012 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

Transcript of 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche...

Page 1: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Softwaretechnik

(CNAM)

5. Design:

Architektur-Grundlagen

Wintersemester 2011 / 2012

Prof. Dr. Bernhard Humm

Hochschule Darmstadt, FB Informatik

Page 2: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

2 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Einordnung in den gesamten Kurs

1. Einführung

2. Analyse: Anforderungen und Anwendungsfälle

3. Analyse: Datenmodell

4. Analyse: Dialoge

5. Design: Architektur-Grundlagen

6. Design: Referenzarchitektur betriebliche Informationssysteme

7. Design: Querschnittsthemen und Muster

8. Programmierung

9. Test, Einführung, Qualitätsmanagement

10. Projektmanagement

11. Vorgehensmodelle

Page 3: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

Motivation

Architektur-Sichten

Software-Kategorien

Komponenten & Schnittstellen

Regeln für den Komponentenschnitt

Spezifikation von Schnittstellen

Literatur, Kontrollfragen

Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Motivation

Agenda

Page 4: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

4 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Design: Die Königsdisziplin des Software Engineering

Analyse WAS?

Design WIE?

Page 5: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

5 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Architektur: Verteidigen

Quelle: www.musoft.org

Page 6: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

6 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Architektur: Beeindrucken

Quelle: www.musoft.org

Page 7: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

7 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Architektur: Verkehrsfluss

Quelle: www.musoft.org

Page 8: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

8 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Architektur: Erweitern

Quelle: www.musoft.org

Page 9: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

9 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Architektur: Mobilität

Quelle: www.musoft.org

Page 10: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

10 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Architektur: Grundriss

Page 11: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

11 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Architektur: Aufriss

Page 12: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

12 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Architektur: Elektriker-Sicht

Page 13: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

13 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Architektur: Sanitär-Installateur-Sicht

Page 14: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

14 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Softwaresysteme gehören zu den komplexesten

Dingen, die Menschen je gemacht haben…

Page 15: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

15 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

… und brauchen daher eine gute Architektur

Wo ist hier die Architektur?

Übersicht

Quelle: Erich Gamma, "100 OO Frameworks, Pitfalls and Lessons Learned", 1997

Übersicht

Page 16: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

16 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Wichtigste Aufgaben der Design-Phase

Fachliches (Anwendungs-)Design

– Zerlegung (Dekomposition) des Systems in Komponenten (z.B. in Vertragsverwaltung, Kundenverwaltung …)

– Festlegung der Schnittstellen (Operationen)

Technisches Design (parallel zur Analysephase durchführbar)

– Festlegung der technischen Infrastruktur (GUI-Toolkit, Datenbanksystem, App. Server, Frameworks, Hardware, …)

– Festlegung der Entwicklungsumgebung (SEU) (Programmiersprache, Umgebung, Build-Tool, Bugtracker, …)

– Festlegung der Grobstruktur des Systems (Schichten, Tiers, Standard-Architektur, …)

– Festlegung der (Programmier-)richtlinien (Coding Conventions, Verzeichnisstruktur, Nutzungskonzepte für Tools, …)

Übersicht

Page 17: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

Motivation

Architektur-Sichten

Software-Kategorien

Komponenten & Schnittstellen

Regeln für den Komponentenschnitt

Spezifikation von Schnittstellen

Literatur, Kontrollfragen

Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Architektur-Sichten

Agenda

Page 18: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

18 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

TI-Architektur (Architektur der

technischen Infrastruktur)

beschreibt die

physischen Geräte

(Rechner, Netzleitung,

etc.), die darauf

installierte

Systemsoftware

(Betriebssystem,

Application-Server, etc.),

das Zusammenspiel von

Hardware und

Systemsoftware sowie

die verwendeten

Programmiersprachen.

Architektur-

Sichten

T-Architektur (Technikarchitektur)

verbindet A- und TI-

Architektur;

beschreibt die „virtuelle

Maschine“, auf der die

mit der A-Architektur

entworfene Software

läuft.

A-Architektur

(fachliche

Anwendungsarchitektur)

frei von technischen,

produktbezogenen

Sachzwängen

wird für jedes Projekt

neu entwickelt

strukturiert die Software

aus der Sicht der

Anwendung

enthält fachliche Klassen

wie „Mitarbeiter“ oder

„Konto“.

Page 19: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

19 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Beispiel-Projekt für Logistik-Dienstleister

Kunde: großer Logistik-Dienstleister

Projekt: Auftragsmanagement

Volumen Stufe 1: > 30 BJ

Zeit: April 2003 – Januar 2004

Page 20: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

20 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Beispiel für A-Architektur

ESI-Frontend

SA-Backend

SA-

Front-

end

T&T-Verwaltung

ESi-Backend

Disposition

Auftragsverwalter

Auftragsüberwachung

Auftragsverwalter

Benutzerverwaltung

Stammdatenverwaltung

Auftragsabrechnung

NVE-

Drucker

SA-

Batch-

Scanner

SA-

Online-

Scanner

Auftragsüberwachung Disposition

Frontend

Backend

Nummerverwaltung

Konvertierung

Annahme/Importer

Auftragsverwaltung

Informationsanforderung

Master Applikation

Internes Informations-

service und Clearing

Portal

Benutzerverwaltung

Informationsservice und Clearing

Benutzerverwaltung

Stammdatenverwaltung

Benutzerverwaltung

Stammdatenverwaltung

Produktions-

auftragsverwaltung

Clients

Inform.service u. Clearing

Informationsservice und Clearing

NVE-

Drucker

NVE-

Drucker

Nummernverwaltung Stammdatenverwaltung

Querschnitt

Auftragsverwaltung Produktion Entgeltsicherung Tracking & Tracing

Page 21: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

21 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Beispiel für

T-Architektur

Clients nutzen Services zur

Kommunikation mit den

Applikationen

Die publizierten und genutzten

Services werden mit Hilfe von

Adaptern und Proxies von den

Use-Cases entkoppelt

Strikte Trennung von fachlichen

und technischen Programmteilen

Anwendungskern kann

wiederverwendet werden (z.B. im

Offline-Client)

Page 22: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

22 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Beispiel für TI-Architektur

PC

z/OS

DB2

USS

CICS/TSO

Web-Browser

IBM-Webserver

Java-Applet

http

Anwendungskern

Bridge (GWAPI)

EXCI

Nachbarsysteme

MQSeries

IDMS

Nachbarsysteme

AKS-Shell

CICS

Nachbarsysteme

CICS-DPL

CICS/UNIX

Nachbarsysteme

TCP/IP

Page 23: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

23 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

A-Architektur

A-Architektur grob

Anforderungen

Teilsysteme

Nachbarsysteme

Spezifikation

Anwendungsfälle

Entitätenmodell

Dialogspezifikation

etc.

Teilsysteme,

Komponenten,

Schnittstellen,

Klassen/Module

Pakete, DLLs,

Programmiersprachendateien

Programmierung

der Anwendung

T-Architektur

Schichten

Komponenten

Klassen/Module

Pakete, DLLs,

Programmiersprachendateien

Programmierung von

Basiskomponenten

(0/T-Software)

TI-Architektur

Auswahl einer geeigneten

Technologie

logische Rechner,

Netze, Trägersysteme

technische Produkte

Ze

it

Referenzarchitektur

Entwicklung der Architektur-Sichten im Projekt-Ablauf

Page 24: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

Motivation

Architektur-Sichten

Software-Kategorien

Komponenten & Schnittstellen

Regeln für den Komponentenschnitt

Spezifikation von Schnittstellen

Literatur, Kontrollfragen

Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Software-Kategorien

Agenda

Page 25: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

25 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Idee der Softwarekategorien

Software, die sich unterschiedlich schnell ändert, wird in unterschiedliche Module aufgeteilt.

David Parnas, 1972

Page 26: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

26 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Beispiel Gehaltssoftware

IBM AS/400

Neues Entwicklungspfade-

und Entlohnungsmodell

Neue Beitragssätze zur

Sozialvericherung

Neue CORBA-Version

Fachliche Änderungen technische Änderungen

Page 27: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

27 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Softwarekategorien:

Trenne Zuständigkeiten

Kategorien Das heißt…

unabhängig von Anwendung und Technik;

ideal wiederverwendbar;

Beispiel: Klassenbibliothek für Strings und Behälter

bestimmt durch die fachliche Anwendung;

unabhängig von Technik;

Meist der größte Teil des Systems;

Beispiel: „Mitarbeiter“, „Buchung“

unabhängig von der fachlichen Anwendung;

wiederverwendbar bei Einsatz derselben technischen

Komponente; Beispiel: Zugriffsschicht auf Datenbank

reine Transformation;

Beispiel: Bildschirmformat in XML

befasst sich mit Technik und Anwendung;

schwer zu warten;

widersetzt sich Änderungen;

Wiederverwendung = 6er im Lotto!

0-Software

A-Software

T-Software

R-Software

AT-Software

C-Software Konfiguration:

Bringt die verschiedenen Kategorien zusammen (main)

Kombinationen A + 0 = A

T + 0 = T A + T = AT

Quelle: J. Siedersleben: „Moderne Softwarearchitektur“

Page 28: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

28 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Software-Kategorien als Maß für Softwarequalität

... Der Anteil an AT-Software ist antiproportional zu der Qualität eines Software-

Systems!

• Wiederverwend-

barkeit der

technischen

Komponenten

• Wartbarkeit

• Fehlerfreiheit

• Stabile

Komponenten

Anteil von

AT-Software

Page 29: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

Motivation

Architektur-Sichten

Software-Kategorien

Komponenten & Schnittstellen

Regeln für den Komponentenschnitt

Spezifikation von Schnittstellen

Literatur, Kontrollfragen

Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Komponenten & Schnittstellen

Agenda

Page 30: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

30 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Komponenten-Orientierung am Beispiel Auto

Außensicht

(Schnittstelle)

des Fahrers:

möglichst einfach

Außensicht

(Schnittstelle)

der

Werkstatt:

möglichst einfach

Innensicht: komplex

Page 31: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

31 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Komponenten-Orientierung in der Software

Beispiel: Berechtigungskomponente

Berechtigungs-

kernB

Admin-

Schnittstelle

A

operative

Schnittstelle

SR‘

RACF-

AdapterDB-Zugriff

RACF

Berechtigung

GUI

Oracle

JDBCR

Berechtigungskomponente

Außensicht

(Nutzungssicht):

operative

Schnittstelle des

Anwendungs-

programmierers

(möglichst einfach)

Außensicht

(Nutzungssicht):

Schnittstelle des

Administrators

(möglichst einfach)

Innensicht: komplex

Page 32: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

32 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

UML-Notation

cmp Komponenten & Schnittstellen

Class

Interface

Class

«interface»

Interface

Component

ProvidedInterface1 ProvidedInterface2

RequiredInterface

Schnittstelle ist Stereotyp

von Klasse. Enthält nur

Operationen, keine

Attribute

Komponente als

Stereotyp von Klasse mit

Komponentensymbol

Alternative Darstellung

der Schnittstelle als Ball

(„Lollypop“)

Angebotene Schnittstellen

Angeforderte

Schnittstelle

(Socket-

Symbol, neu

in UML 2)

Page 33: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

33 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Definition Komponente:

6 Merkmale

Eine Komponente

definiert ihre angebotenen Dienste. Dazu gehört insbesondere die genaue Semantik der Schnittstellen.

definiert die Abhängigkeiten von angeforderten Diensten anderer Komponenten.

versteckt die Implementierung und kann daher durch eine andere Komponente ersetzt werden, die dieselbe Schnittstelle exportiert.

ist geeignet als Einheit der Wiederverwendung.

kann andere Komponenten enthalten.

ist neben der Schnittstelle die wesentliche Einheit des Entwurfs, der Implementierung und der Planung.

Komponente k

K Impl

s1

s2

t2

t1

k importiert (benutzt)

s1 und s2

Austauschbare

Implementierung von k

k exportiert (implementiert)

t1 und t2

Was ist eine Komponente

Johannes Siedersleben

Page 34: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

34 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Komponente

Sichten auf eine Komponente

Nutzer

(Anwendungsentwickler

Client oder Nachbarkomponente):

operative Außensicht

Entwickler

(Anwendungsentwickler

Komponente):

Innensicht

Integrator:

Integrationssicht

(technische Konfiguration)

Betreiber (Rechenzentrum):

Außensicht Betrieb

Administrator:

Administrationssicht

(fachliche Konfiguration)

Page 35: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

35 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Client Komponente:

GUI,

Nachbar-Komponente,

Test-Treiber

<<uses>>

Ordering

<<uses>>

OrderingFactory

Ordering

(Anwendungsentwickler Client oder Nachbarkomponente)

gets reference to

OrderingFactory

Außensicht:

So einfach und stabil wie möglich

interface Ordering {

OrderRecord placeOrder(

String customerId, String articleId);

}

interface OrderingFactory {

Ordering getOrderingUseCase();

}

Außensicht

Application components

Page 36: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

36 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

(Anwendungsentwickler der Komponente)

Ordering

FactoryImpl

<<creates>>

Ordering

OrderingFactory

Order

Customer

OrderManager

CustomerManager

public interface Order {

String getId();

}

public interface OrderManager {

Order newOrder (Customer customer

Article article);

}

OrderingImpl

public interface Customer {

String getName();

}

public interface CustomerManager {

Customer newCustomer (String name,

String address);

Customer findCustomerById (String id);

}

Innensicht

Application components

Innensicht: die Komponente

implementieren

Ordering

Page 37: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

37 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

<<creates>>

<<creates>>

OrderingFactory

Ordering

Komponente Client-

Komponente

OrderingFactory orderingFactory = getOrderingFactory();

Ordering orderingUseCase = orderingFactory.getOrderingUseCase():

ClientComponent c = new ClientComponent(orderingUseCase);

Entscheidung für eine

konkrete Implementierung

und Zusammenbringen von

Schnittstelle und

Implementierung

SAP

Adapter

Ordering

Integrationssicht

OrderingFactory

Ordering

Application components

Page 38: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

38 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Administrationssicht

Ordering

Komponente

OrderingFactory

Ordering

Administration

setTaxValues,

configurePrices,

configureReductions,

Page 39: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

39 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Betriebssicht

Ordering

Komponente

OrderingFactory

Ordering

SystemsManagement

Systems

Management

(z.B. Tivoli)

Komponente hoch- und

herunterfahren,

Gesundheitszustand

abfragen

Page 40: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

40 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Schnittstellen (Interfaces) beschreiben Eigenschaften von

Komponenten aus Sicht der Benutzer

Katze

Haustier

Patient

Quelle: Roger King

class Katze implements Patient, Haustier {…}

Rückblick Grundlagen der Programmierung I

Page 41: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

41 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Analogie Mensch

Jeder Mensch hat viele Eigenschaften. Aber

für bestimmte Personengruppen sind nur

bestimmte Eigenschaften wichtig:

– Verkehrspolizist: Führerschein

– Arbeitgeber: Lebenslauf, Aufgaben,

Einkommen

– Bibliothek: Leihausweis

– Familie: jede Menge anderer

Eigenschaften

Eine Klasse, zum Beispiel Customer, kann

viele Eigenschaften haben. Aber für

bestimmte Collaborations sind nur

bestimmte Eigenschaften wichtig:

– Kundenverwaltung: fachliche Attribute

und Funktionen

– SortedSet: Comparable

– Client-Server Kommunikation:

Serializable

Page 42: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

42 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Definition Schnittstelle und Operation

Eine Schnittstelle (Interface) fasst Operationen zusammen. Sie wird spezifiziert durch:

– (1) Einen eindeutigen Namen,

– (2) Die Menge der zugehörigen Operationen

– (3) Ein Schnittstellen-Protokoll im Sinne von Reihenfolgen und Restriktionen beim Aufruf

der Operationen.

Operationen (Operations) beschreiben das Verhalten von Komponenten. Sie werden

spezifiziert durch:

– (1) Signatur: Name der Operation, Parameter und Rückgabewerte und deren Typen,

Ausnahmen

– (2) Semantik: Verhalten der Operation

– (3) Nichtfunktionale Eigenschaften: z.B. Performanz, Verfügbarkeit, Kosten etc.

Page 43: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

43 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Authorization

kernel B

administration

interface

A

Operational

interface

S

R'

RACF-Adapter DB Access

RACF

Authorization

GUI

Datenbank

R

Verschiedene Sichten / Schnittstellen

für unterschiedliche Nutzer

A-GUI

Komponenten und Schnittstellen

Anwendungs-

programmierer

(viele)

Administrator

Admin-Client

Entwickler

RACF-Experte RACF-Experte DB-Experte

Entwickler des

Admin-Clients

Page 44: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

44 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Nutzer Anbieter S

Standard-Schnittstelle

S‘ Adapter

angeforderte Schnittstelle

Wer definiert Schnittstellen?

Nutzer Anbieter S

angebotene Schnittstelle

Anbieter S

angeforderte Schnittstelle

Nutzer

z.B. JDBC

Call-back SS, z.B. Observer

z.B. SAP Adapter

Konvention für diese Vorlesung:

Verwendung des Socket-Symbols nur für angeforderte

Schnittstellen, die von der Komponente selbst definiert und

exportiert werden

Anbieter

S

angebotene Schnittstelle

Nutzer z.B. Oracle Call Interface

Page 45: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

45 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Beispiel: Observer Muster

Anbieter

(Observable) Nutzer

(Observer)

Observer

Observable

<<uses>>

<<implements>>

addObserver,

deleteObserver, …

Update (call-back)

Prinzip Inversion of Control (Umkehr der Abhängigkeit)

Der Anbieter (Observable) exportiert sowohl die angebotene als auch das angeforderte Schnittstelle

Obwohl Aufrufe in beide Richtungen erfolgen, ist die Abhängigkeit unidirektional und damit zyklenfrei (Observer

Observable)

Page 46: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

46 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Angeforderte Schnittstellen: Komponenten entkoppeln

Komponente k definiert die erwarteten Dienste mit Hilfe von Schnittstellen s1 und s2

Diese Schnittstellen, auch angeforderte Schnittstellen genannt, gehören der importierenden Komponente

Die Dienstanbieter-Komponenten h1, h2 exportieren die Schnittstellen s1‘ bzw. s2‘, welche i.d.R. nicht identisch zu s1 und s2 sind

Adapter a1, a2 bilden die angeforderten Schnittstellen auf die konkreten Schnittstellen von h1, h2 ab.

Das Komponenten-Binding erfolgt über die Konfiguration

k

s1

h1

Konfiguration

s2 h2

a1

a2

s1´

s2´ t2

t1

Das alles gehört k und das h2

und das h1

Komponenten und Schnittstellen

Page 47: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

Motivation

Architektur-Sichten

Software-Kategorien

Komponenten & Schnittstellen

Regeln für den Komponentenschnitt

Spezifikation von Schnittstellen

Literatur, Kontrollfragen

Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Regeln für den Komponentenschnitt

Agenda

Page 48: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

48 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Regel 1: Zusammengehörige Fachlichkeit

Kriterien:

– Geschäftslogik für unterschiedliche (Haupt-)Geschäftsprozesse soll getrennt

werden

– Geschäftslogik für unterschiedliche (Haupt-)Geschäftsobjekte soll getrennt

werden, insbesondere sollen Stamm- von Bewegungsdaten getrennt werden (

Partitionierung des Datenmodells)

– Geschäftslogik, die sich unterschiedlich häufig ändert, soll getrennt werden

Beispiele:

– Hauptbuchhaltung, Nebenbuchhaltung

– Kundenverwaltung, Auftragsverwaltung

– Vertrieb, Produktion

Komponenten sollen zusammengehörige Fachlichkeit zusammenfassen

• Gegenbeispiele:

– Host-Anwendungen,

Java-Anwendungen

Page 49: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

49 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Regel 2: Kategorienreine Komponenten

Beispiele A-Komponenten:

Kundenverwaltung

Buchhaltung

Auftragsverwaltung

Komponenten sollen eindeutig einer Software-Kategorie zugeordnet

werden können:

A-Komponenten: implementieren nur Fachlichkeit

T-Komponenten: stellen technische Dienste bereit

Möglichst keine AT-Software auf Komponentenebene

Beispiele T-Komponenten:

• Datenbank

• O/R Mapper

• Middleware

Page 50: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

50 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Regel 3: Datenabstraktion

Der Zugriff auf Anwendungsdaten soll ausschließlich über

Komponentenschnittstellen erfolgen.

Schreibende Zugriffe über create- / modify-Methoden

Lesende Zugriffe über find-Methoden

Direktzugriff auf Datenbank nur in Ausnahmefällen (Performance)

und nur für lesende Zugriffe erlaubt

Auftrags-

verwaltung

Kunden-

verwaltung

Kunden-DB

Page 51: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

51 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Regel 4: Enger Zusammenhalt,

geringe Kopplung

Komponenten sollen so geschnitten sein, dass sie

intern einen engen Zusammenhang haben und

untereinander gering gekoppelt sind.

Page 52: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

52 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Regel 5: Azyklische Abhängigkeiten

Komponenten sollen so geschnitten sein, dass sie

keine zyklischen Abhängigkeiten haben

d.h. Abhängigkeitsgraph = DAG (Directed Acyclic Graph)

Page 53: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

53 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Regel 6: Handhabbare Komponentengröße

Weder 100 Klassen noch 1 Klasse, weder 1.000.000 noch 10 Zeilen Code

Komponenten sollen eine handhabbare Größe haben

Page 54: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

54 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Zuordnung der Regeln zu Qualitätszielen nach ISO/IEC 9126

Angemessenheit

(Funktionalität)

Benutzbarkeit

Änderbarkeit,

Austauschbarkeit

R1:

zusammengehörige

Fachlichkeit

R2: kategorienrein

R4: enger

Zusammenhalt, geringe

Kopplung

R5: zyklenfrei

R6: handhabbare

Größe

R3: Datenabstraktion

Page 55: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

Motivation

Architektur-Sichten

Software-Kategorien

Komponenten & Schnittstellen

Regeln für den Komponentenschnitt

Spezifikation von Schnittstellen

Literatur, Kontrollfragen

Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Spezifikation von Schnittstellen

Agenda

Page 56: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

56 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Schnittstelle

Spezifikation von Schnittstellen

Operationen

Name

Protokoll

Signatur

Semantik

Nicht-funktionale Eigenschaften

public interface OrderManager {

Order placeOrder (Customer customer, Article article)

throws NotAvailableException;

}

Rückgabetyp Operationsname Eingabeparameter und -typ

Ausnahme

Prosa, Vorbedingungen, Nachbedingungen, etc.

Prosa

Prosa, Sequenzdiagramme etc.

Schnittstellenname

Page 57: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

57 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Vorbedingungen und Nachbedingungen

Vorbedingungen (pre-conditions)

– Bedingungen, die vor Ausführung der Operation erfüllt sein müssen, z.B. Eigenschaften der

Parameter

– muss der Nutzer der Operation zusichern

– der Anbieter darf die Arbeit einstellen, wenn die Vorbedingung verletzt ist (Zusätzliche

Prüfung erhöht die Sicherheit: bei Verletzung Abbruch mit Ausnahme)

– Beispiel: Artikel muss verfügbar sein, wenn er bestellt wird

Nachbedingungen (post-conditions)

– Bedingungen, die nach Ausführung der Operation erfüllt sein müssen, z.B. Eigenschaften

des Ergebnisses

– Muss der Anbieter der Operation zusichern

– Nutzer der Operation kann davon ausgehen (Zusätzliche Prüfung erhöht die Sicherheit: bei

Verletzung Abbruch mit Ausnahme)

– Beispiel: Nach erfolgreicher Bestellung ist Rechnung erzeugt

Page 58: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

Motivation

Architektur-Sichten

Software-Kategorien

Komponenten & Schnittstellen

Regeln für den Komponentenschnitt

Spezifikation von Schnittstellen

Literatur, Kontrollfragen

Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Literatur, Kontrollfragen

Agenda

Page 59: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

59 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Literatur

Johannes Siedersleben: Moderne Softwarearchitektur. dpunkt-

Verlag 2004

Johannes Siederlseben (Hrsg.): Quasar: Die sd&m

Standardarchitektur (Download von meiner Hompage)

Martin Haft, Bernhard Humm, Johannes Siedersleben: The

Architect’s Dilemma – Will Reference Architectures Help?

(Download von meiner Hompage)

Page 60: 5. Design: Architektur-Grundlagen Softwaretechnik (CNAM)€¦ · Neue CORBA-Version Fachliche Änderungen technische Änderungen. ... Softwaretechnik (CNAM), WS 2011 / 2012 Definition

60 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik: Softwaretechnik (CNAM), WS 2011 / 2012

Kontrollfragen

Was sind die wichtigsten Aufgaben der Disziplin Design?

Welche Architektursichten unterscheiden wir? Was bedeuten die einzelnen Sichten?

Wie werden die einzelnen Sichten im Projektablauf entworfen?

Erklären Sie die Software-Kategorien

Was sind Komponenten? Nennen Sie Beispiele

Welche Sichten auf Komponenten existieren?

Nennen Sie wichtige Regeln für den Komponentenschnitt

Was sind Schnittstellen? Nennen Sie Beispiele

Wie werden Schnittstellen spezifiziert?