Software Project Cost and Effort Estimation Tools Presented by Jeffrey Menchion Overview Software Cost Estimation is an empirical process to be applied to find out basically the effort and development. Accurate software cost estimated are critical to both developers and customers. Underestimating cost Lead to exceeding budget, underdeveloped functions, poor quality, failure to complete project on time. Overestimating cost Too many resources committed to the project, result in not winning a contract which could lead to loss of jobs. Objectives Survey most widely used software project cost and effort estimation tools. Provide comparisons studies between different tools (similarities and differences). Use at least 9 tools in the survey. Metrics Platform Downloadable version available Use (commercial or academic) Ease of use (download, open, user guide if provided) Cost estimation methods (algorithmic or nonalgorithmic) Software size (lines of code (LOC), function points (FP), or feature point) Software Updates (Lifetime or fee applied) Metrics Software sizing Line of Code Function points Cost estimation (Models may be classified into 2 major categories: algorithmic and nonalgorithmic.) Algorithmic Non-algorithmic Software sizing Line of Code: This this is the number of lines of the delivered source code of the software, excluding comments and blank lines. Although LOC is programming language dependent, it is the most widely used software size metric. Most models relate this measurement to the software cost. Exact LOC can only be obtained after the project has been completed. Estimating the code size of a program before it is actually built is almost built is almost as hard as estimating the cost of the program. Software sizing A typical method for estimating the code size is to use experts’ judgment together with a technique called PERT. It involves experts’ judgment of three possible code-sizes: Sl, the lowest possible size; Sh, the highest possible size; and Sm, the most likely size. The estimate code-size S is computed as: S l S h 4S m S 6 Software sizing Function points: This is a measurement based on the functionality of the program. The total number of function points depends on the counts of distinct (in terms of format or processing logic) types in the following five classes: 1. 2. 3. 4. 5. User-input types: data or control user-input types User-output types: output data types to the user that leaves the system Inquiry types: interactive inputs requiring a response Internal file types: files (logical groups of information) that are used and shared inside the system External file types: files that are passed or shared between the system and other systems Software sizing Each type of these types is individually assigned one of three complexity levels of {1 = simple, 2 = medium, 3 = complex} and given a weighting value that varies form 3 (for simple input) to 15 (for complex internal files). Software sizing The unadjusted function-point counts (UFC) is given as: 5 3 UFC N ijWij i 1 j 1 where Nij and Wij are respectively the number and weight of types of class i with complexity j. Software sizing For example, if the raw function-point counts of a project are 2 simple inputs (Wij = 3), 2 complex outputs (Wij = 7) and 1 complex internal file (Wij = 15). Then UFC = 2*3 + 2*7 + 1*15 = 35. Cost Estimation Non-algorithmic Method Analogy costing: This method requires one or more completed projects that are similar to the new project and derives the estimation through reasoning by analogy using the actual costs of previous projects. Cost Estimation Algorithmic Method The algorithmic methods are based on mathematical models that produce cost estimate as a function of a number of variables, which are considered to be the major cost factors. Any algorithmic model has the form: Effort = f(x1, x2, …, xn) where {x1, x2, …xn} denote the cost factors. Cost Estimation Algorithmic methods Power function models have the general form: Effort = aXSb where S is the code-size, and a, b are functions of the other costs factors. Cost Estimation Tools QUEST (QUality ESTimates) (http://www.projectexperts.com/products/quest.html) EstimatorPal (http://www.effortestimator.com/epal.html) Crystal Ball (http://www.oracle.com/appserver/businessintelligence/crystalball/index.html ) Goldenseal (http://www.turtlesoft.com/) ArchANGEL (http://dec.bournemouth.ac.uk/ESERG/ANGEL/) Cost Estimation Tools RASS Estimate (http://rasstools.com/default.aspx) USC COCOMO II (http://csse.usc.edu/csse/research/COCOMOII/cocomo_main.ht ml) Construx Estimate (http://www.construx.com/Page.aspx?nid=68) PMPal (http://www.metricssoftware.com/MSI-PMPal.html) Cost Estimation Metrics Use Cost estimation Tools Platform Downloadable Version Commercial QUEST Windows yes X X EstimatorPal Windows yes X X Crystal Ball Windows yes X Goldenseal Mac OS Windows yes X ArchANGEL yes RASS Estimate Windows yes USC COCO MO II Windows yes Construx Estimate Windows yes Windows yes PMPal Academics X Algorithmic Software sizing NonLine Function algori O Po f thmic int C o s t X X X X X X X X X X X Updates X X X X X X X X X X X X Conclusion Questions Suggestions