Unit 4
Unit 4
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:
Page | 1
Fundamental of Software Design (1CE2403)
― 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:
― 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)
Page | 4
Fundamental of Software Design (1CE2403)
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
― 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).
a1 a2 b1 b2
Page | 7
Fundamental of Software Design (1CE2403)
― 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 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)
Page | 9