CIS 4251 / CIS 5930 SOFTWARE DEVELOPMENT Fall 1999 Sept. 8, 1999 Marge Holtsinger 9/8/99 Lecture 5 1 Teams Team Name Team Members – Name, Year in School, Myers/Briggs Indicator, Strengths, Weaknesses Team Roles & Responsibilities – Project Manager, Analyst, Design, Development, Testing, User Ed, Logistics 9/8/99 Lecture 5 2 Lecture Overview Review of Previous Discussion Project Metrics Project Estimates 9/8/99 Lecture 5 3 What Are Project Metrics? Measurement Based Techniques Applied To Processes, Products & Services 9/8/99 To Supply To Improve Lecture 5 Engineering & Management Information 4 Definitions Measure - provides a quantitative indication of the extent, amount, dimensions, capacity, or size of some attribute of a product or process. Measurement - act of determining a measure. Metric - “A quantitative measure of the degree to which a system, component, or process possesses a given attribute.” Indicator - metric or combination of metrics that provide insight into the software process, a software project, or the product itself. 9/8/99 Lecture 5 5 Software Metrics Dos and Don’t Don’t measure individuals Never use metrics as a ‘stick’ Don’t ignore the data Never use only one metric Select metrics based on objectives Provide feedback Obtain “buy-in” 9/8/99 Lecture 5 6 Fishbone Diagram 9/8/99 Lecture 5 7 Why Collect Metrics? Used to minimize the development schedule Used to assess product quality on an ongoing basis 9/8/99 Lecture 5 8 Size-Oriented Metrics Often based on LOC – Errors per KLOC – Defects per KLOC – $ per LOC – Pages of documentation per KLOC Not universally accepted because of LOC determination 9/8/99 Lecture 5 9 Function-Oriented Metrics Count #ofuserinputs #ofuseroutputs #ofuserinquiries #offiles #ofinterfaces x Simple Average Complex Total 3 4 3 7 5 4 5 4 10 7 6 7 6 15 19 count=total FP=count total x [.65 + .01 x F(i)] where i=1-14 9/8/99 Lecture 5 10 Software Productivity Influences People factors Problem factors Process factors Product factors Resource factors 9/8/99 Lecture 5 11 Measuring Quality Correctness Maintainability Integrity Usability 9/8/99 Lecture 5 12 Defect Removal Efficiency DRE = E/(E+D) where – E=number of errors found before delivery of the software to the end user – D=number of defects found after delivery Ideal value is 1 9/8/99 Lecture 5 13 7 Steps to Designing a Software Metric Objective Statement Clear Definitions Define the Model Establishing Counting Criteria Decide What’s Good Metrics Reporting Additional Qualifiers 9/8/99 Lecture 5 14 Software Project Planning Estimating Features and Priorities Risk Assessment Resources Milestones and Deliverables 9/8/99 Lecture 5 15 Software Project Estimation Not an exact science More accurate if delay estimation until late in the project Base estimates on similar projects Decomposition techniques to estimate effort & cost Empirical models to estimate effort & cost 9/8/99 Lecture 5 16 ? That Contribute to Uncertainty Will customer want Feature X? Will customer want the cheap or expensive version of Feature X? If you implement the cheap version of Feature X, will the customer later want the expensive version? How will feature X be designed? 9/8/99 Lecture 5 17 Software Sizing “Fuzzy-logic” sizing Function point sizing Standard component sizing Change sizing 9/8/99 Lecture 5 18 Estimate Multipliers by Project Phase Phase Initial product concept Approved product concept Requirements specification Product design specification Detailed design specification Effort and Size Schedule Optimistic Pessimistic Optimistic Pessimistic 0.25 0.5 0.67 0.8 0.9 4 2 1.5 1.25 1.1 0.6 0.8 0.85 0.9 0.95 1.6 1.25 1.15 1.1 1.05 From Cost Models for Future Software Life Cycle Processes:COCOMO 2.0 9/8/99 Lecture 5 19 Guidelines for Making Size Estimates Avoid off-the-cuff estimates Allow time for the estimate, and plan it Use data from previous projects Use developer-based estimates Estimate by walkthrough Estimate by categories Estimate at low level of detail 9/8/99 Lecture 5 20 Guidelines... Don’t omit common tasks Use software estimation tools Use several different estimation techniques, & compare results Change estimation practices as the project progresses 9/8/99 Lecture 5 21 Estimate Presentation Styles Plus-or-minus qualifiers Risk quantification Case-based estimation Confidence-factor estimate 9/8/99 Lecture 5 22 LOC Based Estimation Major functions are identified Range of values for LOC for each function are estimated Must have historical data to determine productivity 9/8/99 Lecture 5 23 FP-Based Estimation Based on information domain values – Number of inputs – Number of outputs – Number of inquiries – Number of files – Number of external interfaces Complexity factors are then determined 9/8/99 Lecture 5 24 Process-Based Estimation Estimate effort required for each software process / phase of the project – – – – – 9/8/99 Vision/Scope Project plan Analysis Design Development Lecture 5 25 Effort and Schedule Estimate Effort estimate helps determine resources Schedule estimate is computed using the following equation: – Schedule in months=3*man-months^1/3 – Can substitute 4 or 2.5 for the factor 3 9/8/99 Lecture 5 26 Estimation Facts of Life There is a shortest possible schedule, and you cannot beat it. Costs increase rapidly when you shorten the schedule below nominal – Schedule compression factor – Compressed schedule effort 9/8/99 Lecture 5 27 Recalibrating an Estimate What if you missed the first milestone by 1 week? Should you – Assume you can make up the lost week later in the schedule – Add the week to the total schedule – Multiply the whole schedule by the magnitude of the slip, ie 25% if 1 week late for 4 week milestone 9/8/99 Lecture 5 28 What Causes Poor Estimates Scope of project not understood Productivity data is incorrect 9/8/99 Lecture 5 29 Empirical Estimation Models Based on historical data on LOC and FP Derived using regression analysis on data collected from past software projects – E=A+B*(ev)c A, B, & C are derived constants, E is the effort in person months, and ev is the estimation variable 9/8/99 Lecture 5 30 Risks Definition – Possibility of suffering lose or harm – Factor, element, or course involving uncertain danger Characteristics – Associated with lose – Includes uncertainty of occurrence, impact, and outcome – Has aspects of gain and loss 9/8/99 Lecture 5 31 Risk Management Principles Assess risks continuously Includes all key people Are generally known but communicated Must be clearly stated Important risks are dealt with first 9/8/99 Lecture 5 32 Risk Identification Product size Business impact Customer characteristics Process definition Development environment Technology Staff size and experience 9/8/99 Lecture 5 33 Risks Consequences Cost overruns Customer Schedule slips dissatisfaction Loss of company image Demoralized staff Poor product performance Legal proceedings Inadequate functionality Canceled projects Sudden personal changes 9/8/99 Lecture 5 34 Approaches to Risk Management Reactive – Mitigation of symptoms; Fix on failure – Crisis management Transitional – Preventive Proactive – Elimination of root causes; Anticipation of risk – Change management 9/8/99 Lecture 5 35