Software Engineering (CSI 321) Project Planning & Estimation 1.

Slides:



Advertisements
Similar presentations
Estimation for Software Projects
Advertisements

PERENCANAAN PROYEK PERANGKAT LUNAK Nur Cahyo Wibowo, S.Kom, M.Kom.
Metrics. A Good Manager Measures measurement What do we use as a basis? size? size? function? function? project metrics process metrics process product.
Metrics for Process and Projects
Chapter 26 Estimation for Software Projects
Chapter 5 Software Project Planning
Developed by Reneta Barneva, SUNY Fredonia Software Project Planning.
Software Project Planning CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 12, 2002.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
A Good Manager Measures
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
SOFTWARE PROJECT PLANNING
Software Project Planning Infsy 570 Dr. R. Ocker.
Project Tracking and Scheduling Infsy 570 Dr. R. Ocker.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 Project Planning CIS 375 Bruce R. Maxim UM-Dearborn.
Project Planning Instructor: Dr. Jerry Gao. Project Planning Jerry Gao, Ph.D. Jan Software Scope - Obtaining Information Necessary for Scope -
Software Engineering: A Practitioner’s Approach
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Project Management
Software Project Estimation Determining the Cost of Your Project.
1 COSC 4406 Software Engineering COSC 4406 Software Engineering Haibin Zhu, Ph.D. Dept. of Computer Science and mathematics, Nipissing University, 100.
Software Project Management
Chapter 6 : Software Metrics
Project Management Estimation. LOC and FP Estimation –Lines of code and function points were described as basic data from which productivity metrics can.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Lecture 17: Chapter 26 Estimation for Software Projects Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman.
1 Chapter 23 Estimation for Software Projects. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for.
Software Project Management Lecture # 3. Outline Chapter 22- “Metrics for Process & Projects”  Measurement  Measures  Metrics  Software Metrics Process.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 Chapter 5 Software Project Planning. 2 Software Project Planning The overall goal of project planning is to establish a pragmatic strategy for controlling,
Developed by Reneta Barneva, SUNY Fredonia Software Project Planning.
Software Engineering Software Project Planning. Objectives 1.To introduce project planning. 2.To examine the stages of project planning: scoping, estimation,
Project Planning and Estimation
Quality Software Project Management Software Size and Reuse Estimating.
Software Engineering Lecture 5 Software Project Planning 1.
SEG3300 A&B W2004R.L. Probert1 COCOMO Models Ognian Kabranov.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
SOFTWARE PROCESS AND PROJECT METRICS. Topic Covered  Metrics in the process and project domains  Process, project and measurement  Process Metrics.
Estimation for Software Projects 1. Software Project Planning 2 The overall goal of project planning is to establish a pragmatic strategy for controlling,
Empirical Estimation Models Based upon historic data Basic Structure E = A + B * (ev) C where A, B, c are empirical constants ‘ev’ is the effort in terms.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Project Management Lecture # 6. Outline Recap Remaining Topics of Chapter 23 Project Scheduling (Chapter 24)
1 Software Project Planning Software project planning encompasses five major activities –Estimation, scheduling, risk analysis, quality management planning,
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
Chapter 23 Estimation Software Engineering: A Practitioner’s Approach 6 th Edition Roger S. Pressman.
Software Project Management
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
CIS 4251 / CIS 5930 SOFTWARE DEVELOPMENT Fall 1999 Sept. 1, 1999 Marge Holtsinger.
Software project management 3rd Umer khalid Lecturer University of Lahore Sargodha campus.
INFSY 570 DR. R. OCKER Software Project Planning.
بشرا رجائی برآورد هزینه نرم افزار.
Software cost and effort estimation will never be an exact science. Estimation is very difficult to do, but is often needed Too many variables can affect.
1 These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
Chapter 33 Estimation for Software Projects
Project Cost Management
Chapter 5 Software Project Planning
For University Use Only
Estimation for Software Projects
Software Engineering (CSI 321)
Software Project Sizing and Cost Estimation
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Software Project Estimation
REKAYASA PERANGKAT LUNAK
Software Project Planning &
COCOMO Models.
Chapter 33 Estimation for Software Projects
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Chapter 26 Estimation for Software Projects.
SOFTWARE ESTIMATION 1. Estimation for Software Projects -Project planning -Scope and feasibility -Project resources -Estimation of project cost and effort.
Presentation transcript:

Software Engineering (CSI 321) Project Planning & Estimation 1

Introduction Software project management begins with a set of activities that are collectively called project planning. The software project planner must estimate three things before a project begins: – How long it will take? – How much effort will be required? – How many people will be involved? In addition, the planner must predict the resources (h/w & s/w) that will be required and the risk involved. 2

Introduction Software project planning encompasses five major activities – 1)Estimation 2)Scheduling 3)Risk analysis 4)Quality management planning 5)Change management planning 3

Project Planning The overall goal of project planning is to establish a logical strategy for controlling, tracking, and monitoring a complex technical project. Why? –So that end result gets done on time, with quality! 4

The Project Planning Process The objective of software project planning is to provide a framework that enables the manager to make reasonable estimates of resources, cost, and schedule. The project plan must be adapted and updated as the project proceeds. – The more you know, the better you estimate. So, update your estimates as the project progresses. 5

6 Task Set for Project Planning 1)Establish project scope 2)Determine feasibility 3)Analyze risks 4)Define required resources – Determine human resources required – Define reusable software resources – Identify environmental resources

7 Task Set for Project Planning 5) Estimate Cost and Effort – Decompose the problem – Develop two or more estimates using size, function points, process tasks or use-cases – Reconcile the estimates 6) Develop a project Schedule – Establish a meaningful task set – Define a task network – Use scheduling tools to develop a timeline chart – Define schedule tracking mechanisms

8 Estimation Estimation involves determining how much money, effort, resources and time it will take to build a specific software. Estimation of resources, cost, and schedule for a software engineering effort requires: – Experience – Access to good historical information (metrics) – The courage to commit to quantitative predictions when qualitative information is all that exists Estimation carries inherent risk and this risk leads to uncertainty.

To Understand Scope... Understand the customers needs Understand the business context Understand the project boundaries Understand the customer’s motivation Understand the likely paths for change Understand that... Even when you understand, nothing is guaranteed! 9

Software Scope Software scope describes: – Functions and features that are to be delivered to end-users – Data that are input and output – “Content” that is presented to users as a consequence of using the software – Performance, constraints, interfaces, and reliability that bound the system. Scope is defined using one of two techniques: 1)A narrative description of software scope is developed after communication with all stakeholders. 2)A set of use-cases is developed by end-users. 10

Feasibility Once software scope is well-understood, it is necessary to determine the feasibility of the software. Project feasibility is important, BUT a consideration of business need is MORE important. Why?!!? ==> It does no good to build a high-tech system that no one wants! Feasibility study is a crucial part of the estimation process. – A study that determines whether a requested system makes economic, technical and operational sense for an organization – Conducted by the Project Manager – Takes place before the system is constructed 11

Feasibility Software feasibility has four solid dimensions – 1)Technology 2)Finance 3)Time 4)Resources Scoping is not enough. Once scope is understood, the software team & others must work to determine if it can be done within these dimensions. This is a crucial part of estimation process (but often overlooked). 12

13 Project Resources

Resource Estimation The software project planner must conduct an estimation of the resources required to accomplish the software development effort. Three major categories of software engineering resources – 1)People(Human Resources) 2)Reusable software components 3)Development environment (hardware & software tools) Each of the resources is specified with four characteristics – – Description of the resource – A statement of availability – When the resource will be required – Duration of time that resource will be applied 14

Resource Estimation 1)Human Resources – Number of people required and skills needed to complete the development project, location of human resources 2)Reusable Software Resources – Off-the-shelf components – Full-experience components – Partial-experience components – New components 3)Environmental Resources – Hardware and software required during the development process 15

Software Project Estimation Project scope must be explicitly defined Task and/or functional decomposition is necessary Historical measures (metrics) are very helpful At least two different techniques should be used Remember that uncertainty is inherent in the estimation process 16

Estimation Options  To achieve reliable cost & effort estimates, a number of options arise – 1)Delay estimation until late in the project – not practical 2)Base estimates on similar projects already completed – work reasonably well 3)Use simple decomposition techniques to estimate project cost and effort 4)Use empirical models for software cost and effort estimation 17

Estimation Techniques 1)Past (similar) project experience 2)Decomposition technique – task breakdown and effort estimates – size (e.g., LOC, FP) estimates 3)Empirical techniques use empirically derived expressions for effort & time estimation 18

Decomposition Techniques Size – Lines of code (LOC) – direct approach – Function point(FP) – indirect approach Software sizing – Fuzzy Logic – Function Point calculation – Standard component – % Change Process-based estimation – Decomposition based on tasks required to complete the software process framework 19

Conventional Methods: LOC/FP Approach Compute LOC/FP using estimates of information domain values Use historical data to build estimates for the project 20

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) An algorithmic software cost estimation model developed by Barry Boehm. The model uses a basic regression formula, with parameters that are derived from historical project data and current project characteristics. Dynamic Estimation Models – Usually takes time or development phase into account – Software Equation Model 21

The 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. 22

A decision tree helps “Make/Buy Decision” 23

Computing Expected Cost expected cost = (path probability) x (estimated path cost) (path probability) x (estimated path cost) i i For example, the expected cost to build is: expected cost = 0.30($380K)+0.70($450K) build = $429 K Similarly, expected cost = $382K reuse expected cost = $267K buy 24 expected cost = $410K contract

The Decision Making Process Cost is NOT the only criterion to consider while making a decision. Many other criteria (not just cost ) must be considered during the decision making process. – Availability – Experience of the developer/vendor/contractor – Conformance to requirements – Local “politics” – Likelihood of change 25

Outsourcing  What is outsourcing? Outsourcing is the practice of turning over responsibility of some or all of an organization's information systems applications and operations to an outside firm. – Hiring an external vendor, developer, or service provider to create the system – Requires least amount of resources and little in-house experience – Gives access to greater resources and experience – Can be a good alternative for a new system – Has become quite popular in recent years 26

Outsourcing  What are the reasons to outsource? – Cost-effective – Take advantage of economies of scale – Free up internal resources – Reduce time to market – Increase process efficiencies – System development is a non-core activity for the organization 27

Outsourcing  What are the possible risks in outsourcing? Risks include possibly – Losing confidential information – Losing control over future development – Losing learning opportunities – Expertise is transferred to the outside organization 28

Project Estimation: Summary Software cost & effort estimation will never be an exact science, because too many variables involved – – Human – Technical – Environmental – Political But a combination of good historical data and systematic techniques can improve estimation accuracy. 29