Software Project Planning CS 414 Software Engineering I

  • Slides: 19
Download presentation
Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute

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

Outline • • Definition and Objectives Scope Resources Estimation Methods To Build or Not

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 2

Definition and Objectives • Software project planning is the process of – determining what

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 3

Scope • The scope of the project describes the desired functionality of the software,

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 4

Scope (continued) • So does that mean that planning should come after requirements? –

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 5

Resources • Human Resources – Includes “overhead” – By far the most dominant aspect

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 6

Estimation Methods • Estimation may be the most difficult task in an entire software

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 7

Estimation Methods (continued) • Estimation Techniques – – Using historical data Decomposition techniques Empirical

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 8

Estimation Methods (continued) • Historical Data – Pretty self-explanatory – Uses track record on

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 9

Estimation Methods (continued) • Examples of Decomposition Techniques – Problem-based: Use functional or object

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 10

Estimation Methods (continued) • Empirical Models – Uses formulae of the form g =

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 11

Estimation Methods (continued) • COCOMO – The most well-known empirical model – First introduced

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 II http: //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 12

To Build or Not to Build? • During early stages of planning, critical decisions

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 13

The Project Plan • Actual description of – – The tasks to be done

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 14

The Project Plan • For this course – CS 414 Project Plan Template –

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 15

Project Management • Project planning is only part of the overall management of the

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 16

Project Management • Project Management (across disciplines) is actually considered a whole separate field

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 17

Summary • The primary objective of software project planning is to plan for the

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 18

Summary (continued) • Various techniques are available for the estimation of project cost, total

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 CS 414 Software Engineering I - Software Project Planning - December 12, 2002 19