The Article On Software Cost Estimation

Print   

02 Nov 2017

Disclaimer:
This essay has been written and submitted by students and is not an example of our work. Please click this link to view samples of our professional work witten by our professional essay writers. Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of EssayCompany.

A article on Software Cost Estimation: A necessary but impossible task.

Abstract:

In this article an overview of common size metrics is provided as these are depending on software size. Then proposed software cost estimation models are given and their usability is depending according to criteria of requirements. This article will represents performance of these methods in the context of several newer approaches to cost estimation. After many years research there are many methods and techniques available but no method is necessarily better or worse than the other in a comparison, their strengths and weaknesses are often flattering to each other.

Introduction:

The software cost estimations are techniques and procedures used for the measurement of projects cost. It is related to judgment of costs for a given project, usually estimates are made to discover the cost. Past experience or history gives better judgment for estimations. Software cost estimation process depends on the variation of environment. We cannot judge exact results because it consists of different variables like management cost, development cost, training cost, quality assurance, human, technical and political aspects. There can be many techniques that can be followed for accurate measurements.[9][10]

The estimations are based on several methods, if these methods do not return approximate result; it means there is insufficient information. It is recommended that before using a cost estimation model in your organization it should be validated and if possible, calibrated to your environment. Size of the software system is known accurately when it is complete finally but there are several factors that influence the final size e.g. programming language, distribution of system. The accurate prediction of software development cost is a critical problem for making a good management decision and accurately judging how much time and effort a project required for project mangers as well as system analysts and developers.[9][7][10]

Explanation:

Accurate software cost estimation is very important for both customers and software developers because it is involved in number of related processes such as generating requests for proposals, scheduling, contract negotiation, monitoring and control. The accurate cost estimation process contains seven steps:

At the start cost-estimating objectives should generate.

Establishment of a project plan with required data and resources

Software requirements should be noted regularly.

Gathering much detail about the software system by involving hard work in this context.

Use various cost estimating techniques and do analysis on the base of their combined strengths.

Iterate the estimation process by comparing different estimates.

From the start of the project focus should be on monitoring its actual cost and progress, and provides outcomes to project management.[9][7]

For getting best result based on selection of any model, user should be focused on the following:

Coverage of the estimates based on the model selected.

Assumptions and calibration of the model.

Sensitivity of the estimates by focusing on the different model parameters

Modulate of the estimate with respect to actual cost.[9]

Software sizing/complexity:-

The size of the software is significant factor for estimating the software cost. These include tools and methods for estimating and measuring software cost The function point and line of code are the most significant methods.

Line of Code:-

Line of code (LOC) is used to represents number of lines of the source code that have to be delivered by software by excluding comments and blank lines. Most cost estimation models relate LOC as a measurement of the software cost. The exact value of LOC is obtained after the completion of process. However PERT technique is used to estimating code size together with expert judgment. It contains expert judgment of three code sizes. SI is the judgment of lowest possible size of estimation, Sh is highest size, and Sm is considered most likely considerable size. After that estimations code size is achieved by the formula:

S= SI+Sh+4 Sm /6. PERT is also used to compute the estimation size of individual components; however by summing up individual components the size of the whole software system could be achieved. This model assumes that there exists a linear relationship between system size and volume of documentation.[9]

Function Points:-

Albrecht introduced the function points that are based on the functionality of program. Functional points are very subjective and they depend on the estimator. The total number of functions depends on the processing logic. The processing logic or format in terms of handling 5 classes that are described below:

External Inputs

External Outputs

Logical Internal Files

External Interface Files

External Inquires

The Total Function point is computed based upon the

The value of counts for each of these items

The usage of weighting factors and adjustment factors that are used in this methodology.[9][5]

Non-Algorithmic and Algorithmic Methods:

Top down Method:

This model presents various things such as integration, management and documentation etc, many of them becomes rejected in other estimating methods and this model highly focusing on the cost of system level functions. This method needs less project detail as it is faster and easier to be implemented by system. This approach is most reliable for cost estimations on the very initial stage.

Another name of this method is Macro model. Using this method an overall cost estimation for the required system is obtained from the global characteristics, then the project is divided into many low level related components, total cost then divided among different components. Putnam model followed this approach. This tool is more suitable for early software cost estimation if global properties are provided in this context.

It provides and represents global view of the software project; it contains some effective points such as cost–time trade off ability that is usually followed in Putnam model.

It does not give detailed basis for justifying decisions and estimates. [1][2][9].

Bottom Up estimating Method:

This approach is followed a procedure in a traditional way by involving estimates components that are concentrated by the software group continuously in order to get software cost estimation accurately. This method is used to predict estimation of different components and then combined result of different components is achieved in order to get cost of overall project. This is reliable and stable because the chance of estimation errors in the various components can be balanced in an organized manner.

This is a time consuming method. It is not suitable in such conditions when either time or workforce is limited. It requires availability of necessary information in the earlier phase. The primary method following this approach is COCOMO’s detailed model. [1][5][8]

Estimating by Analogy:

Estimating by using analogy is a straightforward way. In some situations, it works as a systematic form of expert judgement because experts often exploring ways for analogous situations to give their opinion in some conditions.

Estimation by analogy compares the projected projects with the previously completed projects in order to get accurate estimate because actual data of complete projects is workable.

It is used to represents the similarity and obtaining amount of confidence in the context of analogies. In response some analogies lead to projects being used; some may lead to strength/intensity of the effect of the analogies that are closed.

The goal of it is focusing the projected project. The focus is on selecting the most appropriate completed reliable projects, whose properties have been stored in the database. Used to present judgement for the proposed project from the resultant similar completed projects by involving analogy in this context

Actually the estimation is dependent on actual project characteristic data

For this, first it is obtained to describe projects in best way. The selection of variables Contains limits to that information that is available at the point where the forecast essential on confident situations.

Possibilities contain the kind of application field, the amount of inputs, amount of distinct entities that are referenced, the amount of screens.

By involving this method the past knowledge and experience can be used that is not easily quantifiable. In this situation the differences of finished and the projected project can be known and a outcome predict and comes in the shape of judgment.[1][8]

Expert Judgement Method:

In this method a group of experts is compulsory for software cost estimation and their valuable experience and understanding of the proposed project comes in the shape of an estimate of its cost. One of the useful Delphi techniques are the best way to be used that resolve inconsistency in the estimates.

Benefits:

The experts can make differences by analyzing past project experience and requests of the projected project. The experts are able to count in project results handled by new technologies, architectures and languages in the coming project and can also influence in exceptional personnel properties and relations.

The disadvantages are:

This method cannot be quantified in all aspects.

The factor used by experts or experts group are not easy to document.

The chance of experts can be inclined, bright, and distrustful, in spite of that they have been decreased by the group approval. [1]

This method contains some steps that are given as:

Coordinator should present each expert with an estimation form and some necessary specifications.

Coordinator should call a grouping gathering in which the experts talk about assessment problems with the coordinator and each other for getting appropriate solution.

Experts fill out forms in order to get expert estimation judgement.

Coordinator should make and distributes a detailed summary of the required estimation in an iteration way in this context.

Coordinator should calls a group meeting, focusing on having the experts discuss points and tries to handle estimation variation.

Iteration should be involved in the form of again experts fill out essential forms, again in secret, and 4th and 6th steps are repeated for as many rounds as in order to get reliable results.[1]

Algorithmic Model:

This is the most widely used algorithmic software cost model. The basic COCOMO model is in the form of simplicity.

It is dependent upon mathematical equation. This model has been researched on a high level and a lot of models have been derived from it like COCOMO models and Putnam model.

It provides facility to modify input data, repeatable estimations, providing, refinement and customization of formulas that are being used.

But some of its disadvantages are that it is not being able to deal with unexpected or real conditions such as extraordinary workforce in any software cost assessment process exercises, exceptional teamwork and exceptional comparison between skill level and tasks. Deprived sizing input and not corrected cost driver rating will generate result in inaccurate estimation. Besides there are also some experiences and factors that cannot be quantified in this context.[1][6][8]

COCOMO Model:

This model is a regression model and it comes from analysis of 63 selected projects. Problems indulge in initial stage of whole software life cycle .The size is estimated using uncertainty value so cannot give accurate cost estimations. It has problems outside the environment. So the recalibration should be done.

We can make estimates by basic COCOMO model with certainty by taking into account that factors concern the required properties of the software to be developed, the qualification, experience of the development team and environment of the software development. It assumes that the need of system and software have already been defined and these requirements are stable and in organized manner. This is often not the suitable case.

There are also some disadvantages that needs to be focused, this model is suffer from various difficulties in predicting the cost of software inhabited in contrast with new life cycle processes and capabilities, contains reprocess focused approaches, rapid development process model, object oriented approaches and software process[7][1].

Putnam model:-

This model is popular method in software cost estimation process. The drawback in this tool is that it is based on knowing some value, the size in terms of line of code of the software which has to be developed. But there could be great uncertainty in the software size that should not be ignored.

In each major milestone should do continually re-estimate cost and to compare targets against actual expenses for getting required result. Iteration tool is used to improve estimation of quality at every estimation point.

In case of expert judgement method or analogy method these should be used for known projects and projects parts if the similarities of them through comparison can be obtained, since it is fast, and under these circumstances are reliable. The use of algorithmic model is suitable for large and lesser known projects. [8][6]

Analyze the Requirements:-

In these days a common estimating activity is by analyzing the software requirements and creates function points based on these requirements. The results of this method appeared in the form of basic size data that is used for formal cost estimation. It is necessary to explore and understand the user requirements before taking estimating initiative. The current level of estimation technology demand human intervention in order to do work affectively. This fact is followed in the number of methods e.g. Agile method, Scrum, extreme programming etc. This fact is also embedded in algorithms and that are being used in software tools in order to provide effective result. After understanding of initial requirements, the average rate of growth of new requirements is about 2 percent per calendar month. This growth results are considered part of plan and included in the estimate.[9][4]

Conclusion:

There is a need to improve understanding of project attributes and their relationships, need to model impact of evolving environment, measuring software complexity in an organized and effective way to better the estimation. At the initial stage there is huge uncertainty about project attributes and judgment on these stage product inaccurate results. As project grows towards forward stages uncertainty is reduce and more accurate results can be achieved. Most models provide exact result by producing a range of estimates and their possibilities without regard to this uncertainty. The collection of data on a wider scale is a need for algorithmic models. We should not depend on a single cost and schedule estimate and should depend on several estimating techniques or concentrating on cost models , comparison of their outcomes and conclude the reasons for any huge variations. Document the assumptions made when making the estimates, monitor the project, improve software process and maintain historical database. There are large numbers of interrelated factors that influence software development process and large number of project attributes. Continuously evolving development environment.[1][9]

Recommendations:

Don’t depend on a single cost or schedule estimate because there are various factors that are not dependable.

Needs to focus on various estimation techniques, compare the resultant value and tries to find out reasons behind large variation for getting better solution.

Assumptions have to be properly documented when making the estimates.

Suitable and effective software should be used that provide will provide results in the form of increased accuracy.

A historical database should be maintained. [1]



rev

Our Service Portfolio

jb

Want To Place An Order Quickly?

Then shoot us a message on Whatsapp, WeChat or Gmail. We are available 24/7 to assist you.

whatsapp

Do not panic, you are at the right place

jb

Visit Our essay writting help page to get all the details and guidence on availing our assiatance service.

Get 20% Discount, Now
£19 £14/ Per Page
14 days delivery time

Our writting assistance service is undoubtedly one of the most affordable writting assistance services and we have highly qualified professionls to help you with your work. So what are you waiting for, click below to order now.

Get An Instant Quote

ORDER TODAY!

Our experts are ready to assist you, call us to get a free quote or order now to get succeed in your academics writing.

Get a Free Quote Order Now