Metrics and Estimation. Metrics. Lord Kelvin

Similar documents
Software Process and Project Metrics

Introduction to Software Metrics

Introduction to Software Metrics

Software Engineering Measurement and Fundamental Estimation Techniques.

Lecture 28: Software metrics

So#ware Architecture

SOFTWARE ENGINEERING

Professor Hausi A. Müller PhD PEng FCAE Department of Computer Science Faculty of Engineering University of Victoria

Software Efforts & Cost Estimation Matrices and Models. By: Sharaf Hussain

Chapter 4 Software Process and Project Metrics

CHAPTER 6 AN ANALYSIS OF EXISTING SOFTWARE ESTIMATION TECHNIQUES

ESTIMATION OF ASPECT ORIENTED PROGRAMMING USING DIFFERENT METRICES

Fundamental estimation questions. Software cost estimation. Costing and pricing. Software cost components. Software pricing factors

MTAT Software Economics. Session 6: Software Cost Estimation

Concepts of Project Management. All projects have followings.

Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling, tracking, and monitoring a comple

Estimating Duration and Cost. CS 390 Lecture 26 Chapter 9: Planning and Estimating. Planning and the Software Process

PLANNING AND ESTIMATING

Darshan Institute of Engineering & Technology for Diploma Studies

Figure 1 Function Point items and project category weightings

Quality Management of Software and Systems: Software Measurement

Resource Model Studies

Manual Techniques, Rules of Thumb

Management and MDD. Peter Dolog dolog [at] cs [dot] aau [dot] dk E2-201 Information Systems March 6, 2007

First, a detailed description of function points Then, how to use function points and lines of code for cost estimation.

ANALYSIS OF FACTORS CONTRIBUTING TO EFFICIENCY OF SOFTWARE DEVELOPMENT

Software Project Management

4-3 Software Measurement

Software cost estimation

How to improve the quality of your processes

COCOMO Models 26/12/2016 1

Software Project Management

SOFTWARE DEVELOPMENT PRODUCTIVITY FACTORS IN PC PLATFORM

Estimation for Software Projects. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only

Note 6. Software Metrics

Software Project Management. Software effort

Some Bugs. Mining Processes LASER Laser 2006 Summer School on Software Engineering. Andreas Zeller Saarland University

Building a Local Resource Model

Assessing Accuracy of Formal Estimation Models and Development of an Effort Estimation Model for Industry Use

Cost Estimation. What are the costs of a Software Project? Why does it matter for us to know this? How do you measure productivity?

Announcements. INF 111 / CSE 121: Software Tools and Methods. Class Overall & Quiz 3. Class Averages. Today s Lecture. Previously in INF 111/CSE 121

Estimating Size and Effort

How to improve the quality of your processes

Dissertation Defense

SOFTWARE ESTIMATION TIPS. Wojciech Jaworski

SE Notes Mr. D. K. Bhawnani, Lect (CSE) BIT

Why Measure Software?

Personal Software Process SM for Engineers: Part I

Software Quality Management

Sri Vidya College of Engineering & Technology-Virudhunagar

Estimating Size and Effort

Transaction versus transform flow. Wednesday, September 19, :32 PM

mywbut.com Software Project Planning

Headquarters U.S. Air Force

CHAPTER 2 PROBLEM STATEMENT

2IS55 Software Evolution. Software metrics (3) Alexander Serebrenik

Estimating SW Size and Effort Estimating Size and Effort

Software Effort Estimation: A Survey of Well-known Approaches

Measure Performance of VRS Model using Simulation Approach by Comparing COCOMO Intermediate Model in Software Engineering

Goals of course. Themes: What can you do to evaluate a new technique? How do you measure what you are doing?

SOFTWARE PROJECT MANAGEMENT AND COST ESTIMATION

Industrial Engineering Prof. Inderdeep Singh Department of Mechanical and Industrial Engineering Indian Institute of Technology, Roorkee

Software metrics. Jaak Tepandi

CHAPTER 10 Software Metrics

Effective Use of Function Points for Analogous Software Estimation

SENG380:Software Process and Management. Software Size and Effort Estimation Part2

Lecture 1: Software Measurement. Marlon Dumas

2IS55 Software Evolution. Software metrics (3) Alexander Serebrenik

A Comparative Study on the existing methods of Software Size Estimation

QUESTIONS AND ANSWERS ON SOFTWARE PROCESS AND PRODUCT METRICS

7. What is planning? It is an act of formulating a program for a definite course of action. Planning is to decide what is to be done.

Management of Software Engineering. Ch. 8 1

Reliability Engineering. RIT Software Engineering

Chapter 2. Literatures Review

AN EMPIRICAL APPROACH TO PREDICT SOFTWARE DEVELOPMENT EFFORT USING LINEAR REGRESSION MODEL

Effective Software Sizing A Galorath Web Seminar 01 September 2004

Cost Estimation. I've got Bad News and Bad News!

Implementation of Services & Strategies

Calibration and Historical Data Chapter 8

Sources of Error in Software Cost Estimation

3. PROPOSED MODEL. International Journal of Computer Applications ( ) Volume 103 No.9, October 2014

SELECTION OF DIRECT AND DERIVED FUNCTION POINT ESTIMATION METHODS

SWEN 256 Software Process & Project Management

Measuring Effort and Productivity of Agile Projects

Comparing Automated and Human Maintainability Assessment Approaches

Software Metrics Software Engineering 2007

A Review of Agile Software Effort Estimation Methods

Project Planning. COSC345 Software Engineering 2016 Slides by Andrew Trotman given by O K

Lecture 2: Project Management, Part 1: Requirements, WBS, Scheduling, and Risk Management. Prof. Shervin Shirmohammadi SITE, University of Ottawa

Software Metric Design: Issues, Guidelines and Process

Source-code quality. Part 1. Software Metrics. Andy Kellens. Monday 22 April 13

CSSE 372 Software Project Management: Software Estimation Fundamentals

Software Testing: Reuse and Open-Source

Chapter 5 Software Project Planning

Chapter 5: Software effort estimation- part 2

Also we will try to recap what we studied in the last class. (Refer Slide Time: 00:35)

THE CORRELATION BETWEEN DEVELOPER-ORIENTED AND USER-ORIENTED SOFTWARE QUALITY MEASUREMENTS (A CASE STUDY)

A Study on Software Metrics and Phase based Defect Removal Pattern Technique for Project Management

Producing Production Quality Software. Lecture 14: Group Programming Practices Prof. Arthur P. Goldberg Fall, 2005

Transcription:

These slides are based on Pressman, Chapter 15 Product Metrics, Chapter 22 Metrics for Process and Projects and Chapter 23 Estimation Metrics and Estimation Rahul Premraj + Andreas Zeller 1 Metrics Quantitative measures that provide insight into the efficacy of the process Analyzed and assessed by software managers Avoids basing judgements solely on subjective evaluation 2 Lord Kelvin 3

Lord Kelvin When you can measure what you are speaking about and express it in numbers, you know something about it 4 Lord Kelvin but when you cannot measure and express it in numbers, your knowledge is of a meager and unsatisfactory kind 5 Lord Kelvin it may be the beginning of knowledge, but you have scarcely, in your thoughts, advanced to the stage of science. 6

Tom DeMarco You can t control what you can't measure. 7 Measures and Metrics Measure Provides a quantitative indication of a product or process attribute Metric A quantitative measure of the degree to which a product or process possesses a given attribute Use measures to obtain metrics 8 Measurement Process 1. Formulation Deriving appropriate measures and metrics 2. Collection The mechanism used to accumulate required data (i.e., survey / observation / experimental study ) 3. Analysis Computation of metrics and application of mathematical tools 4. Interpretation Computation of metrics and application of mathematical tools 5. Feedback derived from interpretation; passed to software team 9

Goal / Question / Metric 1. Establish an explicit measurement goal that is specific to the activity or characteristic to be assessed e.g., Are function and related data properly compartmentalized? Is the complexity of each component within proper bounds? 2. Define a set of questions that must be answered in order to achieve the goal 3. Identify well-formulated metrics that help to answer these questions 10 The Metrics Landscape Analysis Design Code 11 Analysis Function Points Measure functionality delivered by a system Proposed by Albrecht in the 80s. ISO recognised software metric to measure software size. Based on functionality as perceived by the user and independent of the technology. 12

Function Points Input: A set of related inputs as one input. Output: A set of related outputs as one output. Inquiries: Each user query type is counted. Files: Files are logically related data, i.e., data structures or physical files. Interface: Data transfer to other systems. 13 Function Points Information Domain Count Weighting Value factor FPs External Inputs 3 3 / 4 / 6 9 External Outputs 2 4 / 5 / 7 8 External Inquiries 2 3 / 4 / 6 6 Internal Logical Files 1 7 / 10 / 15 10 External Interface Files 2 5 / 7 / 10 10 Count total 53 14 Value Adjustment To compute function points (FP), use FP = count total (0.65 + 0.01 (F i )) Fi : one of 15 value adjustment factors [0 5] 1. Does the system require backup? 2. Are specialized data communications needed? 3. Are there distributed processing functions? 4. Is performance critical? etc. All constants determined empirically 15

Function Points Proponents claim: FP is language independent. Size can be derived from problem description. Opponents claim: it s subjective: different people arrive at different estimates. 16 Function Points Counting FP itself takes a long time. Difficult to count consistently without extensive training. Difficulty of using automated tools. Difficulty of counting embedded, highly algorithmic modules, and web systems. 17 Analysis FP Associations Netherlands Software Metrics Users Association International Function Point Users Group Finnish Software Measurement Association and others... 18

The Metrics Landscape Analysis Design Code 19 Design Design Metrics Weighted Methods per Class Depth of Inheritance Tree Number of Children Coupling between Object Classes Response for a Class Lack of Cohesion in Methods 20 So-called Chidamber and Kemerer (CK) Metrics most frequently referenced The Metrics Landscape Analysis Design Code 21

Code Lines of Code Simplest and most widely used metric Comments and blank lines usually left out. Numerous tools available that do this for you :-) Don t forget to check how accurate they are first! 22 Disadvantages of LOC Size varies with coding style. Focuses on coding activity alone. Correlates poorly with quality and efficiency of code. Penalises higher level programming languages, reuse, etc. 23 Disadvantages of LOC Measures lexical/textual complexity only. Difficult to estimate LOC from problem description. Does not address issues of structural and logical complexity. 24

Code Code Metrics Halstead Metrics measure size of vocabulary McCabe Metrics measure complexity of control flow as P(V) = edges statements + 2 entry points No longer appropriate for modern OO systems use OO metrics for complexity x -= y ggt while (x!= y) if (x > y) return x y -= x So-called Chidamber and Kemerer (CK) Metrics most frequently referenced 25 The Metrics Landscape Analysis Design Code Testing (next week) 26 All these Metrics! 3.987 1.543 0.004 0.003 Once we have obtained all these metrics, what do we do with them? 7.335 1.303 4.550 6.354 0.007 8.997 12.656 0.976 8.503 27

Tom DeMarco Now that we talked about measurement, let s talk about control. You can t control what you can't measure. 28 Estimation During project management, one needs to estimate resources, cost, and schedule Crucial for project success As much an art as it is science but need not be conducted in a haphazard manner! 29 What costs are incurred? Staff Training Travel for serious work! Hardware 30

What costs are incurred? Workspace Recreation Bills to Pay Communication 31 Why bother to Estimate? (c) Ian Sommerville To establish a budget for a software project. To provide a means of controlling project costs. To monitor progress against that budget by comparing planned with estimated costs. To establish a cost database for future estimation. Cost estimation and planning/scheduling are closely related activities. 32 Why bother to Estimate? Effort Estimation Cost Estimation Size Estimation Staff Estimation Duration Estimation Scheduling 33

Parkinson s Law Work expands so as to fill the time available for its completion. 34 Why try to be accurate? Under-estimation Loss of money Damage to company s reputation Over-estimation Loss of bids to competitors. Opportunity cost of not doing other projects. Wastage of ideal or untilised resources. 35 Cone of Uncertainty 36

Metrics Needed Metrics need to be defined. They need to be collected. Then, validated. And lastly, if deemed suitable, used to base estimates upon. 37 Cost Estimation Techniques Expert Judgement Algorithmic Techniques Case-Based Prediction 38 Emphasis on Size! Boehm s third law Development effort is a function of product size. Less Less Less More More More = = 39

Size measures Various ways to measure size 40 Criteria for Size Measure Relationship to development effort Precision Machine countable Suitable for early planning 41 Estimate from FPs Compute function points for new project Multiply with organizational average productivity (e.g., 6.5 PM / person month) Obtain effort estimate 42

Effort Size vs. Effort Relationship Diseconomies of scale Size Effort Linear Economies of scale Economies of scale Note that all three examples are linear... but the diseconomies of scale differ. If the distinction is unclear, please refer to a simple explanation at Wikipedia - http:// en.wikipedia.org/wiki/ Diseconomies_of_scale Size Effort Size 43 Expert Judgement 44 Expert Judgement You approach an in-house or external expert independent consultants or big consultancies such as Accenture, Cap Gemini You tell them what needs to be developed. He makes an estimate and gives you a number! Simple... eh? 45

Expert Judgement How do they arrive at an estimate? Activity Decomposition System Decomposition 46 6.2 SOFTWARE ESTIMATION METHODOLOGIES AND MODELS 83 Activity Decomposition From Software Measurement and Estimation: A Practical Approach by Linda Laird and Carol Brennan Figure 6.1. Work and activity decomposition example. 47 System Decomposition System Component Component Component Sub-component Sub-component Sub-component Sub-component Sub-component Sub-component Sub-component Sub-component Sub-component 48

Expert Judgement Advantages Approachable Only resort when historical and quantitative data is absent. Can understand your project and development environment. Lots of experience (to reuse) Can customise solutions Can tackle exceptions (e.g., different technology used) 49 Expert Judgement Disadvantages Cost 50 Expert Judgement Disadvantages...an estimate is only as good as the expert s opinion, and there is no way usually to test that opinion until it is too late to correct the damage if that opinion proves wrong. 51

Expert Judgement Disadvantages Humans are prone to bias, optimism, pessimism, instinct, and desire to win! 52 Expert Judgement Disadvantages Justification... often, can t explain or don t want to share! 53 Expert Judgement Disadvantages Different Opinions $1 million Today: $2 million 54

Expert Judgement Disadvantages Repeatability Today: $2 million 10 days later: $4 million 55 Delphi Method 56 Delphi Method You take your project to a group of experts. Each expert comes up with a list of tasks and estimates. Each experts list is anonymously distributed amongst others. Lists are discussed and refined to make a single big list. Several rounds (usually four) take place to further refine the list and arrive at a final estimate. 57

Algorithmic Models 58 Rayleigh s Curve Putnam-Norden-Rayleigh (PNR) Curve 59 Rayleigh Curve Rayleigh curve represents the number of full-time personnel required at any time. At project start, small number of engineers needed. As project progresses, more work is required that needs more staff. At one point, the number of staff peaks (system testing and product release). It then drops down (installation and delivery). 60

Rayleigh s Curve Putnam-Norden-Rayleigh (PNR) Curve 40% 60% 61 Software Engineering Equation http://en.wikipedia.org/wiki/ Software_equation derived from observing over 4,000 projects [ LOC B 0.333 E = P ]( ) 1 t 4 E LOC t B P = Project effort in person months or person years = Lines of code estimate for the project = Length of project measured in months or years = a "special skills factor = a "Productivity Parameter 62 Wait! What about these? 1 KLOC = 1,000 LOC Different values of LOC will result in different values of effort. Walston-Felix Model E =5.2 KLOC 0.91 Bailey-Basili Model E =5.2+0.73 KLOC 1.61 Boehm simple Model E =3.2 KLOC 1.05 Doty Model for KLOC > 9 E =5.288 KLOC 1.047 and more... 63

Maintainability Index And one can come up with very very elaborated curve fitting models Size of vocabulary McCabe complexity Maintainability = 171 5.2 ( ln(v ) ) 0.23V (G) 16.2 ln(l) +50 sin 2.4C Percentage of comment lines code lines Oman, P. & Hagemeister, J. "Constructing and Testing of Polynomials Predicting Software Maintainability." Journal of Systems and Software 24, 3 (März 1994): 251 266. 64 Diversity but if something works at HP, will it work for you, too? The problem is: Software engineering data is usually very diverse... 65 Diversity projects originate from different countries! (what are the implications of this?) 66

Diversity Projects originate from different companies! These companies are poor examples because they will almost never share their data. However, the point to learn is that their products and processes limit transfer to techniques and knowledge between each other. 67 Diversity and there are many more sources for diversity programming language experience staff domain customers process model requirements 68 so check your data carefully before using it! 69

Model Calibration The best way to use these models is to calibrate them on earlier products (from other or the same companies). Cross-specific models Company-specific models 70 Company Specific Models Cross Company Models No Trend (four studies) (four studies) (two studies) It generally turns out that models that are calibrated on earlier projects are much more effective. Barbara Kitchenham Emilia Mendes Katrina Maxwell 2 1 2 1 1 Isabella Wieczorek Lionel Briand Martin Shepperd 3 2 2 1 71 Machine Learning Approaches 72

Neural Networks You *do not* need to learn neural networks for exams. 73 Neural Networks You *do not* need to learn neural networks for exams. 74 Neural Networks Neural Networks (NN) are relatively good predictors of effort. But they function like a black-box. Extremely time-consuming and difficult to train and optimize. Users need to have substantial training themselves. 75

Case-Based Prediction 76 Case-Based Prediction Project 1 New Project Measure Similarity Project 2 Project 3 Project 4 Project 5 Project 6 Project 7 n most similar projects Project 4 Project 1 Project 8 Combine Solutions Solution New Project Project 8 Project 9 Project 10 77 Case-Based Prediction Advantages Very favourable for weak-theory domains. Less knowledge engineering required. Can be shared across a multitude of users and corporations. Possible to give justification for proposed solutions. Constant and potentially automated learning! 78

Experts and Analogy 79 De-Marco-Glass Law Most cost estimates tend to be low. 80 Estimation Accuracy On the whole, we are still no good at this task. Sometimes, we estimate and get lucky :-) Residuals range to thousands of hours. But some estimate is better than no estimate! 81

Summary Software Engineering Estimation is crucial for the project s success. There are several models proposed. None seem to perform well consistently. Calibrated models can be very helpful. An estimate having some confidence is still better than no estimate at all! 82