Planning and Estimating
description
Transcript of Planning and Estimating
Planning and Estimating
CSCI 4320
Planning
The earliest possible time that detailed planning can take place is after the specifications are complete
Planning continues during development and then postdelivery maintenance
Planning the Software Process The accuracy of estimation increases as the process
proceeds
Estimating Cost What is the budget?
Underestimate: the developer can lose money Overestimate: the client chooses another developer
Internal Cost: The cost to developers Salaries of development team Cost of hardware and software for development Overhead – rent, utilities, salaries of supporting staff
External Cost: The price that the client pays Based on the internal cost plus a profit margin Economic and Psychological factors when bidding
Lower bid if developer desperately need the job A significantly lower bid may be interpreted as low quality
Estimating Duration
When will the finished product be delivered? If developer is unable to keep its schedule
The organization loses credibility Penalty clauses may be invoked
Human Factors that Affect Estimating Cost and Duration
Differences between programmers on time it takes to code and debug and product size We assume that experienced programmers outperform
beginners Sakerman study compares pairs of experienced
programmers and pairs of beginner programmer The worst performance on one product was by experienced
programmer Differences ranged from 5 to 1
Critical staff member may resign during project
Metrics for the Size of a Product
The most common metric for the size of a product is the number of lines of code Lines of Code (LOC) Thousand Delivered Source Instructions (KDSI)
File, Flow Process metric (FFP) Albrecht’s function points metric COnstructive COst MOdel (COCOMO)
Problems with using lines of code as a metric Creating source code is only a small part of the total
software development effort Programming languages produce the same result
with different lines of code How do you count the lines of code?
Only executable lines? or include data definitions? Include comments? What if you use inheritance? Recount inherited lines?
Not all code written is delivered to the client A code generator can produce thousands of lines of
code in a few minutes Only at when product is final do you know the actual
lines of code
File Flow Process (FFP) File – collection of logically related records
permanently resident in the product Flow – data interface between product and
environment (screen, report) Process – functionally defined manipulation of data
(sorting, updating)Size = #Files + #Flows + # ProcessesCost = size * d
Constant d is a measure of the efficiency of the software development process within that organization
Size can be determined after architectural design is complete
Using the FFP Metric
You are a software engineer at Bantry Software. A year ago, your manager announces that your next product would comprise 10 files, 50 flows and 80 processes
Use the FFP metric to determine its size For Bantry Software, the constant d has been
determined to be $900. What cost estimate did the FPP metric produce?
The product was recently completed at a cost of $123,500. What does this tell you about the productivity of your development team?
Albrecht’s Function Points (FP) metric
The number of function points is based on INP: input items, OUT: output items INQ: inquiries MF: master files INF: interfaces
FP = 4*INP + 5*OUT + 4*INQ + 10*MF + 7*INF This is an oversimplification of a 3-step
process
Maintenance
Maintenance can be inaccurately measured It is possible to make major changes without
changing The number of files, flows, and processes; or The number of inputs, outputs, inquiries, master
files, and interfaces In theory, it is possible to change every line of
code with changing the number of lines of code
Techniques of Cost Estimation
Expert judgment by analogy Guesses can lead to hopelessly incorrect cost estimates Experts may recollect completed products inaccurately Estimation by a broad group of experts may be accurate
Bottom-up approach Break the product into smaller components
Algorithmic cost estimation models A metric is used as an input to a model to compute cost,
duration Estimates are only as good as the underlying assumptions COnstructive COst MOdel (COCOMO)
COCOMO Estimate Development Effort
Estimate Length of product in KDSI Determine product development mode (difficulty of developing
product) Small, medium, large project familiarity with product, degree of team cooperation
Compute Nominal Effort using constants based on the development mode Nominal Effort = a * KDSI b
Compute Estimated Effort in man months by multiplying the nominal effort by 15 to 17 software development effort multipliers product, computer, personnel, project attributes
Variations of COnstructive COst MOdel Intermediate and COCOMO II
Components of a Software Project Management Plan
The work to be done The resources with which to do it The money to pay for it
Completion of Work Products
Milestone: The date on which the work product is to be completed
It must first pass reviews performed by Fellow team members Management The client
Once the work product has been reviewed and agreed upon, it becomes a baseline
9.5 IEEE Software Project Management Plan
Figure 9.8
9.6 Planning Testing
The SPMP must explicitly state what testing is to be done
Traceability is essential All black box test cases must be drawn up as
soon as possible after the specifications are complete
Training Requirements
The user needs training after the product is finished. The development team may need training for
Software planning and estimating Introduction of hardware or software tools The operating system and/or implementation language Documentation preparation
Training for developers can be obtained In house Courses in the evenings at colleges Web-based courses
Documentation Planning
Types of documentation Planning, Control, Financial, Technical, Source code
Reduce misunderstandings between team members Aid SQA Only new employees have to learn the standards Standards assist maintenance programmers Standardization is important for user manuals
Testing the Software Project Management Plan
We must check the SPMP as a whole Paying particular attention to the duration and
cost estimates