Vorlesung Software-Reengineering



Ähnliche Dokumente
Vorlesung Software-Reengineering

Vorlesung Software-Reengineering

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

WSR Softwarewartung und Prozessmodelle in Theorie und Praxis. Urs Kuhlmann Andreas Winter

Kirkpatrick s Four Levels of Evaluation


Software- Qualitätsmanagement

Gründe für fehlende Vorsorgemaßnahmen gegen Krankheit

Was meinen die Leute eigentlich mit: Grexit?

(1) Problemstellung. (2) Kalman Filter

Was versteht man unter Softwaredokumentation?

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

Qualitätsmanagement im Projekt

T1 - Fundamentaler Testprozess

statuscheck im Unternehmen

Ein neues System für die Allokation von Spenderlungen. LAS Information für Patienten in Deutschland

Die Post hat eine Umfrage gemacht

Lösungsvorschlag zur Klausur zu Projektorganisation und Management in der Software-Entwicklung

Bernadette Büsgen HR-Consulting

OUTSOURCING ADVISOR. Analyse von SW-Anwendungen und IT-Dienstleistungen auf ihre Global Sourcing Eignung. Bewertung von Dienstleistern und Standorten

Taking RM Agile. Erfahrungen aus dem Übergang von traditioneller Entwicklung zu Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

itestra Software Tuning Mehr Leistung. Weniger Kosten. Software Productivity

Kapitel 3: Einführung Projektmanagement

Fragebogen: Abschlussbefragung

9001 weitere (kleinere) Änderungen

STATT. Bürger. Fortwährende Rechtsfragen. Individueller Rechtsanspruch. Steuervereinfachung. Steuerdschungel. gleiche Standards

Dokumentation für die Software-Wartung

Agile Software Development

Marketing Intelligence Schwierigkeiten bei der Umsetzung. Josef Kolbitsch Manuela Reinisch

Professionelle Seminare im Bereich MS-Office

Die Klimaforscher sind sich längst nicht sicher. Hans Mathias Kepplinger Senja Post

.. für Ihre Business-Lösung

Welchen Weg nimmt Ihr Vermögen. Unsere Leistung zu Ihrer Privaten Vermögensplanung. Wir machen aus Zahlen Werte

Hinweis: Die Umfrage wurde von 120 Unternehmen in Deutschland beantwortet.

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Whitebox-Tests: Allgemeines

Benötigen wir einen Certified Maintainer?

QM: Prüfen -1- KN

Gute Nachrichten: 96% zufriedene BeWoPlaner-Kunden!

Mehr Umsatz durch Übersetzungen? Geht das?

Erfahrungen mit Hartz IV- Empfängern

Wir machen neue Politik für Baden-Württemberg


Qualitätsmanagement. Grundlagen

Naturgewalten & Risikoempfinden

Klausur Software Engineering für WI (EuI)

Ihre Protein Analyse

FAQs für beglaubigte Übersetzungen Francesca Tinnirello

Das Leitbild vom Verein WIR

Freifunk Halle. Förderverein Freifunk Halle e.v. IT Sicherheitskonzept. Registernummer bei der Bundesnetzagentur: 14/234

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Wirtschaftsinformatik

Meine Entscheidung zur Wiederaufnahme der Arbeit

Datenexport aus JS - Software

Multichannel Challenge: Integration von Vertriebsorganisation und Contact Center in der Versicherung

Bilder bearbeiten. 1 Einleitung. Lernziele. Bilder positionieren und anpassen. Bilder bearbeiten Lerndauer. 4 Minuten.

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Skriptum. zum st. Galler

Was ich als Bürgermeister für Lübbecke tun möchte

Warum Sie dieses Buch lesen sollten

Kulturelle Evolution 12

BSV Ludwigsburg Erstellung einer neuen Internetseite

FUTURE NETWORK REQUIREMENTS ENGINEERING

Bei der Focus Methode handelt es sich um eine Analyse-Methode die der Erkennung und Abstellung von Fehlerzuständen dient.

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Entwicklung des Dentalmarktes in 2010 und Papier versus Plastik.

Produktinformation ekvdialog Kostenvoranschläge leicht gemacht. Produktinformation. ekvdialog. Kostenvoranschläge leicht gemacht

Managementbewertung Managementbewertung

Fachanwältin für Familienrecht. Mietverhältnis

Risiko Pflegebedürftigkeit Unwissenheit verhindert Vorsorge

SWOT Analyse zur Unterstützung des Projektmonitorings

Die Invaliden-Versicherung ändert sich

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Mean Time Between Failures (MTBF)

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Betriebswirtschaftliche Kriterien, Aufwand und Nutzen von CMMI-Implementierungen

Projektmanagement Vorlesung 14/ 15: Wiederholung ausgewählter Themen zur Klausurvorbereitung. Prof. Adrian Müller, PMP, PSM-1, CSM FH Kaiserslautern

GPP Projekte gemeinsam zum Erfolg führen

Testen im Software- Entwicklungsprozess

Requirements Engineering WS 11/12

Passgenau schulen Bedarfsanalyse

Grundbegriffe der Informatik

Horen. PRESENTED BY: André Schmidt

MARKTPLATZ Weiterbildung Frisches zur betrieblichen Weiterbildung und Personalentwicklung

Zeichen bei Zahlen entschlüsseln

Unicodeumstellung der HR/FI/PSM-Landschaft an der Freien Universität Berlin

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

Lebenserwartung nach Sterbetafel 2003/2005

Strategien der Neukundengewinnung Segmentierung und Zielgruppendefinition

XONTRO Newsletter. Makler. Nr. 16

Modul 3: Service Transition Teil 2

Zeit lässt sich nicht wie Geld für schlechte Zeiten zur Seite legen. Die Zeit vergeht egal, ob genutzt oder ungenutzt.

Vermittlung von Unternehmensbeteiligungen für kleine und mittlere Unternehmen (KMU) Prozessablauf

Häufig wiederkehrende Fragen zur mündlichen Ergänzungsprüfung im Einzelnen:

IT-Asset-Management in der Cloud

Transkript:

Vorlesung Software-Reengineering Prof. Dr. Rainer Koschke Arbeitsgruppe Softwaretechnik Fachbereich Mathematik und Informatik Universität Bremen Wintersemester 2010/11 Überblick I Durchführung von Reengineering-Projekten

Durchführung von Reengineering-Projekten: Durchführung von Reengineering-Projekten I Durchführung von Reengineering-Projekten Arten von Reengineering-Projekten Initiierung von RE-Projekten im Großen Projektrechtfertigung Messung von Wartbarkeit Portfolio-Analyse Kostenschätzung Kosten-Nutzen-Analyse Risikofaktoren Häufige Fehler Wiederholungsfragen Durchführung von Reengineering-Projekten: Lernziele Kontext Planung und Durchführung von Reengineering-Projekten unter Berücksichtigung besonderer Probleme, Risiken und häufiger Fehler Planung steht ganz am Anfang jedes Projekts bisher wurden nur technische Aspekte behandelt

Durchführung von Reengineering-Projekten: Arten von Reengineering-Projekten Arten von Reengineering-Projekten Reengineering als Teil des normalen Wartungsprozesses: Reengineering im Kleinen im Change-Management integriertes Reengineering massive Änderung des Codes: Reengineering im Großen Durchführung von Reengineering-Projekten: Arten von Reengineering-Projekten Änderungsrate

Durchführung von Reengineering-Projekten: Arten von Reengineering-Projekten Modularisierung Durchführung von Reengineering-Projekten: Initiierung von RE-Projekten im Großen Initiierung von RE-Projekten im Großen nach Sneed (1995) 1 Projektrechtfertigung 2 Inventur Welche (Teil-)Systeme existieren (Sprachen, Größe, Einsatz,... )? 3 Eingrenzung: Portfolio-Analyse Welche (Teil-)Systeme sollen (in welcher Reihenfolge) renoviert werden? Welche Komponenten müssen erweitert werden? 4 Kostenschätzung Was wird das Reengineering kosten? 5 Kosten/Nutzen-Analyse Vergleich von Ausgaben und Einsparungen 6 Vertragsabschluss Definition der Vertragsziele und ihrer Messbarkeit

Durchführung von Reengineering-Projekten: Projektrechtfertigung Projektrechtfertigung Funktionalität wird sich nicht in großem Maße ändern in einem reinen Reengineering-Projekt Wie ist das Projekt zu rechtfertigen? In welchem Maße wird sich die Wartbarkeit verbessern? Bestimme gegenwärtige Qualität Ermittle gegenwärtige Wartungskosten Bestimme Wert der Software (Verkaufserlöse, Wichtigkeit der Kunden,... ) Schätze zukünftige Qualität, Wartungskosten und Wert ab. Zur genauen Bestimmung muss ein Metrikprogramm existieren/etabliert werden: Qualität und Wartbarkeit? Durchführung von Reengineering-Projekten: Messung von Wartbarkeit Messung von Wartbarkeit (Ideal) Anhand eines existierenden Prozessmodells für die Wartung werden detaillierte Daten erhoben: Korrigierbarkeit Testbarkeit Änderbarkeit Fehlerrate Dauer der Beseitigung (Lokalisierung, Korrektur) Testüberdeckung Testplanvollständigkeit Änderungsrate Änderungsumfang Änderungsdauer Ressourcen Kosten Fehler Tests Änderungen Anhand der Daten wird ein statistisches Modell entwickelt, das zukünftige Wartungsdaten vorhersagt.

Durchführung von Reengineering-Projekten: Messung von Wartbarkeit Messung von Wartbarkeitsaspekten Einfache Metriken: Anzahl der von Änderung betroffenen Anweisungen z.b. mit diff ermittelt je größer der Wert (relativ zur Größe des Änderungsproblems), desto schlechter ist die Wartbarkeit Aufwand Kosten für Personal (Ausrüstung, Testumgebung) Anzahl der Fehler hervorgerufen durch Änderungen gefunden durch Regressionstest nach Auslieferung entdeckt Traditionelle Software-Qualitätsmetriken McCabe, Complexity, Halstead,... Durchführung von Reengineering-Projekten: Portfolio-Analyse Wo beginnen? Portfolio-Analyse relative Wart barkeit gut ausreichend D C schlecht sekundäre Reengineering kandidaten A primäre Reengineering kandidaten E B miserabel Aufgabe oder Wrapping F Wrapping oder Neuentwicklung niedrig Geschäftswert hoch

Durchführung von Reengineering-Projekten: Kostenschätzung Kostenschätzung Faktoren Produkt, z.b. relative Wartbarkeit (wie oben) Metriken der Größe (LOC, Function Points) Aufwand des Testens bzw. bisherige Testüberdeckung (für Regressionstest) Ressourcen, z.b. verfügbare Werkzeugunterstützung inklusive Aufwand für Anpassung bzw. Entwicklung von Werkzeugen Erfahrung des Wartungspersonals Prozess, z.b. bisheriger Aufwand für ähnliche Projekte, idealerweise bezogen auf einzelne Aktivitäten Durchführung von Reengineering-Projekten: Kostenschätzung Kostenschätzung Ideal: Aus den oben genannten Faktoren und den früheren Kosten wird mittels statistischer Analysen ein Kostenmodell entwickelt.

Durchführung von Reengineering-Projekten: Kostenschätzung Alternative Kostenschätzung nach Sneed (1995) Gesamtaufwand = Reengineering-Aufwand + Testaufwand Komplexität Größe [loc] durchschn. Produktivität [loc/pm] RE-Aufwand [pm] = über alle Komponenten Testaufwand = #Testfälle Durchschnittsaufwand-pro-Testfall #Testfälle kann aus zyklometrischer Zahl im Falle der Zweigüberdeckung abgeleitet werden Gewichtung bezüglich Testbarkeit, Testunterstützung, Testumgebung Erfahrungswert: Testaufwand = n RE-Aufwand für 1 n 3 Annahme: Reengineering wird großteils automatisiert. Durchführung von Reengineering-Projekten: Kostenschätzung Projektdauer nach Sneed (1995) Minimale Projektdauer T (ähnlich zu COCOMO): T = 2, 5 Aufwand 0,19 höhere Parallelität als bei Forward-Engineering-Projekten (COCOMO-Faktor ist 0,38)

Durchführung von Reengineering-Projekten: Kosten-Nutzen-Analyse Kosten-Nutzen-Analyse Vergleich des (erwarteten) Nutzens von... Reengineering Neuentwicklung Wrapping Untätigkeit Durchführung von Reengineering-Projekten: Kosten-Nutzen-Analyse Kosten-Nutzen-Faktoren jährliche Wartungskosten jährliche Betriebskosten jährlicher Geschäftswert geschätzte Lebensdauer Dauer von Reengineering, Wrapping bzw. Neuentwicklung Risiko von Reengineering, Wrapping bzw. Neuentwicklung

Durchführung von Reengineering-Projekten: Kosten-Nutzen-Analyse Nutzen Nutzen bei Beibehaltung des Status Quo = (Geschäftswert (Wartungskosten+Betriebskosten)) Lebensdauer Nutzen der Neuentwicklung = (Geschäftswert (Wartungskosten + Betriebskosten)) Entwicklungszeit +(Geschäftswert (Wartungskosten + Betriebskosten )) (Lebensdauer Entwicklungszeit) (Entwicklungskosten Risiko) ohne Berücksichtigung jährlicher Änderungen von Kosten/Nutzen Neuentwicklung kann Lebensdauer verlängern Analoge Betrachtung für Reengineering und Wrapping. Durchführung von Reengineering-Projekten: Kosten-Nutzen-Analyse Weitere zu berücksichtigende Faktoren Time-To-Market-Pressure Neuentwicklung dauert zu lange Benutzerzufriedenheit kodiertes Expertenwissen Moral des Wartungspersonals Programmierer für neue Sprachen oder Konzepte schwer zu finden langjährige Programmierer sträuben sich gegen Neuerung

Durchführung von Reengineering-Projekten: Risikofaktoren Risikofaktoren Risikoanalyse Identifikation der Risiken Gewichtung durch die Möglichkeit von Gegenmaßnahmen sowie der möglichen Verluste Schätzung der Wahrscheinlichkeit des Eintreffens ausgesetztes Risiko = maximaler Verlust Wahrscheinlichkeit Risiko-Faktor = (maximales ausgesetztes Risiko / geschätzte Kosten) + 1 Durchführung von Reengineering-Projekten: Risikofaktoren Typische Risiken I Performanzprobleme Migration von einer Plattform zur anderen oder einer Sprache zur anderen führt oft zu schlechterer Performanz Integrationsprobleme neu hinzu genommene oder renovierte Komponenten passen nicht ins System, weil Merkmale und Annahmen nicht mehr passen Flaschenhals Test Transformation wird oft automatisiert, so dass die Kodierung beschleunigt wird und der Aufwand für Test relativ zunimmt Testfälle sind oft unvollständig oder müssen erst geschaffen werden Nachweis semantischer Äquivalenz ist jedoch unabdingbar Probleme beim Test haben größere Auswirkungen

Durchführung von Reengineering-Projekten: Risikofaktoren Typische Risiken II Akzeptanzprobleme Programmierer verstehen geänderten Code nicht mehr und lehnen ihn deshalb ab Qualitätsziele nicht erreicht Qualität ist gegenwärtig nicht klar quantifizierbar Effekte des Reengineerings treten erst langfristig ein Durchführung von Reengineering-Projekten: Risikofaktoren Projektrisiken nach Sneed (1999) relative Häufigkeit (in %) 60 50 40 30 20 10 Qualitätsmängel Akzeptanzprobleme Flaschenhals Test Integrationsprobleme Performanzprobleme

Durchführung von Reengineering-Projekten: Häufige Fehler Häufige Fehler Überschätzung gegenwärtiger RE-Technologie insbesondere Probleme bei der Interoperabilität von Werkzeugen Notwendigkeit zur Anpassung bei Sprachdialekten Menschliche Faktoren nicht berücksichtigt Non-Egoless-Programming, Vertrautheit mit dem System geht verloren, Programmierer sollten mitunter auch renoviert werden Kostennutzen kann nicht nachgewiesen werden Mangel an Weitsicht Prozess wird nicht renoviert Durchführung von Reengineering-Projekten: Wiederholungsfragen Wiederholungs- und Vertiefungsfragen I Welche Schritte sind zu unternehmen, bevor das eigentliche Projekt beginnt? Welches Problem hat insbesondere die Projektrechtfertigung? Wie ist das Projekt zu rechtfertigen? Welche Einflussfaktoren sollten für die Messung von Wartbarkeit berücksichtigt werden? Wie werden die Systeme, die renoviert werden sollen, ausgewählt? Welche Faktoren sind bei der Kostenschätzung zu berücksichtigen? Was sind typische Risiken bei RE-Projekten? Was sind häufige Fehler bei RE-Projekten?

Durchführung von Reengineering-Projekten: Wiederholungsfragen 1 Sneed 1995 Sneed, Harry: Planning the Reengineering of Legacy Systems. In: IEEE Software (1995), January. beschreibt die Planung von Reengineering-Projekten 2 Sneed 1999 Sneed, Harry: Risks involved in Reengineering Projects. In: Working Conference on Reverse Engineering, IEEE Computer Society Press, Oktober 1999, S. 204 213. beschreibt typische Risiken bei Reengineering-Projekten