Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische...

27
Reuse Economics Harald GALL Universität Zürich Technische Universität Wien http://www.infosys.tuwien.ac.at/teaching/courses/SWV/

Transcript of Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische...

Page 1: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

Reuse Economics

Harald GALLUniversität ZürichTechnische Universität Wien

http://www.infosys.tuwien.ac.at/teaching/courses/SWV/

Page 2: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(c) 2005, H.Gall Reuse Economics 2

Inhalt

Kosten der Wiederverwendung Kostenschätzungen Technologien und Kosten Fallstudien Reuse Programme Organisatorische Aspekte

Page 3: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(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

Page 4: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(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

Page 5: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(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

Page 6: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(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)

Page 7: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(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

Page 8: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(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 > ? )

Page 9: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(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?

Page 10: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(c) 2005, H.Gall Reuse Economics 10

Reuse Investment Relation

Page 11: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(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

Page 12: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(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

Page 13: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(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

Page 14: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(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

Page 15: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(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

Page 16: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(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

Page 17: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(c) 2005, H.Gall Reuse Economics 17

Reuse Programme /2

SPC 5 Phasen: ad hoc reuse

repeatable reuse

portable reuse

architectural reuse

systematic reuse

Page 18: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(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!

Page 19: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(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

Page 20: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(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, ...

Page 21: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(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

Page 22: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(c) 2005, H.Gall Reuse Economics 22

Reuse Process Model: Experience Factory

Page 23: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(c) 2005, H.Gall Reuse Economics 23

Component extraction

Page 24: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(c) 2005, H.Gall Reuse Economics 24

Reusability Attributes

C ... Cyclomatic complexityR ... RegularityRF... Reuse FrequencyV ... Volume

Page 25: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(c) 2005, H.Gall Reuse Economics 25

SCL – Rollen & Artifakte

Page 26: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

Organisationeiner SoftwareComponentsLibrary

Page 27: Reuse Economics - TU Wien€¦ · Reuse Economics Harald GALL Universität Zürich Technische Universität Wien

(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