Вы находитесь на странице: 1из 57

Software Engineering Concept

Software Project Management (SPM)


Software, Project, Management
Software
• A computer program.

Project
• Dictionary definitions of project includes:
- A specific plan or design.
- A plan is undertaken.
• The process of planning, designing and implementing computer systems is
called a project.
• A Project is a series of steps designed to coordinate the achievement of a
specific goal.
• A definite start and end point

Management
Management in all business and human organization activity is simply the act
of getting people together to accomplish desired goals and objectives.
Software Projects
Factors that influence the end result ...

• size

• delivery deadline

• budgets and costs

• application domain

• technology to be implemented

• system constraints

• user requirements

• available resources
Why Projects Fail?
• an unrealistic deadline is established

• changing customer requirements

• an honest underestimate of effort

• Delays in Implementation

• technical difficulties

• miscommunication among project staff

• failure in project management


Project Risks
 Each project faces risks.

 The main project risk factors are

- Experience factors.
- Planning factors.
- Technology factors.
- External factors.
- Requirements factors
Management

Management Elements
Management

Management is consist of seven Functions:.

• Planning

• Organizing

• Leading

• Coordination

• Controlling

• Staffing

• Motivation
Project Management
• Project management is the process of planning, organizing, staffing,
monitoring, controlling, and leading a software project.
• The project management is technique used by the manager to ensure
successful completion of a project.
• Every project has a project manager who leads the team and is the
interface of the project to the outside world.
• Good planning is essential to succeed.

• The major planning activities are:


• Define Products to be delivered.
• Define Activities (work packages).
• Estimate Resources and Duration.
• Define Activity Network.
• Define Schedule and Total Cost.
Project Management Phases
The 4 P’s
۞ People — the most important element of a successful project

۞ Product — the software to be built

۞ Process — the set of framework activities and software engineering tasks


to get the job done

۞ Project — all work required to make the product a reality


Project Management Concerns

product quality?
risk assessment?
measurement?
cost estimation?
project scheduling?
customer communication?
staffing?
other resources?
project monitoring?
The Project Manager
The project manager ...

... produces the Software Project Management Plan (SPMP).

... defines the roles in the project and allocates staff to them.
Examples of roles are: project manager, software librarian,
programmer, team leader, test engineer, quality assurance engineer.

... controls the project by informing staff of their part in the plan.

... leads the project by taking the major decisions and by motivating
staff to perform well.

... monitors the project by measuring progress.

... reports progress to the initiator and senior management.


The Project Manager
• The project manager is also responsible for the major technical
decisions, for example concerning methods and tools, design and
coding standards, software requirements, etc.

• The project manager identifies the people the project deals with
and ensures that a single named contact exists both within the project
team and each external group.
Software Project Management

• Software project management is a sub-discipline of project


management in which software projects are planned, monitored and
controlled.

• Software project management drives all software development in the


world today.

• It is the unifying structure that brings programmers and customers


together to create new products.
Project Planning

• DETERMINE THE OVERALL OBJECTIVES

• DETERMINE PRIMARY ACTIVITIES

• DETERMINE PRECEDENCE HIERARCHY

• CREATE A PROJECT SCHEDULE NETWORK


Project Planning………
• Probably the most time-consuming project management activity

• Continuous activity from initial concept through to system delivery. Plans


must be regularly revised as new information becomes available

• Various different types of plan may be developed to support the main


software project plan that is concerned with schedule and budget

• The major planning activities are:

Define Products to be delivered.


Define Activities (work packages).
Estimate Resources and Duration.
Define Activity Network.
Define Schedule and Total Cost.
Project Planning………

Define Products
The first planning activity is to define the products to be delivered.

Define Activities
• First a process model is defined:
• Choose a life cycle (waterfall, incremental).
• Define a process model for each phase: define the inputs and
outputs of each activity.

• There are examples of the process models for the


- The Software Requirements Definition Phase.
- The Architectural Design Phase.
- The Detailed Design and Production Phase.

Select methods and tools.


Project Planning………

Estimate Resources and Duration


• Define the roles in the project.

• Examples of roles are:


- project manager,
- programmer,

Some common estimation methods are:

1. COCOMO (Constructive Cost Model): uses the estimated


lines of code
as input to calculate the effort.

2. Function Point Analysis: performs a cost calculation by


counting things
like the number of inputs, outputs and stores.
Project Planning………
Define Activity Network
• An activity network consists of nodes representing the work
packages with arrows linking them.

The critical path is the longest path through the network in terms of
duration.

The float time of a work package is the difference between the


earliest and latest start times for this package. It is the amount of time
the activity can be moved without affecting the total duration of the
project.

Define Schedule and Total Cost


• The activity network constraints the schedule but does not yet define it.
• The project manager decides upon the actual start and end times of
each work packages.

• Things to consider:
o Comply with time and resource constraints.
o Minimize the total cost.
o Minimize the fragmentation of resource allocations.
o Allow for any risks that may affect the project.
o A Gantt chart is the usual way to present a project schedule. Work
packages are along the vertical axis, time along the horizontal axis.
oThe chart displays work packages (grey horizontal bars) and
milestones (squares).
Project Plan

• The project plan defines the work that will be done on the project and
who will do it. It consists of:

• A statement of work (SOW) that describes all work products that will
be produced and a list of people who will perform that work

• A resource list that contains a list of all resources that will be needed
for the product and their availability

• A work breakdown structure This is a list of tasks which, if performed,

will generate all of the work products needed to build the software.

• An estimate of the effort required for each task in the WBS is


generated.
Project Plan

• A project schedule is created by assigning resources and determining


the calendar time required for each task.

• A risk plan that identifies any risks that might be encountered and
indicates how those risks would be handled should they occur

Estimates and project schedules will be discussed in detail


in later slides.
Types of project plan

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 Describes the configuration management
management plan procedures and structures to be used.
Maintenance plan Predicts the maintenance requirements of
the system, maintenance costs and effort
required.
Staff development plan. Describes how the skills and experience of
the project team members will be
developed.
Project plan structure
• Introduction

• Project organisation

• Risk analysis

• Hardware and software resource requirements

• Work breakdown

• Project schedule

• Monitoring and reporting mechanisms


Project Scheduling

• 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


Objectives of Project Scheduling

 Effective time Management.

 Determine sequence of elements

 Determine necessary resources

 Monitor project progress


PRIMARY COMPONENTS IN A SCHEDULE

ACTIVITIES

o SPECIFIC FUNCTION
o FINITE DURATION

MILESTONES

o TARGET DELIVERABLE
o 0 DURATION

ACT IVITIES

Feasibility Requir ements Prototype Design Requir ements


study analysis development study specification

Feasibility Requir ements Evaluation Architectural Requir ements


report definition report design specification

MILESTONES
Scheduling Problems
• 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


Project Scheduling Tools

Program
Evaluation
and Review Gantt Chart
Critical
Technique
Path
(PERT) Method
(CPM)
Project Scheduling Tools
• CPM (CRITICAL PATH METHOD)

• Used Nodes for Events (Activities and Milestones)


• Activities are connected with Arrows

• PERT (PROJECT EVALUATION AND REVIEW TECHNIQUE)


• PERT is a CPM Method that shows Longest and Shortest Times
• Uses Arrows Precedence And determine Float

• Timelines or Gantt chat

• A Gantt chart is the usual way to present a project schedule.

• Work packages are along the vertical axis, time along the horizontal
axis.
CPM (Critical Path Method)
The critical path is the path between the start event and end event which
takes the longest time.

Note that:
o No task on the critical path can take longer without extending the end date
of the project.

o Tasks on the critical path are called critical tasks.

o No critical task can have any slack.

o Tasks on the critical path must be carefully monitored.


CPM (Critical Path Method)
– Terminology
• Earliest Start time (ES)
• Latest Start time (LS)
• Earliest Finish time (EF),
• Duration (D)
» EF = ES + D
• Latest Finish (LF) LF = LS + D
• Total Float (TF) TF = LS - ES
– (Slack between the earliest and latest start times)
– On CP, the total float is zero.
CPM Example
CPM (Critical Path Method)
Earliest Start Times Established

Event Activity ES
1 A, B 0 Project Start
2 C, D, F 0+3=3 Need A complete
3 E, G 3+4=7 Need A & D complete
4 I 7 + 5 = 12 Use longest path @ merge
5 H 7 + 6 = 13 Use longest path
6 J 13 + 3 = 16
7 K 16 + 2 = 18
8 End 18 + 2 = 20
CPM (Critical Path Method)
Calculation of the latest start times (Starting at Project completion)

Event Activity LS Event Activity LS

8 end 20 5-2 F 13 – 3 = 10

8-7 K 20 – 2 = 18 4-3 E 16 – 3 - 5 = 8

7-6 J 18 – 2 = 16 4-2 C 16 – 3 - 5 = 8

6-5 H 16 - 3 = 13 4-1 B 16 – 3 - 4 = 9

6-4 I 16 – 3 = 13 3-2 D 16 – 3 – 6 - 4 = 3

5-3 G 13 – 6 = 7 2-1 A 3-3=0


CPM (Critical Path Method)
Summary of Boundary timetable

Activity Description Duration ES LS EF LF TF


A 3 0 0 3 3 0
B 4 0 9 4 13 9
C 3 3 10 6 13 7
D 4 3 3 7 7 0
E 5 7 8 12 13 1
F 3 3 10 6 13 7
G 6 7 7 13 13 0
H 3 13 13 16 16 0
I 3 12 13 15 16 1
J 2 16 16 18 18 0
K Test 2 18 18 20 20 0
Example 2 (CPM)
2 C 4
2d
A
E
2d
2d

1
5

B
D
2d
5d
3

In the example above the critical path can be described by events 1,3 and 5 or by
tasks B,D.
This is because the time to reach the end event (5) on this path is longer than any
other path. This means that task B must take no longer than 2 days and task D no
longer than 5 days or the end date for event E will need to be extended.
The duration of the other path is 6 days. Because the critical path is 7 days, there is
slack (or float) of one day on the other path.
This means that this path can take 1 day longer than planned.
That is, any one task on this path (A,C or E) can take 1 day longer than expected.
Note this slack must be shared between the tasks on this other path. They can not
all take an extra day
PERT (Project Evaluation & Review Technique)
• simple PERT chart comprises circles (nodes) to represent events within
the development lifecycle

For example completion of tasks, and lines (edges) which represent the the tasks.
The lines are additionally labeled by the estimated duration of the task.

• A real PERT chart shows earliest time to completion, latest time to


completion, and slack in the circles also.
How to construct a PERT chart

The basic steps to constructing a PERT chart are:

• Identify tasks and estimate duration of times


• Identify a single start and end event
• Arrange events in sequence (give events a unique number)
• Establish start and finish times of each task. Keep in mind the
estimates made for duration and effort.
• Determine float
• Revise
As an example of using a PERT chart, consider the following simple
chart showing a project with tasks A,B,C,D and E
This diagram states that tasks A,B,C and E will take 2 days (assume d is
abbreviation for days) and task D has a planned duration of 5 days.
Task D is dependent on completion of task B, etc.

2 C 4
2d

A
2d E
2d

1
5

B
2d D
5d

3
• Both techniques (PERT and CPM) are driven by information already
developed in earlier project planning activities:
– Estimates of efforts
– Decomposition of product function
– selection of appropriate process model and task set
– Decomposition of tasks

• Both PERT and CPM provides quantitative tools to


– determine the critical path
– Decomposition of product function
– calculate boundary time (window) for a particular task
– Decomposition of tasks
Gantt Chart

• GANTT charts are a project planning tool that can be used to represent
the timing of tasks required to complete a project.

- It describes similar information to a PERT chart.

Here is one that was produced automatically with a project management tool
from the PERT chart info above:

• Gantt chart is the usual way to present a project schedule. Work packages
are along the vertical axis, time along the horizontal axis.
Gantt Chart

– The bar or Gantt Chart is a widely used simple project scheduling


technique.
– Advantages include:
• Direct correlation with time.
• Straight forward relationship with projects involving a limited number of
tasks.
• Straight forward integration of subtasks having separate scheduling
charts.
• Time schedule is flexible and is expanded to show tasks of shorter nature.
• Progress against the plan is easily reflected.
– Disadvantage includes:
• That it does not convey the complex interrelationships that may occur
between tasks.
Milestone Chart

– A Milestone chart is similar to a Gantt Chart with the emphasis placed on task
completion.

– It embodies the same simplified techniques as does the Gantt chart. It does not
portray the interrelationships between tasks and hence does not identify the
critical path.
Project Tracking

• It is a road map for the Software Project

• It defines the tasks and milestones


Project Tracking
• Tracking can be done by:
– Conducting periodic project status meetings
– Evaluating the results of all reviews
– Determining whether milestones were reached by the scheduled
date
– Compare actual start date to planned start date
– Meeting informally with professionals to get their subjective
opinion
– Using earned value analysis
Project Tracking
• Tracking can be done by:
– Conducting periodic project status meetings
– Evaluating the results of all reviews
– Determining whether milestones were reached by the scheduled
date
– Compare actual start date to planned start date
– Meeting informally with professionals to get their subjective
opinion
– Using earned value analysis

earned value is useful as it provides a quantitative


technique of assessing progress on the project as
a whole
Tracking the Project Schedule
Project is on
schedule and
within budget Additional
Additionalresources
resources
focussed
focussedon
onproblem
problem
area
area
Project Tracking
Staff
Staffmay
maybe
be
redeployed
redeployed
Problem
diagnosed Project
ProjectSchedule
Schedulecan
can
be
beredefined
redefined
Metrics, Measurement and
Models
Metrics
Metric is a quantitative measure.

Product Process
Metrics Metrics

Process metrics measure the


Product metrics measure the product. performance of the development
process.
Metrics
• Quantifiable measure
• Used to measure different characteristic of a software system or the
software development process
• the most common metrics are:
- LOC (Lines of code)
- Function Points
• Two types
- Product Metrics (Used quantify characteristic of the product being
developed i.e., software)
- Process Metrics (Used quantify characteristic of the environment)
LOC (Lines of code)

• Quantifying properties of the software


• specify the size of the software
• Give more precise characterization to the common notions of small,
large or very large projects. Like,

Size: Small Medium Large Very Large


LOC: <2k 2k-8k 8k-32k >32k
Function Point (FP)
• Can be applied at the requirements stage
• Used to predict the size or the cost of the system
• Asses the project productivity.
• Using function points for cost, size and productivity is called FP Analysis

What is Function Point Analysis (FPA)?


• It is designed to estimate and measure the time, and thereby the cost, of
developing new software applications and maintaining existing software
applications.
• It is also useful in comparing and highlighting opportunities for
productivity improvements in software development.
How is Function Point Analysis done?
Working from the project design specifications, the following system
functions are measured (counted):
• Inputs
• Outputs
• Files
• Inquires
• Interfaces

These function-point counts are then weighed (multiplied) by their


degree of complexity:
Simple Average Complex
Inputs 2 4 6
Outputs 3 5 7
Files 5 10 15
Inquires 2 4 6
Interfaces 4 7 10
A simple example:

inputs
3 simple X 2 = 6
4 average X 4 = 16
1 complex X 6 = 6
outputs
6 average X 5 = 30
2 complex X 7 = 14
files
5 complex X 15 = 75
inquiries
8 average X 4 = 32
interfaces
3 average X 7 = 21
4 complex X 10 = 40
Unadjusted function points 240
Continuing our example . . .
Complex internal processing = 3
Code to be reusable = 2
High performance = 4
Multiple sites = 3
Distributed processing = 5
Project adjustment factor = 17

Adjustment calculation:
Adjusted FP = Unadjusted FP X [0.65 + (adjustment factor X 0.01)]
= 240 X [0.65 + ( 17 X 0.01)]
= 240 X [0.82]
= 197 Adjusted function points
Q&A

Вам также может понравиться