SlideShare ist ein Scribd-Unternehmen logo
1 von 48
ReUse: Challenges and
Business Success
Harald Gall
Department of Informatics
software evolution and architecture lab
seal.ifi.uzh.ch/gall
Vienna, Nov 26, 2010
2
Objects and reuse …
Reuse
… some practical observations
3
Outline
Reuse Challenges
Reuse Technologies
software analysis & visualization
product lines, feature engineering & variability
Economics of reuse
cost/benefit relation
cost estimation
Case Studies & Empirical Investigations
Business Success
Conclusions
Reuse
4
I. REUSE CHALLENGES
Reuse
5
Software Reuse
 Software Reuse (Mili et al., 2002)
“Software reuse is the process whereby an organization
defines a set of systematic operating procedures to
specify, produce, classify, retrieve, and adapt software
artifacts for the purpose of using them in its development
activities.”
Reuse
6
Reusable Software Engineering(Freeman 1983)
Generic Systems
Functional Collections
Software Architecture
Source Code
Tech-transfer
knowledge
Utilization
knowledge
Application-area
knowledge
Development
knowledge
B cannot be realized without A
Environmental
External
Functional Architectures
Logical Structures
Code Fragments
Reuse
7
Challenges of Software Reuse
 Organizational aspects
 Operational and technological infrastructure
 Reuse introduction
 Technical aspects
 Domain engineering
 Component engineering
 Application engineering
 Economical aspects
 Reuse metrics
 Reuse cost estimation
 Legal aspects
 Copyright
 Warranty
 Open Source
Reuse
8
Challenge to the benefit (1)
Reuse
(Sommerville, 2010)
9
Challenge to the benefit (2)
Reuse
10
Reuse problems (1)
Reuse
11
Reuse problems (2)
Reuse
12
II. REUSE TECHNOLOGIES
Reuse
13
The reuse landscape
Reuse
14
Software Evolution Metrics
Reuse
Fan-in
invoke
access
Class/module metrics
files, directories,
packages, ...
global variables,
NOM, NOA, ...
Change dependencies
change couplings
bugs, issues
Fan-out
invoke
access
Martin Pinzger, Harald C. Gall, Michael Fischer, and Michele Lanza, Visualizing Multiple Evolution Metrics
In Proceedings of the ACM Symposium on Software Visualization, 2005.
15
Mozilla Module DOM: 0.92 -> 1.7
Reuse
16
Mozilla: Change Dependencies
Kiviat graph:
26 metrics
7 Mozilla modules
7 subsequent releases
Reuse
17
Software as City
Richard Wettel, Michele Lanza. Visualizing Software Systems as Cities. In VISSOFT 2007
Reuse
18
Buildings of ArgoUML
Reuse
19
III. REUSE ECONOMICS
Reuse
20
Reuse investment
 Reuse investment cost
 cost of producer to provide components for reuse
 Component generality
 variations of a component in relation to the reuse technology
 Cost of reuse
 cost of reuser for finding, adapting, integrating, and testing of a
reusable component
Reuse
21
Reuse investment relation
Reuse
22
Reuse cost estimation (1)
 Cno-reuse = development cost without reuse
 Reuse Level, R =
 Fuse = relative cost for the reuse of a component
 typically 0.1 - 0.25 of development cost
 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))
Reuse
total size of reused components
size of application
23
Reuse cost estimation (2)
 Example: R = 50%, Fuse = 0.2
 cost for developing with reuse = 60% of cost for developing
without reuse
 Csaved = Cno-reuse - Cwith-reuse
= Cno-reuse * (1 - (R * Fuse + (1 - R)))
= Cno-reuse * R * (1 - Fuse)
 ROIsaved =
= R * (1 - Fuse)
Reuse
Csaved
Cno-reuse
24
Reuse cost estimation (3)
 Fcreate = relative cost for the creation and management of
a reusable component system
 Ccomponent-systems = cost for developing enough
components for R percent
 Fcreate >> Fuse 1 <= Fcreate <= 2.5
 Cfamily-saved = n * Csaved - Ccomponent-system
= Cno-reuse * (n * R * (1 - Fuse) - R * Fcreate)
Reuse
25
Reuse cost estimation (4)
Reuse
ROI =
Cfamily-saved
Ccomponent-systems
n * R * (1 - Fuse) - R * Fcreate
R * Fcreate
=
n * (1 - Fuse) - Fcreate
Fcreate
=
Example: Fuse = 0.2 and Fcreate = 1.5
ROI =
n * 0.8 - 1.5
1.5
Break-even mit n > 2
26
COPLIMO – Software Product Line
Life Cycle Cost Estimation
Reuse
(Boehm et al., 2004)
27
Relative Cost of Writing for Reuse
 RCWR is the added cost of writing software to be most cost-effectively
reused across a product line family of applications, relative to the cost
of writing a standalone application.
 CRCWR = LaborRate * COPLIMORCWR + SoftwareQualityCostRCWR
 CRCWR = LaborRate * [COCOMO baseline (initialSoftwareSize) *
EffortAdjustment for RCWR] + [ CostPerDefect *
(1- TestingEffectiveness) *
(COQUALMO(initialSoftwareSize, EMPL)],
where EMPL is the Effort Multiplier of the COCOMO II cost drivers for the product line
development and COCOMO baseline is calculated as 2.94 * (software size1.0997 *
PI(EM)
Reuse
(Boehm et al., 2006)
28
Relative Cost for Reuse
 RCR is the cost of reusing the software in a new
application with the same product line family, relative to
developing newly built software for the application.
 CRCR = LaborRate * COPLIMORCR + SoftwareQualityCostRCR
 CRCR = LaborRate * [COCOMO baseline (softwareSizeForReuse)] +
[CostPerDefect * (1 – TestingEffectiveness) *
COQUALMO(softwareSizeForReuse, EMPL)]
Reuse
(Boehm et al., 2006)
29
Estimated quality-based SPL cost
 CPL(N) = CRCWR + (N-1) * CRCR
where N is the number of products to be developed in SPL
CPL(N) = $6’333 + (N - 1) * $2’174
Reuse
(Boehm et al., 2006)
30
Saving of NPL vs. PL
Reuse
31
IV. CASE STUDIES
Reuse
32
A. HP case study
Reuse
aus W.C. Lim, IEEE Software, Sept. 1994
33
Reuse program economic profiles
Reuse
ausW.C.Lim,IEEESoftware,Sept.1994
34
Quality, productivity, time-to-Market
Reuse
aus W.C. Lim, IEEE Software, Sept. 1994
35
Reuse cost
Reuse
aus W.C. Lim, IEEE Software, Sept. 1994
36
B. Ericsson study (2008)
 3y software reuse in 2 large telecom products (Norway and Sweden)
 reused components were developed in-house and shared in a
product-family approach
 reuse as risk mitigation since development moved to Sweden
 quantitative data mined and qualitative observations
Reuse
(Mohagheghi & Conradi, 2008)
37
Ericsson study, continued
 Component-based architecture (CORBA)
 Components programmed in Erlang, C, and some Java
(GUI)
 Data analyzed:
 Trouble Reports: failures observed by testers or users
 Change Requests: changes to requirements after baseline
 KLOC and modified KLOC between releases
 Person Hours used in system test
 code modification rate: (m-KLOC/KLOC)*100
 reuse rate: size of reused code
Reuse
38
Ericsson study, continued
 Quality benefits of large-scale reuse programs
 significant benefits in terms of lower fault density and
 less modified code between releases of reused code
 reuse reduced risks and lead time of second product since it was
developed based on a tested platform
 reuse and standardization of software architecture, processes
and skills can help reduce organizational restructuring risks
 Study showed that there is a need to adapt software
processes such as RUP for reuse, and define metrics to
evaluate corporate/project/software goals
Reuse
39
V. BUSINESS SUCCESS
Reuse
40
Strategies for Software Reuse
 Potential reuse adopters must be able to understand
reuse strategy alternatives and their implications
 Organizations must make an informed decision
 The study:
 survey data from 71 software development groups (of 67 different
organizations), 80% working in organizations > 200 employees
 software engineers, development consultants, project managers,
software engineering researchers
 to empirically analyze dimensions that describe the practices
employed in reuse programs
 classify reuse settings and assess their potential for success
Reuse
(Rothenberger et al., 2003)
41
Reuse archetypes
Reuse
(Rothenberger et al., 2003)
42
Software Reuse Strategies: Findings
 An organization’s reuse success is not dependent on the
use of object-oriented techniques. Nevertheless, object
technologies may be conducive to reuse, yet the other
dimensions ultimately determine reuse success.
 The qualitative analysis yielded additional insights:
 An improvement of software quality can be achieved without an
emphasis on the reuse process
 An organization will only obtain the full benefit of reuse if a
formal reuse program is employed and subject to quality control
through formal planning and continuous improvement.
Reuse
(Rothenberger et al., 2003)
43
CONCLUSIONS
Reuse
44
Conclusions
Reuse
45
References
 B. Boehm, A Winsor Brown, R. Madachy, Y. Yang, A Software Product Line Life Cycle Cost Estimation Model, in
Proceedings of the 2004 Symposium on Empirical Software Engineering, IEEE, 2004.
 B.H. Peter In, J. Baik, S. Kim, Y. Yang, B. Boehm, Quality-Based Cost Estimation Model for the Product Line Life
Cycle, Communications of the ACM, Vol. 49(12), Dec 2006.
 W.C. Lim, Effects of reuse on quality, productivity, and economics, IEEE Software, Vol.11(5), pp.23-30, Sep 1994,
doi: 10.1109/52.311048
 D. Lucredio, K. dos Santos Brito, A. Alvaro, V.C. Garcia, E.S. de Almeida, R.P. de Mattos Fortes, S.L.Meira,
Software reuse: the Brazilian indudustry scenario, Journal of Systems and Software, 81, Elsevier, 2008.
 H. Mili, A. Mili, S. Yacoub, E. Addy, Reuse Based Software Engineering: Techniques, Organizations, and
Measurement, Wiley, 2001.
 P. Mohagheghi, R. Conradi, An Empirical Investigation of Software Reuse Benefits in a Large Telecom Product,
ACM Transactions on Software Engineering and Methodology, Vol. 17(3), June 2008.
 P. Mohagheghi, R. Conradi, O.M. Killi, H. Schwarz, An Empirical Study of Software Reuse vs. Defect-Density and
Stability, in Proceedings of the 26th International Conference on Software Engineering (ICSE), IEEE, 2004.
 M.A. Rothenberger, K.J. Dooley, U.R. Kulkarni, Strategies for Software Reuse: A Principal Component Analysis of
Reuse Practices, Transactions on Software Engineering, Vol. 29(8), Sept. 2003.
 K.C. Desouza, Y. Awazu, A. Tiwana, Four Dynamics for Bringing Use back into Software Reuse, Communications
of the ACM, Vol. 49(1), Jan. 2006.
 T. Ravichandran, M.A. Rothenberger, Software Reuse Strategies and Component Markets, Communicatinos of
the ACM, Vol. 46(8), Aug. 2003.
Reuse
46
BACKUP
Reuse
4747
COCOMO II rating for software understanding
Very low Low Nominal High Very high
Structure Very low
cohesion, high
coupling,
spaghetti code
Moderately low
cohesion, high
coupling
Reasonably
well-
structured;
some weak
areas
High cohesion,
low coupling
Strong
modularity,
information-
hiding in data
and control
structures
Application
clarity
No match
between
program and
application
world views
Some
correlation
between
program and
application
Moderate
correlation
between
program and
application
Good
correlation
between
program and
application
Clear match
between
program and
application
world views
Self-
descriptiveness
Obscure code;
documentation
missing,
obscure or
obsolete
Some code
commentary
and headers;
some useful
documentation
Moderate level
of code
commentary,
headers,
documentation
Good code
commentary
and headers;
useful
documentation;
some weak
areas
Self-descriptive
code;
documentation
up-to-date,
well-organized,
with design
rationale
SU increment 50 40 30 20 10
COCOMO II - Software Understanding (Boehm et al., 2004)
4848
COCOMO II - Assessment & Assimilation effort
(Boehm et al., 2004)
Assessment and
Assimilation increment
Level of assessment and
assimilation effort
0 None
2 Basic component search and
documentation
4 Some component test and
evaluation
6 Considerable component test and
evaluation
8 Extensive component test and
evaluation

Weitere ähnliche Inhalte

Was ist angesagt?

The benefits of software reuse
The benefits of software reuseThe benefits of software reuse
The benefits of software reuseEntando
 
SQA - chapter 13 (Software Quality Infrastructure)
SQA - chapter 13 (Software Quality Infrastructure)SQA - chapter 13 (Software Quality Infrastructure)
SQA - chapter 13 (Software Quality Infrastructure)uma sree
 
Software Engineering unit 4
Software Engineering unit 4Software Engineering unit 4
Software Engineering unit 4Abhimanyu Mishra
 
Software Quality Assurance
Software Quality Assurance Software Quality Assurance
Software Quality Assurance ShashankBajpai24
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLESwarnima Tiwari
 
vehicle management system project report
vehicle management system project reportvehicle management system project report
vehicle management system project reportAshik Khan
 
LEGACY SYSTEM In Software Engineering By NADEEM AHMED
LEGACY SYSTEM In Software Engineering By NADEEM AHMED LEGACY SYSTEM In Software Engineering By NADEEM AHMED
LEGACY SYSTEM In Software Engineering By NADEEM AHMED NA000000
 
Software myths | Software Engineering Notes
Software myths | Software Engineering NotesSoftware myths | Software Engineering Notes
Software myths | Software Engineering NotesNavjyotsinh Jadeja
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenancePrafull Johri
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceAman Adhikari
 

Was ist angesagt? (20)

The benefits of software reuse
The benefits of software reuseThe benefits of software reuse
The benefits of software reuse
 
SQA - chapter 13 (Software Quality Infrastructure)
SQA - chapter 13 (Software Quality Infrastructure)SQA - chapter 13 (Software Quality Infrastructure)
SQA - chapter 13 (Software Quality Infrastructure)
 
Software Reuse
Software ReuseSoftware Reuse
Software Reuse
 
Software Engineering unit 4
Software Engineering unit 4Software Engineering unit 4
Software Engineering unit 4
 
Legacy system.
Legacy system.Legacy system.
Legacy system.
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Importance of software engineering
Importance of software engineeringImportance of software engineering
Importance of software engineering
 
Component level design
Component   level designComponent   level design
Component level design
 
Software Quality Assurance
Software Quality Assurance Software Quality Assurance
Software Quality Assurance
 
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 ppt on sOFTWARE DEVELOPMENT LIFE CYCLE ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
 
vehicle management system project report
vehicle management system project reportvehicle management system project report
vehicle management system project report
 
LEGACY SYSTEM In Software Engineering By NADEEM AHMED
LEGACY SYSTEM In Software Engineering By NADEEM AHMED LEGACY SYSTEM In Software Engineering By NADEEM AHMED
LEGACY SYSTEM In Software Engineering By NADEEM AHMED
 
Software myths | Software Engineering Notes
Software myths | Software Engineering NotesSoftware myths | Software Engineering Notes
Software myths | Software Engineering Notes
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
System Engineering Unit-1
System Engineering Unit-1System Engineering Unit-1
System Engineering Unit-1
 
Requirements Validation
Requirements ValidationRequirements Validation
Requirements Validation
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Google App Engine ppt
Google App Engine  pptGoogle App Engine  ppt
Google App Engine ppt
 
software characteristics
software characteristicssoftware characteristics
software characteristics
 

Ähnlich wie ReUse Challenges and Business Success

A Survey of Software Reusability
A Survey of Software ReusabilityA Survey of Software Reusability
A Survey of Software ReusabilityIJERA Editor
 
An Approach to Calculate Reusability in Source Code Using Metrics
An Approach to Calculate Reusability in Source Code Using MetricsAn Approach to Calculate Reusability in Source Code Using Metrics
An Approach to Calculate Reusability in Source Code Using MetricsIJERA Editor
 
IJCER (www.ijceronline.com) International Journal of computational Engineeri...
 IJCER (www.ijceronline.com) International Journal of computational Engineeri... IJCER (www.ijceronline.com) International Journal of computational Engineeri...
IJCER (www.ijceronline.com) International Journal of computational Engineeri...ijceronline
 
IRJET- Code Reuse & Reusability of the Software
IRJET- Code Reuse & Reusability of the SoftwareIRJET- Code Reuse & Reusability of the Software
IRJET- Code Reuse & Reusability of the SoftwareIRJET Journal
 
A Cost Estimation Model For Reuse Based Software Program
A Cost Estimation Model For Reuse Based Software ProgramA Cost Estimation Model For Reuse Based Software Program
A Cost Estimation Model For Reuse Based Software ProgramIOSR Journals
 
Reusability Framework for Cloud Computing
Reusability Framework for Cloud ComputingReusability Framework for Cloud Computing
Reusability Framework for Cloud ComputingDr Sukhpal Singh Gill
 
International Journal of Computational Engineering Research(IJCER)
 International Journal of Computational Engineering Research(IJCER)  International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER) ijceronline
 
Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...
Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...
Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...IRJET Journal
 
A controlled experiment in assessing and estimating software maintenance tasks
A controlled experiment in assessing and estimating software maintenance tasks A controlled experiment in assessing and estimating software maintenance tasks
A controlled experiment in assessing and estimating software maintenance tasks sadique_ghitm
 
A METRICS -BASED MODEL FOR ESTIMATING THE MAINTENANCE EFFORT OF PYTHON SOFTWARE
A METRICS -BASED MODEL FOR ESTIMATING THE MAINTENANCE EFFORT OF PYTHON SOFTWAREA METRICS -BASED MODEL FOR ESTIMATING THE MAINTENANCE EFFORT OF PYTHON SOFTWARE
A METRICS -BASED MODEL FOR ESTIMATING THE MAINTENANCE EFFORT OF PYTHON SOFTWAREijseajournal
 
Advanced Software Engineering.ppt
Advanced Software Engineering.pptAdvanced Software Engineering.ppt
Advanced Software Engineering.pptRvishnupriya2
 
Developing reusable software components for distributed embedded systems
Developing reusable software components for distributed embedded systemsDeveloping reusable software components for distributed embedded systems
Developing reusable software components for distributed embedded systemseSAT Publishing House
 
Algorithmic Software Cost Estimation V2(1) (1).pptx
Algorithmic Software Cost Estimation V2(1) (1).pptxAlgorithmic Software Cost Estimation V2(1) (1).pptx
Algorithmic Software Cost Estimation V2(1) (1).pptxsadeepaJayatissa1
 
Approaches and Challenges of Software Reusability: A Review of Research Liter...
Approaches and Challenges of Software Reusability: A Review of Research Liter...Approaches and Challenges of Software Reusability: A Review of Research Liter...
Approaches and Challenges of Software Reusability: A Review of Research Liter...IRJET Journal
 
Refactoring for Software Architecture Smells - International Workshop on Refa...
Refactoring for Software Architecture Smells - International Workshop on Refa...Refactoring for Software Architecture Smells - International Workshop on Refa...
Refactoring for Software Architecture Smells - International Workshop on Refa...Ganesh Samarthyam
 
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...acijjournal
 
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...acijjournal
 

Ähnlich wie ReUse Challenges and Business Success (20)

A Survey of Software Reusability
A Survey of Software ReusabilityA Survey of Software Reusability
A Survey of Software Reusability
 
An Approach to Calculate Reusability in Source Code Using Metrics
An Approach to Calculate Reusability in Source Code Using MetricsAn Approach to Calculate Reusability in Source Code Using Metrics
An Approach to Calculate Reusability in Source Code Using Metrics
 
D502023439
D502023439D502023439
D502023439
 
D502023439
D502023439D502023439
D502023439
 
IJCER (www.ijceronline.com) International Journal of computational Engineeri...
 IJCER (www.ijceronline.com) International Journal of computational Engineeri... IJCER (www.ijceronline.com) International Journal of computational Engineeri...
IJCER (www.ijceronline.com) International Journal of computational Engineeri...
 
IRJET- Code Reuse & Reusability of the Software
IRJET- Code Reuse & Reusability of the SoftwareIRJET- Code Reuse & Reusability of the Software
IRJET- Code Reuse & Reusability of the Software
 
Art06
Art06Art06
Art06
 
A Cost Estimation Model For Reuse Based Software Program
A Cost Estimation Model For Reuse Based Software ProgramA Cost Estimation Model For Reuse Based Software Program
A Cost Estimation Model For Reuse Based Software Program
 
Reusability Framework for Cloud Computing
Reusability Framework for Cloud ComputingReusability Framework for Cloud Computing
Reusability Framework for Cloud Computing
 
International Journal of Computational Engineering Research(IJCER)
 International Journal of Computational Engineering Research(IJCER)  International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 
Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...
Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...
Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...
 
A controlled experiment in assessing and estimating software maintenance tasks
A controlled experiment in assessing and estimating software maintenance tasks A controlled experiment in assessing and estimating software maintenance tasks
A controlled experiment in assessing and estimating software maintenance tasks
 
A METRICS -BASED MODEL FOR ESTIMATING THE MAINTENANCE EFFORT OF PYTHON SOFTWARE
A METRICS -BASED MODEL FOR ESTIMATING THE MAINTENANCE EFFORT OF PYTHON SOFTWAREA METRICS -BASED MODEL FOR ESTIMATING THE MAINTENANCE EFFORT OF PYTHON SOFTWARE
A METRICS -BASED MODEL FOR ESTIMATING THE MAINTENANCE EFFORT OF PYTHON SOFTWARE
 
Advanced Software Engineering.ppt
Advanced Software Engineering.pptAdvanced Software Engineering.ppt
Advanced Software Engineering.ppt
 
Developing reusable software components for distributed embedded systems
Developing reusable software components for distributed embedded systemsDeveloping reusable software components for distributed embedded systems
Developing reusable software components for distributed embedded systems
 
Algorithmic Software Cost Estimation V2(1) (1).pptx
Algorithmic Software Cost Estimation V2(1) (1).pptxAlgorithmic Software Cost Estimation V2(1) (1).pptx
Algorithmic Software Cost Estimation V2(1) (1).pptx
 
Approaches and Challenges of Software Reusability: A Review of Research Liter...
Approaches and Challenges of Software Reusability: A Review of Research Liter...Approaches and Challenges of Software Reusability: A Review of Research Liter...
Approaches and Challenges of Software Reusability: A Review of Research Liter...
 
Refactoring for Software Architecture Smells - International Workshop on Refa...
Refactoring for Software Architecture Smells - International Workshop on Refa...Refactoring for Software Architecture Smells - International Workshop on Refa...
Refactoring for Software Architecture Smells - International Workshop on Refa...
 
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...
 
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...
 

Kürzlich hochgeladen

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Kürzlich hochgeladen (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

ReUse Challenges and Business Success

  • 1. ReUse: Challenges and Business Success Harald Gall Department of Informatics software evolution and architecture lab seal.ifi.uzh.ch/gall Vienna, Nov 26, 2010
  • 2. 2 Objects and reuse … Reuse … some practical observations
  • 3. 3 Outline Reuse Challenges Reuse Technologies software analysis & visualization product lines, feature engineering & variability Economics of reuse cost/benefit relation cost estimation Case Studies & Empirical Investigations Business Success Conclusions Reuse
  • 5. 5 Software Reuse  Software Reuse (Mili et al., 2002) “Software reuse is the process whereby an organization defines a set of systematic operating procedures to specify, produce, classify, retrieve, and adapt software artifacts for the purpose of using them in its development activities.” Reuse
  • 6. 6 Reusable Software Engineering(Freeman 1983) Generic Systems Functional Collections Software Architecture Source Code Tech-transfer knowledge Utilization knowledge Application-area knowledge Development knowledge B cannot be realized without A Environmental External Functional Architectures Logical Structures Code Fragments Reuse
  • 7. 7 Challenges of Software Reuse  Organizational aspects  Operational and technological infrastructure  Reuse introduction  Technical aspects  Domain engineering  Component engineering  Application engineering  Economical aspects  Reuse metrics  Reuse cost estimation  Legal aspects  Copyright  Warranty  Open Source Reuse
  • 8. 8 Challenge to the benefit (1) Reuse (Sommerville, 2010)
  • 9. 9 Challenge to the benefit (2) Reuse
  • 14. 14 Software Evolution Metrics Reuse Fan-in invoke access Class/module metrics files, directories, packages, ... global variables, NOM, NOA, ... Change dependencies change couplings bugs, issues Fan-out invoke access Martin Pinzger, Harald C. Gall, Michael Fischer, and Michele Lanza, Visualizing Multiple Evolution Metrics In Proceedings of the ACM Symposium on Software Visualization, 2005.
  • 15. 15 Mozilla Module DOM: 0.92 -> 1.7 Reuse
  • 16. 16 Mozilla: Change Dependencies Kiviat graph: 26 metrics 7 Mozilla modules 7 subsequent releases Reuse
  • 17. 17 Software as City Richard Wettel, Michele Lanza. Visualizing Software Systems as Cities. In VISSOFT 2007 Reuse
  • 20. 20 Reuse investment  Reuse investment cost  cost of producer to provide components for reuse  Component generality  variations of a component in relation to the reuse technology  Cost of reuse  cost of reuser for finding, adapting, integrating, and testing of a reusable component Reuse
  • 22. 22 Reuse cost estimation (1)  Cno-reuse = development cost without reuse  Reuse Level, R =  Fuse = relative cost for the reuse of a component  typically 0.1 - 0.25 of development cost  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)) Reuse total size of reused components size of application
  • 23. 23 Reuse cost estimation (2)  Example: R = 50%, Fuse = 0.2  cost for developing with reuse = 60% of cost for developing without reuse  Csaved = Cno-reuse - Cwith-reuse = Cno-reuse * (1 - (R * Fuse + (1 - R))) = Cno-reuse * R * (1 - Fuse)  ROIsaved = = R * (1 - Fuse) Reuse Csaved Cno-reuse
  • 24. 24 Reuse cost estimation (3)  Fcreate = relative cost for the creation and management of a reusable component system  Ccomponent-systems = cost for developing enough components for R percent  Fcreate >> Fuse 1 <= Fcreate <= 2.5  Cfamily-saved = n * Csaved - Ccomponent-system = Cno-reuse * (n * R * (1 - Fuse) - R * Fcreate) Reuse
  • 25. 25 Reuse cost estimation (4) Reuse ROI = Cfamily-saved Ccomponent-systems n * R * (1 - Fuse) - R * Fcreate R * Fcreate = n * (1 - Fuse) - Fcreate Fcreate = Example: Fuse = 0.2 and Fcreate = 1.5 ROI = n * 0.8 - 1.5 1.5 Break-even mit n > 2
  • 26. 26 COPLIMO – Software Product Line Life Cycle Cost Estimation Reuse (Boehm et al., 2004)
  • 27. 27 Relative Cost of Writing for Reuse  RCWR is the added cost of writing software to be most cost-effectively reused across a product line family of applications, relative to the cost of writing a standalone application.  CRCWR = LaborRate * COPLIMORCWR + SoftwareQualityCostRCWR  CRCWR = LaborRate * [COCOMO baseline (initialSoftwareSize) * EffortAdjustment for RCWR] + [ CostPerDefect * (1- TestingEffectiveness) * (COQUALMO(initialSoftwareSize, EMPL)], where EMPL is the Effort Multiplier of the COCOMO II cost drivers for the product line development and COCOMO baseline is calculated as 2.94 * (software size1.0997 * PI(EM) Reuse (Boehm et al., 2006)
  • 28. 28 Relative Cost for Reuse  RCR is the cost of reusing the software in a new application with the same product line family, relative to developing newly built software for the application.  CRCR = LaborRate * COPLIMORCR + SoftwareQualityCostRCR  CRCR = LaborRate * [COCOMO baseline (softwareSizeForReuse)] + [CostPerDefect * (1 – TestingEffectiveness) * COQUALMO(softwareSizeForReuse, EMPL)] Reuse (Boehm et al., 2006)
  • 29. 29 Estimated quality-based SPL cost  CPL(N) = CRCWR + (N-1) * CRCR where N is the number of products to be developed in SPL CPL(N) = $6’333 + (N - 1) * $2’174 Reuse (Boehm et al., 2006)
  • 30. 30 Saving of NPL vs. PL Reuse
  • 32. 32 A. HP case study Reuse aus W.C. Lim, IEEE Software, Sept. 1994
  • 33. 33 Reuse program economic profiles Reuse ausW.C.Lim,IEEESoftware,Sept.1994
  • 34. 34 Quality, productivity, time-to-Market Reuse aus W.C. Lim, IEEE Software, Sept. 1994
  • 35. 35 Reuse cost Reuse aus W.C. Lim, IEEE Software, Sept. 1994
  • 36. 36 B. Ericsson study (2008)  3y software reuse in 2 large telecom products (Norway and Sweden)  reused components were developed in-house and shared in a product-family approach  reuse as risk mitigation since development moved to Sweden  quantitative data mined and qualitative observations Reuse (Mohagheghi & Conradi, 2008)
  • 37. 37 Ericsson study, continued  Component-based architecture (CORBA)  Components programmed in Erlang, C, and some Java (GUI)  Data analyzed:  Trouble Reports: failures observed by testers or users  Change Requests: changes to requirements after baseline  KLOC and modified KLOC between releases  Person Hours used in system test  code modification rate: (m-KLOC/KLOC)*100  reuse rate: size of reused code Reuse
  • 38. 38 Ericsson study, continued  Quality benefits of large-scale reuse programs  significant benefits in terms of lower fault density and  less modified code between releases of reused code  reuse reduced risks and lead time of second product since it was developed based on a tested platform  reuse and standardization of software architecture, processes and skills can help reduce organizational restructuring risks  Study showed that there is a need to adapt software processes such as RUP for reuse, and define metrics to evaluate corporate/project/software goals Reuse
  • 40. 40 Strategies for Software Reuse  Potential reuse adopters must be able to understand reuse strategy alternatives and their implications  Organizations must make an informed decision  The study:  survey data from 71 software development groups (of 67 different organizations), 80% working in organizations > 200 employees  software engineers, development consultants, project managers, software engineering researchers  to empirically analyze dimensions that describe the practices employed in reuse programs  classify reuse settings and assess their potential for success Reuse (Rothenberger et al., 2003)
  • 42. 42 Software Reuse Strategies: Findings  An organization’s reuse success is not dependent on the use of object-oriented techniques. Nevertheless, object technologies may be conducive to reuse, yet the other dimensions ultimately determine reuse success.  The qualitative analysis yielded additional insights:  An improvement of software quality can be achieved without an emphasis on the reuse process  An organization will only obtain the full benefit of reuse if a formal reuse program is employed and subject to quality control through formal planning and continuous improvement. Reuse (Rothenberger et al., 2003)
  • 45. 45 References  B. Boehm, A Winsor Brown, R. Madachy, Y. Yang, A Software Product Line Life Cycle Cost Estimation Model, in Proceedings of the 2004 Symposium on Empirical Software Engineering, IEEE, 2004.  B.H. Peter In, J. Baik, S. Kim, Y. Yang, B. Boehm, Quality-Based Cost Estimation Model for the Product Line Life Cycle, Communications of the ACM, Vol. 49(12), Dec 2006.  W.C. Lim, Effects of reuse on quality, productivity, and economics, IEEE Software, Vol.11(5), pp.23-30, Sep 1994, doi: 10.1109/52.311048  D. Lucredio, K. dos Santos Brito, A. Alvaro, V.C. Garcia, E.S. de Almeida, R.P. de Mattos Fortes, S.L.Meira, Software reuse: the Brazilian indudustry scenario, Journal of Systems and Software, 81, Elsevier, 2008.  H. Mili, A. Mili, S. Yacoub, E. Addy, Reuse Based Software Engineering: Techniques, Organizations, and Measurement, Wiley, 2001.  P. Mohagheghi, R. Conradi, An Empirical Investigation of Software Reuse Benefits in a Large Telecom Product, ACM Transactions on Software Engineering and Methodology, Vol. 17(3), June 2008.  P. Mohagheghi, R. Conradi, O.M. Killi, H. Schwarz, An Empirical Study of Software Reuse vs. Defect-Density and Stability, in Proceedings of the 26th International Conference on Software Engineering (ICSE), IEEE, 2004.  M.A. Rothenberger, K.J. Dooley, U.R. Kulkarni, Strategies for Software Reuse: A Principal Component Analysis of Reuse Practices, Transactions on Software Engineering, Vol. 29(8), Sept. 2003.  K.C. Desouza, Y. Awazu, A. Tiwana, Four Dynamics for Bringing Use back into Software Reuse, Communications of the ACM, Vol. 49(1), Jan. 2006.  T. Ravichandran, M.A. Rothenberger, Software Reuse Strategies and Component Markets, Communicatinos of the ACM, Vol. 46(8), Aug. 2003. Reuse
  • 47. 4747 COCOMO II rating for software understanding Very low Low Nominal High Very high Structure Very low cohesion, high coupling, spaghetti code Moderately low cohesion, high coupling Reasonably well- structured; some weak areas High cohesion, low coupling Strong modularity, information- hiding in data and control structures Application clarity No match between program and application world views Some correlation between program and application Moderate correlation between program and application Good correlation between program and application Clear match between program and application world views Self- descriptiveness Obscure code; documentation missing, obscure or obsolete Some code commentary and headers; some useful documentation Moderate level of code commentary, headers, documentation Good code commentary and headers; useful documentation; some weak areas Self-descriptive code; documentation up-to-date, well-organized, with design rationale SU increment 50 40 30 20 10 COCOMO II - Software Understanding (Boehm et al., 2004)
  • 48. 4848 COCOMO II - Assessment & Assimilation effort (Boehm et al., 2004) Assessment and Assimilation increment Level of assessment and assimilation effort 0 None 2 Basic component search and documentation 4 Some component test and evaluation 6 Considerable component test and evaluation 8 Extensive component test and evaluation

Hinweis der Redaktion

  1. The saving of PL over NPL development is presented in Figure 2. Anywhere from one to five productsare developed using NPL and PL development, and all include software quality costs. The first product is developed using RCWR product line development, to invest for future reuse. The remaining N-1 products are developed using the RCR model, and benefit greatly from product line reuse.The product line saves more money than NPL. These savings come from two sources: product line reuse andsavings in software quality cost. After an initial product is developed, the product line, which reuses a portion of the initially developed product, reduces costs below that of standalone products.
  2. Product 1 was developed in Norway, Product 2 in SwedenAll moved to Sweden after the study – that’s why reuse was considered a risk mitigation strategy