Baba Mastnath University Software Metrics and Project Estimation Models Submitted by Rohtak Presentation file on the Topic Submitted to Dr. Jyoti Vij Assistant Professor Department of Computer Application Sunny Class-MCA 1 st year Fomc Roll No .- 20 Subject-Software Engineering
Index Sr No. Topic 1 Software Metrics. I. Product metrics ii. Process Metrics 2 Software Project Estimation Model. i . Empirical Estimation models ii. Cocomo Model
Software Metrics A software metric is a measure of software characteristics which are measurable or countable. Software metrics are valuable for many reasons, including measuring software performance, planning work items, measuring productivity, and many other uses. Within the software development process, many metrics are that are all connected. Software metrics are similar to the four functions of management: Planning, Organization, Control, or Improvement. Characteristics of software Metrics: Q uantitative: Metrics must possess quantitative nature. It means metrics can be expressed in values. Understandable: Metric computation should be easily understood, and the method of computing metrics should be clearly defined. Applicability: Metrics should be applicable in the initial phases of the development of the software. Repeatable: The metric values should be the same when measured repeatedly and consistent in nature. Economical: The computation of metrics should be economical. Language Independent: Metrics should not depend on any programming language.
Classification of Software Metrics: 1. Product Metrics: These are the measures of various characteristics of the software product. The two important software characteristics are: Size and complexity of software. Quality and reliability of software. These metrics can be computed for different stages of SDLC. 2. Process Metrics: These are the measures of various characteristics of the software development process. For example, the efficiency of fault detection. They are used to measure the characteristics of methods, techniques, and tools that are used for developing software.
Types of Metrices Continues…… 1.Internal metrics: Internal metrics are the metrics used for measuring properties that are viewed to be of greater importance to a software developer. For example, Lines of Code (LOC) measure. 2.External metrics: External metrics are the metrics used for measuring properties that are viewed to be of greater importance to the user, e.g., portability, reliability, functionality, usability, etc. 3.Hybrid metrics: Hybrid metrics are the metrics that combine product, process, and resource metrics. For example, cost per FP where FP stands for Function Point Metric. 4.Project metrics: Project metrics are the metrics used by the project manager to check the project's progress. Data from the past projects are used to collect various metrics, like time and cost; these estimates are used as a base of new software. Note that as the project proceeds, the project manager will check its progress from time-to-time and will compare the effort, cost, and time with the original effort, cost and time. Also understand that these metrics are used to decrease the development costs, time efforts and risks. The project quality can also be improved. As quality improves, the number of errors and time, as well as cost required, is also reduced.
Advantages of Software Metrics : Reduction in cost or budget. It helps to identify the particular area for improvising. It helps to increase the product quality. Managing the workloads and teams. Reduction in overall time to produce the product,. It helps to determine the complexity of the code and to test the code with resources. It helps in providing effective planning, controlling and managing of the entire product. Disadvantages of Software Metrics : It is expensive and difficult to implement the metrics in some cases. Performance of the entire team or an individual from the team can’t be determined. Only the performance of the product is determined. Sometimes the quality of the product is not met with the expectation. It leads to measure the unwanted data which is wastage of time. Measuring the incorrect data leads to make wrong decision making Software Metrices Continues……
Software Project Estimation Model Software project estimation is a crucial process that predicts the project's time and effort, cost, and scope. This information is necessary for the planning stage and to ensure the project's success. Estimation is the process of finding an estimate, or approximation, which is a value that can be used for some purpose even if input data may be incomplete, uncertain, or unstable. Estimation determines how much money, effort, resources, and time it will take to build a specific system or product. Estimation is based on − Past Data/Past Experience Available Documents/Knowledge Assumptions Identified Risks The four basic steps in Software Project Estimation are − Estimate the size of the development product. Estimate the effort in person-months or person-hours. Estimate the schedule in calendar months. Estimate the project cost in agreed currency. Estimate the Risks ,Resources and scope in project.
Empirical Estimation models Empirical Estimation Technique – Empirical estimation is a technique or model in which empirically derived formulas are used for predicting the data that are a required and essential part of the software project planning step. These techniques are usually based on the data that is collected previously from a project and also based on some guesses, prior experience with the development of similar types of projects, and assumptions. It uses the size of the software to estimate the effort. In this technique, an educated guess of project parameters is made. Hence, these models are based on common sense. However, as there are many activities involved in empirical estimation techniques, this technique is formalized. Empirical estimation models, also known as expert judgment-based models, rely on practical experience, historical data, and expert judgment to make project estimations. These models are particularly useful when there is limited data available and when the project characteristics are unique or variable. Here are some empirical estimation models commonly used in various fields, including software development:
Expert Judgment : Expert judgment is a valuable estimation technique that relies on the knowledge and experience of domain experts or subject matter experts (SMEs). These experts use their judgment to estimate various project parameters, such as effort, time, and cost. This method is often used in combination with other estimation techniques to provide more accurate estimates. Analogous Estimation (Top-Down Estimation) : Analogous estimation involves making estimates for a project based on historical data from similar past projects. It assumes that projects with similar characteristics will require similar levels of effort and resources. It is particularly useful when historical data is available. Delphi Technique : The Delphi technique is a structured approach to expert judgment. It involves a panel of experts who provide independent estimates, and these estimates are then averaged and discussed iteratively until a consensus is reached. 4. Parametric Estimation Models : COCOMO (Constructive Cost Model) : COCOMO is a well-known parametric model that considers various factors, including project size, complexity, and technology, to estimate project effort and cost. SLIM (Software Life Cycle Management) : SLIM is another parametric model that takes into account factors like project size, process maturity, and more to make estimates. Empirical Estimation models Continues…
Empirical estimation models, also known as statistical estimation models, are used to predict project parameters, such as effort, duration, or cost, based on historical data and statistical analysis. Empirical estimation models are used in project management to provide estimates based on historical data and past project experience. These models use data-driven approaches to make predictions about factors like project effort, cost, duration, and resource requirements. 5.Machine Learning Estimation : Some organizations employ machine learning algorithms to analyze historical project data and make predictions about future projects. These models can become more accurate with additional data. Empirical Estimation models Continues… 6.Use of Historical Data : In addition to specific models, organizations may use their own historical project data to develop custom empirical estimation models or to refine existing ones. Analyzing past project performance can provide valuable insights for future project planning The key advantage of empirical models is that they are grounded in real-world data, making them more reliable and adaptable to the specific context of each project. However, they require accurate and up-to-date historical data, and their accuracy can be limited if past projects significantly differ from the current one
C ocomo Model Boehm proposed COCOMO (Constructive Cost Estimation Model) in 1981.COCOMO is one of the most generally used software estimation models in the world. COCOMO predicts the efforts and schedule of a software product based on the size of the software. The necessary steps in this model are: Get an initial estimate of the development effort from evaluation of thousands of delivered lines of source code (KDLOC). Determine a set of 15 multiplying factors from various attributes of the project. Calculate the effort estimate by multiplying the initial estimate with all the multiplying factors i.e., multiply the values in step1 and step2. The initial estimate (also called nominal estimate) is determined by an equation of the form used in the static single variable models, using KDLOC as the measure of the size. To determine the initial effort E i in person-months the equation used is of the type is shown below E i =a*(KDLOC)b In COCOMO, projects are categorized into three types: Organic Semidetached Embedded
1.Organic: A development project can be treated of the organic type, if the project deals with developing a well-understood application program, the size of the development team is reasonably small, and the team members are experienced in developing similar methods of projects. Examples of this type of projects are simple business systems, simple inventory management systems, and data processing systems. 2. Semidetached: A development project can be treated with semidetached type if the development consists of a mixture of experienced and inexperienced staff. Team members may have finite experience in related systems but may be unfamiliar with some aspects of the order being developed. Example of Semidetached system includes developing a new operating system (OS), a Database Management System (DBMS), and complex inventory management system. 3. Embedded: A development project is treated to be of an embedded type, if the software being developed is strongly coupled to complex hardware, or if the stringent regulations on the operational method exist. For Example: ATM, Air Traffic control. Cocomo Model Continues…
According to Boehm, software cost estimation should be done through three stages: Basic Model Intermediate Model Detailed Model Basic COCOMO Model: The basic COCOMO model provide an accurate size of the project parameters. The following expressions give the basic COCOMO estimation model: Effort=a 1 *(KLOC) a 2 PM 2. Intermediate Model: The basic Cocomo model considers that the effort is only a function of the number of lines of code and some constants calculated according to the various software systems. The intermediate COCOMO model recognizes these facts and refines the initial estimates obtained through the basic COCOMO model by using a set of 15 cost drivers based on various attributes of software engineering. 3.Detailed Cocomo Model: Detailed COCOMO is the most comprehensive and detailed version of the model. It includes a much larger set of factors that can impact project effort, cost, and schedule. Factors considered in this version include personnel capabilities, process maturity, and more. The estimation formula is highly complex and considers a large number of cost drivers and effort multipliers. Cocomo Model Continues…