SlideShare a Scribd company logo
© 2008, Dr. Amir Tomer 
ISEC 2008, Hyderabad, India 
Cost-effectiveness of Software Reuse Alternatives 1
© 2008, Dr. Amir Tomer 
Education 
B.Sc., M.Sc. – Computer Science, Technion, Haifa, Israel 
Ph.D. – Computing, Imperial College, London, UK 
Industrial Experience 
1982-2006, RAFAEL – Advanced Defense Systems, Israel 
Software developer, software manager 
Systems Engineer 
Director of Systems and Software Engineering Processes 
Academic Experience 
Senior lecturer, Software Engineering 
Academic advisor, Software courses, External Studies 
Certifications 
Certified Software Quality Engineer (CSQE) by ASQ 
Authorized CMMI instructor by SEI 
Cost-effectiveness of Software Reuse Alternatives 2
© 2008, Dr. Amir Tomer 
‱ Well known facts 
– Software reuse can save costs 
– Generic software development costs more than dedicated 
software development 
‱ However... 
– Can the saving be estimated with high confidence? 
– Can the ROI of generic development be precisely predicted? 
Cost-effectiveness of Software Reuse Alternatives 3
© 2008, Dr. Amir Tomer 
‱ This tutorial introduces a model for evaluating the 
relative cost-effectiveness of software reuse 
alternatives 
‱ The model is 
– Formally defined 
– Approved by industry 
– Effective 
– Easy to implement 
and... 
– Fun! 
Cost-effectiveness of Software Reuse Alternatives 4
© 2008, Dr. Amir Tomer 
 Once upon a time, on a project kickoff meeting... 
 The “Reuse” issue from the cost perspective 
 Reuse-based development – operations 
 Elements of reuse costs 
 Reuse scenarios 
 Costing policies 
 Industrial case study 
 Wrap up 
Cost-effectiveness of Software Reuse Alternatives 5
© 2008, Dr. Amir Tomer 
GoldenEgg Project 
Kick-off Meeting 
Participants: 
Project Manager 
System Engineer 
Software Manager 
DB Architect 
Network Engineer 
Division R&D Manager 
Sales Manager 
Cost-effectiveness of Software Reuse Alternatives 6
© 2008, Dr. Amir Tomer 
It was proposed to reuse 
the Backup & Recovery 
module from one of the 
previous projects. 
What do you think? 
Great! 
Brilliant 
idea! 
Direct saving of 
1500 hours! 
Let’s go for it! 
I always support 
reuse! 
It should shorten 
the schedule too! 
1 Backup & Recovery (BR) 
Development Cost Estimation 
Network & Server 600 p/h 
Application Software 600 p/h 
Integration & Test 200 p/h 
User Documentation 100 p/h 
___________________________________ 
Total 1500 p/h 
Cost-effectiveness of Software Reuse Alternatives 7
© 2008, Dr. Amir Tomer 
Wait, wait... 
We first need to scan through all 
past projects and then analyze 
which BR module fits best. 
Investing 50 p/h in this research 
should be very cost-effective 
2 
Cost-effectiveness of Software Reuse Alternatives 8
© 2008, Dr. Amir Tomer 
New communication standards have been introduced, and the 
network design must be amended accordingly. It should take 
100 p/h. 
And, by the way, the DB server has been upgraded too, so in 
any case slight design modifications are necessary. These 
should take not more than another 150 p/h, but this should 
serve the future projects as well. 
3 
Cost-effectiveness of Software Reuse Alternatives 9
© 2008, Dr. Amir Tomer 
An upgraded server requires a 
few software changes. 
Assuming the DB schema 
persists then my estimation 
does not exceed 250 p/h. 
Actually we did 
developed an improved 
schema, but you can 
have it for free. 
But if the schema 
changes, then the reuse 
is meaningless! The 
entire software must be 
re-developed. 
So, if you go for re-development 
let’s look ahead 
to the future projects. With 
800 p/h we can develop a 
generic DB architecture to 
support future needs. 
6 
7 
5 
4 
8 
To my experience, a generic 
architecture will double the 
cost of software development, 
although the chances for 
reuse increase. However, in 
any case, each project should 
build its own interface, 
investing 100 p/h. 
Cost-effectiveness of Software Reuse Alternatives 10
© 2008, Dr. Amir Tomer 
A generic software is more 
complex and may double 
integration and test effort, 
although it will be done once for 
future projects. 
I suggest that R&D will support 
the generic development 
9 
Cost-effectiveness of Software Reuse Alternatives 11
© 2008, Dr. Amir Tomer 
I am not supporting anything 
without proven ROI. In order to 
10 
allocate R&D budget I need to know 
how many future projects are 
expected to use this generic module. 
Do we have any such anticipation? 
We currently negotiate 10 
prospective clients. Assuming 
50% success gives 5 projects. 
Adding the current one makes a 
total of 6 reuses. 
11 
Cost-effectiveness of Software Reuse Alternatives 12
© 2008, Dr. Amir Tomer 
The existing solution is applicable to 2-3 
projects, at the most. Afterwards a new 
DB architecture will be needed anyway. If 
we do not go for a generic solution every 
future project will have to develop their 
own module separately. 
12 
Cost-effectiveness of Software Reuse Alternatives 13
© 2008, Dr. Amir Tomer 
So, what do we decide? 
? 
? 
? 
? 
? 
? 
“Traditional” development 1500 p/h 
Seek a reusable module 50 p/h 
New comm. standards 100 p/h 
Network changes - new server 150 p/h 
SW changes for new server 250 p/h 
Generic DB schema 800 p/h 
SW for generic schema 1200 p/h 
DB interface – each project 100 p/h 
Generic module IV&V 400 p/h 
Reuse anticipation = 6 
Cost-effectiveness of Software Reuse Alternatives 14
© 2008, Dr. Amir Tomer 
‱ What is the best decision for the project manager, if R&D 
budget is not granted? 
‱ Same situation, but the PM is responsible for all future 
projects 
‱ What is the cost of the first 3 projects in each of the 
alternatives? 
‱ How many future projects should be contracted in order to 
convince R&D to budget generic development? 
Would you like to make a guess? 
By the end of this tutorial we will be able to answer 
these questions precisely... 
Cost-effectiveness of Software Reuse Alternatives 15
© 2008, Dr. Amir Tomer 
 Once upon a time, on a project kickoff meeting... 
 The “Reuse” issue from the cost perspective 
 Reuse-based development – operations 
 Elements of reuse costs 
 Reuse scenarios 
 Costing policies 
 Industrial case study 
 Wrap up 
Cost-effectiveness of Software Reuse Alternatives 16
© 2008, Dr. Amir Tomer 
‱ Question 1: What can be reused? 
‱ Answer 1: Any kind of software artifacts/components 
– Requirements 
– Features / specifications 
– Designs 
– Source code 
– Run-time components (EXE, DLL, COM objects etc.) 
– Documentation (e.g. manuals, help files) 
– Test cases / Test procedures 
– Commercial off-the-Shelf (COTS) 
Cost-effectiveness of Software Reuse Alternatives 17
© 2008, Dr. Amir Tomer 
‱ Question 2: What is affected? 
‱ Answer 2: Could be anything 
– Nothing! 
‱ Is this possible at all? 
– The reused component is adapted to fit the new 
environment 
‱ What is the amount of modification needed? 
‱ What “damage” is caused to the component? 
– The environment is adapted for the component to fit in 
‱ What is the effect on other components in the same 
environment? 
Huge 
Differences! 
Cost-effectiveness of Software Reuse Alternatives 18
© 2008, Dr. Amir Tomer 
‱ Question 3: How components are being reused? 
‱ Answer 3: Two conventional forms 
– Black-box reuse 
‱ The component is used unchanged (as is) 
– White-box reuse 
‱ The component undergoes modification 
 
Cost-effectiveness of Software Reuse Alternatives 19
© 2008, Dr. Amir Tomer 
100% 
development/ 
modification 
effort 
0% 
no reuse 
black-box 
reuse 
white-box 
reuse 
Cost-effectiveness of Software Reuse Alternatives 20
© 2008, Dr. Amir Tomer 
Informal definitions, just for the common understanding of what follows 
‱ Software Artifact 
– Any work product resulted from a software development activity 
‱ Software Component 
– A piece of software or a part of a software system, including all the 
artifacts associated with it 
‱ Software Asset 
– Any software component or artifact residing in library, accessible to 
relevant stakeholders 
‱ Assets may be either private (owned by a single project) or public (accessible 
to one or more organizational units) 
‱ Core Asset 
– A public asset which is classified as an important reusable building block 
Cost-effectiveness of Software Reuse Alternatives 21
© 2008, Dr. Amir Tomer 
‱ Costs – from which viewpoint? 
– We look at cost from the enterprise point of view 
‱ Over all projects 
‱ Over all NRE (R&D) 
‱ Over all supporting infrastructure 
‱ The cost of any delivered product comprises the 
following ingredients 
– The cost of the specific product development 
– The cost of reusable assets incorporated into the product 
– The cost of the infrastructure enabling asset reuse 
Cost-effectiveness of Software Reuse Alternatives 22
© 2008, Dr. Amir Tomer 
‱ Import of components into the product 
– Searching and locating reusable assets 
‱ From inside or outside the organization 
– COTS procurement 
– Outsourcing component development 
‱ Implementation of product components 
– Requirements, analysis, design, code and unit test 
– Applying modifications/customizations to imported components + 
regression test 
– Applying modifications to other components, in order to enable the 
incorporation of imported components 
‱ Product integration, verification and validation (IV&V) 
– Design reviews 
– Partial and final integrations 
– System test, acceptance test, validation etc. 
– ATE development / procurement 
Cost-effectiveness of Software Reuse Alternatives 23
© 2008, Dr. Amir Tomer 
‱ Import of core assets 
– Searching and locating reusable assets 
‱ From inside or outside the organization 
– COTS procurement 
– Outsourcing component development 
‱ Implementation of core assets (generic/reusable components) 
– Requirements, analysis, design, code and unit test 
– Applying modifications/customizations to imported components + 
regression test 
– Applying modifications to other components, in order to enable the 
incorporation of imported components 
Cost-effectiveness of Software Reuse Alternatives 24
© 2008, Dr. Amir Tomer 
‱ Asset Repository Establishment & Maintenance 
– Storage and communication 
– Database services 
– Catalog services 
‱ Asset Repository Population 
– Domain Analysis 
‱ Mapping the organization product lines 
‱ Categorization and specification of reusable assets 
– Storing and cataloging identified assets 
Cost-effectiveness of Software Reuse Alternatives 25
© 2008, Dr. Amir Tomer 
‱ From your knowledge and experience, recall a case of 
reusing a software component, and then answer: 
Q: What was the component in focus? 
A: __________________________________________ 
Q: What activities were performed? 
A: __________________________________________ 
Q: What is the estimated cost (by means of effort, money or both ) 
A: ____________________________________________ 
Cost-effectiveness of Software Reuse Alternatives 26
© 2008, Dr. Amir Tomer 
‱ Who covers the costs of core asset development? 
‱ How are these costs shared among the products using 
the assets? 
and most importantly 
‱ Is it always cost-effective, 
and if not 
‱ When is it? And under what conditions? 
In order to answer these questions a better breakdown of 
the costs is needed... 
Cost-effectiveness of Software Reuse Alternatives 27
© 2008, Dr. Amir Tomer 
 Once upon a time, on a project kickoff meeting... 
 The “Reuse” issue from the cost perspective 
 Reuse-based development – operations 
 Elements of reuse costs 
 Reuse scenarios 
 Costing policies 
 Industrial case study 
 Wrap up 
Cost-effectiveness of Software Reuse Alternatives 28
© 2008, Dr. Amir Tomer 
© 1999-2008 , Ś“"Śš ŚąŚžŚ™Śš ŚȘŚ•ŚžŚš 
2-dimensional evolution tree: 
The life cycle of a software component [Schach & Tomer, 2000] 
recoding 
rerequirements 
reanalysis 
redesign 
recoding 
redesign 
C recoding 1 
Ver. 1 
R2 
S2 
D2 
C2 
Ver. 2 
D3 
C3 
Ver. 3 
f 
R0 
S0 
D0 
C0 
Ver. 0 
Require-ments 
Analysis 
Design 
Code 
Development Axis 
Maintenance Axis 
Cost-effectiveness of Software Reuse Alternatives 29
© 2008, Dr. Amir Tomer 
3-dimensional evolution tree: 
The life cycle of a software product-line [Schach & Tomer, 2000] 
diversity 
Reuse 
Core asset repository 
Development 
progress 
Maintenance 
effort 
‱ Evolution occurs by the 
“moves” of artifacts along 
the 3 axes: 
– Development 
‱ Engineering 
‱ Reverse-engineering 
– Maintenance 
‱ Modification 
‱ Roll-back 
– Reuse 
‱ Mining 
‱ Acquisition 
Mining an 
existing asset 
Acquiring a 
core asset 
Cost-effectiveness of Software Reuse Alternatives 30
© 2008, Dr. Amir Tomer 
Repository 
Assets 
Private 
Assets 
‱ Artifacts that are cataloged in the core-asset repository 
– Available for acquisition by specific products 
– Available for modification, only within the environment of the repository 
– Include metadata (classification data and attributes) 
‱ Artifacts that are contained within a specific product 
– Available for mining and cataloging into the repository 
– Available for private modification, only within the environment of the 
same specific product 
Cost-effectiveness of Software Reuse Alternatives 31
© 2008, Dr. Amir Tomer 
Repository 
Assets 
Private 
Assets 
Transformation Operations 
Transition Operations 
Transformation Operations 
Development, Maintenance 
Reuse 
Cost-effectiveness of Software Reuse Alternatives 32
© 2008, Dr. Amir Tomer 
‱ Repository asset transformation 
– NR: New for Reuse 
‱ Constructing a new repository asset R' from scratch 
– It is expected that the asset will be developed in conformance 
with applicable standards that make it effectively reusable 
– AR: Adaptation for Reuse 
‱ Modifying an existing repository asset R, resulting in another 
reusable repository asset R‘ 
– Both R and R' must reside in the repository 
Repository 
New for Reuse [NR] 
R R’ Assets Adaptation for 
Reuse [AR] 
Cost-effectiveness of Software Reuse Alternatives 33
© 2008, Dr. Amir Tomer 
‱ Private asset transformation 
– ND: New Development 
‱ Constructing a new private asset P' from scratch 
– WB: White-Box reuse 
‱ Modifying an existing private asset P into another private 
asset P' within the same product 
– Both P and P' must reside in the product library, as revisions of 
the same artifact 
White-Box 
Reuse [WB] Private 
P P’ 
Assets 
New Development [ND] 
Cost-effectiveness of Software Reuse Alternatives 34
© 2008, Dr. Amir Tomer 
‱ Transition into Repository 
– MC: Mining and Cataloging 
‱ Identifying and acquiring an existing private asset P, from a 
certain product, and then storing and cataloging it formally, 
as a repository asset R 
– XA: eXternal Acquisition 
‱ Acquiring an asset from some external source and cataloging 
it as a repository asset R. This is the case with COTS 
artifacts 
eXternal Acquisition [XA] 
Repository 
Assets 
Mining & Cataloging [MC] 
Private 
R 
P Assets 
Cost-effectiveness of Software Reuse Alternatives 35
© 2008, Dr. Amir Tomer 
‱ Transition into Product 
– BB: Black-Box reuse 
‱ Acquiring a copy of a repository asset R “as is” (i.e. with no 
modifications) for a specific product, as a private asset P 
– CP: “Copy and Paste” 
‱ Acquiring a copy of a private asset P for a specific product 
– The source asset is not cataloged in the repository 
– Awareness of its existence is based on personal knowledge 
P 
Repository 
Assets 
Private 
Assets 
R 
Black-Box reuse [BB] 
“Copy & Paste” [CP] 
Cost-effectiveness of Software Reuse Alternatives 36
© 2008, Dr. Amir Tomer 
New for Reuse [NR] 
R R’ 
P P’ 
Cataloged asset 
Acquisition (CA) 
White-Box 
Reuse [WB] 
Transformation operations 
Transition operations 
Repository 
Assets 
“Copy & Paste” [CP] 
Private 
Assets 
Adaptation for 
Reuse [AR] 
Black-Box 
Reuse 
[BB] 
Mining & 
Cataloging [MC] 
New Development [ND] 
eXternal (COTS) 
Acquisition [XA] 
target 
component 
Cost-effectiveness of Software Reuse Alternatives 37
© 2008, Dr. Amir Tomer 
‱ Refer to the reuse case you mentioned in Exercise 1 and 
express the reuse activities in terms of one or more 
elementary operations, specifying 
– The source artifact(s) and their location(s) 
________________________________________________ 
– The target artifact(s) and their location(s) 
________________________________________________ 
– The elementary operation(s) used 
_____________________ ______________________ 
_____________________ ______________________ 
Cost-effectiveness of Software Reuse Alternatives 38
© 2008, Dr. Amir Tomer 
 Once upon a time, on a project kickoff meeting... 
 The “Reuse” issue from the cost perspective 
 Reuse-based development – operations 
 Elements of reuse costs 
 Reuse scenarios 
 Costing policies 
 Industrial case study 
 Wrap up 
Cost-effectiveness of Software Reuse Alternatives 39
© 2008, Dr. Amir Tomer 
‱ Every operation is associated with costs 
– Effort, in p/h 
– Money 
‱ Unlike common illusions, there are usually no free 
operations! 
‱ Costs may be classified by the concern of the body obtaining 
the artifact 
– Project costs 
‱ The cost of any transformation occurring within the project 
‱ The cost of any transition into the project 
– Infrastructure costs 
‱ The cost of any transformation occurring within the repository 
‱ The cost of any transition into the repository 
Cost-effectiveness of Software Reuse Alternatives 40
© 2008, Dr. Amir Tomer 
Let 
OP be any elementary operation 
S, T be source and target artifacts, respectively 
Then 
COP(S,T) denotes the cost incurred by obtaining T from S 
by means of OP 
‱ Examples 
1. CAR(q.c, q.uml) 
‱ The effort invested in reverse-engineering 
2. CCA(q.uml, q.java) 
‱ The price of a java code-generation license 
Cost-effectiveness of Software Reuse Alternatives 41
© 2008, Dr. Amir Tomer 
‱ Part of the elementary operations result in new artifacts 
(from scratch) 
‱ These operations are equivalent to other operations, where 
the source artifact is null (denoted “f”) 
‱ Equivalent operations 
– New for Reuse ï‚ș Adaptation for Reuse (from scratch) 
‱ CNR(R’) = CAR(f, R’) 
– New Development ï‚ș White-Box reuse (from scratch) 
‱ CND(P’) = CWB(f, P’) 
– eXternal Acquisition ï‚ș Mining and Cataloging (from the outside) 
‱ CXA(R) = CMC(f, R) 
– “Copy & Paste” ï‚ș Catalog Acquisition (of the empty artifact) 
‱ CCP(P) = CCA(f, P) 
Cost-effectiveness of Software Reuse Alternatives 42
© 2008, Dr. Amir Tomer 
CNR(R’) = CAR(f,R’) 
f 
R R’ 
P P’ 
Repository 
Assets 
Private 
Assets 
CAR(R,R’) 
CMC(P,R) 
CCA(R,P) CBB(R’,P’) 
CND(P’) = CWB(f,P’) 
f 
f 
CMC(P’,R’) 
CCP(P) = CCA(f,P) 
CWB(P,P’) 
f 
CXA(R) = CMC(f,R) 
Infrastructure costs: 
‱ Obtain Repository Assets 
‱ Modify Repository Assets 
Project costs: 
‱ Obtain Private Assets 
‱ Modify Private Assets 
Cost-effectiveness of Software Reuse Alternatives 43
© 2008, Dr. Amir Tomer 
‱ When coming to evaluate alternatives, cost accumulation 
may combine actual costs with estimated costs 
– Actual costs: Measured in past activities 
– Estimated costs: Predicted according to knowledge and 
experience 
‱ For example, consider a system integrated by two 
components: A and B. The alternatives are: 
Alternative A B Interface 
1 Buy Buy Develop 
2 Buy Develop - 
3 Develop Buy - 
4 Develop Develop - 
Actual Costs 
Estimated Costs 
Cost-effectiveness of Software Reuse Alternatives 44
© 2008, Dr. Amir Tomer 
Cost Notation Measurement Estimation 
Adaptation 
for Reuse 
CAR(R,R’) The actual cost invested in 
turning the repository asset 
R into a reusable repository 
asset R’ 
The estimated cost required 
for turning the repository 
asset R into a reusable 
repository asset R’ 
New for 
Reuse 
CNR(R’) = 
CAR(f,R’) 
The actual cost invested in 
building the reusable 
repository asset R’ from 
scratch 
The estimated cost required 
for building the reusable 
repository asset R’ from 
scratch 
White-Box 
Reuse 
CWB(P,P’) The actual cost invested in 
turning the private asset P 
into a specific private asset 
P’ 
The estimated cost required 
for turning the private asset 
P into a specific private asset 
P’ 
New 
Development 
CND(P’) = 
CWB(f,P’) 
The actual cost invested in 
building the specific private 
asset P’ from scratch 
The estimated cost required 
for building the specific 
private asset P’ from scratch 
Cost-effectiveness of Software Reuse Alternatives 45
© 2008, Dr. Amir Tomer 
Cost Notation Measurement Estimation 
Mining and 
Cataloging 
CMC(P,R) The actual cost invested in 
locating the private asset P 
and cataloging it as a 
repository asset R’ 
The estimated cost required 
for locating the private asset 
P and cataloging it as a 
repository asset R’ 
Cataloged 
assets 
Acquisition 
CCA(R,P) The actual cost invested in 
obtaining a copy of the 
repository asset R as a 
specific private asset P, for 
further modifications 
The estimated cost required 
for obtaining a copy of the 
repository asset R as a 
specific private asset P, for 
further modifications 
eXternal 
Acquisition 
(COTS) 
CXA(R) = 
CMC(f,R) 
The actual cost of purchasing 
a copy of R as a repository 
asset 
The estimated cost of 
purchasing a copy of R as a 
repository asset 
Copy and 
Paste 
CCP(P) = 
CCA(f,P) 
The actual cost invested in 
obtaining a copy of P as a 
specific private asset 
The estimated cost required 
for obtaining a copy of P as a 
specific private asset 
Black-Box 
Reuse 
CBB(R’,P’) The actual cost invested in 
obtaining a copy of the 
repository asset R as a 
specific private asset P “as is” 
The estimated cost required 
for obtaining a copy of the 
repository asset R as a 
specific private asset P “as is” 
Cost-effectiveness of Software Reuse Alternatives 46
© 2008, Dr. Amir Tomer 
 Once upon a time, on a project kickoff meeting... 
 The “Reuse” issue from the cost perspective 
 Reuse-based development – operations 
 Elements of reuse costs 
 Reuse scenarios 
 Costing policies 
 Industrial case study 
 Wrap up 
Cost-effectiveness of Software Reuse Alternatives 47
© 2008, Dr. Amir Tomer 
‱ An asset is subject to a single elementary operation at 
one time: 
– Transformation 
‱ Modifying the asset within its current location 
– Transition 
‱ Moving an unchanged copy of the asset from one location to 
another 
 
   
Cost-effectiveness of Software Reuse Alternatives 48
© 2008, Dr. Amir Tomer 
old C project 
queue.c 
new C++ project 
queue.cpp 
new Java project 
queue.java 
S/W Dept. 
A C-language queue-handling 
package from 
an old project is 
reverse-engineered into 
UML design 
The design is 
implemented in C++ 
for a new project 
queue.uml 
The design is 
implemented in Java 
for a new project 
Cost-effectiveness of Software Reuse Alternatives 49
© 2008, Dr. Amir Tomer 
‱ Scenario = a sequence of elementary operations 
– Following the “one-move-at-a-time” principle 
‱ The example scenario 
1. MC: q.c is mined from the C project and cataloged in the repository 
2. AR: q.c is adapted for reuse (reverse-engineered) into q.uml 
3. CA: q.uml is acquired from the repository into the C++ project 
4. WB: q.uml is privately implemented in the C++ project, resulting in q.cpp 
5. CA: q.uml is acquired from the repository into the Java project 
6. WB: q.uml is privately implemented in the Java project, resulting in q.java 
Repository 
C project 
C++ project 
Java project 
1 [MC] 
q.c 
q.c 
2 [AR] 
q.uml 
3 [CA] 
q.uml 
5 [CA] 
q.uml 
4 [WB] 
q.cpp 
6 [WB] 
q.java 
Cost-effectiveness of Software Reuse Alternatives 50
© 2008, Dr. Amir Tomer 
‱ Although the variety of reuse-based development scenarios is 
unlimited, a few scenarios are more widely applied 
‱ In the following we will investigate 5 typical scenarios 
– Pure Development 
‱ Traditional development from scratch, with no reuse at all 
‱ This is a reference scenario for cost-effectiveness evaluation 
– Opportunistic Reuse 
‱ The most commonly used scenario, usually provides an instant 
opportunity to save some development effort 
– Controlled Reuse 
‱ Sharing of reusable components in the organization is controlled, even 
without developing generic core asset 
– Systematic Reuse – new 
‱ Reusable core assets are developed from scratch for standard use 
across the organization 
– Systematic Reuse – adapted 
‱ Provisionally reusable assets are mined from past projects and then 
being modified into core assets for reuse across the organization 
Cost-effectiveness of Software Reuse Alternatives 51
© 2008, Dr. Amir Tomer 
‱ Description 
– Each project i develops its own component Ti from scratch 
‱ No reuse in effect 
‱ Scenario sequence 
– Single move, repeated at each project 
‱ New Development [ND] 
This scenario serves as a reference to all other 
scenarios 
Private 
Assets 
New Development [ND] 
f T1,
,Tn 
Cost-effectiveness of Software Reuse Alternatives 52
© 2008, Dr. Amir Tomer 
‱ Measured Cost 
– The total cost is the accumulated costs of the development 
effort over all the projects 
CPD = n(CND(Ti)) = n(CWB(f,Ti)) 
‱ Estimated Cost 
– Assuming T1  T2  ...  Tn  T 
CPD  n · CWB(f,T) 
Private 
Assets 
n(CWB(f,Ti)) 
f T1,
,Tn 
Cost-effectiveness of Software Reuse Alternatives 53
© 2008, Dr. Amir Tomer 
Private 
Assets 
White-Box reuse [WB] 
T1,
,Tn 
S1,...,Sn 
Copy & Paste [CP] 
f 
‱ Description 
– Each projects i independently obtains an existing source 
component Si and modifies it into a private component Ti by 
means of White-Box reuse 
‱ Scenario Sequence 
– Two moves, repeated at each project 
‱ Copy & Paste 
‱ White-Box Reuse 
Cost-effectiveness of Software Reuse Alternatives 54
© 2008, Dr. Amir Tomer 
Private 
Assets 
T1,
,Tn 
n(CWB(Si,Ti)) 
S1,...,Sn 
n(CCA(f,Si)) 
f 
‱ Measured Cost 
– The total cost combines the effort invested by each project in 
searching and copying Si with the effort invested modifying Si 
into Ti 
COR = n(CCP(Si) + CWB(Si,Ti)) = n(CCA(f,Si) + CWB(Si,Ti)) 
‱ Estimated Cost 
– Assuming S1  S2  ...  Sn  S and T1  T2  ...  Tn  T 
COR  n · (CCA(f,S) + CWB(S,T)) 
Cost-effectiveness of Software Reuse Alternatives 55
© 2008, Dr. Amir Tomer 
‱ Description 
– Projects are not allowed to freely obtain assets from other 
projects 
– Assets from past projects are cataloged in a searchable 
repository 
‱ By initiated mining 
‱ By volunteered/embraced/rewarded contribution 
‱ By organizing all private project libraries under a common 
repository (organizational intranet) 
– Assets remain in the repository in their original form 
– Assets are available for Catalog Acquisition [CA] to all 
projects 
Cost-effectiveness of Software Reuse Alternatives 56
© 2008, Dr. Amir Tomer 
‱ Scenario Sequence 
– Three moves 
‱ Mining (once only!)a source asset S and Cataloging it as a 
repository asset R 
‱ Catalog Acquisition of a copy of R into a source asset Si, for each 
project i 
‱ Obtaining a private target asset Ti from Si in each project i 
R Repository 
Assets 
Mining & Cataloging [MC] Catalog Acquisition [CA] 
White-Box reuse [WB] 
Private 
Assets 
Private 
Assets S1,...,Sn T1,...,Tn 
S 
Cost-effectiveness of Software Reuse Alternatives 57
© 2008, Dr. Amir Tomer 
‱ Measured Cost 
CCR = CMC (S,R) + n(CCA(R,Si)) + n(CWB(Si,Ti)) 
‱ Estimated Cost 
CCR  CMC (S,R) + n · (CCA(R,Si) + CWB(Si,Ti)) 
R Repository 
Assets 
CMC(S,R) n(CCA(R,Si)) 
n(CWB(Si,Ti)) 
Private 
Assets 
Private 
Assets S1,...,Sn T1,...,Tn 
S 
Cost-effectiveness of Software Reuse Alternatives 58
© 2008, Dr. Amir Tomer 
‱ Description 
– A central unit at the organization (or product-line) level is responsible 
for developing core assets and making them available to projects 
‱ new: Develop core assets from scratch 
‱ adapted: Develop core assets by adapting assets which were mined from past 
projects 
– Usually these assets are generic 
‱ Satisfy various needs 
‱ Fit into various environments 
– These core assets are reused in projects “as is” 
‱ Black-Box reuse 
– In many cases the use of such assets is subject to organizational 
discipline 
‱ No project is allowed to develop or acquire such assets independently 
‱ The central core-asset group support the improvement of these assets 
according to changing project needs 
Cost-effectiveness of Software Reuse Alternatives 59
© 2008, Dr. Amir Tomer 
‱ Sequence 
– new: two moves 
‱ Develop (once!) a New core asset R for Reuse 
‱ Black-Box reuse copies of R as target private asset Ti at each project i 
– adapted: three moves 
‱ Mine a reusable asset S from a past project and Catalog it as a core asset R’ 
‱ Adapt R’ for Reuse resulting in a core asset R 
‱ Black-Box reuse copies of R as target private asset Ti at each project i 
R Adapt for 
R’ 
Repository 
Assets 
New for Reuse [NR] 
Black-Box reuse [BB] Mine and Catalog [MC] Black-Box reuse [BB] 
Private 
Assets 
Private 
R 
Reuse [AR] 
T Assets 1,...,Tn 
S 
T1,...,Tn 
Cost-effectiveness of Software Reuse Alternatives 6600 
60
© 2008, Dr. Amir Tomer 
‱ Measured Cost 
CSRn = CAR(f,R) + n(CBB(R,Ti)) 
CSRa = CMC(S,R’) + CAR(R,R’) + n(CBB(R,Ti)) 
‱ Estimated Cost 
CSRn  CAR(f,R) + n · CBB(R,Ti) 
CSRa  CMC(S,R’) + CAR(R,R’) + n · CBB(R,Ti) 
CARC (R’,R) AR(f,R) 
R’ 
Repository 
Assets 
CMC(S,R’) 
n(CBB(R,Ti)) 
Private 
Assets 
Private 
T Assets 1,...,Tn 
S 
R 
R 
n(CBB(R,Ti)) 
T1,...,Tn 
Cost-effectiveness of Software Reuse Alternatives 61
© 2008, Dr. Amir Tomer 
Well, let’s try the model 
on the BR module... 
Sure 
Fine 
Yes! 
OK 
Sounds good 
I’m in 
“Traditional” development 1500 p/h 
Seek a reusable module 50 p/h 
New comm. standards 100 p/h 
Network changes - new server 150 p/h 
SW changes for new server 250 p/h 
Generic DB schema 800 p/h 
SW for generic schema 1200 p/h 
DB interface – each project 100 p/h 
Generic module IV&V 400 p/h 
Reuse anticipation = 6 
Cost-effectiveness of Software Reuse Alternatives 62
© 2008, Dr. Amir Tomer 
S/W IV&V Doc. Total 
N/W & 
server 
DB 
schema 
Elementary Cost Cost Details 
0 250 250 200 100 800 
Adapt a past module for 
generic reuse in all projects 
(same as CWB) 
CAR 
Adaptation for 
Reuse 
800 600 1200 400 100 3100 
Develop a new generic module 
from scratch 
CNR New for Reuse 
0 250 250 200 100 800 
Modify a past module into a 
specific module for a single 
project 
CWB White-Box Reuse 
0 600 600 200 100 1500 
Develop the module from 
scratch for a single project 
CND New Development 
50 
Search and obtain a past 
module and make it available 
to all projects (same as CCP) 
CMC 
Mining and 
Cataloging 
C Retrieve an asset from Catalog 0 CA 
Cataloged asset 
Acquisition 
N/A 
Purchase the module off-the-shelf 
CXA 
eXternal 
Acquisition (COTS) 
50 
Search and obtain a past 
module for the specific project 
CCP Copy and Paste 
100 100 
Implement a driver for the 
generic module at a project 
CBB Black-Box Reuse 
Cost-effectiveness of Software Reuse Alternatives 63
© 2008, Dr. Amir Tomer 
‱ Pure Development 
– Each of the n projects develops its module independently 
CPD = n · CND = 1500·n 
‱ Opportunistic Reuse 
– Each project independently obtains and modifies the module 
COR = n · (CCP+CWB) = 850·n 
‱ Controlled Reuse (applicable only for n≀3 !) 
– First project obtains and modifies the module and the other use 
it as is 
CCR = CMC + CAR + n · CBB = 850 + 100·n 
‱ Systematic Reuse (new) 
– A brand new generic module is developed for the benefit of all 
projects 
CSR = CNR + n · CBB = 3100 + 100·n 
Cost-effectiveness of Software Reuse Alternatives 64
© 2008, Dr. Amir Tomer 
10000 
9000 
8000 
7000 
6000 
5000 
4000 
3000 
2000 
1000 
0 
1 2 3 4 5 6 
Pure Development Opportunistic Reuse Controlled Reuse Systematic Reuse 
Cost-effectiveness of Software Reuse Alternatives 65
© 2008, Dr. Amir Tomer 
‱ What is the best decision for the project manager, if R&D budget is not 
granted? 
– Opportunistic reuse – find something and adapt it 
– Pure Development – forget about reuse 
‱ The two alternatives are pretty close 
– A further risk analysis may support final decision 
10000 
9000 
8000 
7000 
6000 
5000 
4000 
3000 
2000 
1000 
0 
1 2 3 4 5 6 
Pure Development Opportunistic Reuse Controlled Reuse Systematic Reuse 
Cost-effectiveness of Software Reuse Alternatives 66
© 2008, Dr. Amir Tomer 
‱ Same situation, but the PM is responsible for all future projects 
– Controlled Reuse - develop one and keep it 
‱ Remember: This is applicable only for the next 2-3 projects 
– Systematic Reuse 
‱ Becomes attractive for >4 projects, even without R&D support 
10000 
9000 
8000 
7000 
6000 
5000 
4000 
3000 
2000 
1000 
0 
1 2 3 4 5 6 
Pure Development Opportunistic Reuse Controlled Reuse Systematic Reuse 
Cost-effectiveness of Software Reuse Alternatives 67
© 2008, Dr. Amir Tomer 
‱ What is the cost of the first 3 projects in each of the 
alternatives? 
‱ How many future projects should be contracted in order to 
convince R&D to budget generic development? 
Can you answer by yourself? 
Answers: 
‱ CPD=4500, COR=2550, CCR=1150, CSR=3400 
‱ >4 
Cost-effectiveness of Software Reuse Alternatives 68
© 2008, Dr. Amir Tomer 
 Once upon a time, on a project kickoff meeting... 
 The “Reuse” issue from the cost perspective 
 Reuse-based development – operations 
 Elements of reuse costs 
 Reuse scenarios 
 Costing policies 
 Industrial case study 
 Wrap up 
Cost-effectiveness of Software Reuse Alternatives 69
© 2008, Dr. Amir Tomer 
‱ Many companies operate in a “Matrix Organization” 
– Software assets are developed in a central unit 
– Assets are delivered internally to projects 
‱ See also “Framework for Software Product Line Practice” by the SEI 
– http://www.sei.cmu.edu/productlines/framework.html 
‱ How is each project charged for the core assets? 
– Asset development 
– Infrastructure costs 
Cost-effectiveness of Software Reuse Alternatives 70
© 2008, Dr. Amir Tomer 
Infrastructure 
Core asset 
construction 
Product 
Costs construction 
Operations 
Domain 
analysis 
Reposi-tory 
Store 
and 
catalog 
Asset 
devel-opment 
Asset 
acqui-sition 
Product 
IV&V 
Asset 
devel-opment 
Asset 
acqui-sition 
C F F AR (R, R') 
Trans-formation 
C F F NR (R') 
C F F WB (P, P') 
C F F ND (P') 
C F P CA (R, P) 
Transition 
C F CP (P) 
C F F P P MC (P, R) 
C F F P XA (R) 
C F F F P BB (R', P') 
F = Full: Cost of operation comprises the full direct cost of the cost component 
P = Partial: Cost of operation comprises a relative part of the cost component 
Cost-effectiveness of Software Reuse Alternatives 71
© 2008, Dr. Amir Tomer 
‱ Global R&D 
– Projects get core assets for free 
– R&D budget is derived globally from projects’ profit 
‱ Unified costing, based on expected use 
– NRE cost is distributed in advance over expected number of 
reuses 
– Each project is charged the relative part 
‱ Variable costing – direct R&D 
– Projects get R&D budget to support the development of their 
private assets in a more generic fashion, for the benefit of 
future projects 
– Following projects “buy” assets, based on their level of 
reusability 
Cost-effectiveness of Software Reuse Alternatives 72
© 2008, Dr. Amir Tomer 
The Charge per project for the BR Module, n=1,...,10 
3500 
3000 
2500 
2000 
1500 
1000 
500 
0 
1 2 3 4 5 6 7 8 9 10 
Pure Development Opportunistic Reuse Controlled Reuse Systematic Reuse 
Cost-effectiveness of Software Reuse Alternatives 73
© 2008, Dr. Amir Tomer 
‱ Risks 
– Technology change 
– Market / requirements stability 
– Organizational structure stability (long term support) 
‱ Schedule 
– Time to Market constraints 
‱ Quality 
– The effect of regression testing 
– The complexity of generic asset testing, compared to 
dedicated assets 
Cost-effectiveness of Software Reuse Alternatives 74
© 2008, Dr. Amir Tomer 
 Once upon a time, on a project kickoff meeting... 
 The “Reuse” issue from the cost perspective 
 Reuse-based development – operations 
 Elements of reuse costs 
 Reuse scenarios 
 Costing policies 
 Industrial case study 
 Wrap up 
Cost-effectiveness of Software Reuse Alternatives 75
© 2008, Dr. Amir Tomer 
‱ A Consortium of Israeli Industries 
– Objective: Definition and evaluation of a unified software reuse 
methodology 
– Sponsorship: Chief Scientist, Ministry of Trade and Commerce 
– Participating companies 
‱ Defense Industry: RAFAEL, IAI, Tadiran Electronic Systems 
‱ Civilian Industry: ECI Telecom, NICE, Orbotech, Creo (Kodak) 
‱ 3-year project (6/2000 – 5/2003) 
– Year 1: Literature review and methodology definition 
– Year 2: Selective pilot at each industry and collection of unified 
measurements 
– Year 3: Result report and conclusions, based on the collected 
measurements 
Cost-effectiveness of Software Reuse Alternatives 76
© 2008, Dr. Amir Tomer 
‱ Data is based on a pilot of 7 assets in one company 
– Red means actual measurements 
– Black means estimations 
1 2 3 4 5 6 7 
Asset 
Basic operation 
Mining and Cataloging (MC) 110 110 110 110 110 110 110 
Copy and Paste (CP) 110 110 110 110 110 110 110 
New for Reuse (NR) 1000 2000 1000 1000 200 2000 2000 
Adaptation for Reuse (AR) 500 500 400 400 50 400 1000 
Black-Box reuse (BB) 100 200 150 100 30 400 10 
New Development (ND) 700 1500 700 700 180 1500 1500 
Catalog Acquisition (CA) 100 100 50 50 20 50 50 
White-Box reuse (WB) 300 300 400 300 50 300 700 
Number of reuses 2 3 3 2 3 3 4 
Cost-effectiveness of Software Reuse Alternatives 77
© 2008, Dr. Amir Tomer 
‱ Cost of various Scenarios 
– Red means actual measurements 
– Black means estimations 
1 2 3 4 5 6 7 
Asset 
Scenario 
Systematic Reuse — adapted 810 1210 960 710 250 1710 1150 
Systematic Reuse — new 1310 2710 1560 1310 400 3310 2150 
Controlled Reuse 910 1310 1460 810 320 1160 3110 
Opportunistic Reuse 820 1230 1530 820 480 1230 3240 
Pure Development 1400 4500 2100 1400 540 4500 6000 
Cost-effectiveness of Software Reuse Alternatives 78
© 2008, Dr. Amir Tomer 
‱ Cost-effectiveness ratio between scenarios for the 7 assets 
1 2 3 4 5 6 7 
Asset 
Basic operation 
Systematic Reuse vs. 
Controlled Reuse 11% 8% 34% 12% 63% 
Opportunistic Reuse 1% 2% 37% 13% 65% 
Pure Development 42% 73% 54% 49% 81% 
Controlled Reuse vs. 
Systematic Reuse -28% 32% 
Opportunistic Reuse 33% 6% 
Pure Development 41% 74% 
Number of reuses 2 3 3 2 3 3 4 
Cost-effectiveness of Software Reuse Alternatives 79
© 2008, Dr. Amir Tomer 
3000 
2500 
2000 
1500 
1000 
500 
0 
‱ Scenario comparison for asset # 4 
1 2 3 4 5 6 7 
Number of Anticipated Reuses 
Cummulative Cost 
Systematic Reuse - adapted Systematic Reuse - new Controlled Reuse 
Opportunistic Reuse Pure Development 
Cost-effectiveness of Software Reuse Alternatives 80
© 2008, Dr. Amir Tomer 
 Once upon a time, on a project kickoff meeting... 
 The “Reuse” issue from the cost perspective 
 Reuse-based development – operations 
 Elements of reuse costs 
 Reuse scenarios 
 Costing policies 
 Industrial case study 
 Wrap up 
Cost-effectiveness of Software Reuse Alternatives 81
© 2008, Dr. Amir Tomer 
‱ Reuse is not free 
– But costs may be significantly reduced 
‱ Reuse cannot be done without supporting infrastructure 
– But a policy may be introduced for distributing the 
overhead among projects 
‱ There are always alternative reuse scenarios 
– And they can be evaluated for their cost-effectiveness 
‱ The number of expected reuses is a critical factor 
– Established product-line strategy is required 
Cost-effectiveness of Software Reuse Alternatives 82
© 2008, Dr. Amir Tomer 
‱ References 
– Tomer, A. and Schach, S. R., “The Evolution Tree: A Maintenance-Oriented 
Software Development Model”, Proc. CSMR’2000, pp. 209-214. 
– Schach, S. R. and Tomer, A., “Development/Maintenance/Reuse: Software 
Evolution in Product Lines”, Proc. SPLC1, Denver, USA, August, 2000, pp. 437- 
450. 
– Tomer, A. et al, “Evaluating Software Reuse Alternatives”, IEEE Transactions on 
Software Engineering, Vol. 30, No. 9., September, 2004. 
– Clements, P. & Northrop, L. , Software Product Lines: Practices and Patterns. 
Addison-Wesley, 2002. 
‱ Other Sources 
– Morad, S. and Kuflik, T., “Conventional and open source software reuse at 
Orbotech”, Proc. SwSTE’05, p. 8. 
– Mohagheghi, P and Conradi, R., “Quality, productivity and economic benefits of 
software reuse”, Empiricas Software Engineering, Vol. 12, No. 5 / October, 2007. 
– ISO/IEC 12207:1995/Amd.1:2002(E) – Annex G 
Cost-effectiveness of Software Reuse Alternatives 83
© 2008, Dr. Amir Tomer 
‱ Dr. Leah Goldin 
– Golden Solution, Kfar Saba, Israel 
‱ Dr. Tsvi Kuflik 
– University of Haifa, Israel 
‱ Dr. Esther Kimchi 
– Ramat Hasharon, Israel 
‱ Prof. Stephen R. Schach 
– Vanderbilt University, Nashville, TN, USA 
Cost-effectiveness of Software Reuse Alternatives 84
© 2008, Dr. Amir Tomer 
The complete article may be found in: 
[Tomer et al, 2004] 
Cost-effectiveness of Software Reuse Alternatives 85

More Related Content

PPTX
Ch15 software reuse
PPTX
Software engineering: design for reuse
PPT
Cots integration
PPSX
COCOMO Model For Effort Estimation
PPT
Ch18
PPTX
Software component reuse repository
PDF
A cost model for software reuse
PPTX
Ch17-Software Engineering 9
Ch15 software reuse
Software engineering: design for reuse
Cots integration
COCOMO Model For Effort Estimation
Ch18
Software component reuse repository
A cost model for software reuse
Ch17-Software Engineering 9

What's hot (20)

PPTX
Ch2 sw processes
PPTX
Software reuse ppt.
PPT
Introduction
PPTX
Ch 4 software engineering
PPT
Introduction to Aspect Oriented Software Development
PPTX
Software Reuse: Challenges and Business Success
PDF
Context-Oriented Programming
PPTX
Software Evolution and Maintenance Models
PPT
Design Issue(Reuse) in Software Engineering SE14
PDF
Aspect Oriented Software Engineering
PPT
Aspect Oriented Software Development
PPTX
Ch19 systems engineering
PDF
C.R.U.I.S.E. - Component Reuse In Software Engineering
PPTX
Software Engineering
PPTX
Computer Sided Software Engineering
PPT
Software Reuse
PPTX
Reengineering including reverse & forward Engineering
PPTX
PPTX
Ch11 reliability engineering
Ch2 sw processes
Software reuse ppt.
Introduction
Ch 4 software engineering
Introduction to Aspect Oriented Software Development
Software Reuse: Challenges and Business Success
Context-Oriented Programming
Software Evolution and Maintenance Models
Design Issue(Reuse) in Software Engineering SE14
Aspect Oriented Software Engineering
Aspect Oriented Software Development
Ch19 systems engineering
C.R.U.I.S.E. - Component Reuse In Software Engineering
Software Engineering
Computer Sided Software Engineering
Software Reuse
Reengineering including reverse & forward Engineering
Ch11 reliability engineering
Ad

Viewers also liked (20)

PDF
Reusable Code - For Good or For Awesome!
PPTX
Following the money - the cost benefits of student support in distance education
PDF
Findings from the cost effectiveness analysis
PPS
Analyzing the Cost-Effectiveness of Interventions to Benefit Orphans and Vuln...
PPT
Cost Effectiveness Methodology and Sustainability
PDF
Charges costs cost effectiveness - Adam Schickedanz
PPSX
Introduction to Financial Decision Making for Non-Profit Leaders
PPTX
Financial decision making by anil kumar a cfo mantri developers 24 march 2011
PDF
6. touch points bajet 2017 (bm) final
PPT
Decision making theories: Implications for Academic Advising, by Tina Brazil ...
PPTX
CHARACTERISTICS & STRATEGIES OF DECISION MAKING
PPT
Approaches and techniques in budgeting
PDF
Best practices of cost effectiveness of e learning in high growth companies
PPTX
Cost effectiveness analysis - seminar kmu peshawar
DOC
Unit12 : pembuat keputusan
PPS
Approaches to Educational Planning
PPTX
Concept of startegic management, decision making, corporate goals.
PPT
Cost benefit and cost effective analysis
PPT
Financial Decision Making
PPTX
Decision Making Process
Reusable Code - For Good or For Awesome!
Following the money - the cost benefits of student support in distance education
Findings from the cost effectiveness analysis
Analyzing the Cost-Effectiveness of Interventions to Benefit Orphans and Vuln...
Cost Effectiveness Methodology and Sustainability
Charges costs cost effectiveness - Adam Schickedanz
Introduction to Financial Decision Making for Non-Profit Leaders
Financial decision making by anil kumar a cfo mantri developers 24 march 2011
6. touch points bajet 2017 (bm) final
Decision making theories: Implications for Academic Advising, by Tina Brazil ...
CHARACTERISTICS & STRATEGIES OF DECISION MAKING
Approaches and techniques in budgeting
Best practices of cost effectiveness of e learning in high growth companies
Cost effectiveness analysis - seminar kmu peshawar
Unit12 : pembuat keputusan
Approaches to Educational Planning
Concept of startegic management, decision making, corporate goals.
Cost benefit and cost effective analysis
Financial Decision Making
Decision Making Process
Ad

Similar to Cost Effectiveness of Software Reuse Alternatives (20)

PPTX
Maintenance&ReengineeringinSoftwareEngineering
PPTX
Software engineering concept reengineeri
PDF
ovum-real-app-testing-presentation--133465.pdf
PDF
Software Engineering 10th Edition Sommerville Solutions Manual
PPTX
Software Product Lines by Dr. Indika Kumara
PPTX
5333-EnergySimulationToolsAssessment.pptx
 
PDF
Project Controls Expo, 18th Nov 2014 - "The Computer Age and Estimating – Don...
PPT
RELM Overview
PPTX
Lecture 5 reusability
PPTX
Cocomo model
PPTX
Ch01 object orinted programming with java
PPTX
Ch01 object orinted programming with java
PDF
Software Engineering Lecture for Computer Science.pdf
PPTX
Week1.pptx
PPT
Introduction,Software Process Models, Project Management
PPT
Lecture-17.ppt
PPT
Sw Maintenance.ppt
PDF
Software management renaissance
PDF
Plagiarism Report SDLC 1.pdf
PPTX
Software Engineering Unit 1 AKTU Complete
Maintenance&ReengineeringinSoftwareEngineering
Software engineering concept reengineeri
ovum-real-app-testing-presentation--133465.pdf
Software Engineering 10th Edition Sommerville Solutions Manual
Software Product Lines by Dr. Indika Kumara
5333-EnergySimulationToolsAssessment.pptx
 
Project Controls Expo, 18th Nov 2014 - "The Computer Age and Estimating – Don...
RELM Overview
Lecture 5 reusability
Cocomo model
Ch01 object orinted programming with java
Ch01 object orinted programming with java
Software Engineering Lecture for Computer Science.pdf
Week1.pptx
Introduction,Software Process Models, Project Management
Lecture-17.ppt
Sw Maintenance.ppt
Software management renaissance
Plagiarism Report SDLC 1.pdf
Software Engineering Unit 1 AKTU Complete

More from Prof. Amir Tomer (11)

PPTX
Sw arch-2019-tomer
PPTX
There is a system out there! SW Engineering Education from Programming to Eng...
PPTX
Swis modeling
PPTX
Swise arc2015
PPTX
Sw ise modeling-tomer_2013
PPTX
"Just Enough" System Modeling
PPTX
Functional Specification with Use-Cases
PPTX
Software Modeling from Life Cycle Perspective
PPTX
Software Mangineeringment
PPTX
Applying system thinking to model-based software engineering
PPTX
Extracting Quality Scenarios from Functional Scenarios
Sw arch-2019-tomer
There is a system out there! SW Engineering Education from Programming to Eng...
Swis modeling
Swise arc2015
Sw ise modeling-tomer_2013
"Just Enough" System Modeling
Functional Specification with Use-Cases
Software Modeling from Life Cycle Perspective
Software Mangineeringment
Applying system thinking to model-based software engineering
Extracting Quality Scenarios from Functional Scenarios

Recently uploaded (20)

PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
history of c programming in notes for students .pptx
PDF
medical staffing services at VALiNTRY
PPTX
Introduction to Artificial Intelligence
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
System and Network Administraation Chapter 3
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
AI in Product Development-omnex systems
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 41
history of c programming in notes for students .pptx
medical staffing services at VALiNTRY
Introduction to Artificial Intelligence
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
System and Network Administraation Chapter 3
Operating system designcfffgfgggggggvggggggggg
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
How Creative Agencies Leverage Project Management Software.pdf
Upgrade and Innovation Strategies for SAP ERP Customers
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
AI in Product Development-omnex systems
Navsoft: AI-Powered Business Solutions & Custom Software Development
Wondershare Filmora 15 Crack With Activation Key [2025
How to Choose the Right IT Partner for Your Business in Malaysia
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Softaken Excel to vCard Converter Software.pdf
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
VVF-Customer-Presentation2025-Ver1.9.pptx

Cost Effectiveness of Software Reuse Alternatives

  • 1. © 2008, Dr. Amir Tomer ISEC 2008, Hyderabad, India Cost-effectiveness of Software Reuse Alternatives 1
  • 2. © 2008, Dr. Amir Tomer Education B.Sc., M.Sc. – Computer Science, Technion, Haifa, Israel Ph.D. – Computing, Imperial College, London, UK Industrial Experience 1982-2006, RAFAEL – Advanced Defense Systems, Israel Software developer, software manager Systems Engineer Director of Systems and Software Engineering Processes Academic Experience Senior lecturer, Software Engineering Academic advisor, Software courses, External Studies Certifications Certified Software Quality Engineer (CSQE) by ASQ Authorized CMMI instructor by SEI Cost-effectiveness of Software Reuse Alternatives 2
  • 3. © 2008, Dr. Amir Tomer ‱ Well known facts – Software reuse can save costs – Generic software development costs more than dedicated software development ‱ However... – Can the saving be estimated with high confidence? – Can the ROI of generic development be precisely predicted? Cost-effectiveness of Software Reuse Alternatives 3
  • 4. © 2008, Dr. Amir Tomer ‱ This tutorial introduces a model for evaluating the relative cost-effectiveness of software reuse alternatives ‱ The model is – Formally defined – Approved by industry – Effective – Easy to implement and... – Fun! Cost-effectiveness of Software Reuse Alternatives 4
  • 5. © 2008, Dr. Amir Tomer  Once upon a time, on a project kickoff meeting...  The “Reuse” issue from the cost perspective  Reuse-based development – operations  Elements of reuse costs  Reuse scenarios  Costing policies  Industrial case study  Wrap up Cost-effectiveness of Software Reuse Alternatives 5
  • 6. © 2008, Dr. Amir Tomer GoldenEgg Project Kick-off Meeting Participants: Project Manager System Engineer Software Manager DB Architect Network Engineer Division R&D Manager Sales Manager Cost-effectiveness of Software Reuse Alternatives 6
  • 7. © 2008, Dr. Amir Tomer It was proposed to reuse the Backup & Recovery module from one of the previous projects. What do you think? Great! Brilliant idea! Direct saving of 1500 hours! Let’s go for it! I always support reuse! It should shorten the schedule too! 1 Backup & Recovery (BR) Development Cost Estimation Network & Server 600 p/h Application Software 600 p/h Integration & Test 200 p/h User Documentation 100 p/h ___________________________________ Total 1500 p/h Cost-effectiveness of Software Reuse Alternatives 7
  • 8. © 2008, Dr. Amir Tomer Wait, wait... We first need to scan through all past projects and then analyze which BR module fits best. Investing 50 p/h in this research should be very cost-effective 2 Cost-effectiveness of Software Reuse Alternatives 8
  • 9. © 2008, Dr. Amir Tomer New communication standards have been introduced, and the network design must be amended accordingly. It should take 100 p/h. And, by the way, the DB server has been upgraded too, so in any case slight design modifications are necessary. These should take not more than another 150 p/h, but this should serve the future projects as well. 3 Cost-effectiveness of Software Reuse Alternatives 9
  • 10. © 2008, Dr. Amir Tomer An upgraded server requires a few software changes. Assuming the DB schema persists then my estimation does not exceed 250 p/h. Actually we did developed an improved schema, but you can have it for free. But if the schema changes, then the reuse is meaningless! The entire software must be re-developed. So, if you go for re-development let’s look ahead to the future projects. With 800 p/h we can develop a generic DB architecture to support future needs. 6 7 5 4 8 To my experience, a generic architecture will double the cost of software development, although the chances for reuse increase. However, in any case, each project should build its own interface, investing 100 p/h. Cost-effectiveness of Software Reuse Alternatives 10
  • 11. © 2008, Dr. Amir Tomer A generic software is more complex and may double integration and test effort, although it will be done once for future projects. I suggest that R&D will support the generic development 9 Cost-effectiveness of Software Reuse Alternatives 11
  • 12. © 2008, Dr. Amir Tomer I am not supporting anything without proven ROI. In order to 10 allocate R&D budget I need to know how many future projects are expected to use this generic module. Do we have any such anticipation? We currently negotiate 10 prospective clients. Assuming 50% success gives 5 projects. Adding the current one makes a total of 6 reuses. 11 Cost-effectiveness of Software Reuse Alternatives 12
  • 13. © 2008, Dr. Amir Tomer The existing solution is applicable to 2-3 projects, at the most. Afterwards a new DB architecture will be needed anyway. If we do not go for a generic solution every future project will have to develop their own module separately. 12 Cost-effectiveness of Software Reuse Alternatives 13
  • 14. © 2008, Dr. Amir Tomer So, what do we decide? ? ? ? ? ? ? “Traditional” development 1500 p/h Seek a reusable module 50 p/h New comm. standards 100 p/h Network changes - new server 150 p/h SW changes for new server 250 p/h Generic DB schema 800 p/h SW for generic schema 1200 p/h DB interface – each project 100 p/h Generic module IV&V 400 p/h Reuse anticipation = 6 Cost-effectiveness of Software Reuse Alternatives 14
  • 15. © 2008, Dr. Amir Tomer ‱ What is the best decision for the project manager, if R&D budget is not granted? ‱ Same situation, but the PM is responsible for all future projects ‱ What is the cost of the first 3 projects in each of the alternatives? ‱ How many future projects should be contracted in order to convince R&D to budget generic development? Would you like to make a guess? By the end of this tutorial we will be able to answer these questions precisely... Cost-effectiveness of Software Reuse Alternatives 15
  • 16. © 2008, Dr. Amir Tomer  Once upon a time, on a project kickoff meeting...  The “Reuse” issue from the cost perspective  Reuse-based development – operations  Elements of reuse costs  Reuse scenarios  Costing policies  Industrial case study  Wrap up Cost-effectiveness of Software Reuse Alternatives 16
  • 17. © 2008, Dr. Amir Tomer ‱ Question 1: What can be reused? ‱ Answer 1: Any kind of software artifacts/components – Requirements – Features / specifications – Designs – Source code – Run-time components (EXE, DLL, COM objects etc.) – Documentation (e.g. manuals, help files) – Test cases / Test procedures – Commercial off-the-Shelf (COTS) Cost-effectiveness of Software Reuse Alternatives 17
  • 18. © 2008, Dr. Amir Tomer ‱ Question 2: What is affected? ‱ Answer 2: Could be anything – Nothing! ‱ Is this possible at all? – The reused component is adapted to fit the new environment ‱ What is the amount of modification needed? ‱ What “damage” is caused to the component? – The environment is adapted for the component to fit in ‱ What is the effect on other components in the same environment? Huge Differences! Cost-effectiveness of Software Reuse Alternatives 18
  • 19. © 2008, Dr. Amir Tomer ‱ Question 3: How components are being reused? ‱ Answer 3: Two conventional forms – Black-box reuse ‱ The component is used unchanged (as is) – White-box reuse ‱ The component undergoes modification  Cost-effectiveness of Software Reuse Alternatives 19
  • 20. © 2008, Dr. Amir Tomer 100% development/ modification effort 0% no reuse black-box reuse white-box reuse Cost-effectiveness of Software Reuse Alternatives 20
  • 21. © 2008, Dr. Amir Tomer Informal definitions, just for the common understanding of what follows ‱ Software Artifact – Any work product resulted from a software development activity ‱ Software Component – A piece of software or a part of a software system, including all the artifacts associated with it ‱ Software Asset – Any software component or artifact residing in library, accessible to relevant stakeholders ‱ Assets may be either private (owned by a single project) or public (accessible to one or more organizational units) ‱ Core Asset – A public asset which is classified as an important reusable building block Cost-effectiveness of Software Reuse Alternatives 21
  • 22. © 2008, Dr. Amir Tomer ‱ Costs – from which viewpoint? – We look at cost from the enterprise point of view ‱ Over all projects ‱ Over all NRE (R&D) ‱ Over all supporting infrastructure ‱ The cost of any delivered product comprises the following ingredients – The cost of the specific product development – The cost of reusable assets incorporated into the product – The cost of the infrastructure enabling asset reuse Cost-effectiveness of Software Reuse Alternatives 22
  • 23. © 2008, Dr. Amir Tomer ‱ Import of components into the product – Searching and locating reusable assets ‱ From inside or outside the organization – COTS procurement – Outsourcing component development ‱ Implementation of product components – Requirements, analysis, design, code and unit test – Applying modifications/customizations to imported components + regression test – Applying modifications to other components, in order to enable the incorporation of imported components ‱ Product integration, verification and validation (IV&V) – Design reviews – Partial and final integrations – System test, acceptance test, validation etc. – ATE development / procurement Cost-effectiveness of Software Reuse Alternatives 23
  • 24. © 2008, Dr. Amir Tomer ‱ Import of core assets – Searching and locating reusable assets ‱ From inside or outside the organization – COTS procurement – Outsourcing component development ‱ Implementation of core assets (generic/reusable components) – Requirements, analysis, design, code and unit test – Applying modifications/customizations to imported components + regression test – Applying modifications to other components, in order to enable the incorporation of imported components Cost-effectiveness of Software Reuse Alternatives 24
  • 25. © 2008, Dr. Amir Tomer ‱ Asset Repository Establishment & Maintenance – Storage and communication – Database services – Catalog services ‱ Asset Repository Population – Domain Analysis ‱ Mapping the organization product lines ‱ Categorization and specification of reusable assets – Storing and cataloging identified assets Cost-effectiveness of Software Reuse Alternatives 25
  • 26. © 2008, Dr. Amir Tomer ‱ From your knowledge and experience, recall a case of reusing a software component, and then answer: Q: What was the component in focus? A: __________________________________________ Q: What activities were performed? A: __________________________________________ Q: What is the estimated cost (by means of effort, money or both ) A: ____________________________________________ Cost-effectiveness of Software Reuse Alternatives 26
  • 27. © 2008, Dr. Amir Tomer ‱ Who covers the costs of core asset development? ‱ How are these costs shared among the products using the assets? and most importantly ‱ Is it always cost-effective, and if not ‱ When is it? And under what conditions? In order to answer these questions a better breakdown of the costs is needed... Cost-effectiveness of Software Reuse Alternatives 27
  • 28. © 2008, Dr. Amir Tomer  Once upon a time, on a project kickoff meeting...  The “Reuse” issue from the cost perspective  Reuse-based development – operations  Elements of reuse costs  Reuse scenarios  Costing policies  Industrial case study  Wrap up Cost-effectiveness of Software Reuse Alternatives 28
  • 29. © 2008, Dr. Amir Tomer © 1999-2008 , Ś“"Śš ŚąŚžŚ™Śš ŚȘŚ•ŚžŚš 2-dimensional evolution tree: The life cycle of a software component [Schach & Tomer, 2000] recoding rerequirements reanalysis redesign recoding redesign C recoding 1 Ver. 1 R2 S2 D2 C2 Ver. 2 D3 C3 Ver. 3 f R0 S0 D0 C0 Ver. 0 Require-ments Analysis Design Code Development Axis Maintenance Axis Cost-effectiveness of Software Reuse Alternatives 29
  • 30. © 2008, Dr. Amir Tomer 3-dimensional evolution tree: The life cycle of a software product-line [Schach & Tomer, 2000] diversity Reuse Core asset repository Development progress Maintenance effort ‱ Evolution occurs by the “moves” of artifacts along the 3 axes: – Development ‱ Engineering ‱ Reverse-engineering – Maintenance ‱ Modification ‱ Roll-back – Reuse ‱ Mining ‱ Acquisition Mining an existing asset Acquiring a core asset Cost-effectiveness of Software Reuse Alternatives 30
  • 31. © 2008, Dr. Amir Tomer Repository Assets Private Assets ‱ Artifacts that are cataloged in the core-asset repository – Available for acquisition by specific products – Available for modification, only within the environment of the repository – Include metadata (classification data and attributes) ‱ Artifacts that are contained within a specific product – Available for mining and cataloging into the repository – Available for private modification, only within the environment of the same specific product Cost-effectiveness of Software Reuse Alternatives 31
  • 32. © 2008, Dr. Amir Tomer Repository Assets Private Assets Transformation Operations Transition Operations Transformation Operations Development, Maintenance Reuse Cost-effectiveness of Software Reuse Alternatives 32
  • 33. © 2008, Dr. Amir Tomer ‱ Repository asset transformation – NR: New for Reuse ‱ Constructing a new repository asset R' from scratch – It is expected that the asset will be developed in conformance with applicable standards that make it effectively reusable – AR: Adaptation for Reuse ‱ Modifying an existing repository asset R, resulting in another reusable repository asset R‘ – Both R and R' must reside in the repository Repository New for Reuse [NR] R R’ Assets Adaptation for Reuse [AR] Cost-effectiveness of Software Reuse Alternatives 33
  • 34. © 2008, Dr. Amir Tomer ‱ Private asset transformation – ND: New Development ‱ Constructing a new private asset P' from scratch – WB: White-Box reuse ‱ Modifying an existing private asset P into another private asset P' within the same product – Both P and P' must reside in the product library, as revisions of the same artifact White-Box Reuse [WB] Private P P’ Assets New Development [ND] Cost-effectiveness of Software Reuse Alternatives 34
  • 35. © 2008, Dr. Amir Tomer ‱ Transition into Repository – MC: Mining and Cataloging ‱ Identifying and acquiring an existing private asset P, from a certain product, and then storing and cataloging it formally, as a repository asset R – XA: eXternal Acquisition ‱ Acquiring an asset from some external source and cataloging it as a repository asset R. This is the case with COTS artifacts eXternal Acquisition [XA] Repository Assets Mining & Cataloging [MC] Private R P Assets Cost-effectiveness of Software Reuse Alternatives 35
  • 36. © 2008, Dr. Amir Tomer ‱ Transition into Product – BB: Black-Box reuse ‱ Acquiring a copy of a repository asset R “as is” (i.e. with no modifications) for a specific product, as a private asset P – CP: “Copy and Paste” ‱ Acquiring a copy of a private asset P for a specific product – The source asset is not cataloged in the repository – Awareness of its existence is based on personal knowledge P Repository Assets Private Assets R Black-Box reuse [BB] “Copy & Paste” [CP] Cost-effectiveness of Software Reuse Alternatives 36
  • 37. © 2008, Dr. Amir Tomer New for Reuse [NR] R R’ P P’ Cataloged asset Acquisition (CA) White-Box Reuse [WB] Transformation operations Transition operations Repository Assets “Copy & Paste” [CP] Private Assets Adaptation for Reuse [AR] Black-Box Reuse [BB] Mining & Cataloging [MC] New Development [ND] eXternal (COTS) Acquisition [XA] target component Cost-effectiveness of Software Reuse Alternatives 37
  • 38. © 2008, Dr. Amir Tomer ‱ Refer to the reuse case you mentioned in Exercise 1 and express the reuse activities in terms of one or more elementary operations, specifying – The source artifact(s) and their location(s) ________________________________________________ – The target artifact(s) and their location(s) ________________________________________________ – The elementary operation(s) used _____________________ ______________________ _____________________ ______________________ Cost-effectiveness of Software Reuse Alternatives 38
  • 39. © 2008, Dr. Amir Tomer  Once upon a time, on a project kickoff meeting...  The “Reuse” issue from the cost perspective  Reuse-based development – operations  Elements of reuse costs  Reuse scenarios  Costing policies  Industrial case study  Wrap up Cost-effectiveness of Software Reuse Alternatives 39
  • 40. © 2008, Dr. Amir Tomer ‱ Every operation is associated with costs – Effort, in p/h – Money ‱ Unlike common illusions, there are usually no free operations! ‱ Costs may be classified by the concern of the body obtaining the artifact – Project costs ‱ The cost of any transformation occurring within the project ‱ The cost of any transition into the project – Infrastructure costs ‱ The cost of any transformation occurring within the repository ‱ The cost of any transition into the repository Cost-effectiveness of Software Reuse Alternatives 40
  • 41. © 2008, Dr. Amir Tomer Let OP be any elementary operation S, T be source and target artifacts, respectively Then COP(S,T) denotes the cost incurred by obtaining T from S by means of OP ‱ Examples 1. CAR(q.c, q.uml) ‱ The effort invested in reverse-engineering 2. CCA(q.uml, q.java) ‱ The price of a java code-generation license Cost-effectiveness of Software Reuse Alternatives 41
  • 42. © 2008, Dr. Amir Tomer ‱ Part of the elementary operations result in new artifacts (from scratch) ‱ These operations are equivalent to other operations, where the source artifact is null (denoted “f”) ‱ Equivalent operations – New for Reuse ï‚ș Adaptation for Reuse (from scratch) ‱ CNR(R’) = CAR(f, R’) – New Development ï‚ș White-Box reuse (from scratch) ‱ CND(P’) = CWB(f, P’) – eXternal Acquisition ï‚ș Mining and Cataloging (from the outside) ‱ CXA(R) = CMC(f, R) – “Copy & Paste” ï‚ș Catalog Acquisition (of the empty artifact) ‱ CCP(P) = CCA(f, P) Cost-effectiveness of Software Reuse Alternatives 42
  • 43. © 2008, Dr. Amir Tomer CNR(R’) = CAR(f,R’) f R R’ P P’ Repository Assets Private Assets CAR(R,R’) CMC(P,R) CCA(R,P) CBB(R’,P’) CND(P’) = CWB(f,P’) f f CMC(P’,R’) CCP(P) = CCA(f,P) CWB(P,P’) f CXA(R) = CMC(f,R) Infrastructure costs: ‱ Obtain Repository Assets ‱ Modify Repository Assets Project costs: ‱ Obtain Private Assets ‱ Modify Private Assets Cost-effectiveness of Software Reuse Alternatives 43
  • 44. © 2008, Dr. Amir Tomer ‱ When coming to evaluate alternatives, cost accumulation may combine actual costs with estimated costs – Actual costs: Measured in past activities – Estimated costs: Predicted according to knowledge and experience ‱ For example, consider a system integrated by two components: A and B. The alternatives are: Alternative A B Interface 1 Buy Buy Develop 2 Buy Develop - 3 Develop Buy - 4 Develop Develop - Actual Costs Estimated Costs Cost-effectiveness of Software Reuse Alternatives 44
  • 45. © 2008, Dr. Amir Tomer Cost Notation Measurement Estimation Adaptation for Reuse CAR(R,R’) The actual cost invested in turning the repository asset R into a reusable repository asset R’ The estimated cost required for turning the repository asset R into a reusable repository asset R’ New for Reuse CNR(R’) = CAR(f,R’) The actual cost invested in building the reusable repository asset R’ from scratch The estimated cost required for building the reusable repository asset R’ from scratch White-Box Reuse CWB(P,P’) The actual cost invested in turning the private asset P into a specific private asset P’ The estimated cost required for turning the private asset P into a specific private asset P’ New Development CND(P’) = CWB(f,P’) The actual cost invested in building the specific private asset P’ from scratch The estimated cost required for building the specific private asset P’ from scratch Cost-effectiveness of Software Reuse Alternatives 45
  • 46. © 2008, Dr. Amir Tomer Cost Notation Measurement Estimation Mining and Cataloging CMC(P,R) The actual cost invested in locating the private asset P and cataloging it as a repository asset R’ The estimated cost required for locating the private asset P and cataloging it as a repository asset R’ Cataloged assets Acquisition CCA(R,P) The actual cost invested in obtaining a copy of the repository asset R as a specific private asset P, for further modifications The estimated cost required for obtaining a copy of the repository asset R as a specific private asset P, for further modifications eXternal Acquisition (COTS) CXA(R) = CMC(f,R) The actual cost of purchasing a copy of R as a repository asset The estimated cost of purchasing a copy of R as a repository asset Copy and Paste CCP(P) = CCA(f,P) The actual cost invested in obtaining a copy of P as a specific private asset The estimated cost required for obtaining a copy of P as a specific private asset Black-Box Reuse CBB(R’,P’) The actual cost invested in obtaining a copy of the repository asset R as a specific private asset P “as is” The estimated cost required for obtaining a copy of the repository asset R as a specific private asset P “as is” Cost-effectiveness of Software Reuse Alternatives 46
  • 47. © 2008, Dr. Amir Tomer  Once upon a time, on a project kickoff meeting...  The “Reuse” issue from the cost perspective  Reuse-based development – operations  Elements of reuse costs  Reuse scenarios  Costing policies  Industrial case study  Wrap up Cost-effectiveness of Software Reuse Alternatives 47
  • 48. © 2008, Dr. Amir Tomer ‱ An asset is subject to a single elementary operation at one time: – Transformation ‱ Modifying the asset within its current location – Transition ‱ Moving an unchanged copy of the asset from one location to another     Cost-effectiveness of Software Reuse Alternatives 48
  • 49. © 2008, Dr. Amir Tomer old C project queue.c new C++ project queue.cpp new Java project queue.java S/W Dept. A C-language queue-handling package from an old project is reverse-engineered into UML design The design is implemented in C++ for a new project queue.uml The design is implemented in Java for a new project Cost-effectiveness of Software Reuse Alternatives 49
  • 50. © 2008, Dr. Amir Tomer ‱ Scenario = a sequence of elementary operations – Following the “one-move-at-a-time” principle ‱ The example scenario 1. MC: q.c is mined from the C project and cataloged in the repository 2. AR: q.c is adapted for reuse (reverse-engineered) into q.uml 3. CA: q.uml is acquired from the repository into the C++ project 4. WB: q.uml is privately implemented in the C++ project, resulting in q.cpp 5. CA: q.uml is acquired from the repository into the Java project 6. WB: q.uml is privately implemented in the Java project, resulting in q.java Repository C project C++ project Java project 1 [MC] q.c q.c 2 [AR] q.uml 3 [CA] q.uml 5 [CA] q.uml 4 [WB] q.cpp 6 [WB] q.java Cost-effectiveness of Software Reuse Alternatives 50
  • 51. © 2008, Dr. Amir Tomer ‱ Although the variety of reuse-based development scenarios is unlimited, a few scenarios are more widely applied ‱ In the following we will investigate 5 typical scenarios – Pure Development ‱ Traditional development from scratch, with no reuse at all ‱ This is a reference scenario for cost-effectiveness evaluation – Opportunistic Reuse ‱ The most commonly used scenario, usually provides an instant opportunity to save some development effort – Controlled Reuse ‱ Sharing of reusable components in the organization is controlled, even without developing generic core asset – Systematic Reuse – new ‱ Reusable core assets are developed from scratch for standard use across the organization – Systematic Reuse – adapted ‱ Provisionally reusable assets are mined from past projects and then being modified into core assets for reuse across the organization Cost-effectiveness of Software Reuse Alternatives 51
  • 52. © 2008, Dr. Amir Tomer ‱ Description – Each project i develops its own component Ti from scratch ‱ No reuse in effect ‱ Scenario sequence – Single move, repeated at each project ‱ New Development [ND] This scenario serves as a reference to all other scenarios Private Assets New Development [ND] f T1,
,Tn Cost-effectiveness of Software Reuse Alternatives 52
  • 53. © 2008, Dr. Amir Tomer ‱ Measured Cost – The total cost is the accumulated costs of the development effort over all the projects CPD = n(CND(Ti)) = n(CWB(f,Ti)) ‱ Estimated Cost – Assuming T1  T2  ...  Tn  T CPD  n · CWB(f,T) Private Assets n(CWB(f,Ti)) f T1,
,Tn Cost-effectiveness of Software Reuse Alternatives 53
  • 54. © 2008, Dr. Amir Tomer Private Assets White-Box reuse [WB] T1,
,Tn S1,...,Sn Copy & Paste [CP] f ‱ Description – Each projects i independently obtains an existing source component Si and modifies it into a private component Ti by means of White-Box reuse ‱ Scenario Sequence – Two moves, repeated at each project ‱ Copy & Paste ‱ White-Box Reuse Cost-effectiveness of Software Reuse Alternatives 54
  • 55. © 2008, Dr. Amir Tomer Private Assets T1,
,Tn n(CWB(Si,Ti)) S1,...,Sn n(CCA(f,Si)) f ‱ Measured Cost – The total cost combines the effort invested by each project in searching and copying Si with the effort invested modifying Si into Ti COR = n(CCP(Si) + CWB(Si,Ti)) = n(CCA(f,Si) + CWB(Si,Ti)) ‱ Estimated Cost – Assuming S1  S2  ...  Sn  S and T1  T2  ...  Tn  T COR  n · (CCA(f,S) + CWB(S,T)) Cost-effectiveness of Software Reuse Alternatives 55
  • 56. © 2008, Dr. Amir Tomer ‱ Description – Projects are not allowed to freely obtain assets from other projects – Assets from past projects are cataloged in a searchable repository ‱ By initiated mining ‱ By volunteered/embraced/rewarded contribution ‱ By organizing all private project libraries under a common repository (organizational intranet) – Assets remain in the repository in their original form – Assets are available for Catalog Acquisition [CA] to all projects Cost-effectiveness of Software Reuse Alternatives 56
  • 57. © 2008, Dr. Amir Tomer ‱ Scenario Sequence – Three moves ‱ Mining (once only!)a source asset S and Cataloging it as a repository asset R ‱ Catalog Acquisition of a copy of R into a source asset Si, for each project i ‱ Obtaining a private target asset Ti from Si in each project i R Repository Assets Mining & Cataloging [MC] Catalog Acquisition [CA] White-Box reuse [WB] Private Assets Private Assets S1,...,Sn T1,...,Tn S Cost-effectiveness of Software Reuse Alternatives 57
  • 58. © 2008, Dr. Amir Tomer ‱ Measured Cost CCR = CMC (S,R) + n(CCA(R,Si)) + n(CWB(Si,Ti)) ‱ Estimated Cost CCR  CMC (S,R) + n · (CCA(R,Si) + CWB(Si,Ti)) R Repository Assets CMC(S,R) n(CCA(R,Si)) n(CWB(Si,Ti)) Private Assets Private Assets S1,...,Sn T1,...,Tn S Cost-effectiveness of Software Reuse Alternatives 58
  • 59. © 2008, Dr. Amir Tomer ‱ Description – A central unit at the organization (or product-line) level is responsible for developing core assets and making them available to projects ‱ new: Develop core assets from scratch ‱ adapted: Develop core assets by adapting assets which were mined from past projects – Usually these assets are generic ‱ Satisfy various needs ‱ Fit into various environments – These core assets are reused in projects “as is” ‱ Black-Box reuse – In many cases the use of such assets is subject to organizational discipline ‱ No project is allowed to develop or acquire such assets independently ‱ The central core-asset group support the improvement of these assets according to changing project needs Cost-effectiveness of Software Reuse Alternatives 59
  • 60. © 2008, Dr. Amir Tomer ‱ Sequence – new: two moves ‱ Develop (once!) a New core asset R for Reuse ‱ Black-Box reuse copies of R as target private asset Ti at each project i – adapted: three moves ‱ Mine a reusable asset S from a past project and Catalog it as a core asset R’ ‱ Adapt R’ for Reuse resulting in a core asset R ‱ Black-Box reuse copies of R as target private asset Ti at each project i R Adapt for R’ Repository Assets New for Reuse [NR] Black-Box reuse [BB] Mine and Catalog [MC] Black-Box reuse [BB] Private Assets Private R Reuse [AR] T Assets 1,...,Tn S T1,...,Tn Cost-effectiveness of Software Reuse Alternatives 6600 60
  • 61. © 2008, Dr. Amir Tomer ‱ Measured Cost CSRn = CAR(f,R) + n(CBB(R,Ti)) CSRa = CMC(S,R’) + CAR(R,R’) + n(CBB(R,Ti)) ‱ Estimated Cost CSRn  CAR(f,R) + n · CBB(R,Ti) CSRa  CMC(S,R’) + CAR(R,R’) + n · CBB(R,Ti) CARC (R’,R) AR(f,R) R’ Repository Assets CMC(S,R’) n(CBB(R,Ti)) Private Assets Private T Assets 1,...,Tn S R R n(CBB(R,Ti)) T1,...,Tn Cost-effectiveness of Software Reuse Alternatives 61
  • 62. © 2008, Dr. Amir Tomer Well, let’s try the model on the BR module... Sure Fine Yes! OK Sounds good I’m in “Traditional” development 1500 p/h Seek a reusable module 50 p/h New comm. standards 100 p/h Network changes - new server 150 p/h SW changes for new server 250 p/h Generic DB schema 800 p/h SW for generic schema 1200 p/h DB interface – each project 100 p/h Generic module IV&V 400 p/h Reuse anticipation = 6 Cost-effectiveness of Software Reuse Alternatives 62
  • 63. © 2008, Dr. Amir Tomer S/W IV&V Doc. Total N/W & server DB schema Elementary Cost Cost Details 0 250 250 200 100 800 Adapt a past module for generic reuse in all projects (same as CWB) CAR Adaptation for Reuse 800 600 1200 400 100 3100 Develop a new generic module from scratch CNR New for Reuse 0 250 250 200 100 800 Modify a past module into a specific module for a single project CWB White-Box Reuse 0 600 600 200 100 1500 Develop the module from scratch for a single project CND New Development 50 Search and obtain a past module and make it available to all projects (same as CCP) CMC Mining and Cataloging C Retrieve an asset from Catalog 0 CA Cataloged asset Acquisition N/A Purchase the module off-the-shelf CXA eXternal Acquisition (COTS) 50 Search and obtain a past module for the specific project CCP Copy and Paste 100 100 Implement a driver for the generic module at a project CBB Black-Box Reuse Cost-effectiveness of Software Reuse Alternatives 63
  • 64. © 2008, Dr. Amir Tomer ‱ Pure Development – Each of the n projects develops its module independently CPD = n · CND = 1500·n ‱ Opportunistic Reuse – Each project independently obtains and modifies the module COR = n · (CCP+CWB) = 850·n ‱ Controlled Reuse (applicable only for n≀3 !) – First project obtains and modifies the module and the other use it as is CCR = CMC + CAR + n · CBB = 850 + 100·n ‱ Systematic Reuse (new) – A brand new generic module is developed for the benefit of all projects CSR = CNR + n · CBB = 3100 + 100·n Cost-effectiveness of Software Reuse Alternatives 64
  • 65. © 2008, Dr. Amir Tomer 10000 9000 8000 7000 6000 5000 4000 3000 2000 1000 0 1 2 3 4 5 6 Pure Development Opportunistic Reuse Controlled Reuse Systematic Reuse Cost-effectiveness of Software Reuse Alternatives 65
  • 66. © 2008, Dr. Amir Tomer ‱ What is the best decision for the project manager, if R&D budget is not granted? – Opportunistic reuse – find something and adapt it – Pure Development – forget about reuse ‱ The two alternatives are pretty close – A further risk analysis may support final decision 10000 9000 8000 7000 6000 5000 4000 3000 2000 1000 0 1 2 3 4 5 6 Pure Development Opportunistic Reuse Controlled Reuse Systematic Reuse Cost-effectiveness of Software Reuse Alternatives 66
  • 67. © 2008, Dr. Amir Tomer ‱ Same situation, but the PM is responsible for all future projects – Controlled Reuse - develop one and keep it ‱ Remember: This is applicable only for the next 2-3 projects – Systematic Reuse ‱ Becomes attractive for >4 projects, even without R&D support 10000 9000 8000 7000 6000 5000 4000 3000 2000 1000 0 1 2 3 4 5 6 Pure Development Opportunistic Reuse Controlled Reuse Systematic Reuse Cost-effectiveness of Software Reuse Alternatives 67
  • 68. © 2008, Dr. Amir Tomer ‱ What is the cost of the first 3 projects in each of the alternatives? ‱ How many future projects should be contracted in order to convince R&D to budget generic development? Can you answer by yourself? Answers: ‱ CPD=4500, COR=2550, CCR=1150, CSR=3400 ‱ >4 Cost-effectiveness of Software Reuse Alternatives 68
  • 69. © 2008, Dr. Amir Tomer  Once upon a time, on a project kickoff meeting...  The “Reuse” issue from the cost perspective  Reuse-based development – operations  Elements of reuse costs  Reuse scenarios  Costing policies  Industrial case study  Wrap up Cost-effectiveness of Software Reuse Alternatives 69
  • 70. © 2008, Dr. Amir Tomer ‱ Many companies operate in a “Matrix Organization” – Software assets are developed in a central unit – Assets are delivered internally to projects ‱ See also “Framework for Software Product Line Practice” by the SEI – http://www.sei.cmu.edu/productlines/framework.html ‱ How is each project charged for the core assets? – Asset development – Infrastructure costs Cost-effectiveness of Software Reuse Alternatives 70
  • 71. © 2008, Dr. Amir Tomer Infrastructure Core asset construction Product Costs construction Operations Domain analysis Reposi-tory Store and catalog Asset devel-opment Asset acqui-sition Product IV&V Asset devel-opment Asset acqui-sition C F F AR (R, R') Trans-formation C F F NR (R') C F F WB (P, P') C F F ND (P') C F P CA (R, P) Transition C F CP (P) C F F P P MC (P, R) C F F P XA (R) C F F F P BB (R', P') F = Full: Cost of operation comprises the full direct cost of the cost component P = Partial: Cost of operation comprises a relative part of the cost component Cost-effectiveness of Software Reuse Alternatives 71
  • 72. © 2008, Dr. Amir Tomer ‱ Global R&D – Projects get core assets for free – R&D budget is derived globally from projects’ profit ‱ Unified costing, based on expected use – NRE cost is distributed in advance over expected number of reuses – Each project is charged the relative part ‱ Variable costing – direct R&D – Projects get R&D budget to support the development of their private assets in a more generic fashion, for the benefit of future projects – Following projects “buy” assets, based on their level of reusability Cost-effectiveness of Software Reuse Alternatives 72
  • 73. © 2008, Dr. Amir Tomer The Charge per project for the BR Module, n=1,...,10 3500 3000 2500 2000 1500 1000 500 0 1 2 3 4 5 6 7 8 9 10 Pure Development Opportunistic Reuse Controlled Reuse Systematic Reuse Cost-effectiveness of Software Reuse Alternatives 73
  • 74. © 2008, Dr. Amir Tomer ‱ Risks – Technology change – Market / requirements stability – Organizational structure stability (long term support) ‱ Schedule – Time to Market constraints ‱ Quality – The effect of regression testing – The complexity of generic asset testing, compared to dedicated assets Cost-effectiveness of Software Reuse Alternatives 74
  • 75. © 2008, Dr. Amir Tomer  Once upon a time, on a project kickoff meeting...  The “Reuse” issue from the cost perspective  Reuse-based development – operations  Elements of reuse costs  Reuse scenarios  Costing policies  Industrial case study  Wrap up Cost-effectiveness of Software Reuse Alternatives 75
  • 76. © 2008, Dr. Amir Tomer ‱ A Consortium of Israeli Industries – Objective: Definition and evaluation of a unified software reuse methodology – Sponsorship: Chief Scientist, Ministry of Trade and Commerce – Participating companies ‱ Defense Industry: RAFAEL, IAI, Tadiran Electronic Systems ‱ Civilian Industry: ECI Telecom, NICE, Orbotech, Creo (Kodak) ‱ 3-year project (6/2000 – 5/2003) – Year 1: Literature review and methodology definition – Year 2: Selective pilot at each industry and collection of unified measurements – Year 3: Result report and conclusions, based on the collected measurements Cost-effectiveness of Software Reuse Alternatives 76
  • 77. © 2008, Dr. Amir Tomer ‱ Data is based on a pilot of 7 assets in one company – Red means actual measurements – Black means estimations 1 2 3 4 5 6 7 Asset Basic operation Mining and Cataloging (MC) 110 110 110 110 110 110 110 Copy and Paste (CP) 110 110 110 110 110 110 110 New for Reuse (NR) 1000 2000 1000 1000 200 2000 2000 Adaptation for Reuse (AR) 500 500 400 400 50 400 1000 Black-Box reuse (BB) 100 200 150 100 30 400 10 New Development (ND) 700 1500 700 700 180 1500 1500 Catalog Acquisition (CA) 100 100 50 50 20 50 50 White-Box reuse (WB) 300 300 400 300 50 300 700 Number of reuses 2 3 3 2 3 3 4 Cost-effectiveness of Software Reuse Alternatives 77
  • 78. © 2008, Dr. Amir Tomer ‱ Cost of various Scenarios – Red means actual measurements – Black means estimations 1 2 3 4 5 6 7 Asset Scenario Systematic Reuse — adapted 810 1210 960 710 250 1710 1150 Systematic Reuse — new 1310 2710 1560 1310 400 3310 2150 Controlled Reuse 910 1310 1460 810 320 1160 3110 Opportunistic Reuse 820 1230 1530 820 480 1230 3240 Pure Development 1400 4500 2100 1400 540 4500 6000 Cost-effectiveness of Software Reuse Alternatives 78
  • 79. © 2008, Dr. Amir Tomer ‱ Cost-effectiveness ratio between scenarios for the 7 assets 1 2 3 4 5 6 7 Asset Basic operation Systematic Reuse vs. Controlled Reuse 11% 8% 34% 12% 63% Opportunistic Reuse 1% 2% 37% 13% 65% Pure Development 42% 73% 54% 49% 81% Controlled Reuse vs. Systematic Reuse -28% 32% Opportunistic Reuse 33% 6% Pure Development 41% 74% Number of reuses 2 3 3 2 3 3 4 Cost-effectiveness of Software Reuse Alternatives 79
  • 80. © 2008, Dr. Amir Tomer 3000 2500 2000 1500 1000 500 0 ‱ Scenario comparison for asset # 4 1 2 3 4 5 6 7 Number of Anticipated Reuses Cummulative Cost Systematic Reuse - adapted Systematic Reuse - new Controlled Reuse Opportunistic Reuse Pure Development Cost-effectiveness of Software Reuse Alternatives 80
  • 81. © 2008, Dr. Amir Tomer  Once upon a time, on a project kickoff meeting...  The “Reuse” issue from the cost perspective  Reuse-based development – operations  Elements of reuse costs  Reuse scenarios  Costing policies  Industrial case study  Wrap up Cost-effectiveness of Software Reuse Alternatives 81
  • 82. © 2008, Dr. Amir Tomer ‱ Reuse is not free – But costs may be significantly reduced ‱ Reuse cannot be done without supporting infrastructure – But a policy may be introduced for distributing the overhead among projects ‱ There are always alternative reuse scenarios – And they can be evaluated for their cost-effectiveness ‱ The number of expected reuses is a critical factor – Established product-line strategy is required Cost-effectiveness of Software Reuse Alternatives 82
  • 83. © 2008, Dr. Amir Tomer ‱ References – Tomer, A. and Schach, S. R., “The Evolution Tree: A Maintenance-Oriented Software Development Model”, Proc. CSMR’2000, pp. 209-214. – Schach, S. R. and Tomer, A., “Development/Maintenance/Reuse: Software Evolution in Product Lines”, Proc. SPLC1, Denver, USA, August, 2000, pp. 437- 450. – Tomer, A. et al, “Evaluating Software Reuse Alternatives”, IEEE Transactions on Software Engineering, Vol. 30, No. 9., September, 2004. – Clements, P. & Northrop, L. , Software Product Lines: Practices and Patterns. Addison-Wesley, 2002. ‱ Other Sources – Morad, S. and Kuflik, T., “Conventional and open source software reuse at Orbotech”, Proc. SwSTE’05, p. 8. – Mohagheghi, P and Conradi, R., “Quality, productivity and economic benefits of software reuse”, Empiricas Software Engineering, Vol. 12, No. 5 / October, 2007. – ISO/IEC 12207:1995/Amd.1:2002(E) – Annex G Cost-effectiveness of Software Reuse Alternatives 83
  • 84. © 2008, Dr. Amir Tomer ‱ Dr. Leah Goldin – Golden Solution, Kfar Saba, Israel ‱ Dr. Tsvi Kuflik – University of Haifa, Israel ‱ Dr. Esther Kimchi – Ramat Hasharon, Israel ‱ Prof. Stephen R. Schach – Vanderbilt University, Nashville, TN, USA Cost-effectiveness of Software Reuse Alternatives 84
  • 85. © 2008, Dr. Amir Tomer The complete article may be found in: [Tomer et al, 2004] Cost-effectiveness of Software Reuse Alternatives 85