Metrics Formulas This appendix lists a number of the metrics that involve more than simple average (mean) or percentage calculations. Code Growth This metric is not actually used in the tables in the document, but has been included for reference purposes. Code growth is defined and calculated as: (latest _ size _ estimate) − ( Initial _ Size _ Estimate) CG = ( Initial _ Size _ Estimate) Earned Value Earned value (EV) is a very important tracking metric which measures the actual amount of work accomplished (regardless of the effort expended or the time elapsed). Earned value is based on the Overall Proportion Complete (OPC). Both EV and OPC require the following input data: • The labour rates (PH/SLOC) for each activity in the development process. • The proportion of software that has passed through each activity. The proportion of software that has passed through an activity i is defined as follows: units_ through_ activity _ i Pi = total _ number _ of _ units_ required Units can be code modules, SLOC, LOD, function points, or any other measurement of the work to be done. Given these inputs, Overall Proportion Complete is Appendix D - Metrics Formulas 2 p ∑ CiPi OPC = i =1 p ∑ Ci i =1 where i represents an activity from activities 1 through p, and Ci is the labour rate (PH/SLOC) for activity i. Once you have calculated OPC, calculate earned values as p EV = Size • ∑ Ci • OPC i = 1 where size is the estimated size in SLOC. Use this formula to measure the earned value of each estimated code module or function block (or software component), or to sum the EVs for each code module to get a total EV. Estimate at Completion The estimate at completion (EAC) is an estimate of the completed cost of the project. Initially the EAC is equal to the initial estimated cost (IEC). Once the project has started, the EAC is equal to the cost to date (CTD) plus the estimated cost to complete (ETC). In effect, EAC = CTD + ETC State all costs in the units of effort appropriate to the company. You take the value of CTD directly from the project database. Calculate the ETC as p Ci •1 − OPC ) ETC = S • ∑ ( i = 1 where S is the estimated size, OPC is the Overall Percentage Complete, and Ci is the labour rate (PH/SLOC) for activity i. The final ETC will be given in the units of effort used in the calculations. Appendix D - Metrics Formulas 3 Labour Rate The labour rate is the cost (measured as effort) to put one unit of product size through an activity. Each activity will be characterized by its own labour rate. In this document, the labour rate is presented as PH/SLOC (person hours per line of source code). PH/SLOC or PM/KSLOC (person months per thousand lines of source code) are the most common ratios used. Overall Proportion of Work Complete Overall Proportion of work Complete (OPC) illustrates the degree of completeness of a project. It requires the following input data: • The labour rates (PH/SLOC) for each activity in the development process. • The proportion of software that has passed through each activity. The proportion of software that has passed through an activity i is defined as follows: units_ through_ activity _ i Pi = total _ number _ of _ units_ required Units can be code modules, SLOC, LOD, function points, or any other measurement of the work to be done. Given these inputs, Overall Proportion Complete is p ∑ CiPi OPC = i = 1 p ∑ Ci i =1 where i represents an activity from activities 1 through p, and Ci is the labour rate (PH/SLOC) for activity i. Appendix D - Metrics Formulas 4 Productivity Productivity is the inverse of the labour rate, or rather, the number of size units that can be put through an activity with a given effort. In this document, productivity is measured as SLOC/PH (lines of source code per person hour). Glossary 5 Glossary Term Definition activity The phases that make up the software development process are called activities. Examples of activities might be detailed design, system test, or implementation. Activities typically have inputs such as design documents and outputs such as code. budget The budget is the amount of money in dollars that is allocated to the project. category An attribute of the software product which indicates the type of software being developed. Examples could be embedded software, user interface software or database application software. Each software category is assigned a weight indicating its relative complexity. CMM The Capability Maturity Model (CMM) is a process maturity framework developed by the SEI to help organizations improve their software process. It was initially created to provide the U.S. government with a method for assessing the capability of their software contractors. code (new) New code is code that is created or modified during the project. code (reused) Reused code is code that exists and can be used without modification for the project. defect A defect is a problem detected in the output from an activity, such as a bug in software or a flaw in design. defect type Defect type is an attribute of a defect used to group defects that are similar. Example defect types are coding error, design flaw, and interface error. You should specify valid defect types in the software development process description. Glossary 6 Term Definition development Development staff is a classification of staff members. staff Typically, the development staff is composed of the engineers and programmers who are developing the core project. deviation A deviation from the software development process occurs any time the procedures of the development process are not followed. earned value Earned value (EV) is a tracking metric which measures the actual amount of work accomplished, regardless of the effort expended or the time elapsed. experience level An experience level is an attribute of a staff member. It indicates a staff s member’ experience (relative to other staff members). failure A failure is a run-time error which renders the program or system non- operational. Gantt chart A Gantt chart is a standard scheduling chart that depicts work tasks as a sequence of horizontal time bars. I/O transaction An I/O transaction typically refers to one bundle of data which is accepted and processed by the system. You should define I/O transactions explicitly for the system being developed. inspected code Inspected code is code which has been subjected to a visual verification or walkthrough by a group of impartial designers. KLOD KLOD is one thousand lines of documentation. This refers to non-executable text that is placed in a program source file to explain details of the operation of the program. KSLOC KSLOC is one thousand source lines of code, and is a measurement of program size. LOD LOD is lines of documentation. This refers to non-executable text that is placed in a program source file to explain details of the operation of the program. labour rate The labour rate is the cost (measured as effort) to put one unit of product size through an activity. Each activity will be characterized by its own labour rate. In this document, the labour rate is presented as PH/KSLOC. Glossary 7 Term Definition manager Manager is a classification of a staff member. Typically, a manager is a person who performs management tasks. milestone Milestones are check points in the development process. A milestone is associated with a rigid set of criteria. When these criteria are met, the milestone is said to have been reached. person hours A person hour is a measurement of effort. One person who works for one hour will have performed one person hour worth of work. This measure is often abbreviated as PH. PERT chart A PERT chart is a standard scheduling chart that shows work tasks as boxes. Lines between the boxes show the dependencies between tasks. PH PH is person hours. process The process, or software development process, is the method used to convert initial project requirements into a final system. The process typically consists of a number of phases, called activities. process A process exception report is a form that must be filled exception out, and approved each time a staff member wishes to report deviate from the documented software development process. product Product complexity is defined as the relative difficulty in complexity creating the product compared to other software products. productivity Productivity is the inverse of the labour rate, or rather, the number of size units that can be put through an activity with a given effort. In this document, productivity is measured as KLSOC/PH. requirements Requirements are desired characteristics of the software being developed. The first activity in most software processes is one which identifies and documents the requirements. You should specify and number requirements individually for reference during development. rework Rework refers to any work that is performed to correct defects. Glossary 8 Term Definition SEI The Software Engineering Institute (SEI) is a federally funded (U.S.) research and development centre sponsored by the U.S. Department of Defense. The SEI and its founder, Watts Humphrey, created the CMM. SLOC SLOC is source lines of code (or lines of source code), and is a measurement of program size. staff The staff is the group of people who are contributing time to a project. Staff can be categorized as management, support, or development. staff member A staff member is one person from the staff. support staff Support staff is a classification of staff members. Typically, support staff are those who perform tasks which assist the development and/or management staff. tasks Tasks are units of work which are assigned to the staff. Tasks can be classified according to the type of work being performed. Typical classifications are management, development, and support. tests Tests are the individual tests specified in a test plan document. Each test is typically described by 1) an initial system state, 2) a set of actions to be performed, and 3) the expected results of the test. tests executed Tests are said to have been executed if the described set of actions have been performed. tests passed Tests are said to have passed if they have been executed, and the output from the tests matches the expected results. units Units are the elements of work required to complete each development activity. Depending on the activity, a unit may be a document, a test, or a module of code. WBS WBS is Work Breakdown Structure. WBS is a standard software project management technique of breaking the project down into a hierarchy of work tasks which represent the work to be done.
Pages to are hidden for
"Productivity Fornulas"Please download to view full document