170 likes | 311 Views
This document outlines essential objectives and methodologies for effective software project planning. It establishes a framework for managers to estimate resources, costs, and schedules while considering best and worst-case scenarios. It details the scope of the software, including performance, control parameters, and reliability. The guide also emphasizes the importance of understanding customer goals, technical feasibility, resource estimation, and decomposition techniques for accurate project assessments. Finally, it discusses the make-or-buy decision process to enhance project management efficiency.
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.