Process Project Metrics 1 Metrics In Process Project







































- Slides: 39

Process & Project Metrics 1. Metrics In Process & Project Improvement

Software Measurement 1. 2. 3. 4. 5. Size Oriented Metrics Function Oriented Metrics Attributes Of Effective Software Metrics Reconciling LOC & FP Metrics OO Metrics

• Software Measurement – - is an ability - To measure attributes of - software & software development process - So that the SE activities can be improved • s/w measurement can be classified into two categories – 1. - Direct Measures – cost & effort applied LOC produced Execution speed & defects 2. - Indirect Measure measures - functionality, quality, reliability, efficiency, maintainability, complexity.

Function Oriented Metrics • Functionalities, provided by the software is measured • Independent of programming language used

benefits of Function Points Function points are useful − In measuring the size of the solution instead of the size of the problem. As requirements are the only thing needed for function points count. As it is independent of technology. As it is independent of programming languages. In estimating testing projects. In estimating overall project costs, schedule and effort. In contract negotiations as it provides a method of easier communication with business groups. • As it quantifies and assigns a value to the actual uses, interfaces, and purposes of the functions in the software. • In creating ratios with other metrics such as hours, cost, headcount, duration, and other application metrics. • •

How To Calculate Function Points? • Data for following – characteristics are collected. • Number Of User Inputs – - each user input, - which provides, Distinct application data, - to the software - Is counted • Number Of User Outputs - each user output - that provides – application data to the user – is counted. - ex. Screens, reports, error messages

• Number Of User Inquiries - an online input - that results in - the generation of some - immediate software response - in the form of an output • Number Of Files - each logical master file - i. e. a logical grouping of data, that may be part of a database or a separate file • Number Of External Interfaces - all machine readable interfaces - That are used to transmit information - To another system - Are counted

• The organization needs to develop criteria - Which determine - Whether a particular entry is - simple, average or complex • The weighting factors - should be determined - by observations or by experiments

The FPA functional units are shown in figure given below: User Inquiries Inputs User Other applications ILF Outputs System EIF ILF: Internal logical files EIF: External interfaces Fig. : FPAs functional units System

Counting function points Functional Units Weighting factors Low Average High External Inputs (EI) 3 4 6 External Output (EO) 4 5 7 External Inquiries (EQ) 3 4 6 External logical files (ILF) 7 10 15 External Interface files (EIF) 5 7 10 Table 1 : Functional units with weighting factors

Table 2: UFP calculation table Functional Units External Inputs (EIs) External Outputs (EOs) External Inquiries (EQs) External logical Files (ILFs) External Interface Files (EIFs) Count Complexit y Low x 3 Average x 4 High x 6 Complexit y Totals = = = Low x 4 = Average x 5 = High x 7 = Low x 3 = Average x 4 = High x 6 = Low x 7 = Average x 10 = High x 15 = Low x 5 = Average x 7 = High x 10 = Total Unadjusted Function Point Count Functional Unit Totals

The weighting factors are identified for all functional units and multiplied with the functional units accordingly. The procedure for the calculation of Unadjusted Function Point (UFP) is given in table shown above.

Weighting Factor Domain Characteristics Number Of User Inputs Number Of User Outputs Number Of User Enquiries Number Of Files Number Of External Interfaces Count Total Count low avg high * 3 4 6 * 4 5 7 * 3 4 6 * 7 10 15 * 5 7 10 Count

• The Count Total – can be computed with the help of above given table • Now – The Software Complexity – - can be computed by answering following questions • These are complexity adjustment values – (sum(Fi))

1. Does the system need – reliable backup & recovery? 2. Are – data communications – required? 3. Are there – distributed processing functions? 4. Is – performance of the system – critical? 5. Will the system – run in an existing, heavily utilized operational environment? 6. Does the system require – online data entry? 7. Does – the online data entry – require – the input transaction to be built over multiple screens or operations?

8. Are the master files updated online? 9. Are – the inputs, outputs, files or inquiries – complex? 10. Is the internal processing complex? 11. Is the code, which is designed – being reusable? 12. Are conversion & installation included in the design? 13. Is the system designed for multiple installations in different organizations? 14. Is the application designed to facilitate – change & ease of use – by the user?

Table 3 : Computing function points. Rate each factor on a scale of 0 to 5. No Influence Incidental 2 3 Moderate Average 4 Significant 5 Essential Number of factors considered ( Fi ) 1. Does the system require reliable backup and recovery ? 2. Is data communication required ? 3. Are there distributed processing functions ? 4. Is performance critical ? 5. Will the system run in an existing heavily utilized operational environment ? 6. Does the system require on line data entry ? 7. Does the on line data entry require the input transaction to be built over multiple screens or operations ? 8. Are the master files updated on line ? 9. Is the inputs, outputs, files, or inquiries complex ? 10. Is the internal processing complex ? 11. Is the code designed to be reusable ? 12. Are conversion and installation included in the design ? 13. Is the system designed for multiple installations in different organizations ? 14. Is the application designed to facilitate change and ease of use by the user ?

• Rate – - each of the above factors - according to the following scale of (0 to 5) • Function Points (FP) = • count total * (0. 65 + (0. 01 * sum (Fi)))

0 1 2 3 4 5

• Rate each factor on a scale of 0 to 5. 0 – No Influence 1 - Incidental 2 - Moderate 3 - Average 4 - Significant 5 – Essential • Number of factors considered ( Fi )

• These metrics are controversial • and are not universally acceptable. • There are standards issued by • the International Functions Point User Group (IFPUG) • and • The United Kingdom Function Point User Group (UFPGU). • An ISO standard for function point method is also being developed.

Example: 1 Consider a project with the following functional units: Number of user inputs = 50 Number of user outputs = 40 Number of user = 35 enquiries Number of = 06 user files = 04 Number of external interfaces Assume all complexity adjustment factors and weighting factors are average. Compute the function points for the project.

Domain Characteristics Count Weighting Factor Simple Average Count Complex Number Of User Inputs 50 * 4 200 Number Of User Outputs 40 * 5 200 Number Of User Enquiries 35 * 4 140 Number Of Files 06 * 10 60 Number Of External Interfaces 04 * 7 28 Count Total 628

Solution We know 5 3 UFP ∑∑Zij wij i 1 J 1 UFP = (50 * 4) + (40 * 5) + (35 * 4) + (6 * 10) + (4 * 7) = 200 + 140 + 60 + 28 = 628 CAF = (0. 65 + 0. 01 * ΣFi) = (0. 65 + 0. 01 * (14 * 3)) = (0. 65 + 0. 01 * 42) = (0. 65 + 0. 42) = 1. 07 FP = UFP * CAF = 628 * 1. 07 = 672

• Function Points (FP) = • count total * (0. 65 + (0. 01 * sum (Fi))) • FP = 628 * (0. 65 + 0. 01 * (14*3)) = 628 * (0. 65 + 0. 42) = 628 * (1. 07) = 671. 96

• Functions points may compute the following important metrics: • Avg productivity is 6. 5 FP person-month • (i. e. 1 person works for 1 month – to develop 6. 5 FP) • Avg labor cost is Rs. 6000/- per month 1. Cost per function point = 6000/6. 5 = Rs. 923 per function point 2. Total estimated project cost = Rs. 923 * 672 FP = Rs. 6, 20, 256/3. Total estimated effort = (672 / 6. 5) = 103 person – month. i. e. 103 person will work for 1 month to complete the project. Or 52 person will work for 2 months to complete the project. Or 26 person will work for 4 months to complete the project. Or 13 person will work for 8 months to complete the project.

What is Person-month? • It's mean amount of work performed by the average worker in one month. • So, if: • project requires 12 persons-months of development time • then: • for 12 persons-months project • 4 developers will spend 3 months.

Example: 2 An application has the following: 10 low external inputs, 12 high external outputs, 20 low internal logical files, 15 high external interface files, 12 average external inquiries, and a value of complexity adjustment factor of 1. 10. What are the unadjusted and adjusted function point counts ?

Solution Unadjusted function point counts may be calculated using as: 5 3 UFP ∑∑Zij wij i 1 J 1 FP = (10 * 3) + (12 * 7) + (20 * 7) + (15 * 10) + (12 * 4) = 30 + 84 +140 + 150 + 48 = 452 = UFP x CAF = 452 x 1. 10 = 497. 2.

Example: 3 Consider a project with the following parameters. (i) External Inputs: (a) 10 with low complexity (b)15 with average complexity (c) 17 with high complexity (ii) External Outputs: (a) 6 with low complexity (b)13 with high complexity (iii) External Inquiries: (a) 3 with low complexity (b) 4 with average complexity (c) 2 high complexity

(iv) Internal logical files: • (a) 2 with average complexity (b)1 with high complexity (v) External Interface files: • (a) 9 with low complexity • In addition to above, system requires i. Significant data communication ii. Performance is very critical iii. Designed code may be moderately reusable iv. System is not designed for multiple installation in different organizations. • Other complexity adjustment factors are treated as average. Compute the function points for the project.

Solution: Unadjusted function points may be counted using table 2 Functional Units Externa l Inputs (EIs) Externa l Outputs (EOs) External Inquirie s (EQs) Externa l logical Files (ILFs) External Interface Files (EIFs) Count Complexity 10 Low x 3 Average x 4 High x 6 Low x 4 Average x 5 High x 7 = = = Low x 3 Average x 4 High x 6 Low x 7 Average x 10 = = = 15 17 6 0 13 3 4 2 0 2 Complexity Totals 30 60 102 rd Publishers, 2007 192 24 0 91 115 9 16 12 37 0 20 15 High x 15 = 9 45 Low x 5 = 0 0 Average x 7 = 0 0 High x 10 = Total Unadjusted Point Count Software Engineering (3 Function ed. ), By K. K Aggarwal & Yogesh Singh, Copyright © New Age International 1 Functional Unit Totals 35 45 424

14 ∑F i 3+4+3+5+3+3+3+2+3+0+3=41 i 1 CAF = (0. 65 + 0. 01 x ΣFi) = (0. 65 + 0. 01 x 41) = 1. 06 FP = UFP x CAF = 424 x 1. 06 = 449. 44 Hence FP = 449

Relative Cost of Software Phases

Example 4

• An application has the following: • 10 low external inputs, 12 high external outputs, 20 low • internal logical files, 15 high external interface files, 12 • average external inquiries, and a value of complexity • adjustment factor of 1. 10. • What are the unadjusted and adjusted function point counts ?

• Example – • Study of requirement specification for ABC project has produced following results – • need for - 7 inputs, - 10 outputs, - 6 inquiries, - 17 files & - 4 external interfaces. • Input & external interface FP attributes are of Average Complexity & • all other FP attributes are of – Low Complexity • Determine – adjusted FPs assuming Complexity Adjustment Value is 32

Domain Characteristics Count Weighting Factor Simple Average Complex Number Of User Inputs 7 X Number Of User Outputs 10 X 4 40 Number Of User Enquiries 6 X 3 18 Number Of Files 17 X 7 119 Number Of External Interfaces 4 X Count Total 4 Count 7 28 28 233

• FP = Count Total * {(0. 65 + 0. 01) * Sum(Fi)} = 233 * {(0. 65 + 0. 01) * 32} = 233 * 0. 97 = 226. 01 Hence, adjusted FP = 226. 01