Top Banner
Software Project Management By Mr. Manoj Kumar Kar
37

Software Project Management

Feb 26, 2016

Download

Documents

Gail

Software Project Management. By Mr. Manoj Kumar Kar. Introduction:. The main job of software project management is to enable a group of software engineers to work efficiently towards successful completion of the project. Job Responsibilities of a software project manager: - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software Project Management

Software Project Management

By Mr. Manoj Kumar Kar

Page 2: Software Project Management

Introduction:• The main job of software project management is to enable a group of

software engineers to work efficiently towards successful completion of the project.

Job Responsibilities of a software project manager:• Project proposal writing.• Project cost estimation.• Scheduling.• Project staffing.• Software process tailoring.• Project monitoring and control.• Software configuration management.• Risk management.• Interface with client.• Managerial report writing.

Page 3: Software Project Management

Skills necessary for software project management:• Good qualitative judgment and decision making capabilities.• Good grasp of the latest software project management techniques.• Cost estimation.• Risk management.• Configuration management.• Good communication skills and the ability to get work done.• Tracking and controlling the progress of the project.• Customer interaction.• Managerial presentations.• Team building.

Page 4: Software Project Management

Project Planning:

• Project planning consists of the following essential activities.

1. Estimating some basic attributes of the project like cost, duration and effort.

2. Scheduling man power and other resources.3. Staff organization and staffing plans.4. Risk identification, analysis and abatement planning.5. Miscellaneous plans such as quality assurance plan,

configuration management plan etc.

Page 5: Software Project Management

Precedence ordering among project planning activities.

Size Estimation

Effort Estimation

Duration Estimation

Cost Estimation

Project staffing Scheduling

Page 6: Software Project Management

Software Project Management Plan Document:

• SPMP document is prepared by the project manager after the completion of the project planning.

Organization of the SPMP ducument:Introduction:1. Objectives.2. Major functions.3. Performance issues.4. Management and technical constrains.Project Estimation:5. Historical data used.6. Estimation techniques used.7. Effort, resource, cost and project duration estimation.

Page 7: Software Project Management

Software Project Management Plan Document continued..

Schedule:1. Work breakdown structure.2. Task network representation.3. Gantt chart representation.4. PERT chart representation.Project resources:5. People.6. Hardware and software.7. Special resources.Staff organization:8. Team structure.9. Management reporting.

Page 8: Software Project Management

Software Project Management Plan Document continued..

Risk management Plan:1. Risk analysis.2. Risk identification.3. Risk estimation.4. Risk abatement procedures.Project tracking and control plan:Miscellaneous Plans5. Process tailoring.6. Quality assurance plan.7. Configuration management plan.8. Validation and verification.9. System testing plan.10. Delivery, installation and maintenance plan.

Page 9: Software Project Management

Metrics for project size estimation:

• A project size is a measure of the problem complexity in terms of the effort and time required to develop the product.

• Broadly two types of metrics are widely used to estimate the size of a product.

1. Lines of code. 2. Function Point.

Page 10: Software Project Management

Lines of code:• To determine the LOC at the very beginning of a project, the project manager divides

the whole project into modules and each module into sub module and so on until the size of the different leaf-level modules can be approximately predicted.

Shortcomings of LOC approach:• LOC gives a numerical value of problem size that can vary widely with individual

coding style.• A good problem size measure should consider the overall complexity of the problem

and the effort need to solve it that is it need to consider the total effort needed to specify design, coding , testing etc. where as LOC only focuses on coding part.

• LOC measure correlates poorly with the quality and efficiency of the code.• LOC metric penalizes use of higher-level programming languages.• LOC metric measures the lexical complexity of a program and does not address the

more important and subtle issues of logical or structural complexity.• It is difficult to accurately estimate the LOC in the final product from the problem

specification.

Page 11: Software Project Management

Function Point Metric:

• Function point approach can be used to easily estimate the size of a software product directly from the problem specification.

• The concept of the function point metric is that the size of a software product is directly dependent of the number of different functions and features it supports.

• FP metric defines that the size of a software product depend upon the number of basic functions that the software performs along with the number of files and the number of interfaces.

Page 12: Software Project Management

Function Point Metric continued..

• Besides using the number of input and out put data values, function point metric computes the size of a software product in units of function points (FPs) using other characteristics of the product as shown below.

• UFP= (Number of inputs)*4 + (Number of outputs) * 5 + (Number of inquiries) * 4 + (Number of files) * 10 + ( Number of Interfaces) * 10.

• Where UFP stands for unadjusted function point.

Page 13: Software Project Management

Function Point Metric continued..• After calculation of the unadjusted function point (UFP), the

technical complexity factor (TCF) is computed.• The TCF is refines the UFP by considering fourteen other

parameters like high transaction rate, throughput, the response time requirement etc.

• Each of these 14 factors is assigned a value from 0 (Not present or no influence) to 6 (Strong influence) and the resulting numbers are summed which yields the total degree of influence (DI).

• Now TCF is computed as (0.65+0.01*DI).• As DI can vary from 0 to 70, the TCF may vary from 0.65 to 1.35.• Finally the FP is calculated as FP= UFP * TCF.

Page 14: Software Project Management

Feature Point Metric:

• The shortcoming of function point approach is that it does not take into account the algorithmic complexity of a software.

• To overcome this problem, an extension of function point approach has been proposed called as feature point approach.

• Feature point metric incorporates an extra parameter into algorithm complexity.

Page 15: Software Project Management

Project estimation techniques:

• During project estimation, the different project parameters such as project size, effort required, project duration, cost etc are to be analyzed.

• There are three broad categories of project estimation techniques

1. Empirical estimation technique.2. Heuristic techniques.3. Analytical estimation techniques.

Page 16: Software Project Management

Empirical Estimation Techniques:

• Empirical estimation techniques are based on making an educated guess of the project parameters.

• This approach uses two different types of estimation techniques such as

1. Expert judgment Technique.2. Delphi cost estimation technique.

Page 17: Software Project Management

Empirical Estimation Techniques continued..

Expert Judgment Techniques:• In this approach an expert makes an educated

guess of the problem size problem after analyzing the problem thoroughly.

• The drawback of this approach is that this technique is subject to human errors and individual bias.

• The more refined form of the expert judgment is the estimation made by a group of experts.

Page 18: Software Project Management

Empirical Estimation Techniques continued..

Delphi cost estimation:• Delphi estimation is carried out by a team composed of a

group of experts and a coordinator.• The coordinator provides each estimator with a copy of the

SRS document and a form for recording the individual estimation.

• The coordinator prepares and distributes the summary of the responses of all the estimators, and includes any unusual rationale noted by any of the estimator.

• Based on this summary re-estimation work will go on and the same process will be iterated for several rounds.

Page 19: Software Project Management

COCOMO- A Heuristic Estimation Techniques:

• COCOMO model is the short form of Constructive Cost estimation Model.

• As per this approach any software development project can be classified into one of the following three categories based on the development complexity.

1. Organic.2. Semidetached.3. Embedded.• The above mentioned product classes corresponds to

application, utility and system programs respectively.

Page 20: Software Project Management

COCOMO model continues..• The ratio of the relative levels of product development complexity for the

three categories of products are 1:3:9. for application, utility and system programs.

Organic: • The development project may be considered to be organic type, if 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 the same type of projects.

Semidetached:• A development project may be considered as semidetached type, if the

development team consists of a mixture of experienced and inexperienced staff. Team members may have limited experience on related systems but may unfamiliar with some aspects of the system being developed.

Page 21: Software Project Management

COCOMO model continues..Embedded:• A development project is considered to be of embedded type, if

the software being developed is strongly coupled to complex hardware, or if stringent regulations on the operational procedure exists.

• This approach introduced the new approach of units for the estimation as given below

1. PM (Person-month): is the effort an individual can typically put in a month.

2. KLOC- Kilo lines of source code.This approach has to be completed through three different stages like

basic COCOMO, intermediate COCOMO and complete COCOMO

Page 22: Software Project Management

Basic COCOMO model:• The basic COCOMO model gives an approximate estimate of the project

parameters.• The basic COCOMO estimation model is given by the following expressions Effort= a1 x (KLOC) a2 PM Tdev= b1 x (Effort) b2 months.Where1. KLOC is the estimated size of the software product expressed in Kilo Lines of

codes.2. a1, a2, b1, b2 are constants for each category of software products.3. Tdev is the estimated time to develop the software, expressed in months.4. Effort is the total effort required to develop the software product, expressed in

person-month.

Page 23: Software Project Management

Basic COCOMO model continued..

• According to this approach, every line of source text should be calculated as one LOC irrespective of the actual number of instruction on that line.

• The values of a1, a2, b1, b2 for different categories of products are as given below.

Estimation of development effort:1. Organic : Effort = 2.4 (KLOC)1.05 PM2. Semi-detached : Effort = 3.0 (KLOC)1.12 PM3. Embedded : Effort = 3.6 (KLOC)1.20 PM

Page 24: Software Project Management

Basic COCOMO model continued..

Estimation of development time:• Organic : Tdev = 2.5(Effort)0.38 months.• Semi-detached: Tdev = 2.5 (Effort)0.35 months.• Embedded : Tdev = 2.5 (Effort)0.32 months.• The effort and duration estimations obtained

using the COCOMO model are called nominal effort estimate and nominal duration estimate.

Page 25: Software Project Management

Example of basic COCOMO model• Assume that the size of an organic type software product has

been estimated to be 32000 lines of source code. Assume that the average salary of software engineer is 15000 per month. Determine the effort required to develop the software product and the nominal development time.

Solution:From the basic COCOMO estimation formula for organic

softwareEffort = 2.4 x (32)1.05 PM = 91 PMNominal development time = 2.5 x (91)0.38 = 14 month.Cost required to develop the Project = 14 x 15000 = 210000

Page 26: Software Project Management

Intermediate COCOMO• Intermediate COCMO model proposes that only effort and development time are

not to be considered as there are so many other factors which has influence on the product development.

• This approach considers a new set of 15 different parameters with a cost multiplier in a range of 1 to 3 along with the estimation of the basic COCOMO model.

• The 15 parameters may be divided into four particular specifications.1. Product: The characteristics of the product that are considered including the

inherent complexity of the product, reliability requirements of the product etc.2. Computer: The characteristics of the computer that are considered include the

execution speed requirement, Storage space required etc.3. Personel: The attributes of development personnel that are considered include the

experience level of personnel, programming capability, analysis capability etc.4. Development environment: Development environment attributes capture the

development facilities available to the developers, sophistication of the automation tools used for software development.

Page 27: Software Project Management

Complete COCOMO model

• The major shortcoming of both the basic and intermediate COCOMO model is that they consider a software product as a single homogeneous entity.

• But the actual case is that as the whole project is to be decomposed into so many sub modules and the sub modules may not be of same type.

Page 28: Software Project Management

Halstead’s Software science- Analytical technique

• Halstead’s software science is an analytical technique to measure size, development effort and development cost of software products.

• According to this approach for a given program let1. ƞ1 be the number of unique operators used in the

program.2. ƞ2 be the number of unique operands in the program.3. N1 be the total number of operators used in the program.4. N2 be the total number of the operands used in the

program.

Page 29: Software Project Management

Halstead’s Software science- Analytical technique continued..

• This approach considers the following attributes for estimation1. Operators and Operands:2. Length and Vocabulary: The length of a program quantifies

the total usage of all operators and operands in the program. N = N1 + N2 .

The program vocabulary is the number of unique operators and operands used in the program.

ƞ = ƞ1 + ƞ2

Page 30: Software Project Management

Halstead’s Software science- Analytical technique continued..

3. Program volume: V = N log2ƞ4. Potential Minimum Volume: Potential minimum volume V* is defined as the

volume of the most succinct program in which a program can be coded.

V* = ( 2 + ƞ2 ) log2 ( 2 + ƞ2 )The program level L= V* / V

Page 31: Software Project Management

Halstead’s Software science- Analytical technique continued..

5. Effort and time:• The effort required to develop a program can be obtained

by dividing the program volume by the level of the programming language used to develop the code.

E = V/L. E= V/ V* / V. E= V2 / V*

• The programmer’s time T= E/S6. Length estimation:• N = ƞ1 log2 ƞ1 + ƞ2 log2 ƞ2

Page 32: Software Project Management

Halstead’s Software science- Analytical technique continued..

6. Length estimation:• N = ƞ1 log2 ƞ1 + ƞ2 log2 ƞ2

Page 33: Software Project Management

Scheduling:• Scheduling the project task involves deciding which tasks would be

taken up when.• In order to schedule the project activities, a software project

manager needs to do the following 1. Identify all the tasks needed to complete the project.2. Breakdown large tasks into small activities.3. Determine the dependency among different activities.4. Establish the most likely estimates for the time duration necessary

to complete the activities.5. Allocate resource to activities.6. Plan the starting and ending dates for various activities.7. Determine the critical path.

Page 34: Software Project Management

Work Breakdown Structure:• Work breakdown structure (WBS) is used to decompose a

given task set recursively into small activities.• WBS provides the notation for representing the major tasks

needed to be carried out in order to solve a problem.• The root of a tree is labeled by the problem name.• Each node of the tree is broken down into smaller activities.• Each activity is recursively decomposed into smaller sub-

activities until at the leaf level, the activities require approximately two weeks to develop.

Page 35: Software Project Management

WBS of MIS a case study

MIS Application

Requirement Specification Design Code Test Document

Database part

Graphical User Interface

Database Part

Graphical user interface part

Page 36: Software Project Management

Activity Network and critical path Method

• WBS representation of a project is transformed into an activity network by representing the activities identified in WBS along with their interdependencies.

• An activity network shows the different activities making up a project, their estimated duration, and interdependencies.

• Each activity is represented by a rectangular node and the duration of the activity is shown alongside each task.

Page 37: Software Project Management

Activity network representation of MIS problem

Specification15

Database design part

45

Code database

part105

Design GUI part30

Code GUI part45

Write user manual

60

Integrate and test

120

Finish0