SlideShare a Scribd company logo
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

More Related Content

What's hot

Lecture6
Lecture6Lecture6
Lecture6
soloeng
 
Software Re-Engineering
Software Re-EngineeringSoftware Re-Engineering
Software Re-Engineering
Saqib Raza
 
Slides chapters 26-27
Slides chapters 26-27Slides chapters 26-27
Slides chapters 26-27
Priyanka Shetty
 
Software reuse ppt.
Software reuse ppt.Software reuse ppt.
Software reuse ppt.
Sumit Biswas
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
Deniz Kılınç
 
Software Maintenance and Evolution
Software Maintenance and EvolutionSoftware Maintenance and Evolution
Software Maintenance and Evolution
kim.mens
 
2- THE CHANGING NATURE OF SOFTWARE.pdf
2- THE CHANGING NATURE OF SOFTWARE.pdf2- THE CHANGING NATURE OF SOFTWARE.pdf
2- THE CHANGING NATURE OF SOFTWARE.pdf
bcanawakadalcollege
 
The seminar report on cloud computing
The seminar report on cloud computingThe seminar report on cloud computing
The seminar report on cloud computing
Divyesh Shah
 
Ch16-Software Engineering 9
Ch16-Software Engineering 9Ch16-Software Engineering 9
Ch16-Software Engineering 9Ian Sommerville
 
Green cloud computing
Green cloud computingGreen cloud computing
Green cloud computing
Ram kumar
 
Software management renaissance
Software management renaissanceSoftware management renaissance
Software management renaissance
Kuppusamy P
 
Ch18 service oriented software engineering
Ch18 service oriented software engineeringCh18 service oriented software engineering
Ch18 service oriented software engineering
software-engineering-book
 
CASE tools and their effects on software quality
CASE tools and their effects on software qualityCASE tools and their effects on software quality
CASE tools and their effects on software quality
Utkarsh Agarwal
 
Chapter 9 software maintenance
Chapter 9 software maintenanceChapter 9 software maintenance
Chapter 9 software maintenance
despicable me
 
Reuse metrics
Reuse metricsReuse metrics
Reuse metrics
himanshi agrawal
 
Component Based Software Engineering
Component Based Software EngineeringComponent Based Software Engineering
Component Based Software Engineering
SatishDabhi1
 
Agile and plan based development processes
Agile and plan based development processesAgile and plan based development processes
Agile and plan based development processes
sommerville-videos
 
Collaborating Using Cloud Services
Collaborating Using Cloud ServicesCollaborating Using Cloud Services
Collaborating Using Cloud Services
Dr. Sunil Kr. Pandey
 
Lect5 improving software economics
Lect5 improving software economicsLect5 improving software economics
Lect5 improving software economics
meena466141
 
Cloud computing project report
Cloud computing project reportCloud computing project report
Cloud computing project report
Naveed Farooq
 

What's hot (20)

Lecture6
Lecture6Lecture6
Lecture6
 
Software Re-Engineering
Software Re-EngineeringSoftware Re-Engineering
Software Re-Engineering
 
Slides chapters 26-27
Slides chapters 26-27Slides chapters 26-27
Slides chapters 26-27
 
Software reuse ppt.
Software reuse ppt.Software reuse ppt.
Software reuse ppt.
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
 
Software Maintenance and Evolution
Software Maintenance and EvolutionSoftware Maintenance and Evolution
Software Maintenance and Evolution
 
2- THE CHANGING NATURE OF SOFTWARE.pdf
2- THE CHANGING NATURE OF SOFTWARE.pdf2- THE CHANGING NATURE OF SOFTWARE.pdf
2- THE CHANGING NATURE OF SOFTWARE.pdf
 
The seminar report on cloud computing
The seminar report on cloud computingThe seminar report on cloud computing
The seminar report on cloud computing
 
Ch16-Software Engineering 9
Ch16-Software Engineering 9Ch16-Software Engineering 9
Ch16-Software Engineering 9
 
Green cloud computing
Green cloud computingGreen cloud computing
Green cloud computing
 
Software management renaissance
Software management renaissanceSoftware management renaissance
Software management renaissance
 
Ch18 service oriented software engineering
Ch18 service oriented software engineeringCh18 service oriented software engineering
Ch18 service oriented software engineering
 
CASE tools and their effects on software quality
CASE tools and their effects on software qualityCASE tools and their effects on software quality
CASE tools and their effects on software quality
 
Chapter 9 software maintenance
Chapter 9 software maintenanceChapter 9 software maintenance
Chapter 9 software maintenance
 
Reuse metrics
Reuse metricsReuse metrics
Reuse metrics
 
Component Based Software Engineering
Component Based Software EngineeringComponent Based Software Engineering
Component Based Software Engineering
 
Agile and plan based development processes
Agile and plan based development processesAgile and plan based development processes
Agile and plan based development processes
 
Collaborating Using Cloud Services
Collaborating Using Cloud ServicesCollaborating Using Cloud Services
Collaborating Using Cloud Services
 
Lect5 improving software economics
Lect5 improving software economicsLect5 improving software economics
Lect5 improving software economics
 
Cloud computing project report
Cloud computing project reportCloud computing project report
Cloud computing project report
 

Similar to Software Reuse: Challenges and Business Success

A Survey of Software Reusability
A Survey of Software ReusabilityA Survey of Software Reusability
A Survey of Software Reusability
IJERA 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 Metrics
IJERA 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 Software
IRJET 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 Program
IOSR Journals
 
Reusability Framework for Cloud Computing
Reusability Framework for Cloud ComputingReusability Framework for Cloud Computing
Reusability Framework for Cloud Computing
Dr 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 SOFTWARE
ijseajournal
 
Advanced Software Engineering.ppt
Advanced Software Engineering.pptAdvanced Software Engineering.ppt
Advanced Software Engineering.ppt
Rvishnupriya2
 
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
eSAT 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).pptx
sadeepaJayatissa1
 
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
 

Similar to Software 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 ...
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 

Software 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

Editor's Notes

  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