1introduction

Views:
 
Category: Entertainment
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

Slide 1: 

1 SOFTWARE PROJECT MANAGEMENT Course Notes Chapter 4 Software effort estimation

Overview : 

Overview Introduction Objective Fundamental estimation questions Costing and pricing Function Points Object Points Quality and productivity Estimation Techniques References 2

Introduction : 

Introduction Software development and effort estimation [1] the process of predicting most realistic use of effort required to develop or maintain software based on incomplete, uncertain and/or noisy input. Effort used as input to: [2] project plans, iteration plans, budgets, investment analyses, pricing processes bidding rounds. 3

Introduction : 

Introduction Software development effort estimates are the basis for: Project bidding, Budgeting Planning [3] 4

Objectives : 

Objectives To introduce the fundamentals of software costing and pricing To describe three metrics for software productivity assessment To explain why different techniques should be used for software estimation To describe the principles of the COCOMO 2 algorithmic cost estimation model

Topics covered : 

Topics covered Software productivity Estimation techniques Algorithmic cost modelling Project duration and staffing

Fundamental estimation questions : 

Fundamental estimation questions How much effort is required to complete an activity? How much calendar time is needed to complete an activity? What is the total cost of an activity? Project estimation and scheduling are interleaved management activities.

Software cost components : 

Software cost components Hardware and software costs. Travel and training costs. Effort costs (the dominant factor in most projects) The salaries of engineers involved in the project; Social and insurance costs. Effort costs must take overheads into account Costs of building, heating, lighting. Costs of networking and communications. Costs of shared facilities (e.g library, staff restaurant, etc.).

Costing and pricing : 

Costing and pricing Estimates are made to discover the cost, to the developer, of producing a software system. There is not a simple relationship between the development cost and the price charged to the customer. Broader organisational, economic, political and business considerations influence the price charged.

Software pricing factors : 

Software pricing factors

Software productivity : 

A measure of the rate at which individual engineers involved in software development produce software and associated documentation. Not quality-oriented although quality assurance is a factor in productivity assessment. Essentially, we want to measure useful functionality produced per time unit. Software productivity

Productivity measures : 

Size related measures based on some output from the software process. This may be lines of delivered source code, object code instructions, etc. Function-related measures based on an estimate of the functionality of the delivered software. Function-points are the best known of this type of measure. Productivity measures

Measurement problems : 

Estimating the size of the measure (e.g. how many function points). Estimating the total number of programmer months that have elapsed. Estimating contractor productivity (e.g. documentation team) and incorporating this estimate in overall estimate. Measurement problems

Lines of code : 

What's a line of code? The measure was first proposed when programs were typed on cards with one line per card; How does this correspond to statements as in Java which can span several lines or where there can be several statements on one line. What programs should be counted as part of the system? This model assumes that there is a linear relationship between system size and volume of documentation. Lines of code

Productivity comparisons : 

The lower level the language, the more productive the programmer The same functionality takes more code to implement in a lower-level language than in a high-level language. The more verbose the programmer, the higher the productivity Measures of productivity based on lines of code suggest that programmers who write verbose code are more productive than programmers who write compact code. Productivity comparisons