170 likes | 181 Views
A framework for estimating software resources, costs, and schedules, with emphasis on scope definition, feasibility, and make-buy decisions. Learn decomposition techniques, estimation models, and decision processes.
E N D
Project Planning CIS 375 Bruce R. Maxim UM-Dearborn
Planning Objectives • To provide a framework that allows a software manager to make an estimate of resources, cost, and schedule. • Project outcomes should be bounded by 'best case' and 'worst case' scenarios. • Estimates should be updated as the project progresses.
Software Scope • data to be processed or produced • control parameters • function • performance • constraints • external interfaces • reliability
Scope Definition • Determine the customer's overall goals for the proposed system and any expected benefits. • Determine the customer's perceptions concerning the nature of a good solution to the problem. • Evaluate the effectiveness of the customer meeting.
Product Feasibility • Technical feasibility is not a good enough reason to build a product. • The product must meet the customer's needs and not be available as an off-the-shelf purchase.
Resource Estimation • Human Resources • number of people required and skills needed to complete the development project • Project Methods and Tools • Reusable Software Resources • off-the-shelf components • modifiable components • new components • Development Environment • hardware and software required during the development process
Estimation Options • Delay estimation until late in the project. • Base estimates on similar projects already completed. • Use simple decomposition techniques to estimate project cost and effort. • Use empirical models for software cost and effort estimation. • Automated tools may assist with project decomposition and estimation.
Decomposition Techniques -1 • Software sizing • fuzzy logic • function point calculation • standard component • %change • Process-based estimation • decomposition based on tasks required to complete the software process framework
Decomposition Techniques - 2 • Problem-based estimation • using lines of code (LOC) decomposition focuses on software functions • using function point (FP) decomposition focuses on information domain characteristics
Empirical Estimation Models • Experiential Models • Typically derived from regression analysis of historical software project data with estimated person-months as the dependent variable • Static Estimation Model • does not include time as an independent variable • Constructive Cost Model (COCOMO) • Dynamic Estimation Models • usually takes time or development phase into account • Software Equation Model
Correlation and Regression • Mean = (xi)/n • Variance x = (xi2)/n - (mean)2 • Covariance xy = (xi yi)/n – (meanx)(meany) • Correlation r = xy / xy • Regression y = mx + b m = xy / (x)2 b = meany – m * meanx
X Y X^2 X*Y Y^2 1 1 1 1 1 3 2 9 6 4 4 4 16 16 16 6 4 36 24 16 8 5 64 40 25 9 7 81 63 49 11 8 121 88 64 14 9 190 126 81 56 40 524 364 256 Totals
Make Buy Decision • It may be more cost effective to acquire a piece of software rather than develop it. • Decision tree analysis provides a systematic way to sort through the make-buy decision. • As a rule outsourcing software development requires more skillful management than does in-house development of the same product.
Decision Process • Develop specifications. • Estimate internal cost & delivery. • Select 3 or 4 candidate packages. • Select reasonable components. • Build a cost-benefit comparison matrix (key function performance) or use conduct benchmark tests of candidate software • Evaluate each software package or component based on history with the product or vendor. • Contact other users.