SE_Lec 12_ Project Planning

Amr E. Mohamed
Amr E. MohamedFaculty of Engineering um Faculty of Engineering, Helwan University, Egypt
1Chapter 22 Project management
 Software pricing
 Plan-driven development
 Project scheduling
 Agile planning
 Estimation techniques
 Project planning involves breaking down the work into
parts and assign these to project team members,
anticipate problems that might arise and prepare
tentative solutions to those problems.
 The project plan, which is created at the start of a
project, is used to communicate how the work will be
done to the project team and customers, and to help
assess progress on the project.
 At the proposal stage, when you are bidding for a
contract to develop or provide a software system.
 During the project startup phase, when you have to plan
who will work on the project, how the project will be
broken down into increments, how resources will be
allocated across your company, etc.
 Periodically throughout the project, when you modify
your plan in the light of experience gained and
information from monitoring the progress of the work.
 Planning may be necessary with only outline software
requirements.
 The aim of planning at this stage is to provide
information that will be used in setting a price for the
system to customers.
Chapter 22 Project management 6
 Estimates are made to discover the cost, to the
developer, of producing a software system.
 You take into account, hardware, software, travel, training
and effort costs.
 There is not a simple relationship between the
development cost and the price charged to the customer.
 Broader organisational, economic, political and business
considerations influence the price charged.
Factor Description
Market opportunity A development organization may quote a low price because
it wishes to move into a new segment of the software
market. Accepting a low profit on one project may give the
organization the opportunity to make a greater profit later.
The experience gained may also help it develop new
products.
Cost estimate
uncertainty
If an organization is unsure of its cost estimate, it may
increase its price by a contingency over and above its
normal profit.
Contractual terms A customer may be willing to allow the developer to retain
ownership of the source code and reuse it in other projects.
The price charged may then be less than if the software
source code is handed over to the customer.
Factor Description
Requirements volatility If the requirements are likely to change, an organization
may lower its price to win a contract. After the contract is
awarded, high prices can be charged for changes to the
requirements.
Financial health Developers in financial difficulty may lower their price to
gain a contract. It is better to make a smaller than normal
profit or break even than to go out of business. Cash flow
is more important than profit in difficult economic times.
Chapter 22 Project management 10
 Plan-driven or plan-based development is an approach
to software engineering where the development process
is planned in detail.
 Plan-driven development is based on engineering project
management techniques and is the ‘traditional’ way of
managing large software development projects.
 A project plan is created that records the work to be
done, who will do it, the development schedule and the
work products.
 Managers use the plan to support project decision
making and as a way of measuring progress.
 The arguments in favor of a plan-driven approach are
that early planning allows organizational issues
(availability of staff, other projects, etc.) to be closely
taken into account, and that potential problems and
dependencies are discovered before the project starts,
rather than once the project is underway.
 The principal argument against plan-driven development
is that many early decisions have to be revised because
of changes to the environment in which the software is to
be developed and used.
 In a plan-driven development project, a project plan sets
out the resources available to the project, the work
breakdown and a schedule for carrying out the work.
 Plan sections
 Introduction
 Project organization
 Risk analysis
 Hardware and software resource requirements
 Work breakdown
 Project schedule
 Monitoring and reporting mechanisms
Plan Description
Quality plan Describes the quality procedures and standards that
will be used in a project.
Validation plan Describes the approach, resources, and schedule used
for system validation.
Configuration management plan Describes the configuration management procedures
and structures to be used.
Maintenance plan Predicts the maintenance requirements, costs, and
effort.
Staff development plan Describes how the skills and experience of the project
team members will be developed.
 Project planning is an iterative process that starts when
you create an initial project plan during the project
startup phase.
 Plan changes are inevitable.
 As more information about the system and the project
team becomes available during the project, you should
regularly revise the plan to reflect requirements, schedule
and risk changes.
 Changing business goals also leads to changes in project
plans. As business goals change, this could affect all
projects, which may then have to be re-planned.
SE_Lec 12_ Project Planning
Chapter 22 Project management 17
 Project scheduling is the process of deciding how the
work in a project will be organized as separate tasks,
and when and how these tasks will be executed.
 You estimate the calendar time needed to complete each
task, the effort required and who will work on the tasks
that have been identified.
 You also have to estimate the resources needed to
complete each task, such as the disk space required on
a server, the time required on specialized hardware,
such as a simulator, and what the travel budget will be.
 Split project into tasks and estimate time and resources
required to complete each task.
 Organize tasks concurrently to make optimal
use of workforce.
 Minimize task dependencies to avoid delays
caused by one task waiting for another to complete.
 Dependent on project managers intuition and
experience.
 Milestones are points in the schedule against which you
can assess progress, for example, the handover of the
system for testing.
 Deliverables are work products that are delivered to the
customer, e.g. a requirements document for the system.
SE_Lec 12_ Project Planning
 Estimating the difficulty of problems and hence the cost
of developing a solution is hard.
 Productivity is not proportional to the number of people
working on a task.
 Adding people to a late project makes it later because of
communication overheads.
 The unexpected always happens. Always allow
contingency in planning.
 Graphical notations are normally used to illustrate the
project schedule.
 These show the project breakdown into tasks. Tasks
should not be too small. They should take about a week
or two.
 Bar charts are the most commonly used representation
for project schedules. They show the schedule as
activities or resources against time.
Task Effort (person-
days)
Duration (days) Dependencies
T1 15 10
T2 8 15
T3 20 15 T1 (M1)
T4 5 10
T5 5 10 T2, T4 (M3)
T6 10 5 T1, T2 (M4)
T7 25 20 T1 (M1)
T8 75 25 T4 (M2)
T9 10 15 T3, T6 (M5)
T10 20 15 T7, T8 (M6)
T11 10 10 T9 (M7)
T12 20 10 T10, T11 (M8)
SE_Lec 12_ Project Planning
SE_Lec 12_ Project Planning
Chapter 22 Project management 27
 Agile methods of software development are iterative
approaches where the software is developed and
delivered to customers in increments.
 Unlike plan-driven approaches, the functionality of these
increments is not planned in advance but is decided
during the development.
 The decision on what to include in an increment depends
on progress and on the customer’s priorities.
 The customer’s priorities and requirements change so it
makes sense to have a flexible plan that can
accommodate these changes.
 Release planning, which looks ahead for several months
and decides on the features that should be included in a
release of a system.
 Iteration planning, which has a shorter term outlook, and
focuses on planning the next increment of a system. This
is typically 2-4 weeks of work for the team.
SE_Lec 12_ Project Planning
 The system specification in XP is based on user stories that reflect
the features that should be included in the system.
 The project team read and discuss the stories and rank them in
order of the amount of time they think it will take to implement the
story.
 Release planning involves selecting and refining the stories that will
reflect the features to be implemented in a release of a system and
the order in which the stories should be implemented.
 Stories to be implemented in each iteration are chosen, with the
number of stories reflecting the time to deliver an iteration (usually 2
or 3 weeks).
 The price charged for a system does not just depend on its
estimated development costs; it may be adjusted depending on the
market and organizational priorities.
 Plan-driven development is organized around a complete project
plan that defines the project activities, the planned effort, the activity
schedule and who is responsible for each activity.
 Project scheduling involves the creation of graphical representations
the project plan. Bar charts show the activity duration and staffing
timelines, are the most commonly used schedule representations.
 The XP planning game involves the whole team in project planning.
The plan is developed incrementally and, if problems arise, is
adjusted. Software functionality is reduced instead of delaying
delivery of an increment.
Chapter 22 Project management 33
 Process Measures
 Time, effort, cost
 Productivity
 Earned value
 Fault, failure, change
 Product Measures
 Functionality (FP)
 Size
 Price
 Modularity
 Other ..
Software System (Functions & Quality)
Calendar time Cost
No notion of unpredictable events here
Failure, Fault
LOC, FP
 Days, weeks, months, on calendar
 Virtual, from project start
 Month1, month2, … etc
 Typically used in planning
 Actual
 September 12
 Typically used in controlling
 Time taken by staff to complete a task
 Depends on calendar time and on people employed
 Measured in person hours (IEEE 1045)
 person day, person month, person year depend on
national and corporation parameters
 Converts in cost
 Staff cost = person hours * cost per hour
 1 person works 6 hours  6 ph
 2 persons work 3 hour  6 ph
 6 persons work 1 hour  6ph
 Always linked
 Mathematical link. 6 ph can last
 6 calendar hours if 1 person works
 3 calendar hours if 2 persons work in parallel
 1 calendar hour if 6 persons work in parallel
 Practical constraint
 Is it feasible?
 One woman makes a baby in 9 months
 9 women make a baby in one month?
 Cost to user
 acquisition, maintenance, normal operation, initial
operation (training, overheads)
 Cost to vendor
 Staff
• Person hour * cost per hour
 W / wout overheads
 hardware, software
 offices, telephone, ...
 Upfront costs
 market analysis, feasibility studies
 development costs
 maintenance costs
 Hardware (target platform)
 Hardware (development platform)
 Personnel (by far main cost in most cases)
 salaries, office space, travel ..
 Technical
 administrative
 Estimates are made to discover the cost, to the
developer, of producing a software system
 There is not a simple relationship between the
development cost and the price charged to the customer
 Broader organizational, economic, political and business
considerations influence the price charged
 Of source code
 LOC (Lines of Code)
 Of documents
 Number of pages
 Number of words, characters, figures, tables
 Of entire project
 Function points (see later)
 LOC
• In this case LOCs virtually include all documents (non code)
produced in the application
• Ex. project produces 10 documents (1000 pages) and 1000
LOCs. By convention project size is 1000 LOCs
 What to count
 w/wout comments
 w/wout declarations
 w/wout blank lines
 What to include or exclude
 Libraries, calls to services etc
 Reused components
 Comparison for different languages not meaningful
 C vs Java? Java vs C++? C vs ASM?
 Output/effort
 What is output in software?
 Size/effort = LOC / effort
 Functionality/effort = FP/effort
 Object Points / effort
 The lower level the language, the more productive the
programmer
 The same functionality takes more code to implement in a
lower-level language than in a high-level language
 The more verbose the programmer, the higher the
productivity
 Measures of productivity based on lines of code suggest
that programmers who write verbose code are more
productive than programmers who write compact code
SE_Lec 12_ Project Planning
SE_Lec 12_ Project Planning
 Real-time embedded systems, 40- 160 LOC/P-month
 Systems programs , 150-400 LOC / P-month
 Commercial applications, 200-800 LOC/P-month
 Source: Sommerville
 All metrics based on size/effort are flawed because they
do not take quality into account
 Productivity may generally be increased at the cost of
quality
 It is not clear how productivity/quality metrics are related
 If change is constant then an approach based on
counting lines of code is not meaningful
 Failure
 malfunction perceived by the user
 Fault
 Defect in the system, may cause failure or not
 Data to collect
 calendar time, project time, execution time
 effect (bad data, loss of data, ...)
 location (product type, id)
 gravity (human injury, economic loss, ..)
 user profile
 related fault(s)
 Measures
 classification, count per class
 average time intervals
 Measures
 n open failures
 duration/effort to close a failure
 n failures discovered per V & V activity
 fault/failure density
• faults/failures per module
• faults/failures per fp
• faults/failures per loc
 changes per document
 Good: <1fault/1KLOC
 Bad: >10fault/1KLOC
 Faults found in operation, 12 months after release
 Prerelease:
 10-30 fault/1KLOC
 Factor 10 between pre and post release
Chapter 22 Project management 57
 Once a process model is finalized for a software development,
software project management begins with a set of activities that are
collectively called Project Planning.
 Project planning encompasses five major activities
 Estimation
 Scheduling
 Risk analysis
 Quality Management planning
 Change Management planning
 Before the project can begin, the software team should estimate
 Cost for the work to be done
 Resources required,
 Time that will elapse from start to finish
Chapter 22 Project management 58
 Estimation for a software engineering requires
 Experience
 Access to good historical information (metrics from past
projects)
 Courage to commit to quantitative predictions when
qualitative information exists.
 Factors that affect reliability of estimation
 Project Complexity
 Project Size
 Degree of structural uncertainty
Chapter 22 Project management 59
 Past (Similar) project experience
 Base estimation on similar previous projects if the customer
business conditions, the software engineering environment,
deadlines are roughly equivalent.
 Conventional estimation – Decomposition Techniques
 Task breakdown and effort estimates
 Size (e.g. of Code (LOC), Function Point (FP)) estimates.
 Empirical Models
 Uses empirically derived formulas to predict effort as a function
of Lines of Codes or Function Point or Object Point
 Automated Tools
 Used to implement a specific empirical model
Chapter 22 Project management 60
SE_Lec 12_ Project Planning
 Since EEM reflects the population of projects from which it
has been derived, this model is domain sensitive.
 Structure of Estimation Models
𝑬 = 𝑨 + 𝑩 ∗ 𝒆 𝒗
𝑪
 Where 𝐴, 𝐵, 𝐶 are empirically derived constants
 𝐸: is effort in Person-Months
 𝑒 𝑣: is the estimation variable (either LOC or FP or OP)
 Majority of estimation models have some form of project
adjustment component that enables E to be adjusted by other
project characteristics (e.g., Problems Complexity, Staff
Experience, development environment)
Chapter 22 Project management 62
 COnstructive COst MOdel – II by Barry Boehm
 Application Composition model: used during the early
stages software engineering.
 Early design stage model: used once requirements have
been stabilized and basic software architecture has been
established.
 Post-Architecture-stage model: used during the
construction of the software.
 The sizing information followed by this model is the
indirect software measure object points.
Chapter 22 Project management 63
 Object Points is computed using counts of the number of
 Screens (at the user interface)
 Reports
 Components likely to be required to build the application.
 Each object instance (e.g., a screen or report) is classified into
one of three complexity levels (i.e., Simple, Medium, or Difficult).
 In essence, complexity is a function of
 Number and source of the client and server data tables that are
required to generate the screen or report.
 Number of views or sections presented as part of the screen or
report.
Chapter 22 Project management 64
 Once complexity is determined, the number of screen, reports,
components are weighted according to following table.
 The object point count is then determined by multiplying the original
number of object instances by the weighting factor in the figure and
summing to obtain a total object point count.
 When component based development or general software reuse is
to be applied, the percent of reuse (%reuse) is estimated and the
object point count is adjusted:
𝑁𝑂𝑃 = 𝑜𝑏𝑗𝑒𝑐𝑡 𝑝𝑜𝑖𝑛𝑡𝑠 ∗ [(100 − %𝑟𝑒𝑢𝑠𝑒)/100]
 Where NOP is defined as new object points 65
Object Type
Complexity Weight
Simple Medium Difficult
Screens 1 2 3
Reports 2 5 8
3GL Component 10
 Now the estimate of project effort is computed as follows
𝑬𝒔𝒕𝒊𝒎𝒂𝒕𝒆𝒅 𝑬𝒇𝒇𝒐𝒓𝒕 =
𝑵𝑶𝑷
𝑷𝑹𝑶𝑫
 Productivity rate can be derived from following table based on
developer experience and organization maturity:
Chapter 22 Project management 66
Developer’s Experience/capability Very low Low Normal High Very High
Environment maturity/capability Very low Low Normal High Very High
PROD 4 7 13 25 50
 Use COCOMO-II model to estimate the effort required to build
software for a simple ATM that produces 12 screen, 10
reports, and will require approximately 80% as new software
components. Assume average complexity and average
developer/environment maturity. Use the application
composition model with object point
 Given
Chapter 22 Project management 67
Object Count Complexity Weight Factor Total Objects
Screen 12 Simple 1 12
Report 10 Simple 2 20
3GL Components 0 N/A N/A 0
Total Objects Points: 32
 It is given that 80% of components have to be newly
developed. So remaining 20% can be reused.
 Now compute new object points as
 𝑵𝑶𝑷 = 𝒐𝒃𝒋𝒆𝒄𝒕 𝒑𝒐𝒊𝒏𝒕𝒔 ∗ [(𝟏𝟎𝟎 − %𝒓𝒆𝒖𝒔𝒆)/𝟏𝟎𝟎]
 𝑵𝑶𝑷 = 𝟑𝟐 ∗ [(𝟏𝟎𝟎 − 𝟐𝟎)/𝟏𝟎𝟎]
 𝑵𝑶𝑷 = 𝟐𝟓. 𝟔 𝒐𝒃𝒋𝒆𝒄𝒕 𝒑𝒐𝒊𝒏𝒕𝒔
 Since productivity is average, we can assume PROD = 13
 Hence,
 effort = NOP/PROD = 25.6 / 13 = 1.96 person-months
Chapter 22 Project management 68
 Estimation techniques for software may be experience-
based, where managers judge the effort required, or
algorithmic, where the effort required is computed from
other estimated project parameters.
 The COCOMO II costing model is an algorithmic cost
model that uses project, product, hardware and
personnel attributes as well as product size and
complexity attributes to derive a cost estimate.
Chapter 22 Project management 70
1 von 70

Recomendados

Spm ap-network model- von
Spm ap-network model-Spm ap-network model-
Spm ap-network model-Kanchana Devi
6.6K views32 Folien
Pass 1 flowchart von
Pass 1 flowchartPass 1 flowchart
Pass 1 flowchartNamisha Sharma
27.5K views3 Folien
Spm software effort estimation von
Spm software effort estimationSpm software effort estimation
Spm software effort estimationKanchana Devi
19.6K views29 Folien
Selection of an appropriate project approach von
Selection of an appropriate project approachSelection of an appropriate project approach
Selection of an appropriate project approachtumetr1
7.3K views28 Folien
Methods for handling deadlock von
Methods for handling deadlockMethods for handling deadlock
Methods for handling deadlocksangrampatil81
1.2K views32 Folien
Spm unit 3 von
Spm unit 3Spm unit 3
Spm unit 3sweetyammu
55.9K views59 Folien

Más contenido relacionado

Was ist angesagt?

Communication in Distributed Systems von
Communication in Distributed SystemsCommunication in Distributed Systems
Communication in Distributed SystemsDilum Bandara
923 views35 Folien
Pressman ch-3-prescriptive-process-models von
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelssaurabhshertukde
12.1K views26 Folien
Unit 4- Software Engineering System Model Notes von
Unit 4- Software Engineering System Model Notes Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes arvind pandey
7.7K views69 Folien
Analysis modeling & scenario based modeling von
Analysis modeling &  scenario based modeling Analysis modeling &  scenario based modeling
Analysis modeling & scenario based modeling Benazir Fathima
5.9K views36 Folien
Chapter 01 software engineering pressman von
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressmanRohitGoyal183
11.7K views24 Folien
Scheduling algorithms von
Scheduling algorithmsScheduling algorithms
Scheduling algorithmsChankey Pathak
28.6K views35 Folien

Was ist angesagt?(20)

Communication in Distributed Systems von Dilum Bandara
Communication in Distributed SystemsCommunication in Distributed Systems
Communication in Distributed Systems
Dilum Bandara923 views
Pressman ch-3-prescriptive-process-models von saurabhshertukde
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
saurabhshertukde12.1K views
Unit 4- Software Engineering System Model Notes von arvind pandey
Unit 4- Software Engineering System Model Notes Unit 4- Software Engineering System Model Notes
Unit 4- Software Engineering System Model Notes
arvind pandey7.7K views
Analysis modeling & scenario based modeling von Benazir Fathima
Analysis modeling &  scenario based modeling Analysis modeling &  scenario based modeling
Analysis modeling & scenario based modeling
Benazir Fathima5.9K views
Chapter 01 software engineering pressman von RohitGoyal183
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
RohitGoyal18311.7K views
Introduction to Software Project Management von Saadi Jadoon
Introduction to Software Project ManagementIntroduction to Software Project Management
Introduction to Software Project Management
Saadi Jadoon448 views
Real-Time Scheduling von sathish sak
Real-Time SchedulingReal-Time Scheduling
Real-Time Scheduling
sathish sak11.2K views
Page replacement von sashi799
Page replacementPage replacement
Page replacement
sashi79953.3K views
Object Oriented Analysis Design using UML von Ajit Nayak
Object Oriented Analysis Design using UMLObject Oriented Analysis Design using UML
Object Oriented Analysis Design using UML
Ajit Nayak7.5K views
Resource Allocation In Software Project Management von Syed Hassan Ali
Resource Allocation In Software Project ManagementResource Allocation In Software Project Management
Resource Allocation In Software Project Management
Syed Hassan Ali6.5K views
Language and Processors for Requirements Specification von kirupasuchi1996
Language and Processors for Requirements SpecificationLanguage and Processors for Requirements Specification
Language and Processors for Requirements Specification
kirupasuchi19968.7K views
Memory management von Rajni Sirohi
Memory managementMemory management
Memory management
Rajni Sirohi70.3K views
First order predicate logic (fopl) von chauhankapil
First order predicate logic (fopl)First order predicate logic (fopl)
First order predicate logic (fopl)
chauhankapil2K views
Clock synchronization in distributed system von Sunita Sahu
Clock synchronization in distributed systemClock synchronization in distributed system
Clock synchronization in distributed system
Sunita Sahu28.7K views

Destacado

Planning And Project Management von
Planning And Project ManagementPlanning And Project Management
Planning And Project ManagementST. JAMES COLLEGE
23.7K views51 Folien
Se2 lec 13 uml state machines von
Se2 lec 13  uml state machinesSe2 lec 13  uml state machines
Se2 lec 13 uml state machinesAmr E. Mohamed
1.3K views30 Folien
SE2018_Lec 16_ Architectural Design von
SE2018_Lec 16_ Architectural DesignSE2018_Lec 16_ Architectural Design
SE2018_Lec 16_ Architectural DesignAmr E. Mohamed
799 views50 Folien
SE2_Lec 16_ Software Design von
SE2_Lec 16_ Software DesignSE2_Lec 16_ Software Design
SE2_Lec 16_ Software DesignAmr E. Mohamed
448 views30 Folien
SE_Lec 10_ Software Code of Ethics von
SE_Lec 10_ Software Code of EthicsSE_Lec 10_ Software Code of Ethics
SE_Lec 10_ Software Code of EthicsAmr E. Mohamed
994 views39 Folien
Project Planning Basics - Everything you need to start managing a project von
Project Planning Basics - Everything you need to start managing a projectProject Planning Basics - Everything you need to start managing a project
Project Planning Basics - Everything you need to start managing a projectKeely Killpack, PhD
29.5K views10 Folien

Destacado(20)

Se2 lec 13 uml state machines von Amr E. Mohamed
Se2 lec 13  uml state machinesSe2 lec 13  uml state machines
Se2 lec 13 uml state machines
Amr E. Mohamed1.3K views
SE2018_Lec 16_ Architectural Design von Amr E. Mohamed
SE2018_Lec 16_ Architectural DesignSE2018_Lec 16_ Architectural Design
SE2018_Lec 16_ Architectural Design
Amr E. Mohamed799 views
SE_Lec 10_ Software Code of Ethics von Amr E. Mohamed
SE_Lec 10_ Software Code of EthicsSE_Lec 10_ Software Code of Ethics
SE_Lec 10_ Software Code of Ethics
Amr E. Mohamed994 views
Project Planning Basics - Everything you need to start managing a project von Keely Killpack, PhD
Project Planning Basics - Everything you need to start managing a projectProject Planning Basics - Everything you need to start managing a project
Project Planning Basics - Everything you need to start managing a project
Keely Killpack, PhD29.5K views
SE_Lec 04_Agile Software Development von Amr E. Mohamed
SE_Lec 04_Agile Software DevelopmentSE_Lec 04_Agile Software Development
SE_Lec 04_Agile Software Development
Amr E. Mohamed392 views
SE_Lec 00_ Software Engineering 1 von Amr E. Mohamed
SE_Lec 00_ Software Engineering 1SE_Lec 00_ Software Engineering 1
SE_Lec 00_ Software Engineering 1
Amr E. Mohamed611 views
DSP_FOEHU - Lec 02 - Frequency Domain Analysis of Signals and Systems von Amr E. Mohamed
DSP_FOEHU - Lec 02 - Frequency Domain Analysis of Signals and SystemsDSP_FOEHU - Lec 02 - Frequency Domain Analysis of Signals and Systems
DSP_FOEHU - Lec 02 - Frequency Domain Analysis of Signals and Systems
Amr E. Mohamed817 views
Dsp foehu lec 01 - signals and systems von Amr E. Mohamed
Dsp foehu   lec 01 - signals and systemsDsp foehu   lec 01 - signals and systems
Dsp foehu lec 01 - signals and systems
Amr E. Mohamed1.3K views
SE_Lec 05_System Modelling and Context Model von Amr E. Mohamed
SE_Lec 05_System Modelling and Context ModelSE_Lec 05_System Modelling and Context Model
SE_Lec 05_System Modelling and Context Model
Amr E. Mohamed3K views
SE_Lec 09_ UML Behaviour Diagrams von Amr E. Mohamed
SE_Lec 09_ UML Behaviour DiagramsSE_Lec 09_ UML Behaviour Diagrams
SE_Lec 09_ UML Behaviour Diagrams
Amr E. Mohamed2.5K views
SE_Lec 02_Software Life Cycle Models von Amr E. Mohamed
SE_Lec 02_Software Life Cycle ModelsSE_Lec 02_Software Life Cycle Models
SE_Lec 02_Software Life Cycle Models
Amr E. Mohamed304 views
SE_Lec 01_ Introduction to Software Enginerring von Amr E. Mohamed
SE_Lec 01_ Introduction to Software EnginerringSE_Lec 01_ Introduction to Software Enginerring
SE_Lec 01_ Introduction to Software Enginerring
Amr E. Mohamed750 views
DSP_FOEHU - Lec 05 - Frequency-Domain Representation of Discrete Time Signals von Amr E. Mohamed
DSP_FOEHU - Lec 05 - Frequency-Domain Representation of Discrete Time SignalsDSP_FOEHU - Lec 05 - Frequency-Domain Representation of Discrete Time Signals
DSP_FOEHU - Lec 05 - Frequency-Domain Representation of Discrete Time Signals
Amr E. Mohamed1.8K views
SE_Lec 03_Requirements Analysis and Specification von Amr E. Mohamed
SE_Lec 03_Requirements Analysis and SpecificationSE_Lec 03_Requirements Analysis and Specification
SE_Lec 03_Requirements Analysis and Specification
Amr E. Mohamed564 views

Similar a SE_Lec 12_ Project Planning

SE18_Lec 13_ Project Planning von
SE18_Lec 13_ Project PlanningSE18_Lec 13_ Project Planning
SE18_Lec 13_ Project PlanningAmr E. Mohamed
550 views57 Folien
Ch23 von
Ch23Ch23
Ch23Keith Jasper Mier
193 views53 Folien
Ch23-Software Engineering 9 von
Ch23-Software Engineering 9Ch23-Software Engineering 9
Ch23-Software Engineering 9Ian Sommerville
3.9K views53 Folien
MIS Project management von
MIS Project managementMIS Project management
MIS Project managementJosephine Claire
5.5K views77 Folien
Computing Project von
Computing Project Computing Project
Computing Project Er. Nawaraj Bhandari
1.1K views38 Folien
Lecture6 von
Lecture6Lecture6
Lecture6soloeng
2.1K views27 Folien

Similar a SE_Lec 12_ Project Planning(20)

Lecture6 von soloeng
Lecture6Lecture6
Lecture6
soloeng2.1K views
Project Planning in Software Engineering von Fáber D. Giraldo
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software Engineering
Fáber D. Giraldo57.4K views
SWE-401 - 3. Software Project Management von ghayour abbas
SWE-401 - 3. Software Project ManagementSWE-401 - 3. Software Project Management
SWE-401 - 3. Software Project Management
ghayour abbas182 views
Software Project Management (SPM) von RubySaud
Software Project Management (SPM)Software Project Management (SPM)
Software Project Management (SPM)
RubySaud410 views
Project Plan For Project Management Project von Susan Green
Project Plan For Project Management ProjectProject Plan For Project Management Project
Project Plan For Project Management Project
Susan Green5 views

Más de Amr E. Mohamed

Dsp 2018 foehu - lec 10 - multi-rate digital signal processing von
Dsp 2018 foehu - lec 10 - multi-rate digital signal processingDsp 2018 foehu - lec 10 - multi-rate digital signal processing
Dsp 2018 foehu - lec 10 - multi-rate digital signal processingAmr E. Mohamed
3.2K views44 Folien
Dcs lec03 - z-analysis of discrete time control systems von
Dcs   lec03 - z-analysis of discrete time control systemsDcs   lec03 - z-analysis of discrete time control systems
Dcs lec03 - z-analysis of discrete time control systemsAmr E. Mohamed
4.9K views53 Folien
Dcs lec02 - z-transform von
Dcs   lec02 - z-transformDcs   lec02 - z-transform
Dcs lec02 - z-transformAmr E. Mohamed
2.9K views50 Folien
Dcs lec01 - introduction to discrete-time control systems von
Dcs   lec01 - introduction to discrete-time control systemsDcs   lec01 - introduction to discrete-time control systems
Dcs lec01 - introduction to discrete-time control systemsAmr E. Mohamed
2.6K views12 Folien
DDSP_2018_FOEHU - Lec 10 - Digital Signal Processing Applications von
DDSP_2018_FOEHU - Lec 10 - Digital Signal Processing ApplicationsDDSP_2018_FOEHU - Lec 10 - Digital Signal Processing Applications
DDSP_2018_FOEHU - Lec 10 - Digital Signal Processing ApplicationsAmr E. Mohamed
2.1K views125 Folien
DSP_2018_FOEHU - Lec 07 - IIR Filter Design von
DSP_2018_FOEHU - Lec 07 - IIR Filter DesignDSP_2018_FOEHU - Lec 07 - IIR Filter Design
DSP_2018_FOEHU - Lec 07 - IIR Filter DesignAmr E. Mohamed
8K views27 Folien

Más de Amr E. Mohamed(20)

Dsp 2018 foehu - lec 10 - multi-rate digital signal processing von Amr E. Mohamed
Dsp 2018 foehu - lec 10 - multi-rate digital signal processingDsp 2018 foehu - lec 10 - multi-rate digital signal processing
Dsp 2018 foehu - lec 10 - multi-rate digital signal processing
Amr E. Mohamed3.2K views
Dcs lec03 - z-analysis of discrete time control systems von Amr E. Mohamed
Dcs   lec03 - z-analysis of discrete time control systemsDcs   lec03 - z-analysis of discrete time control systems
Dcs lec03 - z-analysis of discrete time control systems
Amr E. Mohamed4.9K views
Dcs lec01 - introduction to discrete-time control systems von Amr E. Mohamed
Dcs   lec01 - introduction to discrete-time control systemsDcs   lec01 - introduction to discrete-time control systems
Dcs lec01 - introduction to discrete-time control systems
Amr E. Mohamed2.6K views
DDSP_2018_FOEHU - Lec 10 - Digital Signal Processing Applications von Amr E. Mohamed
DDSP_2018_FOEHU - Lec 10 - Digital Signal Processing ApplicationsDDSP_2018_FOEHU - Lec 10 - Digital Signal Processing Applications
DDSP_2018_FOEHU - Lec 10 - Digital Signal Processing Applications
Amr E. Mohamed2.1K views
DSP_2018_FOEHU - Lec 07 - IIR Filter Design von Amr E. Mohamed
DSP_2018_FOEHU - Lec 07 - IIR Filter DesignDSP_2018_FOEHU - Lec 07 - IIR Filter Design
DSP_2018_FOEHU - Lec 07 - IIR Filter Design
Amr E. Mohamed8K views
DSP_2018_FOEHU - Lec 06 - FIR Filter Design von Amr E. Mohamed
DSP_2018_FOEHU - Lec 06 - FIR Filter DesignDSP_2018_FOEHU - Lec 06 - FIR Filter Design
DSP_2018_FOEHU - Lec 06 - FIR Filter Design
Amr E. Mohamed3.9K views
SE2018_Lec-22_-Continuous-Integration-Tools von Amr E. Mohamed
SE2018_Lec-22_-Continuous-Integration-ToolsSE2018_Lec-22_-Continuous-Integration-Tools
SE2018_Lec-22_-Continuous-Integration-Tools
Amr E. Mohamed650 views
SE2018_Lec 21_ Software Configuration Management (SCM) von Amr E. Mohamed
SE2018_Lec 21_ Software Configuration Management (SCM)SE2018_Lec 21_ Software Configuration Management (SCM)
SE2018_Lec 21_ Software Configuration Management (SCM)
Amr E. Mohamed719 views
SE2018_Lec 18_ Design Principles and Design Patterns von Amr E. Mohamed
SE2018_Lec 18_ Design Principles and Design PatternsSE2018_Lec 18_ Design Principles and Design Patterns
SE2018_Lec 18_ Design Principles and Design Patterns
Amr E. Mohamed1.2K views
SE2018_Lec 20_ Test-Driven Development (TDD) von Amr E. Mohamed
SE2018_Lec 20_ Test-Driven Development (TDD)SE2018_Lec 20_ Test-Driven Development (TDD)
SE2018_Lec 20_ Test-Driven Development (TDD)
Amr E. Mohamed490 views
SE2018_Lec 19_ Software Testing von Amr E. Mohamed
SE2018_Lec 19_ Software TestingSE2018_Lec 19_ Software Testing
SE2018_Lec 19_ Software Testing
Amr E. Mohamed471 views
DSP_2018_FOEHU - Lec 08 - The Discrete Fourier Transform von Amr E. Mohamed
DSP_2018_FOEHU - Lec 08 - The Discrete Fourier TransformDSP_2018_FOEHU - Lec 08 - The Discrete Fourier Transform
DSP_2018_FOEHU - Lec 08 - The Discrete Fourier Transform
Amr E. Mohamed4.4K views
DSP_2018_FOEHU - Lec 05 - Digital Filters von Amr E. Mohamed
DSP_2018_FOEHU - Lec 05 - Digital FiltersDSP_2018_FOEHU - Lec 05 - Digital Filters
DSP_2018_FOEHU - Lec 05 - Digital Filters
Amr E. Mohamed2K views
DSP_2018_FOEHU - Lec 04 - The z-Transform von Amr E. Mohamed
DSP_2018_FOEHU - Lec 04 - The z-TransformDSP_2018_FOEHU - Lec 04 - The z-Transform
DSP_2018_FOEHU - Lec 04 - The z-Transform
Amr E. Mohamed10.6K views
DSP_2018_FOEHU - Lec 03 - Discrete-Time Signals and Systems von Amr E. Mohamed
DSP_2018_FOEHU - Lec 03 - Discrete-Time Signals and SystemsDSP_2018_FOEHU - Lec 03 - Discrete-Time Signals and Systems
DSP_2018_FOEHU - Lec 03 - Discrete-Time Signals and Systems
Amr E. Mohamed7.1K views
DSP_2018_FOEHU - Lec 02 - Sampling of Continuous Time Signals von Amr E. Mohamed
DSP_2018_FOEHU - Lec 02 - Sampling of Continuous Time SignalsDSP_2018_FOEHU - Lec 02 - Sampling of Continuous Time Signals
DSP_2018_FOEHU - Lec 02 - Sampling of Continuous Time Signals
Amr E. Mohamed3.7K views
SE2018_Lec 15_ Software Design von Amr E. Mohamed
SE2018_Lec 15_ Software DesignSE2018_Lec 15_ Software Design
SE2018_Lec 15_ Software Design
Amr E. Mohamed642 views

Último

SUGCON ANZ Presentation V2.1 Final.pptx von
SUGCON ANZ Presentation V2.1 Final.pptxSUGCON ANZ Presentation V2.1 Final.pptx
SUGCON ANZ Presentation V2.1 Final.pptxJack Spektor
22 views34 Folien
Generic or specific? Making sensible software design decisions von
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsBert Jan Schrijver
6 views60 Folien
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI... von
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...Marc Müller
37 views83 Folien
FIMA 2023 Neo4j & FS - Entity Resolution.pptx von
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptxNeo4j
7 views26 Folien
Airline Booking Software von
Airline Booking SoftwareAirline Booking Software
Airline Booking SoftwareSharmiMehta
6 views26 Folien
Sprint 226 von
Sprint 226Sprint 226
Sprint 226ManageIQ
5 views18 Folien

Último(20)

SUGCON ANZ Presentation V2.1 Final.pptx von Jack Spektor
SUGCON ANZ Presentation V2.1 Final.pptxSUGCON ANZ Presentation V2.1 Final.pptx
SUGCON ANZ Presentation V2.1 Final.pptx
Jack Spektor22 views
Generic or specific? Making sensible software design decisions von Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI... von Marc Müller
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Marc Müller37 views
FIMA 2023 Neo4j & FS - Entity Resolution.pptx von Neo4j
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptx
Neo4j7 views
Airline Booking Software von SharmiMehta
Airline Booking SoftwareAirline Booking Software
Airline Booking Software
SharmiMehta6 views
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports von Ra'Fat Al-Msie'deen
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug ReportsBushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
BushraDBR: An Automatic Approach to Retrieving Duplicate Bug Reports
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated... von TomHalpin9
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
Dev-HRE-Ops - Addressing the _Last Mile DevOps Challenge_ in Highly Regulated...
TomHalpin96 views
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J... von Deltares
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
Deltares9 views
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema von Deltares
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - GeertsemaDSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema
DSD-INT 2023 Delft3D FM Suite 2024.01 1D2D - Beta testing programme - Geertsema
Deltares17 views
Headless JS UG Presentation.pptx von Jack Spektor
Headless JS UG Presentation.pptxHeadless JS UG Presentation.pptx
Headless JS UG Presentation.pptx
Jack Spektor7 views
360 graden fabriek von info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info3349238 views
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme... von Deltares
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...
DSD-INT 2023 Salt intrusion Modelling of the Lauwersmeer, towards a measureme...
Deltares5 views
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ... von Deltares
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...
Deltares11 views
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the... von Deltares
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...
Deltares6 views

SE_Lec 12_ Project Planning

  • 1. 1Chapter 22 Project management
  • 2.  Software pricing  Plan-driven development  Project scheduling  Agile planning  Estimation techniques
  • 3.  Project planning involves breaking down the work into parts and assign these to project team members, anticipate problems that might arise and prepare tentative solutions to those problems.  The project plan, which is created at the start of a project, is used to communicate how the work will be done to the project team and customers, and to help assess progress on the project.
  • 4.  At the proposal stage, when you are bidding for a contract to develop or provide a software system.  During the project startup phase, when you have to plan who will work on the project, how the project will be broken down into increments, how resources will be allocated across your company, etc.  Periodically throughout the project, when you modify your plan in the light of experience gained and information from monitoring the progress of the work.
  • 5.  Planning may be necessary with only outline software requirements.  The aim of planning at this stage is to provide information that will be used in setting a price for the system to customers.
  • 6. Chapter 22 Project management 6
  • 7.  Estimates are made to discover the cost, to the developer, of producing a software system.  You take into account, hardware, software, travel, training and effort costs.  There is not a simple relationship between the development cost and the price charged to the customer.  Broader organisational, economic, political and business considerations influence the price charged.
  • 8. Factor Description Market opportunity A development organization may quote a low price because it wishes to move into a new segment of the software market. Accepting a low profit on one project may give the organization the opportunity to make a greater profit later. The experience gained may also help it develop new products. Cost estimate uncertainty If an organization is unsure of its cost estimate, it may increase its price by a contingency over and above its normal profit. Contractual terms A customer may be willing to allow the developer to retain ownership of the source code and reuse it in other projects. The price charged may then be less than if the software source code is handed over to the customer.
  • 9. Factor Description Requirements volatility If the requirements are likely to change, an organization may lower its price to win a contract. After the contract is awarded, high prices can be charged for changes to the requirements. Financial health Developers in financial difficulty may lower their price to gain a contract. It is better to make a smaller than normal profit or break even than to go out of business. Cash flow is more important than profit in difficult economic times.
  • 10. Chapter 22 Project management 10
  • 11.  Plan-driven or plan-based development is an approach to software engineering where the development process is planned in detail.  Plan-driven development is based on engineering project management techniques and is the ‘traditional’ way of managing large software development projects.  A project plan is created that records the work to be done, who will do it, the development schedule and the work products.  Managers use the plan to support project decision making and as a way of measuring progress.
  • 12.  The arguments in favor of a plan-driven approach are that early planning allows organizational issues (availability of staff, other projects, etc.) to be closely taken into account, and that potential problems and dependencies are discovered before the project starts, rather than once the project is underway.  The principal argument against plan-driven development is that many early decisions have to be revised because of changes to the environment in which the software is to be developed and used.
  • 13.  In a plan-driven development project, a project plan sets out the resources available to the project, the work breakdown and a schedule for carrying out the work.  Plan sections  Introduction  Project organization  Risk analysis  Hardware and software resource requirements  Work breakdown  Project schedule  Monitoring and reporting mechanisms
  • 14. Plan Description Quality plan Describes the quality procedures and standards that will be used in a project. Validation plan Describes the approach, resources, and schedule used for system validation. Configuration management plan Describes the configuration management procedures and structures to be used. Maintenance plan Predicts the maintenance requirements, costs, and effort. Staff development plan Describes how the skills and experience of the project team members will be developed.
  • 15.  Project planning is an iterative process that starts when you create an initial project plan during the project startup phase.  Plan changes are inevitable.  As more information about the system and the project team becomes available during the project, you should regularly revise the plan to reflect requirements, schedule and risk changes.  Changing business goals also leads to changes in project plans. As business goals change, this could affect all projects, which may then have to be re-planned.
  • 17. Chapter 22 Project management 17
  • 18.  Project scheduling is the process of deciding how the work in a project will be organized as separate tasks, and when and how these tasks will be executed.  You estimate the calendar time needed to complete each task, the effort required and who will work on the tasks that have been identified.  You also have to estimate the resources needed to complete each task, such as the disk space required on a server, the time required on specialized hardware, such as a simulator, and what the travel budget will be.
  • 19.  Split project into tasks and estimate time and resources required to complete each task.  Organize tasks concurrently to make optimal use of workforce.  Minimize task dependencies to avoid delays caused by one task waiting for another to complete.  Dependent on project managers intuition and experience.
  • 20.  Milestones are points in the schedule against which you can assess progress, for example, the handover of the system for testing.  Deliverables are work products that are delivered to the customer, e.g. a requirements document for the system.
  • 22.  Estimating the difficulty of problems and hence the cost of developing a solution is hard.  Productivity is not proportional to the number of people working on a task.  Adding people to a late project makes it later because of communication overheads.  The unexpected always happens. Always allow contingency in planning.
  • 23.  Graphical notations are normally used to illustrate the project schedule.  These show the project breakdown into tasks. Tasks should not be too small. They should take about a week or two.  Bar charts are the most commonly used representation for project schedules. They show the schedule as activities or resources against time.
  • 24. Task Effort (person- days) Duration (days) Dependencies T1 15 10 T2 8 15 T3 20 15 T1 (M1) T4 5 10 T5 5 10 T2, T4 (M3) T6 10 5 T1, T2 (M4) T7 25 20 T1 (M1) T8 75 25 T4 (M2) T9 10 15 T3, T6 (M5) T10 20 15 T7, T8 (M6) T11 10 10 T9 (M7) T12 20 10 T10, T11 (M8)
  • 27. Chapter 22 Project management 27
  • 28.  Agile methods of software development are iterative approaches where the software is developed and delivered to customers in increments.  Unlike plan-driven approaches, the functionality of these increments is not planned in advance but is decided during the development.  The decision on what to include in an increment depends on progress and on the customer’s priorities.  The customer’s priorities and requirements change so it makes sense to have a flexible plan that can accommodate these changes.
  • 29.  Release planning, which looks ahead for several months and decides on the features that should be included in a release of a system.  Iteration planning, which has a shorter term outlook, and focuses on planning the next increment of a system. This is typically 2-4 weeks of work for the team.
  • 31.  The system specification in XP is based on user stories that reflect the features that should be included in the system.  The project team read and discuss the stories and rank them in order of the amount of time they think it will take to implement the story.  Release planning involves selecting and refining the stories that will reflect the features to be implemented in a release of a system and the order in which the stories should be implemented.  Stories to be implemented in each iteration are chosen, with the number of stories reflecting the time to deliver an iteration (usually 2 or 3 weeks).
  • 32.  The price charged for a system does not just depend on its estimated development costs; it may be adjusted depending on the market and organizational priorities.  Plan-driven development is organized around a complete project plan that defines the project activities, the planned effort, the activity schedule and who is responsible for each activity.  Project scheduling involves the creation of graphical representations the project plan. Bar charts show the activity duration and staffing timelines, are the most commonly used schedule representations.  The XP planning game involves the whole team in project planning. The plan is developed incrementally and, if problems arise, is adjusted. Software functionality is reduced instead of delaying delivery of an increment.
  • 33. Chapter 22 Project management 33
  • 34.  Process Measures  Time, effort, cost  Productivity  Earned value  Fault, failure, change  Product Measures  Functionality (FP)  Size  Price  Modularity  Other ..
  • 35. Software System (Functions & Quality) Calendar time Cost No notion of unpredictable events here Failure, Fault LOC, FP
  • 36.  Days, weeks, months, on calendar  Virtual, from project start  Month1, month2, … etc  Typically used in planning  Actual  September 12  Typically used in controlling
  • 37.  Time taken by staff to complete a task  Depends on calendar time and on people employed  Measured in person hours (IEEE 1045)  person day, person month, person year depend on national and corporation parameters  Converts in cost  Staff cost = person hours * cost per hour
  • 38.  1 person works 6 hours  6 ph  2 persons work 3 hour  6 ph  6 persons work 1 hour  6ph
  • 39.  Always linked  Mathematical link. 6 ph can last  6 calendar hours if 1 person works  3 calendar hours if 2 persons work in parallel  1 calendar hour if 6 persons work in parallel  Practical constraint  Is it feasible?  One woman makes a baby in 9 months  9 women make a baby in one month?
  • 40.  Cost to user  acquisition, maintenance, normal operation, initial operation (training, overheads)  Cost to vendor  Staff • Person hour * cost per hour  W / wout overheads  hardware, software  offices, telephone, ...
  • 41.  Upfront costs  market analysis, feasibility studies  development costs  maintenance costs
  • 42.  Hardware (target platform)  Hardware (development platform)  Personnel (by far main cost in most cases)  salaries, office space, travel ..  Technical  administrative
  • 43.  Estimates are made to discover the cost, to the developer, of producing a software system  There is not a simple relationship between the development cost and the price charged to the customer  Broader organizational, economic, political and business considerations influence the price charged
  • 44.  Of source code  LOC (Lines of Code)  Of documents  Number of pages  Number of words, characters, figures, tables
  • 45.  Of entire project  Function points (see later)  LOC • In this case LOCs virtually include all documents (non code) produced in the application • Ex. project produces 10 documents (1000 pages) and 1000 LOCs. By convention project size is 1000 LOCs
  • 46.  What to count  w/wout comments  w/wout declarations  w/wout blank lines  What to include or exclude  Libraries, calls to services etc  Reused components  Comparison for different languages not meaningful  C vs Java? Java vs C++? C vs ASM?
  • 47.  Output/effort  What is output in software?  Size/effort = LOC / effort  Functionality/effort = FP/effort  Object Points / effort
  • 48.  The lower level the language, the more productive the programmer  The same functionality takes more code to implement in a lower-level language than in a high-level language  The more verbose the programmer, the higher the productivity  Measures of productivity based on lines of code suggest that programmers who write verbose code are more productive than programmers who write compact code
  • 51.  Real-time embedded systems, 40- 160 LOC/P-month  Systems programs , 150-400 LOC / P-month  Commercial applications, 200-800 LOC/P-month  Source: Sommerville
  • 52.  All metrics based on size/effort are flawed because they do not take quality into account  Productivity may generally be increased at the cost of quality  It is not clear how productivity/quality metrics are related  If change is constant then an approach based on counting lines of code is not meaningful
  • 53.  Failure  malfunction perceived by the user  Fault  Defect in the system, may cause failure or not
  • 54.  Data to collect  calendar time, project time, execution time  effect (bad data, loss of data, ...)  location (product type, id)  gravity (human injury, economic loss, ..)  user profile  related fault(s)  Measures  classification, count per class  average time intervals
  • 55.  Measures  n open failures  duration/effort to close a failure  n failures discovered per V & V activity  fault/failure density • faults/failures per module • faults/failures per fp • faults/failures per loc  changes per document
  • 56.  Good: <1fault/1KLOC  Bad: >10fault/1KLOC  Faults found in operation, 12 months after release  Prerelease:  10-30 fault/1KLOC  Factor 10 between pre and post release
  • 57. Chapter 22 Project management 57
  • 58.  Once a process model is finalized for a software development, software project management begins with a set of activities that are collectively called Project Planning.  Project planning encompasses five major activities  Estimation  Scheduling  Risk analysis  Quality Management planning  Change Management planning  Before the project can begin, the software team should estimate  Cost for the work to be done  Resources required,  Time that will elapse from start to finish Chapter 22 Project management 58
  • 59.  Estimation for a software engineering requires  Experience  Access to good historical information (metrics from past projects)  Courage to commit to quantitative predictions when qualitative information exists.  Factors that affect reliability of estimation  Project Complexity  Project Size  Degree of structural uncertainty Chapter 22 Project management 59
  • 60.  Past (Similar) project experience  Base estimation on similar previous projects if the customer business conditions, the software engineering environment, deadlines are roughly equivalent.  Conventional estimation – Decomposition Techniques  Task breakdown and effort estimates  Size (e.g. of Code (LOC), Function Point (FP)) estimates.  Empirical Models  Uses empirically derived formulas to predict effort as a function of Lines of Codes or Function Point or Object Point  Automated Tools  Used to implement a specific empirical model Chapter 22 Project management 60
  • 62.  Since EEM reflects the population of projects from which it has been derived, this model is domain sensitive.  Structure of Estimation Models 𝑬 = 𝑨 + 𝑩 ∗ 𝒆 𝒗 𝑪  Where 𝐴, 𝐵, 𝐶 are empirically derived constants  𝐸: is effort in Person-Months  𝑒 𝑣: is the estimation variable (either LOC or FP or OP)  Majority of estimation models have some form of project adjustment component that enables E to be adjusted by other project characteristics (e.g., Problems Complexity, Staff Experience, development environment) Chapter 22 Project management 62
  • 63.  COnstructive COst MOdel – II by Barry Boehm  Application Composition model: used during the early stages software engineering.  Early design stage model: used once requirements have been stabilized and basic software architecture has been established.  Post-Architecture-stage model: used during the construction of the software.  The sizing information followed by this model is the indirect software measure object points. Chapter 22 Project management 63
  • 64.  Object Points is computed using counts of the number of  Screens (at the user interface)  Reports  Components likely to be required to build the application.  Each object instance (e.g., a screen or report) is classified into one of three complexity levels (i.e., Simple, Medium, or Difficult).  In essence, complexity is a function of  Number and source of the client and server data tables that are required to generate the screen or report.  Number of views or sections presented as part of the screen or report. Chapter 22 Project management 64
  • 65.  Once complexity is determined, the number of screen, reports, components are weighted according to following table.  The object point count is then determined by multiplying the original number of object instances by the weighting factor in the figure and summing to obtain a total object point count.  When component based development or general software reuse is to be applied, the percent of reuse (%reuse) is estimated and the object point count is adjusted: 𝑁𝑂𝑃 = 𝑜𝑏𝑗𝑒𝑐𝑡 𝑝𝑜𝑖𝑛𝑡𝑠 ∗ [(100 − %𝑟𝑒𝑢𝑠𝑒)/100]  Where NOP is defined as new object points 65 Object Type Complexity Weight Simple Medium Difficult Screens 1 2 3 Reports 2 5 8 3GL Component 10
  • 66.  Now the estimate of project effort is computed as follows 𝑬𝒔𝒕𝒊𝒎𝒂𝒕𝒆𝒅 𝑬𝒇𝒇𝒐𝒓𝒕 = 𝑵𝑶𝑷 𝑷𝑹𝑶𝑫  Productivity rate can be derived from following table based on developer experience and organization maturity: Chapter 22 Project management 66 Developer’s Experience/capability Very low Low Normal High Very High Environment maturity/capability Very low Low Normal High Very High PROD 4 7 13 25 50
  • 67.  Use COCOMO-II model to estimate the effort required to build software for a simple ATM that produces 12 screen, 10 reports, and will require approximately 80% as new software components. Assume average complexity and average developer/environment maturity. Use the application composition model with object point  Given Chapter 22 Project management 67 Object Count Complexity Weight Factor Total Objects Screen 12 Simple 1 12 Report 10 Simple 2 20 3GL Components 0 N/A N/A 0 Total Objects Points: 32
  • 68.  It is given that 80% of components have to be newly developed. So remaining 20% can be reused.  Now compute new object points as  𝑵𝑶𝑷 = 𝒐𝒃𝒋𝒆𝒄𝒕 𝒑𝒐𝒊𝒏𝒕𝒔 ∗ [(𝟏𝟎𝟎 − %𝒓𝒆𝒖𝒔𝒆)/𝟏𝟎𝟎]  𝑵𝑶𝑷 = 𝟑𝟐 ∗ [(𝟏𝟎𝟎 − 𝟐𝟎)/𝟏𝟎𝟎]  𝑵𝑶𝑷 = 𝟐𝟓. 𝟔 𝒐𝒃𝒋𝒆𝒄𝒕 𝒑𝒐𝒊𝒏𝒕𝒔  Since productivity is average, we can assume PROD = 13  Hence,  effort = NOP/PROD = 25.6 / 13 = 1.96 person-months Chapter 22 Project management 68
  • 69.  Estimation techniques for software may be experience- based, where managers judge the effort required, or algorithmic, where the effort required is computed from other estimated project parameters.  The COCOMO II costing model is an algorithmic cost model that uses project, product, hardware and personnel attributes as well as product size and complexity attributes to derive a cost estimate.
  • 70. Chapter 22 Project management 70