Software Estimation

Software development managers generally have well-defined processes for estimating the eventual system size and the labor effort for proj ects after a design has been completed. As mentioned above, approximately 30% of the total cost has been spent before a good idea has been formed as to how much the total system will cost so that budget is committed for further development. Most estimates, however, prior to the system design phase, typically range from a 50% overestimate to a 200% underestimate, due in part to insufficient information and requirements instability. At this point in the process, the system is often underestimated, causing the appearance of a cost overrun. Inaccurate estimates cause projects to be canceled due to monies being diverted to another proj ect that has exceeded its budget allocation. Unfortunately, the initial estimate is most likely wrong, as the requirements are not yet well understood, and the alternative design trade-off studies have yet to be completed. The problem is to identify a method to estimate the cost of a software system with reasonable accuracy considering the limited information available to the software manager at the time of the completion of the system requirements.

Industry guidelines and experience have proven that estimates of the cost of developing new systems are most accurate when based upon the previous experiences of other similar proj ects (comparative estimation). Data must be collected on the total size and expended number of hours for each developed system in order to establish a statistical baseline from which to substantiate the next system development estimate. Software development metrics will be needed to develop an accurate estimation algorithm for the software manager's local environment. A maj or software development proj ect typically takes three to five years to complete.

Software system size, often referred to as Source Lines of Code (SLOC) or Delivered Source Instructions (DSI), has a direct correlation to the number of hours required to produce a given system, using a specific development methodology and a specific development language.

Some industry analysts consider SLOC any line of code that does not include a comment, regardless of the complexity or simplicity of the statement. Others consider SLOC based on the number of possible paths in a software module. A programmer can break a statement based on his or her programming method, thus increasing or decreasing the size of the SLOC.

In addition, depending on the development tool, one line of code may deliver more functions as compared to another development tool. Estimation of the SLOC may then have to be adjusted depending on the choice of the development tool.

Research continues on industry trends in measuring and estimating software system size. Many different estimation methods exist, each having various degrees of success. However, almost all of the current estimation models require that the design of the system be available before the system can be estimated. In addition, each of the industry models are influenced by the development environment for each organization, indicating that there will most likely never be an industry-wide algorithm. Each organization should develop its own software measuring process and customize the models based upon local variables. To provide accurate estimates earlier in the software development lifetime, an empirical model needs to be developed using local environment development metrics.

Recent studies have found that by analyzing and grouping requirements from system requirement documents, an alternative estimation model can be developed for the software manager's local environment.

The studies revealed that

1. The increasing number of system requirements causes a corresponding increase in the number of lines of code written to implement the system.

2. The number of lines of code, per a certain grouping of requirements, increases as the system size increases.

From these trends, an algorithm can be developed to estimate the software system size based upon the observed trends in the data. Figure 2.6 illustrates the result of the analysis of a group of NASA proj ects at the Goddard Space Flight Center (GF SC). The system requirements were ordered and analyzed for developing a model for providing earlier estimates based upon requirement counts. The resulting method for estimating system size, based upon the count of the top three levels of functional and performance requirements, provided a curve that can be used to indicate the final system size to within 30% of actual, 90% of the time, in the NASA/GSFC environment. The Manion-Ardalan estimation curve based on the research work of David Manion (Figure 12.1) permits NASA managers to determine the cost of a software system based upon the number of the top three level of requirements when following their system requirements document development standards. Two SLOC is equivalent to one hour of effort over the development lifetime, giving the NASA manager a quick method for estimating total cost.

It has to be noted that software design is a relatively new subject and is still in the development stage. New software languages and methodologies reduce the number of codes required to satisfy a requirement. Estimation of the efforts needed to satisfy a requirement is, therefore, dependent on a lot of parameters; hence, the experience of the system designer plays a great role in the accuracy of the estimation. The Manion-Ardalan estimation curve, when tailored to the software manager's local environment, can be used to effectively and accurately estimate system development costs on any proj ect prior to the Design and Implementation phases.

Figure 12.1 Manion-Ardalan Estimation curve

It is useful to note that the required lines of code for any specific program depend on the programming language. This has to be taken into account when estimating development cost of software.



Project Management Made Easy

Project Management Made Easy

What you need to know about… Project Management Made Easy! Project management consists of more than just a large building project and can encompass small projects as well. No matter what the size of your project, you need to have some sort of project management. How you manage your project has everything to do with its outcome.

Get My Free Ebook

Post a comment