Before I start in the review of the paper, I give an overview on the subject itself, this way the
paper review will have the necessary background laid out.
The paper in about the subject of Software Cost Estimating, in software cost estimating 7 different methods or techniques are used to carry the cost estimations, these are: \(\circ \) Algorithmic cost modeling \(\circ \) Expert judgment \(\circ \) Estimation by analogy \(\circ \) Parkinson’s law \(\circ \) Pricing to win \(\circ \) Top down estimation \(\circ \) Bottom up estimation
Within Algorithmic cost modeling, a popular method exist which s called the COCOMO model.
This is a costing model whose parameters can be adjusted to the particular modes of working.
This model will generate cost estimate via the use of a formula, this formula comes in 3
forms, the basic (simple) form, the intermediate form, and the advanced or detailed
form.
The paper I have chosen to study and evaluate deals with the COCOMO model. I’ll first explain and overview the paper itself , then I’ll critique the paper. The way I will review this paper is by first giving an overall view of the structure of the paper, then a more detailed view is taken. First the paper information is given.
Paper title: Cost Estimation for the reuse and prototype software development life-cycles.
Authors: David Balda and David Gusafson.
Journal: ACM Software Engineering notes, ACM-SIGSOFT, Volume 15, Number 3.
Date published : July 1990 .
The paper introduces two new cost models (formulas) that are derived from the basic COCOMO formula, the justification for the need for these new formulas is based on the fact that the original COCOMO formula was targeted towards the waterfall model of software development. The new cost models derived in this papers are for the reuse and prototype software development life-cycle models.
The main reason the authors give for why the original COCOMO cost model is not suitable for use in the reuse and prototype life-cycle, is because the COCOMO model did not account for the cost involved when the requirements are known to be unstable or incomplete or when extensive code and design information are reused in the future, since these 2 issues will not arise in the waterfall life-cycle as much as they would arise in the prototype and the reuse life-cycles, respectively. So, this was the basic reason given for the need to extend and modify the original COCOMO cost model. The paper will only derived new cost models from the original basic COCOMO cost model (formula), and not from the intermitted or detailed formulas, even through the authors do discuss the intermitted and detailed original COCOMO cost models, but not in great details as the focus of the paper was the basic (simple) COCOMO cost model.
The paper starts by outlining why the original COCOMO cost model can not be used as is for the the reuse and prototype software life-cycle. In doing so the authors give a short outline of the waterfall, reuse, and the prototype life-cycles.
After this, the authors discuss the basic (simple) COCOMO formula, they explain its nature and parameters, then a new formula for the reuse life-cycle is hypothesized, this formula contains 3 additional terms than the original COCOMO basic formula, the new terms account for specific activities that exist in reuse life-cycle model but not in the waterfall model. After this, the authors produce a final cost model formula based on the hypothesized one, the final reuse cost estimation formula has a new parameter added and a table to look up this new parameter from.
The same strategy were used by the authors in deriving a new formula for the prototype life-cycle model, a formula is Hypothesized which contains 3 terms and 3 new parameters that are unique to this life-cycle model from both the waterfall or the reuse model. assumptions were given on the validity of this formula, but finally the authors gave 4 different cost models for the prototype life-cycle and they indicate why 4 models were given, this is becuase the data avaiable for the authors to devleop one formula were not sufficient to decide on which one to consider as the most accurate cost model.
The conclusion of the paper gives a cautious view on the use and validity of these formulas derived, and that additional data from actual software projects where these formulas are used in their cost estimations are required before the validity of these new models can be shown.
The authors give these justifications for the need to modify the basic COCOMO cost model for use with the reuse life-cycle development model:
The hypothesized formula to use is \[ PM= \alpha _{1} N_{1}^{\beta } + \alpha _{2}N_{2}^{\beta } + \alpha _{3}N_{3}^{\beta } + \alpha _{4}N_{4}^{\beta } \] where \(N_{1}\) = KSDI for unique code developed, \(N_{2}\)=KSDI for developed code for reuse,\(N_{3}\)=KSDI from unchanged reused components, and \(N_{4}\)=KSDI from modified reused components. compare this to the original basic COCOMO formula shows the difference:\[ PM=\alpha KSDI^{\beta }\] In both expression above, KSDI stands for estimate of thousands of delivered source instructions. while \(\alpha \) is a complexity coefficient and \(\beta \) is the complexity exponent, the \(\beta \) parameters are the same in both formulas, and PM is the programmer months of efforts. The authors also gave 6 assumptions to help to simplify the use of the first formula above.The authors then express \(\alpha _{2}\) in terms of \(\alpha _{3}\) by assuming that the effort to develop a component for reuse is 20 times that effort to reuse a reusable component, so they write \(\alpha _{2}=20\alpha _{3}\) , next they introduce new parameter \(\gamma \) to represent relation between the effort to reuse code and the effort to develop unique code, this leads to \(\alpha _{2}=20\gamma \alpha _{1}\), given all these relations between \(\alpha _{1},\alpha _{2},\alpha _{3}\), and the number of times a component must be reused to realize an economic benefit, the values of \(\gamma \) were determined, they give 2 cases for determining \(\gamma .\) The final cost estimation formula for the reuse life-cycle then becomes:\[ PM=\alpha N_{1}^{\beta }+20\gamma \alpha N_{2}^{\beta }\] where \(N_{1}\)=unique KSDI, \(N_{2}\)=KSDI developed for reuse. a table is given on page 10 of the paper for \(\gamma \), they also mention that the overall values of \(\gamma \) is\[ .0909\leq \gamma \leq .1739 \] and \(\alpha ,\beta \) are the same for the basic COCOMO cost model.
The authors then turn to the evolutionary prototype cost estimation model, they start similarly by showing why the basic COCOMO model is inappropriate for prototype life-cycle, the main basic reason they give, is that in the original COCOMO model, the requirement stability cost modifier factor is based on the assumption of minor changes in the requirements, but in the prototype model, major changes in the requirements are possible until the final one is reached, major or extensive requirements changes which require significant re-analysis or redesign are simply not accounted for and requires recalculations using the basic COCOMO model, this is the reasons the authors gave for the justification for deriving a new cost model.
The authors hypothesis the formula to be:\[ PM=\alpha \;\Pr e^{\beta }+\alpha \;lts^{\beta }+\alpha \;Tun^{\beta }\] where \(\Pr e\) = LOC developed for initial prototype. \(lts\)=LOC developed during iterations and \(Tun\)=LOC developed to convert prototype to developed product. LOC is line of code. Then the authors give assumptions to simplify the use of the above formula, they gave 3 assumptions for this.
Now, the authors say that due to small data available to them to verify this formula, they give 4 different variations of the above formula , each one they postulated based on the number of observations. they caution very strongly against the use of these formulas without confirming them with other methods of cost estimation. They mentioned as a guideline that a study have shown that the prototype life-cycle requires 40% less effort and contains 45% less code than products developed using the waterfall life-cycle. they attribute this change to the validation of the requirements in stronger terms in the prototype model as opposed to that in the waterfall .
Two cost models were given both based on the basic COCOMO model, the authors outline that the reuse cost model depicts a factor for the increased effort needed to develop a component for reuse, while it also depicts a factor for the decreased effort in reusing a component. For the prototype formula, several models were given, the authors indicate that these models might not be very accurate and that additional data is required to validate them.
First I give specific critique relating to sections of the paper, Then below that I give general critique on the overall paper.
The prototype cost model was developed based on limited data sets for analysis by the authors, the authors have overcame this by providing several formulas, I think the authors should have instead spend more time on trying to improve the prototype formula by looking at more projects and then come up with one formula as they did with the reuse cost model. This would help make their cost model for prototyping more accessible for use.
The paper is very good in giving the reader an idea on how cost models can be developed for different development models other than the waterfall, this paper can be used as a guide to develop cost models based on the COCOMO basic model for the formal transformation and exploratory programming. By studying this paper I got a better idea on how cost models work, and the method used to derive them when they are all based from the original COCOMO model. It would interesting research project to develop such a cost model for the formal transformation life-cycle and compare that with the cost model of the ones already derived.
The paper showed have used more diagrams , some of the tables give in the paper could be better comprehended if in addition to them a curve s shown showing how the different parameters changed. In particular in reference to table 4.
The paper lack any supporting data to confirm the validity of the cost models developed, no projects have been cost estimated using these formula.
The paper give a good references list, about 24 were listed.
This concludes my review of this paper.