software project planning cs 414 – software engineering i donald j. bagert rose-hulman institute...
Post on 21-Dec-2015
214 views
TRANSCRIPT
Software Project Planning
CS 414 – Software Engineering I
Donald J. Bagert
Rose-Hulman Institute of Technology
December 12, 2002
CS 414 Software Engineering I - Software Project Planning - December 12, 2002
2
Outline
• Definition and Objectives• Scope• Resources• Estimation Methods• To Build or Not to Build?• The Project Plan• Project Management• Summary
CS 414 Software Engineering I - Software Project Planning - December 12, 2002
3
Definition and Objectives
• Software project planning is the process of– determining what the scope and available resources for a
project,– estimating the costs, total effort and duration of the project
required to develop and deliver the software,– determining the feasibility of the project,– deciding on whether or not to go forward with project
implementation,– creating a plan for the successful on-time and within budget
delivery of reliable software that meets the client’s needs, and– updating the plan as necessary throughout the project lifetime.
• Planning is primarily the job of the Project Manager
CS 414 Software Engineering I - Software Project Planning - December 12, 2002
4
Scope
• The scope of the project describes the desired functionality of the software, and what constraints are involved
• Therefore, project scope is determined as part of the analysis process by the requirements team
• The project manager then uses the scope that has been defined in order to determine project feasibility, and to estimate what costs, total effort and project duration will be involved in engineering the software
CS 414 Software Engineering I - Software Project Planning - December 12, 2002
5
Scope (continued)
• So does that mean that planning should come after requirements?– No. Project planning is actually an iterative process, which
starts at the beginning of the project, and continues throughout
CS 414 Software Engineering I - Software Project Planning - December 12, 2002
6
Resources
• Human Resources– Includes “overhead”– By far the most dominant aspect of software costs and effort
• Software Resources– COTS– In-house developed software and tools– Reusable artifacts (e.g. design patterns)– Historical data (helps with cost/effort estimation)
• Note that there is usually not much involving physical resources (except as it relates to overhead)
CS 414 Software Engineering I - Software Project Planning - December 12, 2002
7
Estimation Methods
• Estimation may be the most difficult task in an entire software project
• Almost all software cost estimation is related to human resources
• This is different from other engineering disciplines, which have to deal with more physical resources
CS 414 Software Engineering I - Software Project Planning - December 12, 2002
8
Estimation Methods (continued)
• Estimation Techniques– Using historical data– Decomposition techniques– Empirical models– A combination of any or all of the above
• Many estimation techniques use some estimate of size, such as– KLOC (Thousands of lines of code)– FP (Function points)– OP (Object points)
CS 414 Software Engineering I - Software Project Planning - December 12, 2002
9
Estimation Methods (continued)
• Historical Data– Pretty self-explanatory– Uses track record on previous projects to make estimates for
the new project
– Main Advantage:• Is specific to that organization
– Main Disadvantages:• Continuous process improvement is sometimes hard to factor in
• Some projects may be very different than previous ones
CS 414 Software Engineering I - Software Project Planning - December 12, 2002
10
Estimation Methods (continued)
• Examples of Decomposition Techniques– Problem-based: Use functional or object decomposition,
estimate each object, and sum the result• Estimates either use historical data or empirical techniques
– Process-based: Estimate effort and cost for each task of the process, then sum the result
• Estimates use historical data
– Main advantage of decomposition techniques:• Easier to estimate smaller parts
– Main disadvantage:• More variables involved means more potential errors
CS 414 Software Engineering I - Software Project Planning - December 12, 2002
11
Estimation Methods (continued)
• Empirical Models– Uses formulae of the form
g = f(x)
where g is the value to be estimated (cost, effort or project duration) and x is a parameter such as KLOC, FP or OP
• Most formulae involving KLOC consistently show that there is an almost linear relationship between KLOC and estimated total effort
– Main advantage of empirical models:• Easy to use
– Main disadvantage:• Models are usually derived from a limited number of projects, but
are used in a more generalized fashion
CS 414 Software Engineering I - Software Project Planning - December 12, 2002
12
Estimation Methods (continued)
• COCOMO– The most well-known empirical model – First introduced by Barry Boehm in 1981– Has since evolved into a more comprehensive model named
COCOMO IIhttp://sunset.usc.edu/research/cocomosuite/index.html
– COCOMO II has a variety of formulae• For various stages of the project
• For various size parameters (KLOC, FP, object points)
• For various types of project teams
CS 414 Software Engineering I - Software Project Planning - December 12, 2002
13
To Build or Not to Build?
• During early stages of planning, critical decisions must be made due to estimation results e.g.– Whether or not to bid on a contract, and if so, for how much– Whether or not build software, or to purchase existing software
that has much of the desired functionality– Whether or not to subcontract (outsource) some of the software
development
CS 414 Software Engineering I - Software Project Planning - December 12, 2002
14
The Project Plan
• Actual description of– The tasks to be done– Who is responsible for the tasks– What order tasks are to be accomplished– When the tasks will be accomplished, and how long they will
take
• The Project Plan is updated throughout the project
CS 414 Software Engineering I - Software Project Planning - December 12, 2002
15
The Project Plan
• For this course– CS 414 Project Plan Template– The Project Plan should be consistent with the Weekly Reports
– What tasks should go into your team’s Project Plan?
CS 414 Software Engineering I - Software Project Planning - December 12, 2002
16
Project Management
• Project planning is only part of the overall management of the project
• Other project management activities include– Risk analysis and management– Assigning and organizing project personnel– Project scheduling and tracking– Configuration management
CS 414 Software Engineering I - Software Project Planning - December 12, 2002
17
Project Management
• Project Management (across disciplines) is actually considered a whole separate field from software engineering
• The Project Management Institute (http://www.pmi.org) has actually developed a entire Body of Knowledge for project management
• However, there are some aspects of software project management that are unique to the management of software
CS 414 Software Engineering I - Software Project Planning - December 12, 2002
18
Summary
• The primary objective of software project planning is to plan for the successful on-time and within budget delivery of reliable software that meets the client’s needs
• Project scope should be determined through requirements analysis and used for planning by the project manager
• The primary resources needed for a software project are the actual developers
CS 414 Software Engineering I - Software Project Planning - December 12, 2002
19
Summary (continued)
• Various techniques are available for the estimation of project cost, total effort and project duration
• Early on in a project decisions must be made on whether or not to proceed with a project, and whether or not to buy or build the software
• The project tasks, schedule and resource allocation is all part of the Project Plan
• Project planning is only part of the project management process