SE Software Project Management 150407
-
Upload
bharat-chawda -
Category
Technology
-
view
290 -
download
1
description
Transcript of SE Software Project Management 150407
Software Project Management
by:Bharat V. Chawda
Computer Engineering Department,BBIT, VVNagar
Overview Introduction Responsibilities of SW Project
Manager Metrics for Size Estimation Project Estimation Technique Scheduling Risk Management
(As per GTU Curriculum – Diploma in Computer/IT Engineering)
Based on Books:1. Fundamentals of Software Engineering – by Rajib Mall2. Software Engineering: A Practitioner’s Approach – by Roger
Pressman
Introduction: SPM SPM: Software Project Management Why required?
Several SW projects have failed due to faulty SW project management practices.
So, it is imp : learn : latest SPM techniques
Goal “To enable a group of SW developers
to work efficiently towards successful completion of the project.”
Responsibilities: SW Prj Manager Project Proposal Writing Project Cost Estimation Scheduling Project Staffing (Resourcing) Risk Management Project Monitoring and Control Software Process Tailoring Software Configuration Management Interfacing with Clients Managerial Report Writing and
Presentations
Responsibilities: Categories (i) Project Planning
What? Estimate several char of project: size, effort,
cost, duration Plan project activities based on estimations
When? After feasibility study phase, and before requirements analysis & specification
phase
Responsibilities: Categories (ii) Proj Monitoring & Control
Activities What?
Ensure that the development proceeds as per plan.
When? Once the development activities start.
Skills: SW Project Management Theoretical knowledge of different project
management techniques Good qualitative judgement Good decision making capabilities Good communication skills Ability to get work done Ability to track & control the progress of
proj Effective customer interaction Effective managerial presentations
Project Planning Activities
Estimation, Scheduling, Staffing, Risk Management, Miscellaneous plans (quality assurance, configuration)
Size Estimation
Effort Estimation Cost Estimation
Duration Estimation
Staffing Estimation
Scheduling
Metrics for Proj Size Estimation What is Project Size?
“A measure of the problem complexity in terms of
Effort and Time required to develop the product.”
Two metrics: LOC: Lines of Code FP: Function Point
LOC: Lines of Code
Simplest, Extremely Popular How project size is measured?
“Counting: Number of source instructions/lines in the developed program”
Comments, Header Lines, White spaces are ignored
Very simple at end; but very difficult at beginning
A systematic guess: Divide the problem into modules Each module into sub-modules, and so on, until sizes of leaf-level modules can be approximately
predicted.
LOC: Disadvantages
Size can vary with individual coding style
Measure of the coding activity alone
Efforts : to analyze, design, test etc : not considered
Correlates poorly with the quality and efficiency of the code
Larger code size = Better quality, ↑ efficiency? : No
LOC: Disadvantages (cont.)
Penalizes use of higher-level programming languages, code reuse, etc.
Discourages use of library functions, code reuse
Measures lexical/textual complexity only Structural or logical complexity not considered
Difficult to accurately estimate LOC from the problem specification
Not much useful for project planning
FP: Function Point Metric
Overcomes many of the shortcomings of LOC
Proposed by Albrecht in early 1980s Size can be estimated : Directly from the
problem specification Concept:
Size: depends on: No of different functions or features
Function: Transforms: Input Output Example: Book_Search: Keyword Book
Details
Unadjusted FP: Calculation
FP: Calculation
FP = UFP * TCF TCF: Technical Complexity Factor
Expresses overall impact of various 14 proj parameters
Ex: High transaction rates, response time, critical performance
Each parameter is assigned value from 0 to 6 0: not present / no influence; 6: strong influence Summed DI (total degree of influence) : 0 – 84 TCF = (0.65 + 0.01 * DI) : 0.65 – 1.35
FP: Disadvantage
Does not consider algorithmic complexity of a software/function
Two functions: FP same Different complexity
Example: Linear search v/s Binary search Feature Point Metric
Extension of function point metric Incorporates algorithmic complexity Complexity ↑ Size ↑
Project Estimation Techniques Estimation of various project parameters
is a basic project planning activity. Parameters:
Project Size; Effort required to develop software Project duration; Cost
Helps: To quote Project cost to customers + Scheduling + Resource Planning
Techniques: Empirical Estimation Techniques Heuristic Techniques Analytical Estimation Techniques
Empirical Estimation Techniques Makes an educated guess of the project
parameters Uses prior experience with development
of similar products Most techniques are based on: Common
Sense Two popular techniques:
Expert Judgement Technique Delphi Cost Estimation
Heuristic Techniques
Divides parameters into – Independent: Project Size Dependent: Effort, Duration, Cost
Assumes: relationships among different project parameters can be modeled using suitable mathematical expressions.
Two Classes: Single Variable Model Multivariable Model
Heuristic Techniques: Classes Single Variable Model
Estimated Parameter = c1 * ed1
Example 1: Effort = a1 * (KLOC)a2 Person-Months
Example 2: Tdev = b1 * (Effort)b2 Months COCOMO (COnstructive COst estimation MOdel)
Multivariable Model Estimated Parameter = c1 * (ep1)d1 + c2 *
(ep2)d2 +… c1, d1, c2, d2…: Influence of respective
parameters Intermediate COCOMO
Analytical Estimation Techniques Uses: Certain basic assumptions regarding
the project Total number of operators Total number of operands Total number of unique operators Total number of unique operands
Uses: certain scientific basis; Unlike – Emp, Heu
Halstead’s Software Science More suitable for estimating software
maintenance efforts
Scheduling
“Process of deciding which tasks would be taken up when for a SW development…”
What? Identify all the tasks needed to complete the
project Break down large tasks into small activities Determine the dependency among different
activities Establish the most likely estimates for time
durations Allocate resources to activities Plan the starting & ending dates for various
activities Determine critical path: determines duration
of proj
WBS: Work Breakdown Structure
MISApplication
RequirementSpecification
Design Code Test Document
DatabasePart
GUIPart
DatabasePart
GUIPart
WBS: Work Breakdown Structure Used to decompose a given task-set
recursively into small activities. Provides a notation to represent major
tasks… Tree like structure
Root: labeled by the problem name Node broken down smaller activity child Activity decomposed sub-activities: 2 week
leaf node
More decomposition with parallelism Better
But, requires more time: prepare & revise charts
Activity Networks
SRS15
DesignDatabase
45
Integrate and Test
120
Finish0
CodeDatabase
105
DesignGUI30
CodeGUI45
Write UserManual
60
Activity Networks
Activity NW = Activities in WBS + Interdependencies
Shows: Activities: in rectangles Their estimated times: along with activities Interdependencies: by arrows
How to estimate time?
Activity Networks: Example
Consider following five tasks with their durations and dependencies.
A: 10; B: 20; C: 30; D: 40; E: 50 A B; B C; A D; {C,D} E
Prepare an activity networks for these tasks.
CPM: Critical Path Method
MT: The minimum time to complete project
Maximum of all paths from start to finish ES: The earliest start time of a task
Maximum of all paths from start to this task EF: The earliest finish time
Sum of ES and duration of this task LS: The latest start time of a task
Diff: MT and max of all paths 4m this task to finish
LF: The latest finish time Diff: MT and max of all paths following this task to
finish ST: The slack time: LS – ES : LF – EF
CPM: Example
SRS15
DesignDatabase
45
Integrate and Test
120
Finish0
CodeDatabase
105
DesignGUI30
CodeGUI45
Write UserManual
60
CPM: Various Parameters
Project parameters for diff tasks of MIS:
Task (duration) ES EF LS LF STSpecification (15) 0 15 0 15 0
Design DB (45) 15 60 15 60 0
Design GUI (30) 15 45 90 120 75
Code DB (105) 60 165 60 165 0
Code GUI (45) 45 90 120 165 75
Integrate & Test (120) 165 285 165 285 0
Write User Manual (60) 15 75 225 285 210
Critical Task, Critical Path (???)
Gantt Charts – Example: MIS
Sp
Design DB
Design GUI
Code Database
Code GUI
Integration and Testing
Write U Manual
15 30 15 15 15 75 120 Time
Gantt Charts
Named after its developer: Henry Gantt Used to allocate resources to activities.
Resources: Staff, HW, SW
Gantt chart: Special types of Bar charts: Each bar Activity Bars are drawn along a time line Length of bar α Duration of time estimated for
activity Each bar consists of two parts: Shaded part: represents Estimated time White part: represents Slack time : latest time
by which a task must be finished
PERT: Proj Evaluation & Review Technique
SRS12,15,20
DesignDatabase40,45,62
Integrate and Test
100,120,140
Finish0
CodeDatabase
95,105,120
DesignGUI
24,30,38
CodeGUI
38,45,52
Write UserManual50,60,70
EstimatesPessimistic – MaxLikelyOptimistic – Min
Project Monitoring & Control SPM monitors project: ensure: it is
progressing as per plan Milestones: Completion of important
activity Example: Completion & review of SRS;
Completion of coding & unit testing M reached: represents measurable
progress M delayed: requires corrective actions Chart used: PERT Path: Set of consecutive Nodes and Edges
in the graph from starting node to last node
Critical Path: every milestone is critical; >1
Tools: MS-Project
Risk Management
Risk: “Any anticipated unfavorable
event/circumstance that can occurwhile project is underway…”
Risk ≠ Existing Problem Aim: Reduce the impact of all kinds of
risks… Imp: to identify, assess, and contain risk
(Why?) Three important activities:
Risk Identification Risk Assessment Risk Containment
Risk Identification
All risks that are likely to affect project must be identified and listed.
Examples: Key personnel might leave the organization Third party outsourced modules: out of time,
quality↓
Three Categories Project Risks Technical Risks Business Risks
Risk Identification: Categories Project Risks
Budget, Schedule, Personnel, Resource, Customer-related
Imp: Schedule Slippage: SW is Intangible/Invisible Difficult to monitor and control: Manufacturing proj
Technical Risks Design, Impl, Interfacing, Testing, Maintenance Specification ambiguous, incomplete,
changing Technical uncertainty, obsolescence Reason: Development team’s insufficient
knowledge Business Risks
Building an excellent product that no one wants Losing budgetary or personnel commitments
Company Disaster List
Risk Assessment
Objective: To rank the risks in terms of their damage
causing potential.
Priority of each risk: p = r * s
where, p = priority of risk
r = probability/likelihood of risk becoming true
s = consequence of the prob associated: risk
Find priority of each identified risk Assess them
Risk Containment
Steps Arrange in order each identified & assessed risk
most damaging, most likely Identify & apply containment strategy: Diff risk
diff containment procedure
Main 3 strategies: Avoid the Risk Transfer the Risk Risk Reduction
Risk Containment: Strategies Avoid the Risk
Discussing with cust : change req : to reduce the scope of the work
Giving incentives to developers : to avoid risk of manpower turnover
Transfer the Risk Getting risky component developed by a third
party Buying insurance cover
Risk Reduction Planning ways to contain the damage due to a
risk Plan to recruit new personnel; Documents;
Prototype
Risk Containment: Strategies Risk Leverage
Risk exposure b4 reduction – Risk exposure after reduction
Cost of Reduction