SlideShare ist ein Scribd-Unternehmen logo
1 von 29
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
project
people
skills
number
location
reusable
softwareOTS
components
full-experience
components
new
components
part.-experience
components
environment
hardware
software
tools
network
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
1) Reusable Software Resources
– Off-the-shelf components
– Full-experience components
– Partial-experience components
– New components
1) 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
1) Base estimates on similar projects already completed
– work reasonably well
1) Use simple decomposition techniques to estimate project
cost and effort
2) 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
1) 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
system Xsystem X
reusereuse
simple (0.30)simple (0.30)
difficult (0.70)difficult (0.70)
minorminor changeschanges
(0.40)(0.40)
majormajor
changeschanges
(0.60)(0.60)
simple (0.20)simple (0.20)
complex (0.80)complex (0.80)
majormajor changeschanges (0.30)(0.30)
minorminor changeschanges
(0.70)(0.70)
$380,000$380,000
$450,000$450,000
$275,000$275,000
$310,000$310,000
$490,000$490,000
$210,000$210,000
$400,000$400,000
buybuy
contractcontract
without changes (0.60)without changes (0.60)
with changes (0.40)with changes (0.40)
$350,000$350,000
$500,000$500,000
buildbuild
Computing Expected Cost
expected cost =expected cost = (path probability) x (estimated path cost)(path probability) x (estimated path cost)
ii ii
For example, the expected cost to build is:For example, the expected cost to build is:
expected cost = 0.30($380K)+0.70($450K)expected cost = 0.30($380K)+0.70($450K)
buildbuild
= $429 K= $429 K
Similarly,Similarly,
expected cost = $382Kexpected cost = $382K
reusereuse
expected cost = $267Kexpected cost = $267K
buybuy
24
expected costexpected cost = $410K= $410K
contractcontract
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

Weitere ähnliche Inhalte

Was ist angesagt?

Software estimation
Software estimationSoftware estimation
Software estimation
Md Shakir
 
Delphi cost estimation model
Delphi cost estimation modelDelphi cost estimation model
Delphi cost estimation model
Shashwat Shriparv
 
Metrics for project size estimation
Metrics for project size estimationMetrics for project size estimation
Metrics for project size estimation
Nur Islam
 

Was ist angesagt? (20)

Spm unit2
Spm unit2Spm unit2
Spm unit2
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation Techniques
 
Spm unit 3
Spm unit 3Spm unit 3
Spm unit 3
 
Software estimation
Software estimationSoftware estimation
Software estimation
 
Spm unit 1
Spm unit 1Spm unit 1
Spm unit 1
 
Delphi cost estimation model
Delphi cost estimation modelDelphi cost estimation model
Delphi cost estimation model
 
COCOMO model
COCOMO modelCOCOMO model
COCOMO model
 
Algorithmic Software Cost Modeling
Algorithmic Software Cost ModelingAlgorithmic Software Cost Modeling
Algorithmic Software Cost Modeling
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
Introduction to Software Project Management
Introduction to Software Project ManagementIntroduction to Software Project Management
Introduction to Software Project Management
 
COCOMO Model in software project management
COCOMO Model in software project managementCOCOMO Model in software project management
COCOMO Model in software project management
 
Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
 
MG6088 SOFTWARE PROJECT MANAGEMENT
MG6088 SOFTWARE PROJECT MANAGEMENTMG6088 SOFTWARE PROJECT MANAGEMENT
MG6088 SOFTWARE PROJECT MANAGEMENT
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Fundamental design concepts
Fundamental design conceptsFundamental design concepts
Fundamental design concepts
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
Chapter 13 software testing strategies
Chapter 13 software testing strategiesChapter 13 software testing strategies
Chapter 13 software testing strategies
 
Software Reliability
Software ReliabilitySoftware Reliability
Software Reliability
 
A presentation on software crisis
A presentation on software crisisA presentation on software crisis
A presentation on software crisis
 
Metrics for project size estimation
Metrics for project size estimationMetrics for project size estimation
Metrics for project size estimation
 

Ähnlich wie Software Engineering (Project Planning & Estimation)

SE_Module1new.ppt
SE_Module1new.pptSE_Module1new.ppt
SE_Module1new.ppt
ADARSHN40
 
Software project plannings
Software project planningsSoftware project plannings
Software project plannings
Aman Adhikari
 

Ähnlich wie Software Engineering (Project Planning & Estimation) (20)

Software engineering 8 Software project planning
Software engineering 8 Software project planningSoftware engineering 8 Software project planning
Software engineering 8 Software project planning
 
project planning-estimation
project planning-estimationproject planning-estimation
project planning-estimation
 
SE - Lecture 11 - Software Project Estimation.pptx
SE - Lecture 11 - Software Project Estimation.pptxSE - Lecture 11 - Software Project Estimation.pptx
SE - Lecture 11 - Software Project Estimation.pptx
 
Softwareproject planning
Softwareproject planningSoftwareproject planning
Softwareproject planning
 
Software Project Management
Software Project ManagementSoftware Project Management
Software Project Management
 
SE_Module1new.ppt
SE_Module1new.pptSE_Module1new.ppt
SE_Module1new.ppt
 
3. Lect 29_ 30_ 32 Project Planning.pptx
3. Lect 29_ 30_ 32 Project Planning.pptx3. Lect 29_ 30_ 32 Project Planning.pptx
3. Lect 29_ 30_ 32 Project Planning.pptx
 
project planning components.pdf
project planning components.pdfproject planning components.pdf
project planning components.pdf
 
5_6134023428304274682.pptx
5_6134023428304274682.pptx5_6134023428304274682.pptx
5_6134023428304274682.pptx
 
Managing software project, software engineering
Managing software project, software engineeringManaging software project, software engineering
Managing software project, software engineering
 
Software estimation models ii lec .05
Software estimation models ii lec .05Software estimation models ii lec .05
Software estimation models ii lec .05
 
Seminar on Project Management by Rj
Seminar on Project Management by RjSeminar on Project Management by Rj
Seminar on Project Management by Rj
 
SPM 3.pdf
SPM 3.pdfSPM 3.pdf
SPM 3.pdf
 
Software project plannings
Software project planningsSoftware project plannings
Software project plannings
 
Software project plannings
Software project planningsSoftware project plannings
Software project plannings
 
CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5CS8494 SOFTWARE ENGINEERING Unit-5
CS8494 SOFTWARE ENGINEERING Unit-5
 
Chapter 2.ppt
Chapter 2.pptChapter 2.ppt
Chapter 2.ppt
 
3wis_2.pdf
3wis_2.pdf3wis_2.pdf
3wis_2.pdf
 
Lecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptxLecture 1 - Requirement Engineering.pptx
Lecture 1 - Requirement Engineering.pptx
 
Scope of software engineering
Scope of software engineeringScope of software engineering
Scope of software engineering
 

Mehr von ShudipPal

Mehr von ShudipPal (16)

Software Engineering (Testing Overview)
Software Engineering (Testing Overview)Software Engineering (Testing Overview)
Software Engineering (Testing Overview)
 
Software Engineering (Requirements Engineering & Software Maintenance)
Software Engineering (Requirements Engineering  & Software Maintenance)Software Engineering (Requirements Engineering  & Software Maintenance)
Software Engineering (Requirements Engineering & Software Maintenance)
 
Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)
 
Software Engineering (Testing Activities, Management, and Automation)
Software Engineering (Testing Activities, Management, and Automation)Software Engineering (Testing Activities, Management, and Automation)
Software Engineering (Testing Activities, Management, and Automation)
 
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
 
Software Engineering (Testing techniques)
Software Engineering (Testing techniques)Software Engineering (Testing techniques)
Software Engineering (Testing techniques)
 
Software Engineering (Software Quality Assurance)
Software Engineering (Software Quality Assurance)Software Engineering (Software Quality Assurance)
Software Engineering (Software Quality Assurance)
 
Software Engineering (Metrics for Process and Projects)
Software Engineering (Metrics for Process and Projects)Software Engineering (Metrics for Process and Projects)
Software Engineering (Metrics for Process and Projects)
 
Software Engineering (Risk Management)
Software Engineering (Risk Management)Software Engineering (Risk Management)
Software Engineering (Risk Management)
 
Software Engineering (Project Management )
Software Engineering (Project  Management )Software Engineering (Project  Management )
Software Engineering (Project Management )
 
Software Engineering (An Agile View of Process)
Software Engineering (An Agile View of Process)Software Engineering (An Agile View of Process)
Software Engineering (An Agile View of Process)
 
Software Engineering (Process Models)
Software Engineering (Process Models)Software Engineering (Process Models)
Software Engineering (Process Models)
 
Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
 
Software Engineering (Introduction)
Software Engineering (Introduction)Software Engineering (Introduction)
Software Engineering (Introduction)
 

Kürzlich hochgeladen

Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 

Kürzlich hochgeladen (20)

Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 

Software Engineering (Project Planning & Estimation)

  • 1. Software Engineering (CSI 321) Project Planning & Estimation 1
  • 2. 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
  • 3. Introduction • Software project planning encompasses five major activities – 1) Estimation 2) Scheduling 3) Risk analysis 4) Quality management planning 5) Change management planning 3
  • 4. 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
  • 5. 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. 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. 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. 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.
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 14. 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
  • 15. Resource Estimation 1) Human Resources – Number of people required and skills needed to complete the development project, location of human resources 1) Reusable Software Resources – Off-the-shelf components – Full-experience components – Partial-experience components – New components 1) Environmental Resources – Hardware and software required during the development process 15
  • 16. 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
  • 17. Estimation Options  To achieve reliable cost & effort estimates, a number of options arise – 1) Delay estimation until late in the project – not practical 1) Base estimates on similar projects already completed – work reasonably well 1) Use simple decomposition techniques to estimate project cost and effort 2) Use empirical models for software cost and effort estimation 17
  • 18. Estimation Techniques 1) Past (similar) project experience 2) Decomposition technique – task breakdown and effort estimates – size (e.g., LOC, FP) estimates 1) Empirical techniques use empirically derived expressions for effort & time estimation 18
  • 19. 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
  • 20. Conventional Methods: LOC/FP Approach • Compute LOC/FP using estimates of information domain values • Use historical data to build estimates for the project 20
  • 21. 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
  • 22. 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
  • 23. A decision tree helps “Make/Buy Decision” 23 system Xsystem X reusereuse simple (0.30)simple (0.30) difficult (0.70)difficult (0.70) minorminor changeschanges (0.40)(0.40) majormajor changeschanges (0.60)(0.60) simple (0.20)simple (0.20) complex (0.80)complex (0.80) majormajor changeschanges (0.30)(0.30) minorminor changeschanges (0.70)(0.70) $380,000$380,000 $450,000$450,000 $275,000$275,000 $310,000$310,000 $490,000$490,000 $210,000$210,000 $400,000$400,000 buybuy contractcontract without changes (0.60)without changes (0.60) with changes (0.40)with changes (0.40) $350,000$350,000 $500,000$500,000 buildbuild
  • 24. Computing Expected Cost expected cost =expected cost = (path probability) x (estimated path cost)(path probability) x (estimated path cost) ii ii For example, the expected cost to build is:For example, the expected cost to build is: expected cost = 0.30($380K)+0.70($450K)expected cost = 0.30($380K)+0.70($450K) buildbuild = $429 K= $429 K Similarly,Similarly, expected cost = $382Kexpected cost = $382K reusereuse expected cost = $267Kexpected cost = $267K buybuy 24 expected costexpected cost = $410K= $410K contractcontract
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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