Unit 5 SPM .Image - .Marked
Unit 5 SPM .Image - .Marked
Software project management : Project managment, Project planning and control, Cost
estimation, Project scheduling using PERT and GANTT charts, Software configuration
management
Software Project Management (SPM)
What is Project?
• A project is a set of inputs and outputs which are required to achieve a goal.
• Once a project is found to be feasible, software project managers undertake project planning.
• Project planning is undertaken and completed even before any development activity starts.
• For good project development, some teams split the project into specific tasks so they can
manage responsibility and utilize team strengths.
Software Project Management (SPM)
Project Manager
• A project manager is a character who has the overall responsibility for the planning, design,
execution, monitoring, controlling and closure of a project.
• A project manager represents an essential role in the achievement of the projects.
Role of a Project Manager:
• Leader
• Medium
• Mentor
Software Project Management (SPM)
Activities
• Project planning and Tracking
• Project Resource Management
• Scope Management
• Estimation Management
• Project Risk Management
• Scheduling Management
• Project Communication Management
• Configuration Management
Software Project Management (SPM)
Software Project Management Plan (SPMP)
1. Introduction
(a) Objectives
(b) Major Functions
(c) Performance Issues
(d) Management and Technical Constraints
2. Project Estimates
(a) Historical Data Used
(b) Estimation Techniques Used
(c) Effort, Resource, Cost, and Project Duration Estimates
3. Schedule
(a) Work Breakdown Structure
(b) Task Network Representation
(c) Gantt Chart Representation
(d) PERT Chart Representation
Software Project Management (SPM)
Heuristic Techniques
• It assumes that the relationships among the different project parameters can be modelled using
suitable mathematical expressions.
• Once the basic (independent) parameters are known, the other (dependent) parameters can be
easily determined by substituting the value of the basic parameters in the mathematical
expression.
• Two classes:
1) single variable model and
2) multi variable model
Software Project Management (SPM)
Estimated Parameter =
• e is the characteristic of the software which has already been estimated (independent variable)
• c1 and d1 are constants determined using data collected from past projects (historical data).
Software Project Management (SPM)
• Where e1, e2, … are the basic (independent) characteristics of the software already estimated,
and c1, c2, d1, d2, … are constants.
• Multivariable estimation models are expected to give more accurate estimates.
COCOMO Model
COCOMO Model
• The COCOMO (Constructive Cost Model) is one of the most popularly used software cost
estimation models i.e. it estimates or predicts the effort required for the project, total project
cost and scheduled time for the project.
• Cocomo (Constructive Cost Model) is a regression model based on LOC, i.e number of Lines
of Code
• It was developed by a software engineer Barry Boehm in 1981.
• The COCOMO estimates the cost for software product development in terms of effort
(resources required to complete the project work) and schedule (time required to complete the
project work) based on the size of the software product.
• It estimates the required number of Man-Months (MM) for the full development of software
products.
COCOMO Model
COCOMO Model
• It aims at estimating small to medium sized software projects.
COCOMO Model
Project Types
• Organic Project
It belongs to small & simple software projects which are handled by a small team with good
domain knowledge and few rigid requirements.
The project deals with developing a well-understood application program, the size of the
development team is reasonably small, and the team members are experienced in developing
similar methods of projects.
Project Types
• Semidetached Project
It is an intermediate (in terms of size and complexity) project, where the team having mixed
experience (both experience & inexperience resources) to deals with rigid/nonrigid
requirements..
Team members may have finite experience in related systems but may be unfamiliar with some
aspects of the order being developed.
Project Types
• Embedded Project
This project having a high level of complexity with a large team size by considering all sets of
parameters (software, hardware and operational).
The software being developed is strongly coupled to complex hardware, or if the stringent
regulations on the operational method exist
Where
Effort (E) = Total effort required for the project in Man-Months
(MM).
D = Total time required for project development in Months (M).
KLOC = the size of the code for the project in Kilo lines of code.
a, b, c, d = The constant parameters for a software project.
COCOMO Model
PROJECT TYPE a b c d
Solution: As per the basic COCOMO estimation formula for organic software:
Effort = 2.4*(32)1.05 = 91 PM
E=3.0(200)1.12=1133.12PM
D=2.5(1133.12)0.35=29.3PM
COCOMO Model
Solution - Given the estimated size of the project is: 300 KLOC
Developer having highly application experience: 0.82 (as per above table)
Developer having very low experience in programming: 1.14(as per above table)
• Once the effort required to develop a software has been determined, it is necessary to
determine the staffing requirement for the project.
• Norden and Putnam studied the staffing patterns of several R & D projects.
Staffing level estimation
Norden’s Work
• He found that the staffing pattern can be approximated by the Rayleigh distribution curve.
• Norden represented the Rayleigh curve by the following equation:
Where
E is the effort required at time t. E is an indication of the number of engineers (or the staffing level) at any particular time during
the duration of the project
K is the area under the curve, and
td is the time at which the curve attains its maximum value.
Staffing level estimation
Norden’s Work
Staffing level estimation
Gantt Chart
• Generalized Activity Normalization Time Table (GANTT) chart is a type of a bar chart that
is used for illustrating project schedules.
• Series of horizontal lines are present that show the amount of work done in given period of
time in relation to amount planned for those projects
• Developed by Henry L. Gantt (American engineer and social scientist) in 1917 as production
control tool
• It is simply used for graphical representation of schedule that helps to plan in an efficient way,
coordinate, and track some particular tasks in project.
• The purpose of Gantt chart is to emphasize scope of individual tasks
• Gantt chart is also known as timeline chart.
• It can be developed for entire project or it can be developed for individual functions.
Gantt Chart
Gantt Chart
Gantt Chart
Advantages
• Simplify Project
• Establish Schedule
• Provide Efficiency
• Emphasize on scope
• Ease at understanding
• Visualize project
• Organize thoughts and Highly visible
• Make Practical and Realistic planning
Gantt Chart
Disadvantages
• Gantt chart makes project more complex.
• The size of bar chart dost not necessarily indicate amount of work done in project.
• Gantt charts and projects are needed to be updated on regular basis.
• It is not possible or difficult to view this chart on one sheet of paper.
Gantt Chart
Tools
• Instagantt
• TeamGantt
• ProofHub
• Wrike
• Smartsheet
• GanttPRO.
• Microsoft Project
PERT Chart
Introduction
• PERT stands for Project Evaluation and Review Technique
• Developed by the U.S. Navy in the 1950s to manage the Polaris submarine missile program.
• It is a project management tool used to schedule, organize and coordinate tasks within a project
• It provides a graphical representation of a project's timeline that enables project managers to
break down each individual task in the project for analysis.
• PERT charts provide project managers with an estimation of the minimum amount of time
needed to complete a project.
• The PERT chart template uses nodes -- drawn as rectangles or circles -- to represent events and
milestones throughout the project. The nodes are connected by vectors -- drawn as lines --
which represent the various tasks that need to be complete
PERT Chart
PERT Chart
Terminology
• Nodes are visual representations of milestones or events within the project. They are drawn as
either numbered boxes or numbered circles.
• Arrows are visual representations of the tasks that occur throughout the project. The direction
of the arrow indicates the sequence of the task. Diverging arrows show that various tasks can
be completed at the same time.
• Fast tracking is when tasks and activities are performed simultaneously.
• A PERT event is the point at which one or more tasks are started or completed.
• Crashing critical path is when the completion time of a task is shortened.
• Lag time refers to the earliest point at which a task can follow another.
PERT Chart
Terminology
• Expected time is the best estimation of how long a task will take to complete, taking into
consideration any problems or obstacles that might arise.
• Optimistic time refers to the minimum amount of time it will take to complete a task.
• Pessimistic time is the maximum amount of time it will take to finish a task.
• Most likely time is the best guess of how long a task will take, assuming no problems arise.
PERT Chart
Steps
• Define all activities involved in the project.
• Consider any dependencies between tasks.
• Draw nodes and arrows based on the information gathered in the first two steps.
• Identify the completion time for each task.
PERT Chart
Advantages
• Estimation of completion time of project is given by the PERT.
• It supports the identification of the activities with slack time.
• The start and dates of the activities of a specific project is determined.
• It helps project manager in identifying the critical path activities.
• PERT makes well organized diagram for the representation of large amount of data
PERT Chart
Disadvantages
• The complexity of PERT is more which leads to the problem in implementation.
• The estimation of activity time are subjective in PERT which is a major disadvantage.
• Maintenance of PERT is also expensive and complex.
• The actual distribution of may be different from the PERT beta distribution which causes
wrong assumptions.
• It under estimates the expected project completion time as there is chances that other paths can
become the critical path if their related activities are deferred
PERT Chart
Difference
• PERT charts are flowcharts while Gantt charts are bar graphs:
• Gantt charts offer organization while PERT charts offer customization
• PERT charts can be used before the project begins
PERT Chart
Difference
Software Configuration Management (SCM)
Need of SCM
• There are multiple people working on software which is continually updating
• It may be a case where multiple version, branches, authors are involved in a software config
project, and the team is geographically distributed and works concurrently
• Changes in user requirement, policy, budget, schedule need to be accommodated.
• Software should able to run on various machines and Operating Systems
• Helps to develop coordination among stakeholders
• SCM process is also beneficial to control the costs involved in making changes to a system
Software Configuration Management (SCM)
Tasks in SCM
• Configuration Identification
• Baselines
• Change Control
• Configuration Status Accounting
• Configuration Audits and Reviews
Software Configuration Management (SCM)
Configuration Identification
• Configuration identification is a method of determining the scope of the software system
• It is a description that contains the CSCI type (Computer Software Configuration Item), a
project identifier and version information.
Activities during this process:
• Identification of configuration Items like source code modules, test case, and requirements
specification.
• Identification of each CSCI in the SCM repository, by using an object-oriented approach
• The process starts with basic objects which are grouped into aggregate objects. Details of what,
why, when and by whom changes in the test are made
• Every object has its own features that identify its name that is explicit to all other objects
• List of resources required such as the document, the file, tools, etc.
Software Configuration Management (SCM)
Baseline
• It is designated and fixed at a specific time while conducting the SCM process. It can only be
changed through formal change control procedures.
Change Control
• Change control is a procedural method which ensures quality and consistency when changes
are made in the configuration object
• Change request is submitted to software configuration manager.