Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische...
Transcript of Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische...
Reuse Economics
Harald GALLUniversität ZürichTechnische Universität Wien
http://www.infosys.tuwien.ac.at/teaching/courses/SWV/
(c) 2005, H.Gall Reuse Economics 2
Inhalt
Kosten der Wiederverwendung Kostenschätzungen Technologien und Kosten Fallstudien Reuse Programme Organisatorische Aspekte
(c) 2005, H.Gall Reuse Economics 3
Reuse Kosten
Reuse Investitionskosten Summe der Kosten des Produzenten, um Teile für den Reuse
bereitzustellen
Komponenten Generizität Anzahl der Variationen einer Komponente in Relation zur
Reuse Technologie
Kosten der Wiederverwendung Kosten des Reusers für Finden, Anpassen, Integrieren und
Testen einer wiederverwendbaren Komponente
(c) 2005, H.Gall Reuse Economics 4
Reuse Kostenschätzung
Cno-reuse = Entwicklungskosten ohne Reuse
Reuse Level, R =
Fuse = Relative Kosten für den Reuse einer Komponente typischerweise 0.1 - 0.25 von Entwicklungskosten
Cpart-with-reuse = Cno-reuse * (R * Fuse)
Cpart-with-no-reuse = Cno-reuse * (1 - R)
Cwith-reuse = Cpart-with-reuse + Cpart-with-no-reuse
Cwith-reuse = Cno-reuse * (R * Fuse + (1 - R))
total size of reused components
size of application
(c) 2005, H.Gall Reuse Economics 5
Beispiel: R = 50%, Fuse = 0.2 Kosten für die Entwicklung mit Reuse = 60% der
Entwicklungskosten ohne Reuse
Csaved = Cno-reuse - Cwith-reuse
= Cno-reuse * (1 - (R * Fuse + (1 - R)))= Cno-reuse * R * (1 - Fuse)
ROIsaved =
= R * (1 - Fuse)
Reuse Kostenschätzung /2
Csaved
Cno-reuse
(c) 2005, H.Gall Reuse Economics 6
Reuse Kostenschätzung /3
Fcreate = Relative Kosten zur Erzeugung und Verwaltungeines reusable component systems
Ccomponent-systems = Kosten für die Entwicklung von genugcomponent systems für R Prozent
Fcreate >> Fuse 1 <= Fcreate <= 2.5
Cfamily-saved = n * Csaved - Ccomponent-system
= Cno-reuse * (n * R * (1 - Fuse) - R * Fcreate)
(c) 2005, H.Gall Reuse Economics 7
Reuse Kostenschätzung /4
ROI = Cfamily-saved
Ccomponent-systems
n * R * (1 - Fuse) - R * Fcreate
R * Fcreate=
n * (1 - Fuse) - Fcreate
Fcreate=
Beispiel: Fuse = 0.2 und Fcreate = 1.5
ROI = n * 0.8 - 1.5
1.5Break-even mit n > 2
(c) 2005, H.Gall Reuse Economics 8
Beispiel 1
Berechnen Sie die Kosten für folgendes Wiederverwendungsszenario:Geschätzte zu entwickelnde Codezeilen (LOC): 200.000 LOC in C++
Geschätzte wiederverwendbare Codezeilen: 50.000 LOC
Relative Kosten für die Wiederverwendung der vorhandenen Codezeilen:20% von den Entwicklungskosten
a) Entwicklungskosten Teil ohne Reuse =
b) Entwicklungskosten Teil mit Reuse =
c) Entwicklungskosten gesamt =
d) ROI =
e) Wann ist für ein F_create = 2.0 der Break-Even-Point erreicht?(bei n > ? )
(c) 2005, H.Gall Reuse Economics 9
Beispiel 2
Wiederverwendbarkeit und Kosten:
Warum ist LOC (lines of code) kein ausreichendes Mass für dieWiederverwendbarkeit einer Komponente?Welche Faktoren müssen berücksichtigt werden, um von einerreusable component sprechen zu können?
Was würde ein theoretisches F_use von 1,50 bedeuten, wenn dienormalen Entwicklungskosten für eine Komponente der Grösse n einenWert von 60 Personentagen betragen?Was bedeutet dies für eine Komponente der Grösse 2n ? Würden Siedie Komponente wiederverwenden oder neu entwickeln?
(c) 2005, H.Gall Reuse Economics 10
Reuse Investment Relation
(c) 2005, H.Gall Reuse Economics 11
Reuse Technologien & Kosten
Reuse-orienteddocumentation of
work products
Codeskeletons
Unstructuredcollections of
as-is components
Structuredcollections of
as-is components
Structured collections(libraries) of
generic components
Multilevelgeneric components
(Ada)
Application-programgenerators
Intelligent front-endswith libraries of
multilevel generics
Application-orientedprogramming
languages
Reuse investment(producer) costs
Componentgenerality
(reuse power)
Cost toreuse:
high
medium
low
very low
(c) 2005, H.Gall Reuse Economics 12
Fallstudien
Fallstudie Zeitraum non-commentsource statements
programminglanguage
EntwicklungsOS
Ziel OS
HP’sManufacturingProductivitySection
1983-1994+
55 KNCSS(685 reusableworkproducts)
Pascal, SPL MPEXL fürHP3000
MPEXL
HP’s SanDiegoGraphicsDivision
1987 -1994+
20 KNCSS C HPUX PSOS
aus W.C. Lim, IEEE Software, Sept. 1994
(c) 2005, H.Gall Reuse Economics 13
Ökonomische Profile von Reuse Programmen
Organisation Manufacturing Technical Graphics
Zeithorizont 1983-1992(10 Jahre)
1987-1994(8 Jahre)
Erforderliche Start-upRessourcen
26 Engineering Monate(für 6 Produkte)USD 0.3 Millionen
107 Engineering Monate(3 Engineers für 3 Jahre)USD 0.3 Millionen
Laufende Ressourcen 54 Engineering Monate(1 halber Engineer für 9Jahre)USD 0.3 Millionen
99 Engineering Monate(1-3 Engineers für 5 Jahre)USD 0.7 Millionen
Gesamtkosten 80 Engineering MonateUSD 1 Million
206 Engineering MonateUSD 2.6 Millionen
Gesamtersparnis 328 Engineering MonateUSD 4.1 Mio
446 Engineering MonateUSD 5.6 Mio
Return on Investment(Ersparnis/Kosten)
410% 216%
Net present value 125 Engineering MonateUSD 1.6 Mio
75 Engineering MonateUSD 0.9 Mio
Break-even Jahr 2. Jahr 6. Jahraus
W.C
. Lim
, IE
EE
Sof
twar
e, S
ept.
1994
(c) 2005, H.Gall Reuse Economics 14
Qualität, Produktivität, Time-to-Market
Organisation Manufacturing Technical Graphics
Qualität 51% Fehlerreduktion 24% Fehlerreduktion
Produktivität 57% Erhöhung 40% Erhöhung
Time-to-Market n.v. 42% Reduktion
aus W.C. Lim, IEEE Software, Sept. 1994
(c) 2005, H.Gall Reuse Economics 15
Kosten
Domain Air-traffic-control System
Menu- undForms-MgmtSystem
GraphicsFirmware
Relative Kosten zurErzeugung vonreusable Code
200 % 120 - 480% 111%
Relative Kosten derWiederverwendung
10 - 20% 10 - 63% 19%
aus W.C. Lim, IEEE Software, Sept. 1994
(c) 2005, H.Gall Reuse Economics 16
Reuse Programme
i.a. 3 Phasen Einführung
Fokus auf Technologie TransferDurchführbarkeitsstudienPilot Projekt
Institutionalisierung Integration von Reuse in den Software EntwicklungsprozeßEinführung von Tools und SchulungMetriken zur ÜberprüfungMotivation
AufrechterhaltungReuse als Teil der UnternehmensphilosophieAusbau des Programms
(c) 2005, H.Gall Reuse Economics 17
Reuse Programme /2
SPC 5 Phasen: ad hoc reuse
repeatable reuse
portable reuse
architectural reuse
systematic reuse
(c) 2005, H.Gall Reuse Economics 18
Organisatorische Probleme
technische vs. organisatorische Probleme Mitarbeiter “glauben” nicht an die Machbarkeit
Kreativität wird eingeschränkt
mangelndes Vertrauen in die Qualität der Komponenten (= in dieArbeit anderer)
es gibt keine standardisierte Ausbildung, um Reuse zu erlernen
mangelndes Vertrauen des Managements in die erzielbarenErfolge
Eine Menge von Personen muß vom Reuse Programmüberzeugt werden!
(c) 2005, H.Gall Reuse Economics 19
Management Überzeugung
entscheidend für Einführung und Erfolg des ReuseProgramms explizite Unterstützung (Unternehmensleitlinien)
insbesondere mittleres Management oft unter Kostendruck
finanzielle Unterstützung (Projekte, Schulung, etc.)
Einsicht über Phasen der Programm-Einführungvorerst erhöhte Aufwändemittel- bis langfristigen Nutzen erkennen “Durchhänger” überwinden
Start mit Pilot-Projekt und Nutzen kleiner Erfolge für Motivation
(c) 2005, H.Gall Reuse Economics 20
Engineer Überzeugung
Überzeugung der “Ausführenden” des ReuseProgramms meist keine Erfahrung mit Reuse
unvollständige SichtweiseÄngste
Zuverlässigkeit, Effizienz, ... der Komponenten wiederzuverwendender Code ist nicht verständlich Einschränkung der Kreativität der Arbeit
abhängig von bestehender Sichtweise der SoftwareEntwicklung (Software = Kunstwerk)
Lösung = Überzeugung, Schulung, ...
(c) 2005, H.Gall Reuse Economics 21
Organisatorische Strukturen
Organisatorische Adaptierungen betreffen nicht nurtatsächliche Strukturen, sondern auch informelleStrukturen informelle Kommunikationskanäle interne politische Strukturen Arbeitsplatz- bzw. Rollen-Definition
durch Reuse Programm entstehen vielfach neue organisatorische Einheiten neue Rollen für (bestimmte) Mitarbeiter
verschiedene Ansätze der organisatorischenStrukturierung
(c) 2005, H.Gall Reuse Economics 22
Reuse Process Model: Experience Factory
(c) 2005, H.Gall Reuse Economics 23
Component extraction
(c) 2005, H.Gall Reuse Economics 24
Reusability Attributes
C ... Cyclomatic complexityR ... RegularityRF... Reuse FrequencyV ... Volume
(c) 2005, H.Gall Reuse Economics 25
SCL – Rollen & Artifakte
Organisationeiner SoftwareComponentsLibrary
(c) 2005, H.Gall Reuse Economics 27
Zusammenfassung
Allgemeine Struktur / Aufbau einer SCL Librarian User (User-Interface) Query-System Database
Komponenten in einer SCL Spezifikation-Design-Implementierung-Dokumentation
Gewinnung von Komponenten from scratch versus extraction (=reverse engineering)
Die Klassifikation von Komponenten hierarchisch (enumerativ) versus flach (Facetten)
Attributierung von Komponenten