Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Software Cost Estimation-Basics of Software Engineering-Lecture Slides, Slides of Software Engineering

This lecture is part of lecture series for Software Engineering course. Prof. Prateek Aron delivered this lecture at Allahabad University. Its main points are: Software, Cost, Estimation, Development, Process, Components, Overheads, Networking, Pricing, Programmer, Productivity

Typology: Slides

2011/2012

Uploaded on 07/16/2012

sanaka
sanaka 🇮🇳

4.6

(18)

77 documents

1 / 29

Toggle sidebar

Related documents


Partial preview of the text

Download Software Cost Estimation-Basics of Software Engineering-Lecture Slides and more Slides Software Engineering in PDF only on Docsity! Software Cost Estimation  Software cost estimation involves predicting the resources required for a software development process 1 COMP201 - Software Engineering docsity.com 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 and interleaved management activities 2 COMP201 - Software Engineering docsity.com Software Pricing Factors Factor Description Market opportunity A development organisation may quote a low price because it wishes to move into a new segment of the software market. Accepting a low profit on one project may give the opportunity of more profit later. The experience gained may allow new products to be developed. Cost estimate uncertainty If an organisation is unsure of its cost estimate, it may increase its price by some contingency over and above its normal profit. Contractual terms A customer may be willing to allow the developer to retain ownership of the source code and reuse it in other projects. The price charged may then be less than if the software source code is handed over to the customer. Requirements volatility If the requirements are likely to change, an organisation may lower its price to win a contract. After the contract is awarded, high prices may be charged for changes to the requirements. Financial health Developers in financial difficulty may lower their price to gain a contract. It is better to make a small profit or break even than to go out of business. COMP201 - Software Engineering docsity3icom Programmer 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 6 COMP201 - Software Engineering docsity.com 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 7 COMP201 - Software Engineering docsity.com 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 10 COMP201 - Software Engineering docsity.com High and Low Level Languages 11 COMP201 - Software Engineering docsity.com Function Points  Based on a combination of program characteristics  external inputs and outputs  user interactions  external interfaces  files used by the system  A weight is associated with each of these  The function point count is computed by multiplying each raw count by the weight and summing all values 12 COMP201 - Software Engineering docsity.com Factors Affecting Productivity Factor Description Application domain Knowledge of the application domain is essential for experience effective software development. Engineers whoalready understand a domain are likely to be the most | productive. Process quality The development process used can have a significant effect on productivity. This is covered in Chapter 31. Project size The larger a project, the more time required for team communications. Less time is available for | development so individual productivity is reduced. | Technology support Good support technology such as CASE tools, supportive configuration management systems, etc. | can improve productivity. | Working environment As discussed in Chapter 28, a quiet working environment with private work areas contributes to improved productivity. (®) COMP201 - Software Engineering docsit\Scom Quality and Productivity  It could be argued that all metrics based on volume/unit time are flawed because they do not take quality into account  Productivity may generally be increased at the cost of quality  It is not clear how productivity/quality metrics are related  If change is constant (simplifying and improving code for example) then an approach based on counting lines of code is not meaningful 16 COMP201 - Software Engineering docsity.com Estimation Techniques  There is no simple way to make an accurate estimate of the effort required to develop a software system  Initial estimates are based on inadequate information in a user requirements definition  The software may run on unfamiliar computers or use new technology  The people in the project may be unknown  Project cost estimates may be self-fulfilling  The estimate defines the budget and the product is adjusted to meet the budget 17 COMP201 - Software Engineering docsity.com Expert Judgement  One or more experts in both software development and the application domain use their experience to predict software costs. Process iterates until some consensus is reached.  Advantages: Relatively cheap estimation method. Can be accurate if experts have direct experience of similar systems  Disadvantages: Very inaccurate if there are no experts! 20 COMP201 - Software Engineering docsity.com Estimation by Analogy  The cost of a project is computed by comparing the project to a similar project in the same application domain  Advantages: Accurate if project data available  Disadvantages: Impossible if no comparable project has been tackled. Needs systematically maintained cost database 21 COMP201 - Software Engineering docsity.com Parkinson's Law  The project costs whatever resources are available  Advantages: No overspend  Disadvantages: System is usually unfinished  Parkinson’s Law states that work expands to fill the time available. The cost is determined by available resources rather than by objective statement.  Example: Project should be delivered in 12 months and 5 people are available. Effort = 60 p/m 22 COMP201 - Software Engineering docsity.com Estimation Methods  Each method has strengths and weaknesses  Estimation should be based on several methods  If these do not return approximately the same result, there is insufficient information available  Some action should be taken to find out more in order to make more accurate estimates  Pricing to win is sometimes the only applicable method 25 COMP201 - Software Engineering docsity.com Experience-Based Estimates  Estimating is primarily experience-based  However, new methods and technologies may make estimating based on experience inaccurate  Object-oriented rather than function-oriented development  Client-server systems rather than mainframe systems  Off the shelf components  Component-based software engineering  CASE tools and program generators 26 COMP201 - Software Engineering docsity.com Pricing to Win  This approach may seem unethical and unbusinesslike?  However, when detailed information is lacking it may be the only appropriate strategy  The project cost is agreed on the basis of an outline proposal and the development is constrained by that cost  A detailed specification may be negotiated or an evolutionary approach used for system development 27 COMP201 - Software Engineering docsity.com
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved