0
Objectives <ul><li>The aim of this topic is to introduce the concepts of measurement and metrics as well as the practical ...
Introduction <ul><li>Anything that you need to quantify can be measured in some way that is superior to not measuring it a...
Why Measure? <ul><li>We measure for a number of reasons. These include: </li></ul><ul><li>To characterize -  to gain an un...
What to Measure <ul><li>Process  </li></ul><ul><li>Measure the efficacy of processes. What works, what doesn't. </li></ul>...
The Goal Question Metrics (GQM) Approach <ul><li>The GQM approach is based on the idea that in order to measure in a meani...
The Goal Question Metrics (GQM) Approach <ul><li>Example: </li></ul><ul><ul><li>Goal : To improve the outcome of design in...
Six Sigma Approach  <ul><li>What Is Six Sigma?   </li></ul><ul><li>Six Sigma is a rigorous and disciplined methodology tha...
Six Sigma Approach  <ul><li>In Six Sigma   measurement programs focus on collecting data that will help you to improve you...
Six Sigma Approach <ul><li>This approach bases itself on the  operational statement : you must state concisely what it is ...
Six Sigma Approach <ul><li>For example: </li></ul><ul><li>the statement &quot;the customers aren't happy&quot; is of very ...
Six Sigma Approach <ul><li>In order to assess process improvement  we must collect data over time .  </li></ul><ul><ul><li...
Process Metrics <ul><li>Process metrics primarily focus on organizational performance and quality achieved as a consequenc...
Project Metrics <ul><li>Software project metrics are used to adapt workflow and technical activities.  </li></ul><ul><li>T...
Product Metrics <ul><li>product metrics generally focus on the quality of deliverables. They include: </li></ul><ul><ul><l...
Measurement Program <ul><li>A measurement program is an effective means for controlling the software process performance (...
Metrics Life Cycle <ul><li>Planning:  to identify the scope of the measurement program through </li></ul><ul><ul><li>Metri...
Metrics Life Cycle <ul><li>Implementing:  data are collected in accordance with the operational measurement procedures, va...
Metrics Life Cycle <ul><ul><li>Data analysis  </li></ul></ul><ul><ul><ul><li>to evaluate the status of the project with re...
Metrics Life Cycle
Metrics Life Cycle <ul><li>Improving:  periodically, the entire measurement program is to be reviewed to ensure that it he...
Metric Objective <ul><ul><li>The main purposes of measuring are: </li></ul></ul><ul><ul><li>•  measuring the  Productivity...
Productivity <ul><li>Establish the relationship between the output and the input of a project </li></ul><ul><li>Problems: ...
Quality <ul><li>In order to measure the quality of a software product  aspects such as : </li></ul><ul><ul><li>The defects...
Controlling the project  <ul><li>As a support for the Project manager to provide information for performing as much precis...
Primary Data <ul><li>The Primary Data are the lower level of the information to be collected and documented when prescribe...
Size <ul><li>Furthermore the size represents the starting point for the whole metrics system.  </li></ul><ul><li>It is inv...
Size <ul><li>The product size can be expressed in different unit of measurement, according to the adopted estimating/ meas...
Size – Arpad method <ul><li>Measures performed at the beginning of the Concept Exploration can only provide indicative inf...
Functionality Oriented Measures (Function Points) <ul><li>A direct estimate of the size is possible at the end of the Conc...
Functionality Oriented Measures (Function Points) <ul><li>It consists, simplifying, of two main steps: </li></ul><ul><ul><...
Function Points comp.  <ul><li>STEP1  </li></ul><ul><li>Count the number of  external inputs ,  external outputs ,  extern...
Function Points comp. <ul><li>STEP2   </li></ul><ul><li>Rate each component (EI,EO,EQ,ILF,EIF) as  low ,  average , or  hi...
Function Points comp. <ul><li>STEP3  </li></ul><ul><li>Multiply each count by the numerical rating shown for (low,average,...
Function Points comp. <ul><li>STEP4   </li></ul><ul><li>Next we calculate a value adjustment factor (VAF) based on 14 gene...
Function Points comp. <ul><li>STEP5  </li></ul><ul><li>Calculate the Value Adjusted Function point  (VAF)  using the IFPUG...
Product size measures at the Design phase <ul><li>As the design describes directly the selected solution of the problem, i...
OOFP <ul><li>The Object-Oriented Function Points method uses an object-oriented specification, focusing on object, attribu...
Product oriented measures (LOC) <ul><li>At the beginning of the construction/module test phase, an estimation of the produ...
What’s a LOC <ul><li>The most general approach to size measurement is to count the number of text lines in a source progra...
Statements Count (logical LOC) <ul><li>Counts of logical statements attempt to characterize size in terms of the number of...
Size versus development time <ul><li>LOC are precise, machine countable, environment specific, and they can reflect the mi...
Size versus development time <ul><li>But .. </li></ul><ul><li>What about the use of other languages (other than C++)? </li...
Size versus development time <ul><li>This can be true for just a company,  </li></ul><ul><ul><li>steady (without great tur...
Backfiring  <ul><li>A correspondence between the number of LOC and Function Points was researched by Capers Jones, resulti...
Productivity <ul><li>The productivity is generally measured as the number of working hours needed for the production of a ...
Productivity <ul><li>Productivity is affected by: </li></ul><ul><li>Project characteristic :  describing people and proces...
Productivity <ul><li>Project characteristic </li></ul><ul><li>Personnel :  the topic of personnel includes most of the “hu...
Productivity <ul><li>Management characteristic </li></ul><ul><li>It describes “how” the project is managed.  Management ch...
Productivity <ul><li>Product characteristic: </li></ul><ul><li>Criticality :  this can be: </li></ul><ul><ul><li>Timing Cr...
Effort <ul><li>Number of persons per unit time  (most common measure for planning and controlling the project progress) </...
Defect <ul><li>In general a defect is defined as a product anomaly. Examples include omissions and imperfections found dur...
Defect <ul><li>Defects are injected into the product or intermediate deliverables of the product at various phases.  </li>...
Defects <ul><li>Possible measures on defects: </li></ul><ul><li>Defects number:  To evaluate the number of detected defect...
Duration  <ul><li>The Duration of an activity is given by the difference between the start and the end date of the activit...
Duration  <ul><li>Possible metric: schedule adherence </li></ul><ul><li>to provide information on the progress of the proj...
Stability <ul><li>Requirements Changes </li></ul><ul><li>The initial set of requirements of a project can be changed in th...
Stability <ul><li>Staff Changes </li></ul><ul><li>These data indicate the number of the staffs lost and of the staffs that...
Upcoming SlideShare
Loading in...5
×

Measures

685

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
685
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
35
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Paradigm Goal/Question/Metric consists of identifying the goals to be achieved by the metrics program and associating a set of related questions with each goal. The answers to these questions should make it possible to identify the quantitative measures that are necessary to provide the answers and, thus, to reach the goal.
  • Note: on-line data entry does not mean web interface it means data entry by a user or another system at transaction time (ie. non-batch)
  • Note: on-line data entry does not mean web interface it means data entry by a user or another system at transaction time (ie. non-batch)
  • Transcript of "Measures "

    1. 1. Objectives <ul><li>The aim of this topic is to introduce the concepts of measurement and metrics as well as the practical skills necessary to define and count LOC and FP, the basis for many software metrics. </li></ul><ul><li>You will: </li></ul><ul><ul><li>Develop an understanding of why is it important to measure the process of software engineering and the products it produces </li></ul></ul><ul><ul><li>Develop practical skills in size measurement and basic function point analysis. </li></ul></ul>
    2. 2. Introduction <ul><li>Anything that you need to quantify can be measured in some way that is superior to not measuring it at all. Tom Gilb </li></ul><ul><li>When you can measure what you are speaking about and can express it in numbers, you know something about it. But when you cannot measure it, when you cannot express it in numbers, your knowledge is of a meager and unsatisfactory kind. Lord Kelvin </li></ul><ul><li>If software development is to be viewed as an engineering discipline, it requires a measurement component that allows us to better understand, evaluate, predict and control the software process and product. Victor Basili, University of Maryland </li></ul>
    3. 3. Why Measure? <ul><li>We measure for a number of reasons. These include: </li></ul><ul><li>To characterize - to gain an understanding of products, processes,... </li></ul><ul><li>To evaluate - to determine status with respect to plans. </li></ul><ul><li>To predict - so that we may plan </li></ul><ul><li>To Improve - rational use of quantitative information to identify problems and strategies to remove them </li></ul>
    4. 4. What to Measure <ul><li>Process </li></ul><ul><li>Measure the efficacy of processes. What works, what doesn't. </li></ul><ul><li>Project </li></ul><ul><li>Assess the status of projects. Track risk. Identify problem areas. Adjust work flow. </li></ul><ul><li>Product </li></ul><ul><li>Measure predefined product attributes (generally related to ISO9126 Software Characteristics) </li></ul>
    5. 5. The Goal Question Metrics (GQM) Approach <ul><li>The GQM approach is based on the idea that in order to measure in a meaningful way we must measure that which will help us to assess and meet our organisational goals. </li></ul><ul><ul><li>A Goal is defined for an object, for a variety of reasons, with respect to various models of quality, from various points of view, relative to a particular environment. The objects of measurement are products, processes and resources. </li></ul></ul><ul><ul><li>Questions are used to characterize the way the assessment/achievement of a specific goal is going to be performed based on some characterizing model. Questions try to characterize the object of measurement with respect to a selected quality issue and to determine its quality from the selected viewpoint. Questions must be answerable in a quantitative manner. </li></ul></ul><ul><ul><li>Metrics are associated with every question in order to answer it in a quantitative way. </li></ul></ul>
    6. 6. The Goal Question Metrics (GQM) Approach <ul><li>Example: </li></ul><ul><ul><li>Goal : To improve the outcome of design inspections from the quality managers point of view. </li></ul></ul><ul><ul><li>Question: What is the current yield of design inspections? </li></ul></ul><ul><ul><li>Metric: inspection yield = nr defects found / est. total defects </li></ul></ul><ul><ul><li>Question: What is the current inspection rate? </li></ul></ul><ul><ul><li>Metric: individual inspection rate, inspection period, overall inspection rate </li></ul></ul><ul><ul><li>Question: Is design inspection yield improving? </li></ul></ul><ul><ul><li>Metric: current design inspection yield / baseline design inspection yield * 100 </li></ul></ul><ul><ul><li>... </li></ul></ul>
    7. 7. Six Sigma Approach <ul><li>What Is Six Sigma? </li></ul><ul><li>Six Sigma is a rigorous and disciplined methodology that uses data and statistical analysis to measure and improve a company's operational performance by identifying and eliminating &quot;defects&quot; in manufacturing and service-related processes. </li></ul><ul><li>Commonly defined as 3.4 defects per million opportunities, Six Sigma can be defined and understood at three distinct levels: </li></ul><ul><li>metric, methodology and philosophy... </li></ul>
    8. 8. Six Sigma Approach <ul><li>In Six Sigma measurement programs focus on collecting data that will help you to improve your processes in order to better satisfy your customers . </li></ul><ul><li>It is a common sense notion that something you do in working on a product (some part of the process) will have an effect in terms of the customer's perception of the quality of that product, and that by identifying problems with the process and making subsequent process improvements will improve the customer's perception of the product. </li></ul><ul><li>The measurments that you should be making are , therefore, the ones that will help you to assess and improve processes with the goal of satisfying the needs of the custmer(s) . </li></ul>
    9. 9. Six Sigma Approach <ul><li>This approach bases itself on the operational statement : you must state concisely what it is that you are going to improve (or achieve): &quot;what's wrong with what&quot;. </li></ul><ul><li>It must be written in simple language using terminology that has the same meaning to everyone who is going to read it. </li></ul><ul><li>An operational statement will be stated in terms of the effect of what it is that you are improving. </li></ul><ul><li>It should aim to identify the where, when, what and how big of the problem. </li></ul>
    10. 10. Six Sigma Approach <ul><li>For example: </li></ul><ul><li>the statement &quot;the customers aren't happy&quot; is of very little use in making them happy. </li></ul><ul><li>However, by repeatedly asking why and by analyzing any available data we might arrive at a concise statement such as &quot;The XYZ module is unavailable 10% of the time&quot;. </li></ul><ul><li>This is a much more useful metric against which we could base the assessment of process changes. </li></ul><ul><li>To get to a statement like this requires measurement of availability. </li></ul>
    11. 11. Six Sigma Approach <ul><li>In order to assess process improvement we must collect data over time . </li></ul><ul><ul><li>This should begin with establishing baseline performance. A baseline is the average of historical data over a specified period of time. </li></ul></ul><ul><ul><li>In the example above, Module XYZ is unavailable 10% of the time is baseline a statement of the baseline performance. </li></ul></ul><ul><ul><li>Then we must then establish a goal . </li></ul></ul><ul><ul><li>This goal is stated as a measure of improvement over a period of time in terms of the baseline data. </li></ul></ul><ul><ul><li>The Six Sigma rate of improvement goal is often quoted as being a 10X improvement over a period of 2 years. If we take this improvement goal and apply it to the example above we would establish the 10X/2years improvement goal as Module XYZ is unavailable 1% of the time . Or stated more usefully, &quot; Module XYZ is available 99% of the time&quot; . </li></ul></ul><ul><li>So summarizing the example, we may have the following: </li></ul><ul><li>Operational Statement : &quot;Module XYZ is periodically unavailable&quot; </li></ul><ul><li>Historical Data: Availability metrics calculated for module XYZ over the past 6 months indicate that it is available 90% of the time. </li></ul><ul><li>Baseline performance: Module XYZ availability = 90% </li></ul><ul><li>10x/2years improvement goal: Module XYZ availability = 99% </li></ul><ul><li>In order to verify our progress toward the goal we must track actual progress planning and performing periodical reviews of this performance </li></ul>
    12. 12. Process Metrics <ul><li>Process metrics primarily focus on organizational performance and quality achieved as a consequence of a repeatable or managed process. This characterization and evaluation of a process for achieving performance and quality outcomes is known as Quality Assurance. </li></ul><ul><li>Process metrics include metrics relating to: </li></ul><ul><ul><li>statistical SQA data </li></ul></ul><ul><ul><li>defect categorization & analysis </li></ul></ul><ul><ul><li>defect removal efficiency (DRE) DRE = E/(E+D) E number of errors before delivery (or before a particular phase) D number of defects after delivery </li></ul></ul><ul><ul><li>defect propagation from phase to phase </li></ul></ul><ul><ul><li>reuse data </li></ul></ul>
    13. 13. Project Metrics <ul><li>Software project metrics are used to adapt workflow and technical activities. </li></ul><ul><li>They are primarily used in estimation, monitoring and control of workflow within a project. </li></ul><ul><ul><li>Effort/time per SE task </li></ul></ul><ul><ul><li>Defects detected per review hour </li></ul></ul><ul><ul><li>Scheduled vs. actual milestone dates </li></ul></ul><ul><ul><li>Changes (number) and their characteristics </li></ul></ul><ul><ul><li>Distribution of effort on SE tasks </li></ul></ul>
    14. 14. Product Metrics <ul><li>product metrics generally focus on the quality of deliverables. They include: </li></ul><ul><ul><li>measures of analysis model </li></ul></ul><ul><ul><li>complexity of the design </li></ul></ul><ul><ul><ul><li>internal algorithmic complexity </li></ul></ul></ul><ul><ul><ul><li>architectural complexity </li></ul></ul></ul><ul><ul><ul><li>data flow complexity </li></ul></ul></ul><ul><ul><li>code measures (e.g., Halstead) </li></ul></ul><ul><ul><li>Measures of maintainability </li></ul></ul><ul><ul><li>defect metrics </li></ul></ul>
    15. 15. Measurement Program <ul><li>A measurement program is an effective means for controlling the software process performance (i.e., the actual results a project achieves by using its defined process) and guiding improvements in the software engineering processes. </li></ul><ul><li>It has to based on a model in which a comprehensive measurement framework may be constructed, analyzed, and modified as the organization’s goal change. </li></ul><ul><li>In order to define such a program, it is presented the underlying life cycle that </li></ul><ul><li>applies to the use of software metrics. </li></ul>
    16. 16. Metrics Life Cycle <ul><li>Planning: to identify the scope of the measurement program through </li></ul><ul><ul><li>Metric selection </li></ul></ul><ul><ul><li>Identify the measures to support organization objectives. The use of Goal/Question/Metric paradigm ensures that all the strategic goals of the company are measured. </li></ul></ul><ul><ul><li>Metric specification </li></ul></ul><ul><ul><li>Define the operational measurements procedures: selected metrics have to be provided with specific meanings so that these can be uniformly collected and interpreted </li></ul></ul>
    17. 17. Metrics Life Cycle <ul><li>Implementing: data are collected in accordance with the operational measurement procedures, validated, and analyzed. </li></ul><ul><ul><li>Data collection </li></ul></ul><ul><ul><li>apparently the most easy, but also the most important. </li></ul></ul><ul><ul><li>To be effective it must be automated. </li></ul></ul><ul><ul><li>Data validation </li></ul></ul><ul><ul><li>one of the easiest and most cost effective way to validate data is simply to observe the data collection process and make sure that data are collected in accordance with the defined procedure (to ensure at least standardization) </li></ul></ul>
    18. 18. Metrics Life Cycle <ul><ul><li>Data analysis </li></ul></ul><ul><ul><ul><li>to evaluate the status of the project with respect to plans </li></ul></ul></ul><ul><ul><ul><li>to improve the software process </li></ul></ul></ul><ul><ul><li>In process analysis allows to evaluate whether the project is drifting off track, so that they can be brought back under control by suitable actions. </li></ul></ul><ul><ul><li>A posteriori analysis permits to controls the trend of the key measures of the whole company, and to refine the baselines to compare against, so that it can be judged whether or not the improvement actions are working as intended and what the side effects may be. </li></ul></ul>
    19. 19. Metrics Life Cycle
    20. 20. Metrics Life Cycle <ul><li>Improving: periodically, the entire measurement program is to be reviewed to ensure that it helps the software projects to control their processes, and the whole organization to improve. Metrics can be revised, redefined following again the metric life-cycle. </li></ul><ul><li>In addition, in case there exist metrics with dubious values or not used, they can even be retired. </li></ul>
    21. 21. Metric Objective <ul><ul><li>The main purposes of measuring are: </li></ul></ul><ul><ul><li>• measuring the Productivity of a project </li></ul></ul><ul><ul><li>• measuring and evaluating the Quality of the software product </li></ul></ul><ul><ul><li>• controlling a project. </li></ul></ul><ul><li>in the SEI CMM Level 3 the management and control of size/complexity, reusable software components, effort and costs is required. </li></ul><ul><li>These are also the goals to be used in the GQM approach. </li></ul>
    22. 22. Productivity <ul><li>Establish the relationship between the output and the input of a project </li></ul><ul><li>Problems: </li></ul><ul><ul><li>• establishing a measure unit for the output </li></ul></ul><ul><ul><li>• recognizing all the project/product/management characteristics affecting the expended effort </li></ul></ul><ul><ul><li>• measuring the other factors affecting the effort, as rework due to change and reuse </li></ul></ul>
    23. 23. Quality <ul><li>In order to measure the quality of a software product aspects such as : </li></ul><ul><ul><li>The defects density and rate </li></ul></ul><ul><ul><li>The removal efficiency </li></ul></ul><ul><ul><li>The number of bad fixes </li></ul></ul><ul><ul><li>have to be considered. </li></ul></ul>
    24. 24. Controlling the project <ul><li>As a support for the Project manager to provide information for performing as much precise estimate as possible and for supporting technical and managerial choices. </li></ul><ul><li>problems to be resolved controlling a project are related both to prediction and evaluation of </li></ul><ul><ul><li>effort </li></ul></ul><ul><ul><li>scheduling </li></ul></ul><ul><ul><li>stability </li></ul></ul><ul><ul><li>defect </li></ul></ul>
    25. 25. Primary Data <ul><li>The Primary Data are the lower level of the information to be collected and documented when prescribed, in order to allow the calculation analysis helpful to monitor the process and evaluate the products. </li></ul><ul><li>These are: </li></ul><ul><ul><li>Size </li></ul></ul><ul><ul><li>Effort </li></ul></ul><ul><ul><li>Defects </li></ul></ul><ul><ul><li>Duration (estimated and actual) </li></ul></ul><ul><ul><li>Stability (Requirements and Staff Changes) </li></ul></ul>
    26. 26. Size <ul><li>Furthermore the size represents the starting point for the whole metrics system. </li></ul><ul><li>It is involved in both assessment and predictive metrics; </li></ul><ul><ul><li>for assessment, it is used to measure an artifact or a system, or also to normalize other metrics </li></ul></ul><ul><ul><li>for prediction it serves to give a concrete mean to express the provisions: the strong connection between Product size and the effort needed to develop the Software Product, the size allows to derive accurate estimates of the effort, cost, and schedule of the project </li></ul></ul>
    27. 27. Size <ul><li>The product size can be expressed in different unit of measurement, according to the adopted estimating/ measuring technique. </li></ul><ul><li>As a Backfiring method exists for determining the correspondence between number of Function Points and number of LOC so it is </li></ul><ul><li>possible to establish a correspondence factor between Object-Oriented Function Points and Function Points </li></ul>
    28. 28. Size – Arpad method <ul><li>Measures performed at the beginning of the Concept Exploration can only provide indicative information (low confidence level) on the target product size and can be gathered only with indirect measures; the calculation is based on the estimate of the effort; the obtained measure can have a low confidence level, </li></ul><ul><li>This method is based on the computation of a quantity corresponding to the effort needed to the specification of the system. </li></ul><ul><li>This calculation considers factors as </li></ul><ul><ul><li>number of people to be interviewed, </li></ul></ul><ul><ul><li>number of days required to the interviews, </li></ul></ul><ul><ul><li>number input and output screens, reports, menus and so on. </li></ul></ul><ul><li>With a very simple step, it is possible to obtain a first, indicative estimate of the global effort needed for the complete development of the Software Product (under certain hypothesis.) </li></ul><ul><li>Considering a reference Productivity Parameter the estimated global effort allows to derive a first estimate of the size. </li></ul>
    29. 29. Functionality Oriented Measures (Function Points) <ul><li>A direct estimate of the size is possible at the end of the Concept Exploration, using the Function Point Analysis method based upon the artifacts produced, i.e. System Requirements and System Architecture. </li></ul><ul><li>The Function Point Analysis method gives a way of sizing software through the analysis of the implemented functionality of a system from the user‘s point of view, considering the application as a black box. </li></ul>
    30. 30. Functionality Oriented Measures (Function Points) <ul><li>It consists, simplifying, of two main steps: </li></ul><ul><ul><li>to evaluate the unadjusted Function Points (UFP) count, basing on the number of user functions and on its complexity classification </li></ul></ul><ul><ul><li>to evaluate the adjusted Function Points (FP) count, by scoring fourteen general system characteristics . </li></ul></ul><ul><li>These steps allow the calculation of the product size keeping into account also its complexity, i.e. the degree of complicatedness of the product owing to the structure of the aggregated components and related relationships. </li></ul>
    31. 31. Function Points comp. <ul><li>STEP1 </li></ul><ul><li>Count the number of external inputs , external outputs , external inquiries , internal logic files , and external interface files required. The IFPUG provides the following definitions for these: </li></ul><ul><ul><li>External Input (EI): An EI is an elementary process in which data crosses the boundary from outside to inside.  This data may come from a data input screen or another application. The data may be used to maintain one or more internal logical files.  The data can be either control information or business information.  If the data is control information it does not have to update an internal logical file. </li></ul></ul><ul><ul><li>External Output (EO) : An EO is an elementary process in which derived data passes across the boundary from inside to outside.   Additionally, an EO may update an ILF.  The data creates reports or output files sent to other applications.  These reports and files are created from one or more internal logical files and external interface file. </li></ul></ul><ul><ul><li>External Inquiry (EQ) : An EQ is an elementary process with both input and output components that result in data retrieval from one or more internal logical files and external interface files.  The input process does not update any Internal Logical Files, and the output side does not contain derived data. </li></ul></ul><ul><ul><li>Internal Logic File (ILF) : AN ILF is a user identifiable group of logically related data that resides entirely within the applications boundary and is maintained through external inputs. </li></ul></ul><ul><ul><li>External Interface File (EIF) : An EIF is a user identifiable group of logically related data that is used for reference purposes only. The data resides entirely outside the application and is maintained by another application. The external interface file is an internal logical file for another application. </li></ul></ul>
    32. 32. Function Points comp. <ul><li>STEP2 </li></ul><ul><li>Rate each component (EI,EO,EQ,ILF,EIF) as low , average , or high . </li></ul><ul><li>For transactions (EI’s, EO’s, EQ’s) the ranking is based upon the number of files updated or referenced (FTR’s) and the number of data element types (DET’s). </li></ul><ul><li>For both ILF’s and EIF’s files the ranking is based upon Record Element Types (RET’s) and Data Element Types (DET’s). </li></ul><ul><ul><li>A record element type (RET) is a user recognizable subgroup of data elements within an ILF or EIF. </li></ul></ul><ul><ul><li>A data element type (DAT) is a unique user recognizable, non-recursive, field. </li></ul></ul><ul><ul><li>File Type Referenced (FTR): A FTR is a file type referenced by a transaction. An FTR must also be an internal logical file or external interface file. </li></ul></ul>
    33. 33. Function Points comp. <ul><li>STEP3 </li></ul><ul><li>Multiply each count by the numerical rating shown for (low,average,high) to determine the rated value. </li></ul><ul><li>Sum the rated values in each row (EI,EO,EQ,ILF,EIF) giving a total value for each type of component . </li></ul><ul><li>Sum the totals in the rightmost column for each component to give Total Number of Unadjusted Function Points (UAF). </li></ul>
    34. 34. Function Points comp. <ul><li>STEP4 </li></ul><ul><li>Next we calculate a value adjustment factor (VAF) based on 14 general system characteristics (GSC's) that rate the general functionality of the application being counted. </li></ul><ul><li>Each characteristic has associated descriptions that help determine the degrees of influence of the characteristics. The degrees of influence range on a scale of zero to five, from no influence to strong influence. </li></ul>
    35. 35. Function Points comp. <ul><li>STEP5 </li></ul><ul><li>Calculate the Value Adjusted Function point (VAF) using the IFPUG value adjustment equation with the 14 weightings allocated to each General System Characteristic (GSC): </li></ul><ul><li>VAF = 0.65 + 0.01*Sum(GSCi) </li></ul><ul><li>for all i in [1..14], where 0.65 and 0.01 are empirically derived constants. </li></ul><ul><li>That is, VAF is calculated by summing all of the answers to the 14 questions (weighted 0-5), multiplying this sum by the factor 0.01 and then adding 0.65. </li></ul><ul><li>STEP 6 </li></ul><ul><li>The final Function Point Count is obtained by multiplying the VAF times the Unadjusted Function Point (UAF). </li></ul><ul><li>FP = UAF * VAF (function points) </li></ul>
    36. 36. Product size measures at the Design phase <ul><li>As the design describes directly the selected solution of the problem, it contains precise information and Function Points method can be usefully applied at this level. </li></ul><ul><li>At this level, where the use of reuse and COTS are well defined and delimited, detailed estimates are possible as only those classes to be developed are included in the count. </li></ul><ul><li>So the used method could be: </li></ul><ul><ul><li>Determination of LOC from class/method analysis, backfired to FP </li></ul></ul><ul><ul><li>OOFP calculation converted to FP </li></ul></ul>
    37. 37. OOFP <ul><li>The Object-Oriented Function Points method uses an object-oriented specification, focusing on object, attributes, and operations. Applying this method, the boundary can be moved to surround individual classes; in this way not only delivered functionality are measured, but also the size and the complexity of the application. </li></ul><ul><li>When dealing with OO Programming, these steps have to be ensued </li></ul><ul><ul><li>Look at each cluster of object classes as a system and count Function Points </li></ul></ul><ul><ul><li>Analyze the Object Diagrams and count: </li></ul></ul><ul><ul><ul><li>Data Items (Internal Data Items, External Data Items) </li></ul></ul></ul><ul><ul><ul><li>Service Requests (Incoming, Outgoing, Status Inquires) </li></ul></ul></ul><ul><ul><li>Forget value adjustment factors </li></ul></ul><ul><ul><li>Report unadjusted Function Points </li></ul></ul>
    38. 38. Product oriented measures (LOC) <ul><li>At the beginning of the construction/module test phase, an estimation of the product size, in terms of Lines of Code, has to be performed. </li></ul><ul><ul><li>by means of the backfire method, which derives the LOC from the counted FP </li></ul></ul><ul><ul><li>or using corporate data </li></ul></ul>
    39. 39. What’s a LOC <ul><li>The most general approach to size measurement is to count the number of text lines in a source program. In doing this, we typically ignore blank lines and lines with only comments. All other text lines are counted. This approach has the advantage of being simple and easy to automate. </li></ul><ul><li>This LOC counting approach has the disadvantage of being sensitive to formatting. Those programmers who write very open code will get more LOC for the same program than would their peers who used more condensed formats. </li></ul><ul><li>Even comments influence this counting, you can strip comments, but commented code is much more maintainable than uncommented one. </li></ul><ul><li>In doing this, you should also establish the practice of putting a logical LOC on each physical line of the source program.   </li></ul>
    40. 40. Statements Count (logical LOC) <ul><li>Counts of logical statements attempt to characterize size in terms of the number of software instructions, irrespective of their relationship to the physical formats in which they appear </li></ul><ul><li>Either the operational definition of LOC and statement is to be provided through tables that explicitly identifies the values for each attribute that is to be included in or excluded from our statement counts. </li></ul><ul><li>Examples of such table are from </li></ul><ul><li>Robert E. Park “Software Size Measurement: A Framework for Counting Source Statements” CMU/SEI-92-TR-020 </li></ul>
    41. 41. Size versus development time <ul><li>LOC are precise, machine countable, environment specific, and they can reflect the mix of reused, modified, and new code. </li></ul><ul><li>The principal disadvantage is that LOC are hard to visualize early in a project. </li></ul><ul><li>the size and development time for the C++ programs I have developed are highly correlated. </li></ul><ul><li>This means that once I have estimated the size of a new program, I can readily calculate the time it will take me to develop it. </li></ul>
    42. 42. Size versus development time <ul><li>But .. </li></ul><ul><li>What about the use of other languages (other than C++)? </li></ul><ul><li>What about other development groups (the experience of developers is important) ? </li></ul><ul><li>What about maintenance (there is not just development)? </li></ul><ul><li>What about the quality of requirements, architecture, design, ….. ? </li></ul><ul><li>Then …. </li></ul>
    43. 43. Size versus development time <ul><li>This can be true for just a company, </li></ul><ul><ul><li>steady (without great turn-over) </li></ul></ul><ul><ul><li>with only a particular kind of software developed (unless it develops metrics for every kind of sw) </li></ul></ul><ul><ul><li>just in one language (unless having metrics for all languages) </li></ul></ul><ul><ul><li>Which collects historical data to track its productivity that will be used for forecasting new products costs </li></ul></ul>
    44. 44. Backfiring <ul><li>A correspondence between the number of LOC and Function Points was researched by Capers Jones, resulting in a technique called Backfiring </li></ul><ul><li>This technique makes available a table that, for each different language, provides the number of LOCs corresponding to a Function Points. </li></ul><ul><li>But </li></ul><ul><ul><li>the margin of error in converting LOC data into Function Points or back is high </li></ul></ul><ul><ul><li>the Backfiring conversion factors have to be derived by studying a large number of products, belonging to different domains </li></ul></ul>
    45. 45. Productivity <ul><li>The productivity is generally measured as the number of working hours needed for the production of a single unit. </li></ul><ul><li>Simple? Yes, but …. </li></ul><ul><ul><li>Many productivity indicators exist in literature; these are generally obtained as mean values of a set of different projects, which were developed by people with different skills, working in different development environments. </li></ul></ul><ul><ul><li>Many factors which influence these indicators exist. They are not present in every organization at the same time, neither standardizable. </li></ul></ul><ul><li>Each organization must collect its own data and use them for the productivity evaluation, concentrating only on factors allowed by the available data. </li></ul><ul><li>The level to which these factors are present differ from one organization to another, therefore it is important to collect and adopt a company’s own data in different periods. The best way to handle the productivity function is to base it on a family of factors. </li></ul>
    46. 46. Productivity <ul><li>Productivity is affected by: </li></ul><ul><li>Project characteristic : describing people and processes involved in the development effort. </li></ul><ul><li>Management characteristic : describing the way how a project is managed. </li></ul><ul><li>Product characteristic : reflecting the nature of the product itself. </li></ul>
    47. 47. Productivity <ul><li>Project characteristic </li></ul><ul><li>Personnel : the topic of personnel includes most of the “human elements” in a project. </li></ul><ul><li>The personnel characteristic are listed below: </li></ul><ul><ul><li>Education: the level of degree </li></ul></ul><ul><ul><li>Experience: the numbers of years of relevant experience in software engineering, or with </li></ul></ul><ul><ul><li>specific software application and technologies or in the organization. </li></ul></ul><ul><ul><li>Expert Assistance: it refers to a person (or group of person) external to a project team who </li></ul></ul><ul><ul><li>has knowledge and experience in the application being developed by the project team. </li></ul></ul><ul><ul><li>Training: external or internal. </li></ul></ul><ul><ul><li>Size: size refers to the numbers of Direct and Support staff involved in the project. </li></ul></ul><ul><ul><li>Turnover. </li></ul></ul><ul><li>Software Development Environment (SDE) . The SDE is the combination of tools, techniques, </li></ul><ul><li>and administration used during the development. </li></ul>
    48. 48. Productivity <ul><li>Management characteristic </li></ul><ul><li>It describes “how” the project is managed. Management characteristic information is recorded in four main categories: </li></ul><ul><ul><li>User Participation . Record the level of participation by the user or their representative on the project. It should be considered during the project characterization. </li></ul></ul><ul><ul><li>Stability of Product Requirement . It characterize the extend that the requirement remained constant throughout development. It should be measured by the Requirements Change Distribution </li></ul></ul><ul><ul><li>Constraining Management Factors. It specify the management or administrative factors that limited the project, e.g. fixed cost, fixed staff size, fixed functionality, fixed quality and reliability, fixed schedule, limited accessibility to development system, limited accessibility to target system. </li></ul></ul><ul><ul><li>Not Directly Productive Activities These are some activities, that although necessary, do not produce a measurable and tangible artifact, like Project Management and Configuration Management. It is possible to collect the values of the effort spent for these activities for each project and these data will be considered, at the end of the project, for the productivity evaluation. </li></ul></ul>
    49. 49. Productivity <ul><li>Product characteristic: </li></ul><ul><li>Criticality : this can be: </li></ul><ul><ul><li>Timing Critical: some products that must work in environments where the real-time behavior, user response, or throughput is critical. </li></ul></ul><ul><ul><li>Memory Critical: products that must be fit into a limited amount of memory. </li></ul></ul><ul><ul><li>Quality/Reliability Critical: some products that must meet very stringent quality or reliability criteria. </li></ul></ul><ul><li>Degree of Innovation : the technological risk of the project. </li></ul><ul><li>Complexity : there are three types of complexity: </li></ul><ul><ul><li>data, </li></ul></ul><ul><ul><li>programming, </li></ul></ul><ul><ul><li>organizational (the last refers to the difficulty in coordinating and communicating with all parties on the project teams). </li></ul></ul><ul><li>Reuse : Some project can use already existing components (with reuse activity) or can develop </li></ul><ul><ul><li>in order to produce reusable components (for reuse activity). </li></ul></ul>
    50. 50. Effort <ul><li>Number of persons per unit time (most common measure for planning and controlling the project progress) </li></ul><ul><li>Related to </li></ul><ul><ul><li>work performed during each planned activity; </li></ul></ul><ul><ul><li>work expended in not directly productive activities (Project management, Configuration Management, etc.) </li></ul></ul><ul><li>The collection of effort data expended on the various activities involves the gathering of the effort spent by each person on those activities, by means of proper forms </li></ul><ul><li>Tracking the effort data and comparing them against a reference effort distribution provides a good means for the in-process assessment of the project trend. </li></ul><ul><li>Effort data are also one of the input data used for the calculation of the Productivity </li></ul>
    51. 51. Defect <ul><li>In general a defect is defined as a product anomaly. Examples include omissions and imperfections found during early life cycle phases and faults contained in software sufficiently mature for test or operation </li></ul><ul><li>We distinguish between </li></ul><ul><ul><li>testing defects </li></ul></ul><ul><ul><li>Inspection defects </li></ul></ul><ul><ul><li>if not fixed, would cause one or more of the following to occur: </li></ul></ul><ul><ul><ul><li>a defect condition in a later inspection phase, </li></ul></ul></ul><ul><ul><ul><li>a defect condition during testing, </li></ul></ul></ul><ul><ul><ul><li>a field defect, </li></ul></ul></ul><ul><ul><ul><li>nonconformance to requirements and specification, </li></ul></ul></ul><ul><ul><ul><li>nonconformance to established standards such as performance, national language translation, and usability. </li></ul></ul></ul>
    52. 52. Defect <ul><li>Defects are injected into the product or intermediate deliverables of the product at various phases. </li></ul><ul><li>In particular, for the development phases before testing, the development activities themselves are subject to defect injection, and the reviews or inspections at the end of the phase activities are the key vehicle for defect removal </li></ul>
    53. 53. Defects <ul><li>Possible measures on defects: </li></ul><ul><li>Defects number: To evaluate the number of detected defects of the software product </li></ul><ul><li>Defect Rate: to evaluate the number of detected defects of the software product per activity with respect to its size. </li></ul><ul><li>Defect Density: To evaluate the number of detected defects of the software product with respect to its size. </li></ul><ul><li>Removal Efficiency: To evaluate the cumulative percent of the previously injected errors of the Software Product that have been removed prior to delivery </li></ul>
    54. 54. Duration <ul><li>The Duration of an activity is given by the difference between the start and the end date of the activity (elapsed time). </li></ul><ul><li>Considerations : </li></ul><ul><ul><li>It is possible to distinguish various levels of scheduling : a general level, which concerns the whole project, the level of Concept Exploration and Iteration and a level which concerns a single activity. </li></ul></ul><ul><ul><li>Each time a Plan is revised, the duration of the activities can be re-estimated ; all these estimates have to be collected. </li></ul></ul><ul><ul><li>The Estimated Duration of the activities provides information on the quality of the process, when compared with the actual values. </li></ul></ul><ul><ul><li>The collection of all estimations, compiled in the various planning activities, constitutes the complete history of the scheduling, allowing comparison of the various estimations with the actual values and between them. </li></ul></ul><ul><ul><li>The comparison between the actual and the planned duration values allows to calculate the Schedule Adherence and helps to understand and evaluate the quality of the adopted process. </li></ul></ul>
    55. 55. Duration <ul><li>Possible metric: schedule adherence </li></ul><ul><li>to provide information on the progress of the project within a particular activity </li></ul>
    56. 56. Stability <ul><li>Requirements Changes </li></ul><ul><li>The initial set of requirements of a project can be changed in three possible ways: </li></ul><ul><ul><li>by modifying a requirement of the set </li></ul></ul><ul><ul><li>by adding a requirement to the set </li></ul></ul><ul><ul><li>by deleting a requirement from the set. </li></ul></ul><ul><li>Note that a modified Requirement maintains the same identifier and does not alter the total Requirements number. </li></ul>
    57. 57. Stability <ul><li>Staff Changes </li></ul><ul><li>These data indicate the number of the staffs lost and of the staffs that are added in order to substitute the lost staffs or for achieving the estimated staff number. </li></ul><ul><ul><li>The number of these staff should be recorded per level, and tracked, if there are changes, with a suggested period of a month. </li></ul></ul><ul><ul><li>By tracking the staff addition and losses, it is possible to record the actual staff for each time period and compare it with the estimates. </li></ul></ul><ul><li>Metric: staff turnover to provide information on the percentage of staff losses </li></ul><ul><li>Note that: the staff changes allow the calculation of the ‘turn-over’ affecting the staff stability: the loss of one or more people, even though substituted keeping unchanged the number of staff of a certain level, can affect in significant manner the productivity, </li></ul>
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×