Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 20Integration.

Ähnliche Präsentationen


Präsentation zum Thema: "Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 20Integration."—  Präsentation transkript:

1 Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, Integration 20.1Einbettung der Integration in die Software-Entwicklung 20.2Integrationsstrategien 20.3Probleme der Integration 20.4Planung und Dokumentation der Integration 20.5Grundsätze für die Integration

2 Einordnung Dieses Kapitel betrachtet die Montage des Systems, die Integration. Die Integration ist ein wichtiger und schwieriger Schritt der Software- Entwicklung Er wird oft unterschätzt! Es geht um den Zusammenhang, der zwischen Entwurf, Test und Integration besteht. 2

3 20.1Einbettung der Integration in die Software-Entwicklung

4 Definition und Ziel Wenn (auf der Basis einer soliden Spezifikation) die Bestandteile des Systems realisiert, angepasst oder beschafft sind, können sie zusammengefügt werden. Im Zuge der Integration soll aus den Bestandteilen ein vollständiges und funktionsfähiges System entstehen. Die Software-Architektur liefert den Bau- und Montageplan. Das der Architektur zu Grunde gelegte Metamodell gibt die Ebenen der Integration vor, die oft hierarchisch angeordnet sind. Basiert z.B. eine Architektur auf Subsystemen aus Komponenten aus Modulen, dann sind dies auch die Ebenen der Integration. 4 integration The process of combining software components, hardware components, or both into an overall system. IEEE Std

5 Teilintegriertes System Solange das System noch nicht vollständig integriert ist, wird das Ergebnis jedes Integrationsschritts als teilintegriertes System bezeichnet. Typisches Problem der Integration: Inkompatible Schnittstellen (syntaktische und semantische Konflikte durch unterschiedliches Verständnis der Spezifikation und durch Schlamperei oder – weit schlimmer – durch das Fehlen einer Spezifikation) Darum wird das teilintegrierte System vor jeder Verwendung und weiteren Integrationen getestet und korrigiert (Integrationstest). 5

6 Integrationstest Hier geht es nicht um die Fehler der einzelnen Komponenten (Modultest), sondern um Konsistenzprobleme zwischen den Komponenten. Integration und Integrationstest dürfen nicht in der Entwicklungsumgebung stattfinden! Dazu sollte eine eigene Integrationsumgebung eingerichtet werden. Wenn alles integriert ist, folgt der Systemtest. 6 integration testing Testing in which software components, hardware components, or both are combined and tested to evaluate the interaction between them. IEEE Std

7 20.2Integrationsstrategien

8 Testtreiber und Platzhalter Ein teilintegriertes System ist i.A. nicht ausführbar! Für den Integrationstest werden darum Testtreiber und Platzhalter (Stubs) benötigt. Ein Testtreiber versorgt das teilintegrierte System mit Eingaben. Ein Platzhalter vertritt eine benötigte, aber noch nicht verfügbare Komponente. Er liefert entweder konstante Werte oder simuliert das Verhalten der ersetzten Komponente mehr oder minder realistisch. Je nach Integrationsstrategie werden mehr oder weniger Testtreiber und Platzhalter benötigt. intelligente Platzhalter sind aufwändiger als Testtreiber. Darum ist es vorteilhaft, so zu integrieren, dass nur wenige Platzhalter benötigt werden. 8

9 Beispiel In diesem Integrationsszenario werden sowohl ein Testtreiber als auch Platzhalter benötigt: Report-Generator wird mit dem teilintegrierten System 1 integriert. Das teilintegrierte System 2 wird vom Testreiber RG-Tester angesteuert und enthält die Stubs XML-Formatierer und Excel- Formatierer. 9

10 Integration in einem Schritt Big-Bang-Integration Im Prinzip sehr attraktiv, denn Testtreiber und Platzhalter sind nicht notwendig. Nach der Integration ist das System vollständig und kann ohne Hilfsmittel getestet werden. In der Praxis Kaum möglich, weil die Komponenten zu viele Fehler und Inkonsistenzen enthalten; das System ist kaum ausführbar, die Probleme lassen sich in einem großen, den Beteiligten kaum bekannten System nicht zuordnen. Nur möglich, wenn schon vor der Integration eine hohe Qualität der Komponenten und gute Konsistenz der Schnittstellen gewährleistet sind (z.B. Cleanroom-Entwicklung). 10

11 Inkrementelle Integration Die Komponenten einer Integrationsebene werden einzeln oder in kleinen Gruppen integriert. Wenn alle Komponenten rechtzeitig verfügbar sind, bestimmen die Benutzt-Beziehungen die Reihenfolge der Integration. Andernfalls versucht man, alle fertigen Komponenten so rasch wie möglich zu integrieren. 11

12 Top-down- und Botton-up-Integration Top-down-Integration Folgt der hierarchischen Struktur der Architektur von oben nach unten. Vorteil: Ein ausführbares System entsteht sehr früh. Nachteil: U.U. müssen viele Platzhalter (mit einer gewissen Funktionalität) erstellt werden. Bottom-up-Integration Eine Komponente wird integriert, wenn alle benötigten Komponenten bereits integriert sind. Nur bei zyklischen Abhängigkeiten braucht man Platzhalter (oder alle zyklisch abhängigen Komponenten werden auf einen Schlag integriert). Vorteil: Keine oder nur wenige Platzhalter werden benötigt. Nachteil: Die Prüfung des Gesamtsystems ist erst nach dem letzten Integrationsschritt möglich. 12

13 Kontinuierliche Integration Im Extreme Programming: laufende (typisch tägliche) Integration auf dem (von den Entwicklungsumgebungen getrennten) Integrationsrechner. Die Integration wird zu einem fortlaufenden Prozess. Sobald eine neue Komponente fertig oder eine bereits vorhandene modifiziert ist, wird sie integriert und getestet. Nur wenn der Test keine Fehler zeigt, bleibt der neue Code auf dem Integrationsrechner. Voraussetzungen enge Zusammenarbeit kleine Inkremente diszipliniertes Vorgehen 13

14 Beispiel zur Integration 14

15 Top-down-Integration keine Treiber, viele Platzhalter 15

16 Bottom-up-Integration Nur ein Platzhalter (wegen der zyklischen Abhängigkeit), aber viele Treiber. 16

17 20.3Probleme der Integration 17

18 Ideale Wert versus Praxis In einer idealen Welt ist die Integration einfach, kein Problem: Die Entwickler realisieren strikt nach Spezifikation die Komponenten. Dank sauberer Spezifikation und strenger Typprüfung passen die Teile am Ende wie geplant zusammen. Der Integrationsaufwand ist gering und fällt nicht ins Gewicht. In der Praxis sieht das ganz anders aus. Vor allem zwei Gründe stehen der mühelosen Integration entgegen: Die Spezifikation ist schwammig und unvollständig. Folge: Komponenten, die nicht zusammenpassen. Im System sollen Fremdkomponenten verwendet werden. Meist ist die Information über die Fremdkomponenten völlig unzureichend und steht nicht rechtzeitig zur Verfügung. 18

19 20.4Planung und Dokumentation der Integration

20 Informationsbedarf Die Integration eines großen, komplexen Systems ist aufwändig und mühsam und wird oft auch dadurch erschwert und verzögert, dass immer wieder Fragen aufkommen, die nur mit großer Mühe geklärt werden können. Was bedeutet diese Warnung, können wir weitermachen oder nicht? Ist es in Ordnung, dass im Test immer mehr Speicher belegt wird, oder handelt es sich um ein Speicherleck? Warum wird laut Architekturplan diese Komponente integriert, obwohl ihre Funktionalität nie in Anspruch genommen wird? Welche Komponente hätte die Datenstruktur initialisieren müssen? Oder ist das gar nicht erforderlich? Da es sich vor allem um Schnittstellenprobleme handelt, ist nicht a priori klar, welche Entwickler zuständig sind. 20

21 Integrationsplan Ein Integrationsplan ist wichtig! Er muss folgende Informationen enthalten: Identifikation der zu integrierenden Komponenten Technische Voraussetzungen der Integration, Ressourcen, Bedingungen und Einschränkungen Organisation und Reihenfolge der Integration Spezifische Angaben zu den einzelnen Integrationsschritten Da die Integration typisch auf unterschiedlichen Ebenen stattfindet (Subsystem-, Komponenten-, Modulebene), muss der Integrationsplan alle diese Ebenen behandeln. 21

22 20.5Grundsätze für die Integration

23 Grundsätze Die Integration planen! Frühzeitig mit der Integration beginnen! Ein gutes Verfahren zur Integration besteht darin, damit zu beginnen, bevor codiert wird. Den Aufwand für die Integration und den Integrationstest nicht unterschätzen! Die Integrationsstrategie auf die Projektorganisation und auf den Entwicklungsprozess abstimmen! Den gesamten Aufwand für die Integration präzise erfassen! Integrationsrisiken erkennen und reduzieren! 23 Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations. Melvin Conway (1968, S. 31)


Herunterladen ppt "Software Engineering © Ludewig, J., H. Lichter: Software Engineering – Grundlagen, Menschen, Prozesse, Techniken. 2. Aufl., dpunkt.verlag, 2010. 20Integration."

Ähnliche Präsentationen


Google-Anzeigen