Engr. Abdul-Rahman MahmoodMS, PMP, MCP, QMR(ISO9001:2000)
[email protected] [email protected]
alphapeeler.sf.net/pubkeys/pkey.htm http://alphapeeler.sourceforge.net
pk.linkedin.com/in/armahmood http://alphapeeler.tumblr.com
www.twitter.com/alphapeeler [email protected]
www.facebook.com/alphapeeler [email protected]
abdulmahmood-sss alphasecure mahmood_cubix 48660186
[email protected] [email protected]
http://alphapeeler.sf.net/me http://alphapeeler.sf.net/acms/
VC++, VB, ASP
Software Engineering
Relative Cost of Reusing Software (RCR)
Relative Cost of Writing Reusable Software (RCWR)
Reuse Percent ( Reuse%)
Reuse Cost Avoidance (RCA)
Organizational Return on Investment (ROIorg)
Terms
Reuse does not come for free
The reuser must do the following with the reused component:
Locate
Understand
Integrate
System Test
Relative Cost of Reusing Software (RCR)
This effort typically only takes about 20% of the effort to write the same component from scratch
In this case, the Relative Cost to reuse the component equals 0.2
In other words, we have saved 80% of the development effort
RCR
Writing reusable components requires additional effort beyond simply writing a component for one-time use
The reuse product must:
Generalize for additional requirements
Add more detailed documentation
Test to increase trust
Test for additional potential uses
Prepare the component for distribution
Relative Cost of Writing Reusable Software
This additional effort typically takes about 50% of the effort to write the same component for one time use
That is, the relative cost to write for reuse (RCWR) equals 1.5
RCWR
Reuse % is a reuse level metric that shows what portion of work has been saved by reusing software.
It is calculated for :
Organizations
Products
Release of Products
It is based on the Reused Source Instructions (RSI)
Reuse %
Mathematically, it is given by:
REUSE % = X 100%
For Example : A Programming team developed and maintains 100KLOC
It also uses 20 KLOC from an external source
This team’s REUSE % equals:
REUSE %= X 100% = 16.67%
Reuse %
RSITotal Statements
20 KLOC20 KLOC + 100KLOC
It is a cost avoidance metric used to show the financial benefits of reusing software by the individual project or team.
RCA represents money we didn’t have to spend
Cost Avoidance can be recognized during:
Development
Service (Maintenance)
Reuse Cost Avoidance (RCA)
Mathematically:
RCA = Development Cost Avoidance + Service Cost Avoidance
Development Cost Avoidance (DCA)
The benefits of reuse depends on RCR
With RCR=0.2, reuse cost about 20% of the cost of new development.
Therefore, DCA will be:
RCA
DCA = RSI x(1-RCR) x (New Code Cost)
= RSI x 0.8 x (New Code Cost)
Service Cost Avoidance (SCA)
Not having to fix errors results in SCA
SCA = RSI x (Error Rate) x (Error Cost)
RCA (Cont…)
Example If the development cost for new code equals Rs. 300
per line and RCR =0.2, then DCA for 20 KLOC RSI equals:
DCA = 20 KLOC x 0.8x Rs 300 = 4.8 M
Services
If the error rate for new code equals 1.5 errors per KLOC and if the cost to fix an error equals Rs. 30 K, then SCA for 20 KLOC RSI equals:
Example SCA = 20 KLOC x 1.5 errors per KLOC x Rs. 30K
Per Error = Rs 0.9 M
Total Reuse Cost Avoidance
RCA = DCA + SCA
= 4.8 + 0.9
= Rs 5.7 M
Example It shows the total financial benefits to an organization
from :
Reusing Software
Building Software for Reuse
ROI org = RCA – Addition Development Costs
Additional Development Cost (ADC) = (Amount of SI written for Reuse by the others) * (RCWR – 1) * New Code Cost
Recommended