210 likes | 455 Views
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.
E N D
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 + # Processes Cost = 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