Lecture Software process improvement: Lesson 42 provide students with knowledge about: software-metrics data collection; the role of data collection in software measurement; explanation of the figure; software quality terminology; raw software-engineering data;... Please refer to the detailed content of the lecture!
SoftwareMetrics Data Collection Lecture # 42 SoftwareMetrics Data Collection • Software measurement is only as good as the data that are collected and analyzed • In other words, we cannot make good decisions with bad data Moroney, 1950 Data should be collected with clear purpose in mind Not only a clear purpose but a clear idea as to the precise way in which they will be analyzed so as to yield the desired information It is astonishing that men who in other respects are clear-sighted, will collect absolute hotchpotches of data in the blithe and uncritical belief that analysis can get something out of it • We need to ask questions, like – What constitutes good data What is Good Data? • Measures should be welldefined and valid: that our measures should reflect the attributes we claim they do • But even when we have a welldefined measure that maps a real world attribute to a formal, relational system in appropriate ways, we need to ask several questions about data Are they Correct? Are they Correct? Are they Correct? • Correctness means that the data were collected according to the exact rules of definition of the metric • For example, if a lines of code count is supposed to include everything but comments, then a check for correctness assures us that no comments were counted • A measure of process duration is correct if time is measured from the beginning of one specified activity and ends at the completion of another specified activity Are data Accurate? 10 • The direct and indirect measures may be related by a measurement model, defining how metrics relate to one another • Sometime, equations, graphs, or relationship diagrams are used to depict the ways in which metrics are calculated or related 56 • Once the set of metrics is clear, and the set of components to be measured has been identified, you must devise a scheme for identifying each entity involved in the measurement process 57 • That is, you must make clear how you will denote products, versions, installations, failures, faults, and other things on your datacollection forms • This step enables you to proceed to form design, including only the necessary and relevant information on each form 58 • Finally, you must establish procedures for handling the forms, analyzing the data, and reporting the results • Define who fills in what, when, and where, and describe clearly how the completed forms are to be processed • In particular, set up a central collection point for data forms, and determine who is responsible for the data each step of the 59 • If no one person or group has responsibility for a given step, the data collection and analysis process will stop, as each developer assumes that another is handling the data • Analysis and feedback will ensure that the data are used, and useful results will motivate staff to record information 60 When to Collect Data 61 • It is clear that datacollection planning must begin when project planning begin, and that careful forms (both manual computer based), design, and organization is needed to support good measurement • The actual data collection takes place during many phases of development • Some data can be collected at the start of the project, while other data collection is 62 done later • Some data are collected when reviews and inspections are conducted • Data about faults found by inspections and tests should be recorded consistently so that the relative effectiveness of these activities can be determined • Similarly, data about changes made to enhance the product, as opposed to corrected faults, can be collected as 63 enhancements are performed • In general, data should be collected at the beginning of the project to establish initial values, and then again as the initial values change to reflect activities and resources being studied • It is essential that the datacollection activities become part of the regular development process 64 • If developers do not know when they are supposed to be measuring, the measurement will not occur • Thus, it is helpful to compare a model of the normal development process with a list of desired measurements, and then map the measurements directly to the process model 65 • In this way, if something needs to be measured and there is no obvious place to collect the data, the process can be modified to enable measurement • Likewise, if there is a process activity that is important and should be analyzed, the measurement list can be appended to address it 66 How to Store and Extract Data 67 • Raw softwareengineering data should be stored on a database • DBMS is an automated tool for organizing, storing, and retrieving data, and it has many advantages over manual recordkeeping 68 Summary 69 References • Software Metrics: A Rigorous & Practical Approach, by Norman E. Fenton and Shari L. Pfleeger, 2nd Edition, PWS Publishing Company, 1997(Chapter 4 ) 70 ... in quality with previous or competing versions 40 Software? ?Quality Terminology 41 Software? ?Quality Terminology 42 • A fault occurs when a human error results in a mistake in some? ?software? ?product. That is, the fault is the encoding of the human ... This is shown as a figure 31 The Role of Data Collection in Software? ?Measurement 32 The Role of Data Collection in Software? ?Measurement Process Product Resource data collection Raw Data extraction.. .Software? ?Metrics Data Collection • Software? ?measurement is only as good as the data that are collected and analyzed