Software
Quality Factors
The
aim of the Software Developer is to
develop high-quality software within a specified time and budget. To achieve
this, Software should be developed according to the user’s requirements and set
of standards as expected.
Software
is said to be of high quality if it is free from errors and is according to
user requirements. In order to obtain the desired quality, factors commonly
defined in ISO 9126 are followed.
Correctness: It means that
software is free from design defects and from coding defects i.e. fault-free.
The software developed meets its specified requirements. It is able to satisfy
the user expectations.
Reliability: It means the ability
of the program to perform a required function under some condition for a stated
period of time.
Efficiency: It means that
software performs all its functions with minimum use of computing resources.
Integrity: It means all the
software is integrated together and cannot be accessed by unauthorized user.
Portability: It means that way by
which software can be transferred from one computer system to another computer
system.
Accuracy: A qualitative
assessment of freedom from errors.
Robustness: It means that
software can be able to operate correctly unless the introduction of invalid
inputs.
Testability: The effort required
to test the programs for their functionality.
Maintainability: The effort required
to locate and fix an error in a program.
Usability: Effort required in learning,
operating, preparing input and interpreting output of a program.
Verifiability: It means to verify
the software that it meets the user’s requirement or not.
User Friendliness: A software system is
user friendly if it is easily used by the users.
Cost
Estimation
n
Software
cost estimation is the process of predicting the amount of effort required to
build a software system.
n
Models
provide one or more mathematical algorithms that compute cost as a function of
a number of variables.
n
Size
is a primary cost factor in most models and can be measured using lines of cods or function points.
n
Models
used to estimate cost can be categorized as either cost model or
constraint models.
n
COCOMO is an example of a cost model and SLIM is an example of a
constraint model.
n
For
a given set of requirements it is desirable to know how much it will cost to
develop the software to satisfy the given requirement and how much time the
development will take.
n
These
estimates are needed before development is initiated.
Factors affecting cost
n
Programmer
ability
n
Product
complexity
n
Product
size
n
Available
time
n
Level
of technology
Need for cost estimation
n
The
primary reason for cost and schedule estimation is to enable the client or the
developer to perform a cost benefit analysis and for project monitoring and
control.
n
In
bidding for the software projects where the developers must give cost estimates
to a potential client for the development contract.
n Techniques
of Cost Estimation:
n Estimation
can be based on subjective opinion of some persons or determine through the use of models.
n 1.Estimations
based on subjective opinion :
n Under the subjective Opinion three main
techniques for estimation are:
n a)
Delphi technique
n b)Proportionate
task time method
n c)Work
breakdown structure
n 2.Estimation
based on models:
n 1.Estimation
based on subjective opinion
n Delphi
technique
n a)This
was developed by Rand Corporation in 1948 to obtain unbiased Estimates from
experts.
n b)Requirement
analyses of modules are given to several project managers. The project managers
can be briefed in a joint meeting.
n
The
project managers are asked to submit their estimates for each task. They are
not to consult each other.
n
After
estimates are obtained graphical representation of frequency distribution is
made.
n
In
case of too much deviation from the mode, a meeting of all the estimators is
called once again to explain the task involved and ask them to re-estimate. The
process is repeated till consistent estimates are obtained.
Advantages:
This
technique reduces the risk involved in project management.
Disadvantages:
n
Large
number of specialists should be available in the organization, which cannot be
possible in any organization.
n
This
technique should be applied only when no other estimates are available in
similar projects.
Proportionate Task
Time Method (PTT):
n
in
this method, model of relative proportion of different stages is used from
similar projects.
n
To
apply this method a databank of past projects costs should be built up and
maintained from the actual cost from the life-cycle phases.
n
When
a project is given for cost estimation this databank is referred to and a
similar project is found out.
n
The
cost of the present project is determined on the basis of past similar project
taking into consideration the increase in productivity of the progammer due to advancement in the software used to develop the project.
Advantages:
This techniques is based on actual
experience. Hence is more reliable.
Disadvantages :
This techniques does not take into account
factors like individual programmer productivity, individual machine performance
etc.
Work Breakdown Structure:
n
A
product breakdown structure is a hierarchical chart that accounts for the
individual parts of a system.
n
In
this technique a project is broken down to individual modules and sub-modules.
Complexity
level is associated with each one of them. Cost is estimated for each module
and then totalled up for the entire project.
Advantages:
a) Most practical technique to estimate
the cost required.
b) Skill-levels required for each type
of program can be estimated and hence for the project as a whole.
2.
Estimation
based on models:
COCOMO(The Constructive Cost
Model)
COCOMO is a hierarchy of software cost
estimation models, which include basic, intermediate and detailed sub models.
Basic models
n
This
basic model aims at estimating in a quick and rough fashion, most of the small
to medium sized software projects.
Three
modes of software development are considered in this model i.e. organic, semi
detached and embedded.
n
In
the organic mode a small team of experienced programmers develops the
software in a very familiar environment. The size of the software development
in this mode ranges form small (a few KLOC) to medium (a few tens of KLOC),
while in other modes the size ranges from (very large to a few hundreds of
KLOC).
n
In
the embedded mode of software development, the project has tight
constraints, which might be related to the target processor and its interface
with the associated hardware. The
problem to be solved is unique and so it is often hard to find experienced
persons, as it does not usually exist.
n
The
semi-detached mode is an intermediate mode between the organic mode and
embedded. Depending on the problem at hand, the team might include a mixture of
experienced and less experienced people with only a recent history of working
together. The basic COCOMO equations take the form
E=a
(KLOC)b
D=c
(E)d
Where
E is the effort applied in persons-months,and D is the development time in
months.the coefficients are given as:
project
|
ab
|
bb
|
cb
|
db
|
organic
|
2.4
|
1.05
|
2.5
|
0.38
|
semidetached
|
3.0
|
1.12
|
2.5
|
0.35
|
embedded
|
3.6
|
1.10
|
2.5
|
0.32
|
Intermediate model
•
The basic model allowed for a quick and rough
estimate, but it resulted in a
Lack of accuracy.
•
Boehm introduced an additional set of 15 predictors
called cost drivers in the
Intermediate model to take
account of the software development.
•
Cost drivers are used to adjust the nominal cost of a
project to the actual
Project environment,hence
increasing the accuracy of the estimate.
The cost drivers are
grouped into four categories:
Product Attributes
a)Required software
reliability (RELY)
b)Database size (DATA)
c)Product complexity (CPLX)
Computer attributes
a)Execution time constraint
(TIME)
b)Main storage constraint
(STOR)
c)Virtual machine
volatility (VIRT)
d)Computer turnaround
time (TURN)
Personnel attributes
a)Analyst capability (ACAP)
b)Application experience
(AEXP)
c)Programmer capability
(PCAP)
d)Virtual machine
experience (VEXP)
e)Programming language
experience (LEXP)
Project attributes
a)Modern programming
practices (MODP)
b)Use of software tools
(TOOL)
c)Required development schedule
(SCED)
Each cost driver is rated for a given project
environment…
The multiplying factors for all 15 cost drivers are
multiplied to get the effort adjustment factor (EAF). Typical values for EAF
range from 0.9 to 1.4
The intermediate COCOMO equations take the form:
Ei=ai(KLOC)bi
D=ci(E)di
There fore
Total
E=ai(kloc)bi *EAF
Detailed COCOMO model
n
A
large amount of work has been done by Boehm to capture all significant aspects
of a software development
n
It
offers a means for processing all the project characteristics to construct a
software estimate. The model introduce two more capabilites.
- Phase-sensitive
effort multipliers:
Some phases (design, programming,
integration/test) are more affected than other by factors defined by the cost
drivers. The detailed model provides a set of phase sensitive effort
multipliers for each cost driver. This helps in determining the manpower
allocation for each phase of the project.
- Three-level
product hierarchy:
three product levels are defined. These
are modules, subsystem and system levels. The ratings of the cost drivers are
done at appropriate level.
n
Development
phases
A software development is carried out
in four successive phases: plans/requirements, product design, programming and
integration
/test.
- Plan/requirement:
n
This
is the first phase of the development cycle.
n
The
requirement is analyzed, the product plan is set up and a full product
specification is generated.
n
This
phase consumes from 6% to 8% of the effort and 10% to 40% of the development
time.
n
These
%ages depend not only on mode (organic, semi-detached or embedded), but also on
size.
2.
Product design
n
The
second phase of the COCOMO development cycle is concerned with the
determination of the product architecture and the specification of the
subsystem.
n
This
phase requires from 16% to 18% the nominal effort and can last from 19% to 38%
of the development time.
3.
Programming :
n
The
third phase of the COCOMO development cycle is divided into two sub-phase:
detailed design and code/unit test.
n
This
phase requires from 48% to 68% of the effort lasts from 24% to 64% of the
development time.
4.
Integration/Test:
n
This
phase of the COCOMO development cycle occurs before delivery.
n
This
mainly consists of putting the tested parts together and then testing the final
product.
n
This
phase requires from16 %to 34% of the nominal effort and can last from 18% to
34% of the development time.
No comments:
Post a Comment