The document discusses challenges and business success related to software reuse. It outlines topics like reuse challenges, technologies, economics, case studies and empirical investigations. Regarding challenges, it notes organizational, technical, domain engineering, and economic aspects. For technologies, it discusses software analysis/visualization, product lines, and architectures. It also examines cost/benefit relationships, metrics, and legal issues regarding reuse. Case studies from HP and Ericsson demonstrate quality, productivity and economic benefits of large-scale reuse programs. Strategies for successful reuse include formal reuse programs with quality control and continuous improvement.
This is a detail lecture about software re-engineering. To make software more maintainable. This lecture also give detail about software reverse engineering. When to re-engineer and how to re-engineer software.
These slides, covering the topics of Software Maintenance and Evolution, are introductory slides to the course LINGI2252 “Software Maintenance and Evolution”, given by Prof. Kim Mens at UCL, Belgium
Introduces the idea of a software process and describes generic plan-based and agile processes.
Accompanies video:
https://www.youtube.com/watch?v=q8X2Rk5sRFI
This Presentation provides a detailed insight about Collaborating Using Cloud Services Email Communication over the Cloud - CRM Management – Project Management-Event
Management - Task Management – Calendar - Schedules - Word Processing –
Presentation – Spreadsheet - Databases – Desktop - Social Networks and Groupware.
Reusability is an only one best direction to increase developing productivity and maintainability of application. One must first search for good tested software component and reusable. Developed Application software by one programmer can be shown useful for others also component. This is proving that code specifics to application requirements can be also reused in develop projects related with same requirements. The main aim of this paper proposed a way for reusable module. An process that takes source code as a input that will helped to take the decision approximately which particular software, reusable artefacts should be reused or not.
An Approach to Calculate Reusability in Source Code Using MetricsIJERA Editor
Reusability is an only one best direction to increase developing productivity and maintainability of application. One must first search for good tested software component and reusable. Developed Application software by one programmer can be shown useful for others also component. This is proving that code specifics to application requirements can be also reused in develop projects related with same requirements. The main aim of this paper proposed a way for reusable module. An process that takes source code as a input that will helped to take the decision approximately which particular software, reusable artefacts should be reused or not.
This is a detail lecture about software re-engineering. To make software more maintainable. This lecture also give detail about software reverse engineering. When to re-engineer and how to re-engineer software.
These slides, covering the topics of Software Maintenance and Evolution, are introductory slides to the course LINGI2252 “Software Maintenance and Evolution”, given by Prof. Kim Mens at UCL, Belgium
Introduces the idea of a software process and describes generic plan-based and agile processes.
Accompanies video:
https://www.youtube.com/watch?v=q8X2Rk5sRFI
This Presentation provides a detailed insight about Collaborating Using Cloud Services Email Communication over the Cloud - CRM Management – Project Management-Event
Management - Task Management – Calendar - Schedules - Word Processing –
Presentation – Spreadsheet - Databases – Desktop - Social Networks and Groupware.
Reusability is an only one best direction to increase developing productivity and maintainability of application. One must first search for good tested software component and reusable. Developed Application software by one programmer can be shown useful for others also component. This is proving that code specifics to application requirements can be also reused in develop projects related with same requirements. The main aim of this paper proposed a way for reusable module. An process that takes source code as a input that will helped to take the decision approximately which particular software, reusable artefacts should be reused or not.
An Approach to Calculate Reusability in Source Code Using MetricsIJERA Editor
Reusability is an only one best direction to increase developing productivity and maintainability of application. One must first search for good tested software component and reusable. Developed Application software by one programmer can be shown useful for others also component. This is proving that code specifics to application requirements can be also reused in develop projects related with same requirements. The main aim of this paper proposed a way for reusable module. An process that takes source code as a input that will helped to take the decision approximately which particular software, reusable artefacts should be reused or not.
IJCER (www.ijceronline.com) International Journal of computational Engineeri...ijceronline
Call for paper 2012, hard copy of Certificate, research paper publishing, where to publish research paper,
journal publishing, how to publish research paper, Call For research paper, international journal, publishing a paper, IJCER, journal of science and technology, how to get a research paper published, publishing a paper, publishing of journal, publishing of research paper, research and review articles, IJCER Journal, How to publish your research paper, publish research paper, open access engineering journal, Engineering journal, Mathematics journal, Physics journal, Chemistry journal, Computer Engineering, Computer Science journal, how to submit your paper, peer review journal, indexed journal, research and review articles, engineering journal, www.ijceronline.com, research journals,
yahoo journals, bing journals, International Journal of Computational Engineering Research, Google journals, hard copy of Certificate,
journal of engineering, online Submission
International Journal of Computational Engineering Research(IJCER) ijceronline
nternational Journal of Computational Engineering Research (IJCER) is dedicated to protecting personal information and will make every reasonable effort to handle collected information appropriately. All information collected, as well as related requests, will be handled as carefully and efficiently as possible in accordance with IJCER standards for integrity and objectivity.
A METRICS -BASED MODEL FOR ESTIMATING THE MAINTENANCE EFFORT OF PYTHON SOFTWAREijseajournal
Software project management includes a substantial area for estimating software maintenance effort.
Estimation of software maintenance effort improves the overall performance and efficiency of software.
The Constructive Cost Model (COCOMO) and other effort estimation models are mentioned in literature
but are inappropriate for Python programming language. This research aimed to modify the Constructive
Cost Model (COCOMO II) by considering a range of Python maintenance effort influencing factors to get
estimations and incorporated size and complexity metrics to estimate maintenance effort. A within-subjects
experimental design was adopted and an experiment questionnaire was administered to forty subjects
aiming to rate the maintainability of twenty Python programs. Data collected from the experiment
questionnaire was analyzed using descriptive statistics. Metric values were collected using a developed
metric tool. The subject ratings on software maintainability were correlated with the developed model’s
maintenance effort, a strong correlation of 0.610 was reported meaning that the model is valid.
Developing reusable software components for distributed embedded systemseSAT Publishing House
IJRET : International Journal of Research in Engineering and Technology is an international peer reviewed, online journal published by eSAT Publishing House for the enhancement of research in various disciplines of Engineering and Technology. The aim and scope of the journal is to provide an academic medium and an important reference for the advancement and dissemination of research results that support high-level learning, teaching and research in the fields of Engineering and Technology. We bring together Scientists, Academician, Field Engineers, Scholars and Students of related fields of Engineering and Technology.
Refactoring for Software Architecture Smells - International Workshop on Refa...Ganesh Samarthyam
Code smells and refactoring have received considerable interest from the academia as well as from the industry in
the past two decades. The interest has given birth to var-
ious tools, processes, techniques, and practices to identify
smells and refactor them. Despite the high interest, architecture smells and corresponding refactorings haven't received
as much focus and adoption from the software engineering
community. In this paper, we motivate the need of architecture refactoring, discuss the current related research, and
present a few potential research directions for architecture
refactoring.
For more information, visit www.designsmells.com or http://www.softrefactoring.com/
A Model To Compare The Degree Of Refactoring Opportunities Of Three Projects ...acijjournal
Refactoring is applied to the software artifacts so as to improve its internal structure, while preserving its
external behavior. Refactoring is an uncertain process and it is difficult to give some units for
measurement. The amount to refactoring that can be applied to the source-code depends upon the skills of
the developer. In this research, we have perceived refactoring as a quantified object on an ordinal scale of
measurement. We have a proposed a model for determining the degree of refactoring opportunities in the
given source-code. The model is applied on the three projects collected from a company. UML diagrams
are drawn for each project. The values for source-code metrics, that are useful in determining the quality of
code, are calculated for each UML of the projects. Based on the nominal values of metrics, each relevant
UML is represented on an ordinal scale. A machine learning tool, weka, is used to analyze the dataset,
imported in the form of arff file, produced by the three projects
A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS ...acijjournal
Refactoring is applied to the software artifacts so as to improve its internal structure, while preserving its
external behavior. Refactoring is an uncertain process and it is difficult to give some units for
measurement. The amount to refactoring that can be applied to the source-code depends upon the skills of
the developer. In this research, we have perceived refactoring as a quantified object on an ordinal scale of
measurement. We have a proposed a model for determining the degree of refactoring opportunities in the
given source-code. The model is applied on the three projects collected from a company. UML diagrams
are drawn for each project. The values for source-code metrics, that are useful in determining the quality of
code, are calculated for each UML of the projects. Based on the nominal values of metrics, each relevant
UML is represented on an ordinal scale. A machine learning tool, weka, is used to analyze the dataset,
imported in the form of arff file, produced by the three projects.
Similar to Software Reuse: Challenges and Business Success (20)
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
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
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
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)
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
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.
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