2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Harry M. Sneed Objektorientierte Softwaremigration ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading, Massachusetts Menlo Park, California New York Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam
1 Gründe für eine objektorientierte Migration 1 1.1 Der Weg ins Kommunikationszeitalter - eine historische Perspektive 1 1.1.1 Die erste Welle: Normierte Programmierung 2 1.1.2 Die zweite Welle: Strukturierte Programmierung 2 1.1.3 Die dritte Welle: Datenbank-Programmierung 3 1.1.4 Die vierte Welle: Objektorientierte Programmierung 4 1.1.5 Quo vadis mit der betrieblichen Datenverarbeitung 5 1.2 Die Bürde der Vergangenheit 7 1.2.1 Altlasten bremsen den technischen Fortschritt 7 1.2.2 Gründe für eine Erneuerung 8 1.2.3 Von zentralen zu dezentralen Systemen 10 1.2.4 Die Bedeutung der bestehenden Software 13 1.3 Die Schlüsselrolle des Mainframe-Rechners 15 1.4 Strategien für eine objektorientierte Migration 18 1.4.1 Möglichkeiten der Migration 18 1.4.2 Drei Alternativen der Migration 20 1.4.3 Entscheidungskriterien 24 1.5 Organisation der Software-Migration 26 1.6 Ein allgemeines Vorgehensmodell für die Migration 29 1.7 Literaturhinweise 33 2 Objektmodellierung für eine Softwaremigration 35 2.1 Die Business-Reengineering-Revolution 35 2.2 Business-Process-Reengineering 37 2.3 Verteilte Datenverarbeitung 40 2.4 Objektorientierte Software 41 2.5 Ziel der Objektmodellierung 43 2.6 Methodik der evolutionären Objektmodellierung 45 2.6.1 Ist-Analyse durch Data Reverse Engineering 46 2.6.2 Vererbung des Datenmodells 48 2.6.3 Verteilung des Prozeßmodells 50 2.6.4 Ermittlung der Geschäftsobjekte 52
2.6.5 Spezifikation der Nutzungsfälle 53 2.6.6 Einbeziehung der bestehenden Daten und Funktionen 54 2.7 Ergebnisse der Objektmodellierung 56 2.7.1 Die technische Architektur 57 2.7.2 Das Objektmodell 58 2.7.3 Das Geschäftsprozeßmodell 59 2.7.4 Der Rückbezug zum bestehenden System 60 2.8 Abnahme des Objektmodells 61 2.9 Literaturhinweise 62 3 Bewertung der Software-Wiederverwendbarkeit 65 3.1 Zweck der Software-Bewertung 65 3.2 Methodik der Software-Bewertung 67 3.2.1 Aufstellung der Bewertungskriterien 70 3.2.2 Metriken für die Wiederverwendbarkeit 73 3.2.3 Messung der Programme 77 3.2.4 Messung der Datenstrukturen 78 3.2.5 Berechnung der Komplexitäts- und Qualitätsmetriken 79 3.3 Ergebnisse der Software-Bewertung 81 3.3.1 Metriken für die Konvertierung 81 3.3.2 Metriken für die Kapselung 82 3.4 Bewertung der Ergebnisse 84 3.4.1 Verdichtung der Meßwerte 84 3.4.2 Gewichtung der Meßergebnisse 84 3.4.3 Benotung der Wiederverwendbarkeit 84 3.4.4 Portfolio-Analyse 85 3.4.5 Entscheidungsfindung 86 3.5 SofAudit - ein Werkzeug für die Software-Bewertung 87 3.6 Literaturhinweise 89 4 Nachdokumentation der Legacy-Systeme 91 4.1 Anlali für die Software-Nachdokumentation 91 4.2 Methodik der Software-Nachdokumentation 92 4.2.1 Datendokumentation 93 4.2.2 Funktionsdokumentation 93
Vll 4.2.3 Funktion/Daten-Beziehungsdokumentation 4.3 Ergebnisse der Software-Nachdokumentation 4.3.1 Datenbaumdiagramm 4.3.2 Modulbaum 4.3.3 Modulschnittstellentabellen 4.3.4 Prozedurbaum 4.3.5 Prozedurdatenflulidiagramm 4.3.6 Entscheidungsbaum 4.3.7 Datenverwendungstabelle 4.3.8 Geschäftsregeln 4.4 Auswertung der Nachdokumentation 4.4.1 Daten/Objekt-Abgleich 4.4.2 Prozedur/Methoden-Abgleich 4.4.3 Modul/Methoden-Abgleich 4.4.4 Transaktions/Nutzfall-Abgleich 4.5 SofRedoc - ein Werkzeug für die Software-Nachdokumentation 4.6 Literaturhinweise 5 Anpassung und Verfeinerung des Objektmodells 5.1 Notwendigkeit der Konvergenz 5.2 Grundrisse des Objektmodells 5.3 Ist-Struktur der Altsoftware 5.4 Die Kluft zwischen Soll und Ist 5.5 Ansätze für die Zuordnung prozeduraler Software-Strukturen in einem Objektmodell 5.5.1 Der Redo-Ansatz 5.5.2 Der Docket Ansatz 5.5.3 Der Corem-Ansatz 5.5.4 Der Restruct-Ansatz 5.6 Konvergenz der Ist- und Soll-Modelle 5.7 Verfeinerung des Objektmodells 5.8 Optimierung des Mischmodells 5.9 Literaturhinweise 95 97 97 97 99 99 100 100 101 103 103 105 105 106 106 107 110 111 111 112 113 114 117 117 119 122 123 125 130 133 136
viii Inhaltsverzeichnis 6 Software-Sanierung 139 6.1 Der Grund für Software-Sanierung 139 6.2 Datensanierung 141 6.2.1 Konvertierung nicht normierter Datentypen 142 6.2.2 Resolution der Datenredefinitionen 143 6.2.3 Fakturierung der wiederholten Datengruppen 144 6.2.4 Ableitung der Zugriffsmerkmale 144 6.2.5 Zusammenführung der Datensichten 144 6.2.6 Transformation der Datenbankschemen 145 6.2.7 Optimierung der Datenbankstrukturen 146 6.2.8 Generierung der Konvertierungsprogramme 147 6.2.9 Generierung der Zugriffsschale 147 6.2.10 Verifikation der Datenkonversion 148 6.3 Oberflächensanierung 148 6.3.1 Sanierung der Kommandobefehle 150 6.3.2 Sanierung der Masken 151 6.3.3 Sanierung der Druckausgabe 152 6.4 Programmsanierung 153 6.4.1 Formatierung 155 6.4.2 Konstantenbereinigung 155 6.4.3 Zugriffsauslagerung 158 6.4.4 Verfeinerung 160 6.4.5 Restrukturierung 161 6.5 Entscheidungsgrundlagen für die Sanierung 164 6.6 Literaturhinweise 165 7 Objektorientierte Software-Konversion 167 7.1 Der Stand auf dem Markt 167 7.1.1 Produkte für die Programmkonversion 167 7.1.2 Das Problem der vielen Sprachen - Babylon läßt grüßen 168 7.2 Der Stand der Forschung 170 7.2.1 Der Redo-Transformationsansatz 170 7.2.2 Der Reorg-Transformationsansatz 171 7.2.3 Der Ottowa-Transformationsansatz 176 7.2.4 Der Restruc-Transformationsansatz 178
ix 7.2.5 7.2.6 7.3 7.3.1 7.3.2 7.3.3 7.4 7.4.1 7.4.2 7.4.3 7.5 7.6 7.7 Der Progress-Transformationsansatz Die Schlüsse aus der Forschung Programmarten in konventionellen Informationssystemen Batch-Programme Dialog-Programme Unterprogramme Die objektorientierte Transformation von Cobol-Programmen durch Cobtrans Die Vorgeschichte Der COBTrans-Transformationsansatz Das Ergebnis der Transformation Die objektorientierte Transformation von PL/I-Programmen durch Plitrans Die unvollendete Transformation Literaturhinweise 178 179 179 180 182 182 183 183 185 186 188 189 192 Software-Kapselung 195 8.1 Zweck der Software-Kapselung 195 8.2 Stand der Kapselungstechnologie 195 8.3 Stufen der Software-Kapselung 200 8.4 Methodik der Software-Kapselung 205 8.4.1 jobkapselung 205 8.4.2 Transaktionskapselung 206 8.4.3 Programmkapselung 207 8.4.4 Modulkapselung 208 8.4.5 Prozedurkapselung 209 8.5 Konstruktion der Kapselungsschale 210 8.5.1 Die Schnittstelle nach außen 211 8.5.2 Die Schnittstelle nach innen 213 8.5.3 Die Nachrichtenverwaltungskomponente 213 8.5.4 Die Datenumsetzungskomponente 214 8.5.5 Die lo-simulationskomponente 215 8.6 SoftWrap - ein Werkzeug für die Aufbereitung der zu kapselnden Programme 216 8.7 ObjectWrap - ein Framework für die Kapselung von Legacy-Funktionen auf dem Host 218
8.8 PMS - ein Produkt für die Kapselung bestehender Prozesse 219 8.9 Weitere Wrapper-Produkte 220 8.9.1 Softbench von HP 220 8.9.2 Object Broker von BEA 221 8.9.3 Parts von Digitalk 222 8.9.4 ObjectStar von der Antares Alliance Group 222 8.9.5 SOMobjects bzw. Component Broker von IBM 222 8.10 Kapselung bestehender Anwendungen in der Praxis 223 8.11 Literaturhinweise 225 9 Regressionstest migrierter objektorientierter Software 227 9.1 Regressionstestmethodik 228 9.1.1 Abgleich der Eingabe/Ausgabe-Bereiche 230 9.1.2 Abgleich der Datenverwendungen 230 9.1.3 Abgleich der Geschäftsregeln 231 9.1.4 Abgleich der Eingabe/Ausgabe-Pfade 232 9.1.5 Abgleich der Ausgabedaten 232 9.2 Regressionstestphasen 233 9.3 Der Unittest bzw. White-Box-Test 234 9.3.1 Unittest sanierter Programme 235 9.3.2 Unittest konvertierter Programme 236 9.3.3 Unittest gekapselter Programme 238 9.4 Der Integrationstest bzw. Grey-Box-Test 239 9.4.1 Nutzfalltest 241 9.4.2 Architekturstufentest 241 9.4.3 Inkrementeller Integrationstest 241 9.4.4 Propagierungsmustertest 242 9.4.5 Reverse-Engineering-Test 242 9.4.6 Zustandsübergangstest 242 9.4.7 Komponententest 242 9.4.8 Integrationstest konvertierter Komponenten 243 9.4.9 Integrationstest gekapselter Komponenten 244 9.5 Der Systemtest bzw. Black-Box-Test 246 9.5.1 Datenflußtest 246 9.5.2 Funktionsflußtest 247
XI 9.5.3 9.5.4 9.5.5 9.5.6 9.5.7 9.6 Bereichstest Syntaxtest Zustandstest Destruktiver Test Testvoraussetzungen Literaturhinweise 248 248 248 249 250 252 10 Integration hybrider Anwendungssysteme 255 10.1 Die Bedeutung der Middleware 255 10.2 Distributed Component Object Model (DCOM) 259 10.3 Common Object-oriented Request Broker Architecture (CORBA) 261 10.4 Datenzugriffsschalen (ODBC/JDBC) 266 10.5 Intranet-Anschlüsse 268 10.6 Komponententechnologie 271 10.7 Zusammenfassung 273 10.8 Literaturhinweise 274 Stichwortverzeichnis 277