1 / 24

SWE 469: Software Metrics

SWE 469: Software Metrics. SWE 469: Software Metrics. Part I: Fundamentals of Measurement and Experimentation Part II: Software-engineering Measurement Part III: Measurement and Management. Part I: Fundamentals of Measurement and Experimentation.

pifer
Download Presentation

SWE 469: Software Metrics

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SWE 469: Software Metrics

  2. SWE 469: Software Metrics • Part I: Fundamentals of Measurement and Experimentation • Part II: Software-engineering Measurement • Part III: Measurement and Management

  3. Part I: Fundamentals of Measurement and Experimentation

  4. Chapter 1 - Measurement: what is it and why do it?

  5. Objectives • To understand what measurement is • To understand the objectives for software measurement • To discuss the scope of software metrics

  6. Introduction • Many of the best software developers measure characteristics of the software to get some sense of whether the requirements are consistent and complete, whether the design is of high quality, and whether the code is ready to be tested. • Effective project managers measure attributes of process and product to be able to tell when the software will be ready for delivery and whether the budget will be exceeded. • Informed customers measure aspects of the final product to determine if it meets the requirements and is of sufficient quality. • Maintainers must be able to assess the current product to see what should be upgraded and improved.

  7. Measurement in everyday life • Measurement lies at the heart of many systems that govern our lives. • Economic, radar systems, medical systems, atmospheric systems, etc. • Each of us uses it in everyday life. • Price, height, size, distance ,speed, etc. • So measurement helps us to understand our world, interact with our surroundings and improve our lives.

  8. What is measurement? • Measurement is the process by which numbers or symbols are assigned to attributes of entities in the real world in such a way as to describe them according to clearly-defined rules. • An entity is an object (such as a person or a room) or an event (such as a journey or the testing phase of a software project) in the real world. • An attribute is a feature or property of an entity. • Examples: the area or color (of a room), the cost (of a journey), or the elapsed time (of the testing phase).

  9. What is measurement? (cont’d) • In a room with blue walls, is “blue” a measure of the color of the room? • Is intelligence adequately measured by an IQ test score? • The accuracy of a measure depends on the measuring instrument as well as on the definition of the measurement. • For example, length can be measured accurately as long as the ruler is accurate and used properly.

  10. What is measurement? (cont’d) • Even when the measuring devices are reliable and used properly, there is margin for error in measuring the best understood physical attributes. • When measuring person height, should we allow shoes to be worn? • When is a scale acceptable for the purpose to which it is put? • Height on cm or inches vs. miles or kilometers? • Once we obtain measurements, we want to analyze them and draw conclusions about the entities from which they were derived. • What kind of manipulations can we apply to the results of measurement? • For example, why is it acceptable to say that Ahmed is twice as tall as Khalid, but not acceptable to say that it is twice as hot today as it was yesterday?

  11. “What is not measurable make measurable” --Galileo Galilei • Measurement suggests that one of the aims of science is to find ways to measure attributes of things in which we are interested. • Measurement makes concepts more visible and therefore more understandable and controllable. • Even when it is not clear how we might measure an attribute, the act of proposing such measures will open a debate that leads to greater understanding.

  12. “What is not measurable make measurable” (cont’d) • Quantification: • Measurement is a direct quantification (e.g. measuring a height of a tree) • Calculation: is indirect -combining measurements into a quantified item-, (e.g. assigning estimate of a house) • Direct vs. indirect measurement • Examples: • Point system in soccer league

  13. Neglect of measurement in software engineering • We fail to set measurable targets for our software products (e.g. the product will be user friendly). • Gilb’s Principle of Fuzzy Targets: Projects without clear goals will not achieve their goals clearly. • We fail to understand and quantify the component costs of software projects (cost of design vs. cost of coding). • We do not quantify or predict the quality of the products we produce. • We allow subjective/unreliable evidence to convince us to try yet another revolutionary new development technology.

  14. Measurement for promotion

  15. Objectives for software measurement • Even when a project is not in trouble, measurement is not only useful but necessary. • How can you tell if your project is healthy if you have no measures of its health? • We must control our projects, not just run them. • “You cannot control what you cannot measure.”  --Tom DeMarco

  16. Objectives for software measurement (cont’d) • Every measurement action must be motivated by a particular goal or need that is clearly-defined and easily understandable. • That is, it is not enough to assert that we must measure to gain control. • The measurement objectives must be specific, tied to what the managers, developers and users need to know. • It is the goals that tell us how the measurement information will be used once it is collected.

  17. Objectives for software measurement (cont’d) • Managers • What does each process cost? • How productive is the staff? • How good is the code being developed? • Will the user be satisfied with the product? • How can we improve? • … • Engineers • Are the requirements testable? • Have we found all the faults? • Have we met our product or process goals? • What will happen in the future? • …

  18. Measurement for understanding, control and improvement • Measurement helps us to understand what is happening during development and maintenance. • Assess the current situation, establishing baselines that help us to set goals for future behavior. • Measurement allows us to control what is happening on our projects. • Using our baselines, goals and understanding of relationships, we predict what is likely to happen and make changes to processes and products that help us to meet our goals. • Measurement encourages us to improve our processes and products. • For instance, we may increase the number or type of design reviews we do, based on measures of specification quality and predictions of likely design quality.

  19. Software measurement – resource estimation

  20. Scope of software metrics • Cost and effort estimation • Predict project costs during early phases in the software life-cycle. • Productivity models and measures

  21. Scope of software metrics (cont’d) • Data collection • The quality of any measurement program is clearly dependent on careful data collection. • Quality models and measures

  22. Scope of software metrics (cont’d) • Reliability models • Most quality models include reliability as one of its components • Performance evaluation and models • Structural and complexity metrics • Management by metrics • An important part of software project management • Evaluation of methods and tools • Cannot be done without careful, controlled measurement and analysis. • Capability maturity assessment

  23. Summary • Measurement affects our everyday life • Measurement is essential in software engineering • Without measurements there is no way to determine if the process/product are improving. • Metrics allow the establishment of meaningful goals for improvement. A baseline from which improvements can be measured can be established.

  24. Summary (cont’d) • Metrics allow us to identify the causes of defects which have major effect on software development. • When metrics are applied to a product they help identify: • which user requirements are likely to change • which modules are most error prone • how much testing should be planned for each module

More Related