340 likes | 491 Views
Estimation - Software Metrics. Managers frequently have to measure the productivity of software engineers. How is productivity measured?. What is Productivity ? Why are we trying to measure Productivity ? What do these measures really mean?. Estimation - Software Metrics.
E N D
Estimation - Software Metrics Managers frequently have to measure the productivity of software engineers.
How is productivity measured? What is Productivity? Why are we trying to measure Productivity? What do these measures really mean?
Estimation - Software Metrics Estimates are needed for: • project estimates • time to completion • cost • manpower • measure whether technological improvements are effective • measure individual productivity for salary review
Estimation - Software Metrics Project estimation effects project scheduling!
Estimation is on-going -- • Is progress being made? • What happens if progress falls behind? • What if "expenditures" are greater than estimates?
Estimation - Software Metrics TOTAL COST: (1) hardware + software + maintenance (2) travel and training * (3) effort costs??
Effort costs??? SE salaries Overhead • support staff • physical plant • networking and communications • benefits
Software Metrics • Effort costs are approximately twice (2x) SE salaries • So... Overhead is approximately equal to SE salaries!
Software Metrics Productivity = measuring some attribute of the software and dividing this by the total effort required for development.
Software Metrics Two types of measurements are available: • Size-related and • Function-related
Software Metrics SIZE-related = Direct Measures What are they? What about an SE project can we measure directly? • cost • effort • LOC (lines of code) • speed • memory size • errors
Software Metrics • Function-related = Indirect Measures • Examines overall/useful functionality over a period of time functionality quality complexity efficiency reliability maintainability
Software Metrics Software cost and effort estimation will never be an exact science
Software Metrics Too many variables • human • technical • environmental • political
Software Metrics • No estimation technique will be entirely accurate. • Estimates fed back into the project, alter the behavior being modeled
Size-oriented metrics • KLOC (thous. lines of code) were developed with 24-person-months of effort at a cost of $168,000 • values represent all software activities (analysis, design, code and test) not just coding
Size-oriented metrics • pages of documentation developed • 29 errors were encountered after software was released to the customer within the first year of operation • 3 people worked on the development of the software
Size-oriented productivity and quality metrics: • Productivity = KLOC/person-month • Quality = error/KLOC • Cost = $/KLOC • Documentation = Pages doc./KLOC
Size-oriented productivity and quality metrics: • Controversy: Why LOC as a key measure?
Size-oriented productivity and quality metrics: Pro: LOC are "artifact" of all software development project that can be easily counted. Con: LOC measures are programming language dependent. They penalize well-designed but shorter programs. They cannot easily accommodate non-procedural languages . Con: When used in estimation, LOC requires may be difficult to determine; planner must estimate the LOC long before analysis and design have been completed.
Function-related metrics Examples: • number of user inputs • number of user outputs • number of user inquiries/interactions • number of files • number of external interfaces
Function-related metrics • Relate to overall functionality of delivered software. • Function points try to give a weight to these functionality measures. • Each Function point (FP) is individually assessed for complexity and given a weight.
Function points EX. • Weight of 3 for simple external inputs, • Weight of 15 for complex internal files.
Function points FPs (function points) can create similar estimation formulas: • productivity=FP/person-mth • quality = error/FP • cost = $/FP • documentation=pages doc./FP
Alternative techniques: • Unadjusted Function Point Count = UPC • UPC = # of elements of a given type X weight This is further adjusted by a measure (a value) for overall project complexity.
But -- What counts as complexity?
Function points • Final Function Count (FFC) • FFC = UFC x project complexity factors • These values can compare individuals on a single project or across projects.
Function Points Controversy Pro: FP is programming language independent making it ideal for applications using conventional and non-procedural languages • based on data more likely to be known early in the evolution of the project • attractive as an estimation approach
Function Points Controversy Con: method requires some "slight of hand" in that computation is based on subjective rather than objective data • difficult to collect after-the-fact data to verify • no direct physical meaning -- its just a number
But, any measuring tool Can easily be misused- With enough adjustment, you can get the numbers to say almost anything.
Estimation Accuracy • Regardless of model • Care must be exercised when using the results of cost estimation • Often the case that external factors really drive the schedule
Estimation Accuracy Note: The OS/360 operating system was developed in 2 yrs because the hardware was going to be ready in 2 yrs