SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Mais procurados

INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGProf Ansari
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-softwareAlenaDion
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineeringdeshpandeamrut
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategiesSHREEHARI WADAWADAGI
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metricsSHREEHARI WADAWADAGI
 
Software maintenance and configuration management, software engineering
Software maintenance and  configuration management, software engineeringSoftware maintenance and  configuration management, software engineering
Software maintenance and configuration management, software engineeringRupesh Vaishnav
 
Architecture business cycle ( abc )
Architecture business cycle ( abc )Architecture business cycle ( abc )
Architecture business cycle ( abc )Dr Reeja S R
 
Software project management
Software project managementSoftware project management
Software project managementR A Akerkar
 
Chapter 6 software metrics
Chapter 6 software metricsChapter 6 software metrics
Chapter 6 software metricsdespicable me
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factorsNancyBeaulah_R
 
WORKFLOW OF THE PROCESS IN SPM
 WORKFLOW OF THE PROCESS IN SPM WORKFLOW OF THE PROCESS IN SPM
WORKFLOW OF THE PROCESS IN SPMgarishma bhatia
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specificationAman Adhikari
 
V model presentation
V model presentationV model presentation
V model presentationNiat Murad
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineeringDarshit Metaliya
 

Mais procurados (20)

INTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERINGINTRODUCTION TO SOFTWARE ENGINEERING
INTRODUCTION TO SOFTWARE ENGINEERING
 
Pressman ch-1-software
Pressman ch-1-softwarePressman ch-1-software
Pressman ch-1-software
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
Software Reuse
Software ReuseSoftware Reuse
Software Reuse
 
The Art of Debugging.pptx
The Art of Debugging.pptxThe Art of Debugging.pptx
The Art of Debugging.pptx
 
Software re engineering
Software re engineeringSoftware re engineering
Software re engineering
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategies
 
Chapter 15 software product metrics
Chapter 15 software product metricsChapter 15 software product metrics
Chapter 15 software product metrics
 
Software maintenance and configuration management, software engineering
Software maintenance and  configuration management, software engineeringSoftware maintenance and  configuration management, software engineering
Software maintenance and configuration management, software engineering
 
Architecture business cycle ( abc )
Architecture business cycle ( abc )Architecture business cycle ( abc )
Architecture business cycle ( abc )
 
Staffing level estimation
Staffing level estimation Staffing level estimation
Staffing level estimation
 
Software project management
Software project managementSoftware project management
Software project management
 
Software design
Software designSoftware design
Software design
 
Chapter 6 software metrics
Chapter 6 software metricsChapter 6 software metrics
Chapter 6 software metrics
 
Quality and productivity factors
Quality and productivity factorsQuality and productivity factors
Quality and productivity factors
 
WORKFLOW OF THE PROCESS IN SPM
 WORKFLOW OF THE PROCESS IN SPM WORKFLOW OF THE PROCESS IN SPM
WORKFLOW OF THE PROCESS IN SPM
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
 
V model presentation
V model presentationV model presentation
V model presentation
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
Computer aided software engineering
Computer aided software engineeringComputer aided software engineering
Computer aided software engineering
 

Semelhante a Software 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
 

Semelhante a 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 ...
 

Último

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 

Último (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 

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

Notas do Editor

  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