CS代写 SWEN90016 Software Processes and Project Management -2- Cost Estimation

School of Computing and Information Systems The University of Melbourne
Copyright University of Melbourne 2018 – 2022
2022 – Semester 1 Week 6

Copyright By PowCoder代写 加微信 powcoder

Software Processes & Project Management
Cost Estimation

Learning Outcomes
Understand the importance of cost estimation and the challenges involved Understand the techniques used for cost estimation
Understand software size estimation techniques
Understand cost estimation techniques used in Agile software development lifecycles
SWEN90016 Software Processes and Project Management -2- Cost Estimation

Learning Outcomes
Understand the importance of cost estimation and the challenges involved
Understand the techniques used for cost estimation Understand software size estimation techniques
SWEN90016 Software Processes and Project Management -3- Cost Estimation

What determines project cost?
http://geethanjalisnsce.blogspot.com.au/2015/04/
SWEN90016 Software Processes and Project Management -4- Cost Estimation

What is software cost estimation?
• What is estimation?
– Is the process of finding an estimate, or approximation, which is a value that can be used for some purpose even if input data may be incomplete, uncertain, or unstable
• What is software cost estimation?
– Estimation of how much money, effort, resources, and time will take to
build a specific software based system or product
• Why is it Important?
– Would you build a house without knowing how much you were about to spend – of course not
– Since most software systems cost considerably more to build than a large house, it would seem reasonable to develop an estimate before you start creating the software
SWEN90016 Software Processes and Project Management -5- Cost Estimation

Challenges in cost estimation
• There is no exact science for cost estimation – it will never be considered as all accurate
• No person can reasonably predict what can go wrong in the project
• Most estimation methods assume things will proceed as expected and simply adds some slack to account for what can go wrong
SWEN90016 Software Processes and Project Management -6- Cost Estimation

Possible solutions
1. Delay estimation – 100% accuracy at the end of the project but less useful!
2. Base estimation on data from previous projects that have been completed
3. Break the system to smaller parts and generate the estimates for smaller parts, which is easier
4. Use empirically-based estimation methods
SWEN90016 Software Processes and Project Management -7- Cost Estimation

Estimation – current status
Why do we need to improve effort estimation?
Effort estimation by experts’ opinion was found as the most used method across the IT industry[4]
Cost and schedule overrun were very common (30-40%), and estimation accuracy was perceived as a problem by project managers [4].
Expert-based estimation method still remains popular in Agile methodologies (2013[5], 2014[6])
71% of organizations adopted Agile approaches
9.7% of investment lost due to poor project performance
Many projects finished beyond their initially scheduled time(49%) and budget(43%)
inaccurate cost and task time estimation still highly-ranked among failure reasons (28% and 26%)
Source: Literature Review PhD Student
SWEN90016 Software Processes and Project Management Cost Estimation

SWEN90016 Software Processes and Project Management -9- Cost Estimation

PMI’s PULSE of the PROFESSION -https://www.pmi.org/learning/thought-leadership/pulse/pulse-of-the-profession-2017
SWEN90016 Software Processes and Project Management -10- Cost Estimation

Learning Outcomes
1. Understand the importance of cost estimation and the challenges involved
2. Understand the techniques used for cost estimation
3. Understand a range of software size estimation techniques
SWEN90016 Software Processes and Project Management -11- Cost Estimation

Techniques for cost estimation
1. Expertjudgement
– Several experts on the proposed software development technique and the application domain estimate project cost. These are then discussed, compared and adjusted until consensus is reached
– Some expert judgement techniques involve polling each expert independently, in some cases for three estimates, pessimistic estimate (p), optimistic estimate (o) and the most likely estimate (m), and the expert’s estimate is computed as the:
𝑒 = (𝑝 + 4𝑚 + 𝑜)Τ6
– Delphi technique: asks several experts to make an individual judgement of the effort using any method they wish. Then, the average effort is calculated, and presented to all of the experts. Each expert is then given a chance to revise their estimate, in some cases after a discussion between all experts. This continues until no expert wishes to revise their estimate.
SWEN90016 Software Processes and Project Management -12- Cost Estimation

Techniques for cost estimation
2. Estimation by Analogy
– The cost of a new project is estimated based on similar projects in the same application domain
3. Parkinson’s Law
– This law states that the work will expand to fill the time available
– The cost is determined by available resources rather than by objective assessment
– For example, if the software is to be delivered in 12 months, and 3 people are available, the effort is 36 person months
4. Pricing to win
– The cost is estimated to be whatever the customer has available to spend on the project – cost depends on the budget not on the software functionality
SWEN90016 Software Processes and Project Management -13- Cost Estimation

Techniques for cost estimation
5. Algorithmic cost modelling
– A model is developed using historical cost information based on some software metric (usually its size) to the project cost
– When a project effort needs to be estimated, an estimate of the metric is computed
– Using the model, the effort is predicted
– The most general form of an algorithm cost estimate is given by:
𝐸𝑓𝑓𝑜𝑟𝑡=𝐴×𝑆𝑖𝑧𝑒𝐵 ×𝑀
𝐴 – a constant factor that depends on the organizational practices
𝑆𝑖𝑧𝑒 – size of the software estimated in a metric of choice (e.g. lines of code, function points)
𝐵 – a value between 1 and 1.5 derived experimentally
𝑀 − a multiplier made by combining process, product and developmet attributes such as stability of requirement, experience of the team
SWEN90016 Software Processes and Project Management -14- Cost Estimation

Learning Outcomes
1. Understand the importance of cost estimation and the challenges involved
2. Understand the techniques used for cost estimation
3. Understand software size estimation techniques
SWEN90016 Software Processes and Project Management -15- Cost Estimation

SWEN90016 Software Processes and Project Management -16- Cost Estimation

Software Size Estimation
• Commonly used metric for software size estimation
– Source Lines of Code (SLOC) • Based on code
– Function Points (FP)
• Based on the Requirements Specification
SWEN90016 Software Processes and Project Management -17- Cost Estimation

Source Lines of Code (SLOC)
• There are two types of SLOC:
– Physical SLOC: Count the number of lines excluding comments and blank lines
– Logical SLOC: Measure the number of executable “statements”, but their specific definitions are tied to specific computer languages
SWEN90016 Software Processes and Project Management -18- Cost Estimation

Source Lines of Code (SLOC)
Advantages of SLOC:
– Scope for Automation of Counting: Since Lines of Code is a physical entity it is easy to count and can be automated using a tool
– An Intuitive Metric: Lines of Code serves as an intuitive metric for measuring the size of software because it can be seen and the effect of it can be visualized
SWEN90016 Software Processes and Project Management -19- Cost Estimation

Source Lines of Code (SLOC)
• Disadvantages of SLOC:
– Variability: Depends on programmer experience, programming language, framework support (auto generated code), reuse, etc.
– It is difficult to estimate the number of lines of code that will be needed to develop a system from information that is available in analysis and design phases
– Lack of a universally accepted definition for exactly what a line of code is
SWEN90016 Software Processes and Project Management -20- Cost Estimation

Function Points (FP)
• Is used to express the amount of functionality in a software system, as seen by the user
• A higher number of function points indicates more functionality
– Empirical evidence demonstrates that there is a positive correlation
between function points and the complexity of the system
• Typically used to:
– Estimate the cost and effort required to design, code and test a software system
– Predict the number of errors
– Predict the number of components
– Measure productivity
• Function points are computed from the Software Requirements Specification (SRS)
SWEN90016 Software Processes and Project Management -21- Cost Estimation

Function Points
• Advantages of Function Points
– Measures the size of the solution instead of the size of the
– Requirements are the only thing needed for function points count
– Can be estimated early in analysis and design
– Is independent of technology
– Is independent of programming languages
SWEN90016 Software Processes and Project Management -22- Cost Estimation

SWEN90016 Software Processes and Project Management -23- Cost Estimation

Function Points
• Disadvantages of Function Points
– A well defined requirements specification is necessary
– Gaining proficiency is not easy, the learning curve is quite long – Could be quite time-consuming thus could be costly
We will be going through an example
SWEN90016 Software Processes and Project Management -24- Cost Estimation

Learning Outcomes
1. Understand the importance of cost estimation and the challenges involved
2. Understand the techniques used for cost estimation
3. Understand software size estimation techniques
4. Understand cost estimation techniques used in Agile software development lifecycles
SWEN90016 Software Processes and Project Management -25- Cost Estimation

Module 13 Agile Effort Estimation
Two key concepts that are used to effort estimation:
Story points: a story point is a relative measure of the size of a user story (recall that the requirements of the system are documented using user stories)
Velocity: velocity is a measure of productivity of team, which is represented by the number of story points delivered in a specified time period
SWEN90016 Software Processes and Project Management -26- Cost Estimation

Agile Estimation Process
1. Develop user stories for the system.
2. Estimate the number of story points for each story, basing the estimate on the number of story points from previous stories, using a chosen technique (discussed later).
3. Use the team’s velocity from previous experience to estimate the delivery time of the project – in the case of fixed-scope release planning develop a release burn-down chart.
4. During development, measure the actual velocity of the team.
5. Using this velocity, re-estimate the time it will take to deliver the product.
SWEN90016 Software Processes and Project Management -27- Cost Estimation

Agile Estimation Guidelines
• Estimate by analogy
– There are no units for story points, always base our measures on other stories. If story A is about the same size as story B, they should have the same number of story points.
• Decompose a story
– By decomposing a story into the tasks that are required to complete the story, we can find measures that we know about the tasks, and combine them to provide a total measure.
• Use the right units
– The relative units should not be too fine grained. A pattern-based scale is used. For example, measures can only be 1, 2, 4, 8, or 12 or numbers in the Fibonacci sequence.
• Use group-based estimations
– For a story that is to be implemented by a team, the whole team should provide estimates. Techniques such as the Delphi method or its adaptations can be used to reach consensus.
SWEN90016 Software Processes and Project Management -28- Cost Estimation

Agile Estimation Techniques
• Agile Estimation Techniques:
– Planning Poker
– Bucket System
– Relative Mass Valuation – T-Shirt Sizes
– Affinity Estimation
– Dot Voting
SWEN90016 Software Processes and Project Management -29- Cost Estimation

Planning Poker
https://www.sitepoint.com/3-powerful-estimation-techniques-for-agile-teams/
SWEN90016 Software Processes and Project Management -30- Cost Estimation

BUCKET SYSTEM
http://www.agileadvice.com/2013/07/30/referenceinformation/agile-estimation-with-the- bucket-system/
SWEN90016 Software Processes and Project Management -31- Cost Estimation

BUCKET SYSTEM
1 2 3 5 8 13 21 34 55 89 144 233 377
• The team sitting at a table picks a user story card randomly and places it in bucket 8
• The next few cards are randomly picked one at a time, discussed agreed on, and placed in a bucket relative to the previous ones
• Then each person is allocated a set of cards and they are placed in a appropriate bucket, based on individual judgement (Divide and conquer)
• Finally the team reviews the placements and reach agreement
SWEN90016 Software Processes and Project Management -32- Cost Estimation

Relative Mass Valuation
1. Set up a large table so the stories can be moved around easily relative to each other.
2. Pick any story to start, team estimates whether they think that it is relatively: Large, Medium, Small.
3. Large story one end on the table. Medium story in the middle and Small story the other end
4. Continue through steps 2 & 3
5. The next step is to assign points values based on the position of the stories on the table. Start with the easiest story that is worth assigning points to, and call it a 1.
6. Then move up the list of cards, assigning a value of 1 to every story until you get to one that seems at least twice as difficult as the first one. That story gets a 2.

Relative Mass Valuation


SWEN90016 Software Processes and Project Management -33- Cost Estimation

Computing Velocity
V – velocity
SP – number of story points completed
Ti – time period over which they were completed
Common methods for measuring velocity:
– Using historical data
– Using data from previous iterations
SWEN90016 Software Processes and Project Management -34- Cost Estimation

Estimated Delivery Time
estimate delivery time
n – total number of user stories
V – velocity
SPi – number of story points in the i-th user story
SWEN90016 Software Processes and Project Management -35- Cost Estimation

Final comments on estimation
• Allow enough time to do a proper project estimate – rushed estimates are inaccurate, high-risk estimates
• There is diminishing return on time spent estimating
• Agile teams choose to be closer to the left
• Know that you cannot eliminate uncertainty from estimates but small efforts are rewarded with big gains
SWEN90016 Software Processes and Project Management -36- Cost Estimation

Learning Outcomes
Understand the importance of cost estimation and the challenges involved
Understand the techniques used for cost estimation Understand software size estimation techniques
Understand cost estimation techniques used in Agile software development lifecycles
SWEN90016 Software Processes and Project Management -37- Cost Estimation

Molkken, Kjetil and Jrgensen, , Kjetil and Jrgensen, Magne
References
1. B. Boehm, C. Abts, W. Brown, S. Chulani, B. Clark, E. Horowitz, R. Madachy, D. Reifer, and B. Steece. Software Cost Estimation with
Cocomo II. , 2000.
2. R. S. Pressman. Software Engineering: A Practitioner’s Approach. McGraw Hill, seventh edition, 2009.
3. I Somerville. Software Engineering, Addison- , ninth edition, 2010.
4. K. Molkken and M. Jrgensen, A Review of Surveys on Software Effort Estimation, Proceedings of the 2003 International Symposium on Empirical Software Engineering
SWEN90016 Software Processes and Project Management -38- Cost Estimation

References
Molkken, Kjetil and Jrgensen, Magne
5. -Cong and De Tran-Cao, A review of effort estimation studies in agile, iterative and incremental software development, The 2013 RIVF International Conference on Computing Communication Technologies – Research, Innovation, and Vision for Future (RIVF)
6. M. Usman, E, Mendes and F. Weidt and R. Britto, Effort Estimation in Agile Software Development: A Systematic Literature Review, Proceedings of the 10th International Conference on Predictive Models in Software Engineering, 2014
7. PMI’s PULSE of the PROFESSION -https://www.pmi.org/learning/thought- leadership/pulse/pulse-of-the-profession-2017
SWEN90016 Software Processes and Project Management -39- Cost Estimation

References
1. B. Boehm, C. Abts, W. Brown, S. Chulani, B. Clark, E. Horowitz, R. Madachy, D. Reifer, and B. Steece. Software Cost Estimation with
Cocomo II. , 2000.
2. R. S. Pressman. Software Engineering: A Practitioner’s Approach. McGraw Hill, seventh edition, 2009.
3. I Somerville. Software Engineering, Addison- , ninth edition, 2010.
4. A Review of Surveys on Software Effort Estimation
5. A review of effort estimation studies in agile, iterative and incremental software development, The 2013 RIVF International Conference on Computing Communication Technologies – Research, Innovation, and Vision for Future (RIVF)
SWEN90016 Software Processes and Project Management -40- Cost Estimation

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com