0% found this document useful (0 votes)
6 views9 pages

Unit 4

The document outlines the responsibilities and skills required for a software project manager, including project planning, monitoring, and communication abilities. It discusses metrics for software project size estimation, such as Lines of Code (LOC) and Function Points (FP), and various estimation techniques including empirical, heuristic, and analytical methods like the COCOMO model. Additionally, it covers Halstead's software science for measuring software size and development effort.

Uploaded by

Arsh Mansuri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views9 pages

Unit 4

The document outlines the responsibilities and skills required for a software project manager, including project planning, monitoring, and communication abilities. It discusses metrics for software project size estimation, such as Lines of Code (LOC) and Function Points (FP), and various estimation techniques including empirical, heuristic, and analytical methods like the COCOMO model. Additionally, it covers Halstead's software science for measuring software size and development effort.

Uploaded by

Arsh Mansuri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

Fundamental of Software Design (1CE2403)

Unit -4
Software Planning
Responsibilities of a Software Project Manager

― The job responsibility of a project manager is project cost estimation, scheduling, project
staffing, project monitoring and control, configuration management, risk management.

― These activities can be broadly classified into project planning, and project monitoring
and control activities.

― To plan, coordinate and control the project team’s effort, the project manager is expected
to have many unique qualities as job responsibilities. Some of them are as below:

― Ability to communicate with people related with the project


― Ability to recognize problems
― Ability to minimize the risks
― Experience in the functional areas related to project
― Understanding technical problem and design details
― Understanding the motivations and interests of members of project staff and ability to
implement ways to improve job satisfaction of members.

Skills necessary for software project management

A theoretical knowledge of different project management techniques is necessary to become


a successful project manager.
Also the project managers need good communication skills and the ability get work done.
Project Management Skills:
• Building work breakdown structure
• Estimating cost
• Managing risks
• Monitoring development
• Monitoring project progress
• Scheduling
• Monitoring product quality
• Managing requirements
• Evaluate performance
• Team building
Software Development Skills:
• Accessing Process
• Awareness of process standards

Page | 1
Fundamental of Software Design (1CE2403)

• Defining the product


• Managing requirements
• Monitoring Product quality
• Modifying processes
• Selecting methods and tools
• Understanding development activities
People Management Skills:
• Effectively presenting
• Evaluate performance
• Holding effective meetings
• Interaction and communication
• Leadership
• Recruiting
• Selecting a team
• Team building

Metrics for Software Project Size Estimation:

― The estimation of the problem size is the estimation of effort, time duration and cost of a
software project.
― Metrics help us understand the technical process that is used to develop a product.
― The project size is a measure of the problem complexity in terms of the effort and time
required to develop the product.
― Two metrics are used to estimate size: lines of code (LOC) and function point (FP).

Line of Code(LOC):

― A line of code is any line of program text that is not comment or blank line.
― LOC is the simplest among all metrics available to estimate project size. This metric is very
popular because it is the simplest to use. Using this metric, the project size is estimated
by counting the number of source instructions in the developed program.
― While counting the number of source instructions, lines used for commenting the code
and the header lines should be ignored.
― Determining the LOC count at the end of a project is a very simple job. However, accurate
estimation of the LOC count at the beginning of a project is very difficult.

Page | 2
Fundamental of Software Design (1CE2403)

Size-Oriented Metrics:

Size oriented metrics are direct measure of software.


These metrics can include:
• effort (time)
• money spent
• KLOC (1000s lines of code)
• pages of documentation created
• errors
• people on the project

If a soft-ware organization maintains simple records, a table of size-oriented measures, such


as the one shown in following Fig. can be created.

Project LOC Effort Cost(Rs.) Page Errors Defects People


Document
s
ABC 1710 38 30,225 700 240 61 3
0
XYZ 2500 60 25,000 1006 320 80 5
0

― The table lists each software development project that has been completed over the past
few years and measures for that project.
― From the table the table entry for project ABC:
― 17,100 lines of code were developed with 38 person-months of effort at a cost of Rs.
30,225
― From the data contained in the table, a set of simple size-oriented metrics can be
developed for each project:
Productivity = Errors/KLOC, KLOC / person-month
Quality=Defects/KLOC, Errors/person-month
Cost=Cost/LOC
Documentation=Pages of documentation/KLOC
The size oriented metrics are not mostly used because of LOC is the key measure.
Advantages: Easy to count
Disadvantages: The LOC Measure is programming language dependent.

Page | 3
Fundamental of Software Design (1CE2403)

Function Oriented Metric:

― Function-oriented software metrics used to measure the functionality delivered by the


application.
― The ‘functionality’ cannot be measured directly it must be derived indirectly using other
direct measures.
― It measures functionality from the user point of view that is on the basis of what the user
requests and receives in return.

Function points are computed by completing the table shown in Figure.


Number of inputs: Each data item input by the user is counted.
Number of outputs: Each user output that provides application-oriented information to the
user is counted.
Number of user inquiries: Number of inquiries is the number of the user commands which
require specific action by the system.
Number of files: Each logical file is counted.
Number of interfaces: The interfaces considered are the interfaces used to exchange
information with other systems.
To compute function points (FP), the following relationship is used:

FP = count total * [0.65 + 0.01* SUM (Fi)]

Where Fi(1 To 14) are complexity adjustment values


― Once function points have been calculated, the measures for software productivity,
quality, and other attributes are:
✓ Errors per FP.
✓ Defects per FP.
✓ Pages of documentation per FP.
✓ FP per person-month

Page | 4
Fundamental of Software Design (1CE2403)

Advantages: language independent


Disadvantages: calculation complexity

Project Estimation Techniques:

What is Estimation ??
Estimation of various project parameters is a basic project planning activity. The important
project parameters that are estimated include: project size, effort required to develop the
software, project duration, and cost.
These estimates not only help in deciding the project cost to the customer, but are also useful
in resource planning and scheduling. There are three categories of estimation techniques:
✓ Empirical estimation techniques
✓ Heuristic techniques
✓ Analytical estimation techniques

Empirical Estimation Techniques:


Empirical estimation techniques are based on making guess of the project parameters.
In this technique experience with development of similar products is helpful.
Two empirical estimation techniques are:
• Expert judgment technique
• Delphi cost estimation

Expert Judgment Technique:

― Expert judgment is most widely used estimation techniques.


― In this technique, an expert makes a guess of the problem size after analyzing the
problem.
― The expert estimates the cost of the different components of the system and then
combines them to arrive at the overall estimate.
― This technique is subject to human errors. It is possible that the expert may overlook
some factors.
― An expert making an estimate may not have experience and knowledge of all aspects of a
project.
― A refined form of expert judgment is the estimation made by group of experts.
― Estimation by a group of experts minimizes some factors. But still it has some problems.

Delphi cost estimation:

― Delphi cost estimation approach tries to solve some of the shortcomings of the expert

Page | 5
Fundamental of Software Design (1CE2403)

judgment approach.
― Delphi estimation is carried out by a team comprising of a group of experts and a
coordinator.
― In this approach, the coordinator provides each estimator with a copy of the software
requirements specification (SRS) document and a form for recording his cost estimate.
Estimators complete their individual estimates and submit to the coordinator.
― The coordinator prepares and distributes the summary of the responses of all the
estimators.
― Based on this summary, the estimators re-estimate. This process is iterated for several
rounds.
― After the completion of several iterations of estimations, the coordinator takes the
responsibility of compiling the results and preparing the final estimate.

Heuristic Techniques :

Heuristic techniques assume that the relationships among the different project parameters
can be estimated using mathematical expressions.

COCOMO Model:

COCOMO (Constructive Cost Estimation Model) was proposed by Boehm. Boehm classified
software project into one of the following three categories:
Organic:
― A development project can be considered of organic type, if the size of the development
team is reasonably small, and the team members are experienced.
― It is simple and size of project is 2-50 KLOC.
― For example: Payroll system, inventory management system etc.
Semidetached:
― A development project can be considered of semidetached type, if the development
consists of a mixture of experienced and inexperienced staff.
― Team size is medium.
― It is medium size project of 50-300 KLOC.
― For example: Compilers, editors etc. , DBMS
Embedded:
― A development project is considered to be of embedded type, if the software being
developed is strongly coupled to complex hardware.
― The size of the project is large over 300 KLOC.
― For example: any real time system, aircraft control system etc. BANKING S/W
Fixed requirement of resources , large project,large team size, with experienced team

Page | 6
Fundamental of Software Design (1CE2403)
- highest level of complexity
The equation for calculation of Effort and Duration is:
Effort E=a1* (KLOC)a2 PM
T = b1 * (Effort)b2 Months
Where,
KLOC is the estimated size of the software product
a1, a2, b1, b2 are constants for each category of software products,
T is the estimated time to develop the software in months,
Effort is the total effort required to develop the software product, in person months (PMs).

Basic COCOMO Model:


It is quick and rough method of estimation. Only size is estimated for the calculation.
In the equation of basic cocomo model put the figures of following table:

a1 a2 b1 b2

Intermediate COCOMO Model:


― The basic COCOMO model assumes that effort and development time are functions of
the product size only.
― But other project parameters also affect the effort required to develop the product as
well as the development time.
― Therefore to obtain an accurate estimation of the effort and project duration, the effect
of all parameters must be taken into account.
― The intermediate COCOMO model considers a set of 15 cost drivers based on various
attributes of software development.
a1 a2 b1 b2

Effort E=a1* (KLOC)a2 * (EAF) EAF is Effort Adjustment Factor


T = b1 * (Effort)b2 Months

Page | 7
Fundamental of Software Design (1CE2403)

Complete COCOMO Model :

― A major disadvantage of both the basic and intermediate COCOMO models is that they
consider a software product as a single entity.
― Most large systems are made up several smaller sub-systems.
― Some sub-systems may be considered as organic type, some semidetached, and some
embedded.
― The complete COCOMO model estimates the effort and development time as the sum of
the estimates for the individual subsystems.
― The cost of each subsystem is estimated separately.
― For Example:
A Management Information System (MIS) product can have the following sub-components:
• Database part ----semi detached s/w
• Graphical User Interface (GUI) part organic s/w
• Communication part embeded s/w
The costs for these three components can be estimated separately, and summed up to give
the overall cost of the system.

Analytical Estimation Technique: (Halstead’s software science)

Analytical estimation techniques obtain the required result using certain basic assumptions
regarding software project. Halstead’s software science is an example of an analytical
technique.
― Halstead’s software science is an analytical technique to measure size, development
effort, and development cost of software products. Halstead used primitive program
parameters to develop the expressions for overall program length, volume, effort, and
development time.
― So for predicting software estimation it performs both empirical and heuristic techniques.
― According to Halstead's "A computer program is an implementation of an algorithm
considered to be a collection of tokens which can be classified as either operators or
operand."
Token Count
In these metrics, a computer program is considered to be a collection of tokens, which may
be classified as either operators or operands. All software science metrics can be defined in
terms of these basic symbols. These symbols are called as a token.
The basic measures are
n1 = count of unique operators.
n2 = count of unique operands.

Page | 8
Fundamental of Software Design (1CE2403)

N1 = count of total occurrences of operators.


N2 = count of total occurrence of operands.
In terms of the total tokens used, the size of the program can be expressed as N = N1 + N2.
For a given program, you need to calculate:
― Length: The length of a program as defined by total usage of all operators and operands.
N = N1 + N2
― Vocabulary: The program vocabulary is the number of unique operators and operands.
n=n1+n2
― Program Volume: The program volume is the total number of operators and operands.
V=Nlog2n
― Difficulty: The difficulty metric indicates how difficult a program is to write or understand.
D= (n1/2) * (N2/n2)
― Effort: The effort required to develop a program can be obtained by
E = Difficulty*Volume.
E=V/L=D*V

Page | 9

You might also like