My Summary of Journal Entry

TOPIC: SOFTWARE ENGINEERING ECONOMICS

Vazhoor Bhasul Vyas (Group S7)

A6452624@ntu.edu.sg

Home
My Summary of Journal Entry
New Contributions
Comments
Related Work Published
Relation to lab project
Related Lecture
References

Focus on ‘Software Engineering Economics’, IEEE Journal Entry by Dr. Barry Boehm

Introduction

The software engineering economics field has evolved a number of techniques for dealing with various decision issues (cost-benefit analysis, present value analysis, risk analysis etc.). The article dealt with an overview of these techniques and their applicability to software engineering.

Another critical problem underlying all applications of economic techniques to software engineering is the problem of estimating software costs. The journal entry dealt with this field by outlining the Major Cost Estimation Techniques, Algorithmic Models for Software Engineering and by dealing with the outstanding research issues in Software Cost estimation. The paper was concluded by summarizing the major benefits of software engineering economics and commenting on the major changes awaiting the field.

My Outline of the Journal Entry

The paper outlines the main economic analysis techniques and the major pitfalls. The Expected Value techniques, in which we estimate the possibilities of occurrence of each outcome and complete the payoff of each option:

EV = Probability (success) * Payoff (success) + Probability (failure) * Payoff (unsuccessful)

These techniques are better than the decision making techniques under complete uncertainty but they still involve a great deal of risk if the probability of failure is considerably higher than our estimate of it. Information buying techniques such as Prototyping are ways of reducing the uncertainty. The amount of information buying that can be considered enough is determined by the Baye’s Law to estimate the appropriate level of investment in a prototype. The paper concludes that as software engineers it is often worth paying for information because it helps us make better decisions.

The most important and critical of the input data provided for software engineering economics decision analysis are the estimates of the cost of a proposed software project. The various Cost estimation techniques are as follows:

Algorithmic model: Its strengths are that it is objective, repeatable, efficient, good for sensitivity analysis and objectively calibrated to experience. Its weaknesses are its subjective inputs, assessment of exceptional circumstances and its calibration to past not future.

Expert Judgment: Its assessment of representative interactions and exceptional circumstances are its strengths whereas its weaknesses lie in its biases and incomplete recall.

Analogy: Its strength is that it is based on representative experience and its weakness is its representative ness of experience.

Parkinson: It correlates with some experience. Its weakness is that it reinforces poor practice.

Price to win: Its advantage is that it often gets the contract but its major disadvantage is that it generally produces large overruns.

Top-down: The major advantage of this method is its system level focus and its efficiency. Its disadvantages are that it is less stable and has less detailed basis.

Bottom-up: It has a more detailed basis; it is more stable and fosters individual commitment. Its major disadvantages are due to the facts that it may overlook system level costs and it requires more effort.

There are fundamental limitations of the Software Cost Estimation techniques because until a software specification is fully defined it actually represents a range of software products and a corresponding range of software development costs. Thus the accuracy with which software cost estimates can be made is a function of the software life cycle or the level of knowledge of what the software is intended to do. This can thus vary from a factor of 4 to around 1.25.

ALGORITHMIC MODELS: Since the earliest days of the software field, people have been trying to develop algorithmic models to estimate software costs. Some such algorithmic models are summarized below:

The Putnam SLIM Model [44],[45]: It is a commercially available software product based on Putnam’s analysis of software lifecycle in terms of the Rayleigh distribution of project personnel level versus time. The basic effort macro-estimation model used in SLIM is

Ss = CkK1/3td4/3 where Ss = number of delivered source instructions, k = life cycle effort in man-years, td = development time in years and Ck = technology constant.

The RCA PRICE S MODEL: PRICE S is a commercially available macro cost-estimation model developed primarily for embedded system applications. PRICE S has recently added a software life-cycle support cost estimation capability called PRICE SL [34].

The Constructive Cost Model (COCOMO) [11]: Boehm's approach is called COCOMO for Constructive Cost Model, so named because the cost of the whole product is constructed from the costs of its components. There are three versions of COCOMO that operate at different levels of abstraction: Basic COCOMO, Intermediate COCOMO, and Detailed COCOMO. At each level, simplifying assumptions are made concerning the nature of software products and their production. As the models move toward increasing detail, the complexity of the estimation process and the number of parameters involved increase. Basically, COCOMO produces estimates of the duration and cost of the software product based on the size of the product, the quality of the project team, the stability of the development system, and other factors.

Basic COCOMO:

E = ab (KLOC)bb

D = cb (E)db

In Basic COCOMO, it is further assumed that all instructions cost the same. This assumption in particular will be refined in the more detailed versions of the approach. The Basic COCOMO model, then, computes the effort in man-months (MM) and the time in months to develop, TDEV, as follows:

        MM = 2.4 * KDSI^(1.05)

      TDEV = 2.5 * MM^(0.38)

Interesting points about these equations include the fact that the exponent on KDSI in the first formula is almost 1.0, so in this model the effort is only slightly more than a linear function of code size. The TDEV estimate assumes "optimum" staffing at each stage of the project. This usually means that more people are working on the project in the middle than at the beginning or at the end; the staffing variation is more pronounced in very complex projects in which a relatively few people must be involved in problem definition and integration compared to the many people who can be involved in coding and documentation activity simultaneously.

Intermediate COCOMO:

E = ai(KLOC)bi * EAF

Intermediate COCOMO estimates the cost of a proposed software product in the following way:

bullet A nominal development effort is estimated as a function of the product’s size in delivered source instructions in thousands and the project’s development mode.
bullet A set of effort multipliers are determined from the product’s ratings on a set of 15 cost driver attributes.
bullet The estimated development effort is obtained by multiplying the nominal effort estimate by all the product’s effort multipliers.
bullet Additional factors can be used to determine dollar costs, development schedules, phase and activity distributions, computer costs, annual maintenance costs and other elements from the development effort estimate.

Detailed procedures for the calculation are explained elaborately in the journal entry.

 

Home | My Summary of Journal Entry | New Contributions | Comments | Related Work Published | Relation to lab project | Related Lecture | References

For problems or questions regarding this web contact Vazhoor Bhasul Vyas.
Last updated: 03/20/02.