Documente Academic
Documente Profesional
Documente Cultură
PGDIT
Software Engineering
Semester - 1
Session - 8
Abhishek
Singhal
Topics to be Covered
Configuration Management
The process of software development and maintenance is controlled is
called configuration management. The configuration management is
different in development and maintenance phases of life cycle due to
different environments.
Configuration Management
The following documents are required for these activities
Project plan
Software requirements specification document
Software design description document
Source code listing
Test plans / procedures / test cases
User manuals
Software Versions
Two types of versions namely revisions (replace) and variations (variety).
Version Control :
A version control tool is the first stage towards being able to manage
multiple versions. Once it is in place, a detailed record of every version of
the software must be kept. This comprises the
Name of each source code component, including the variations and
revisions
The versions of the various compilers and linkers used
The name of the software staff who constructed the component
The date and the time at which it was constructed
Change control process comes into effect when the software and
associated documentation are delivered to configuration management
change request form (as shown in next slide), which should record the
recommendations regarding the change.
Documentation
User Documentation
S.No.
Document
Function
1.
System Overview
2.
Installation Guide
3.
Beginners Guide
4.
Reference Guide
5.
Enhancement
6.
System administration
7.
System Documentation
System Documentation
S.No.
Document
Function
1.
System Rationale
2.
SRS
3.
Specification/ Design
4.
Implementation
System Documentation
S.No.
Document
Function
5.
6.
7.
Data Dictionaries
Environment
Software Quality
Different people understand different meanings of
quality like:
conformance to requirements
fitness for the purpose
level of satisfaction
Software Quality
Software Quality
Reliability
Correctness
The extent to
specifications.
Consistency &
precision
Robustness
Simplicity
Traceability
Usability
which
software
meets
its
Accuracy
Clarity &
Accuracy of
documentation
10
Conformity of
operational
environment
11
Completeness
12
Efficiency
13
Testability
14
Maintainability
Modularity
16
Readability
17
Adaptability
18
Modifiability
19
Expandability
20
Portability
Product Operation
Efficiency
Integrity
Reliability
Usability
Maintainability
Flexibility
Testability
Portability
Reusability
Interoperability
Quality Factors
Purpose
Integrity
Flexibility
Reusability
Interoperability
Quality Criteria
Operability
Training
I/O volume
I/O rate
Access control
Access audit
Storage efficiency
Execution efficiency
Traceability
The ability to
requirements.
link
software
components
to
11
Completeness
12
Accuracy
13
Error tolerance
14
Consistency
15
Simplicity
16
Conciseness
17
Instrumentation
Expandability
19
Generability
20
Selfdescriptiveness
21
Modularity
22
Machine
independence
23
Software system
independence
24
Communication
commonality
25
ISO 9126
Functionality
Reliability
Usability
Efficiency
Maintainability
Portability
ISO 9126
Characteristic/
Attribute
Functionality
Suitability
Accuracy
Interoperability
Security
Reliability
Maturity
ISO 9126
Fault tolerance
Recoverability
Usability
Operability
Efficiency
ISO 9126
Time behavior
Resource
behavior
Maintainability
Analyzability
Changeability
Stability
Testability
ISO 9126
Portability
Adaptability
Installability
Conformance
Replaceability
Table : Software quality characteristics and attributes The ISO 9126 view
ISO 9126
Capability Maturity
Model
It is a strategy for improving the software process, irrespective of the
actual life cycle model used.
Maturity Levels
Characterization
Initial
Adhoc Process
Repeatable
Defined
Process Definition
Managed
Process Measurement
Optimizing
Process Control
Common Features
ISO 9000
The SEI capability maturity model initiative is an attempt to improve
software quality by improving the process by which software is
developed.
ISO-9000 series of standards is a set of document dealing with
quality systems that can be used for quality assurance purposes.
ISO-9000 series is not just software standard. It is a series of five
related standards that are applicable to a wide variety of industrial
activities, including design/ development, production, installation,
and servicing. Within the ISO 9000 Series, standard ISO 9001 for
quality system is the standard that is most applicable to software
development.
Software Reliability
Basic Concepts
There are three phases in the life of any hardware component i.e.,
burn-in, useful life & wear-out.
In burn-in phase, failure rate is quite high initially, and it starts
decreasing gradually as the time progresses.
During useful life period, failure rate is approximately constant.
Failure rate increase in wear-out phase due to wearing out/aging of
components. The best period is useful life period. The shape of this
curve is like a bath tub and that is why it is known as bath tub
curve. The bath tub curve is given in Figure given in next slide.
Software Reliability
Software may be retired only if it becomes obsolete. Some of
contributing factors are given below:
change in environment
change in infrastructure/technology
major change in requirements
increase in complexity
extremely difficult to maintain
deterioration in structure of the code
slow execution speed
poor graphical user interfaces
Software Reliability
What is Software Reliability?
Software reliability means operational reliability. Who cares how
many bugs are in the program?
As per IEEE standard: Software reliability is defined as the ability of
a system or component to perform its required functions under
stated conditions for a specified period of time.
Software Reliability
Software reliability is also defined as the probability that a software
system fulfills its assigned task in a given environment for a
predefined number of input cases, assuming that the hardware and
the inputs are free of error.
It is the probability of a failure free operation of a program for a
specified time in a specified environment.
Software Reliability
There are four general ways of characterising failure occurrences in
time:
1. time of failure,
2. time interval between failures,
3. cumulative failure experienced up to a given time,
4. failures experienced in a time interval.
Software Reliability
Failure Number
18
10
25
36
11
45
57
12
71
14
86
15
104
18
10
124
20
11
143
19
12
169
26
13
197
28
14
222
25
15
250
28
Software Reliability
Time (sec)
Cumulative Failures
30
60
90
120
150
11
180
12
210
13
240
14
Software Reliability
Value of random
variable (failures
in time period)
Probability
Elapsed time tA = 1 hr
Elapsed time tB = 5 hr
0.10
0.01
0.18
0.02
0.22
0.03
0.16
0.04
0.11
0.05
0.08
0.07
0.05
0.09
0.04
0.12
0.03
0.16
0.02
0.13
Software Reliability
Value of random
variable (failures
in time period)
Probability
Elapsed time tA = 1 hr
Elapsed time tB = 5 hr
10
0.01
0.10
11
0.07
12
0.05
13
0.03
14
0.02
15
0.01
Mean failures
3.04
7.77
Software Reliability
A random process whose probability distribution varies with time to
time is called non-homogeneous. Most failure processes during test
fit this situation. Figure on next slide illustrates the mean value and
the related failure intensity functions at time tA and tB. Note that the
mean failures experienced increases from 3.04 to 7.77 between
these two points, while the failure intensity decreases.
Failure behavior is affected by two principal factors:
Software Reliability
Environment
Environment
The run types required of the program by the environment can be
viewed as being selected randomly. Thus, we define the operational
profile as the set of run types that the program can execute along
with possibilities with which they will occur. In figure (a), we show
two of many possible input states A and B, with their probabilities of
occurrence.
The part of the operational profile for just these two states is shown
in figure (b). A realistic operational profile is illustrated in figure .
Environment
Environment
( ) 0
1
V0
(1)
d
V0
(2)
d ( )
( )
0 1
d
V0
( ) V0
0
1 exp
V0
(3)
0
( ) 0 exp
V0
Derived quantities
Example
Assume that a program will experience 200 failures in infinite time. It has
now experienced 100. The initial failure intensity was 20 failures/CPU hr.
(i) Determine the current failure intensity.
(ii) Find the decrement of failure intensity per failure.
(iii) Calculate the failures experienced and failure intensity after 20 and 100
CPU hrs. of execution.
(iv)Compute addition failures and additional execution time required to
reach the failure intensity objective of 5 failures/CPU hr.
Use the basic execution time model for the above mentioned calculations.
Solution
Here
Vo=200 failures
100 failures
0 20 failures/CPU hr.
(i) Current failure intensity:
( ) 0
1
V0
100
20 1
20(1 0.5) 10 failures/CPU hr
200
Solution
(ii) Decrement of failure intensity per failure can be calculated as:
d 0
20
( ) V0 1 exp
V0
20 20
200 1 exp
200
Solution
0
( ) 0 exp
V0
20 20
20 exp
20 exp(2) 2.71 failures / CPU hr
200
(b) Failures experienced & failure intensity after 100 CPU hr:
0
( ) V0 1 exp
V0
20 100
200 1 exp
200
200 failures(almost)
0
( ) 0 exp
V0
Solution
20 100
20 exp
0.000908 failures / CPU hr
200
V0
200
P F
(10 5) 50 failures
20
0
Solution
Additional execution time required to reach failure intensity objective
of 5 failures/CPU hr.
V0
P
Ln
F
0
200 10
Ln
6.93 CPU hr.
20
5
0 exp( )
d
d
Ln(0 1)
( ) 0 /(0 1)
1 P
Ln
F
1 1
1
F P
(4)
Example
Assume that the initial failure intensity is 20 failures/CPU hr. The failure
intensity decay parameter is 0.02/failures. We have experienced 100
failures up to this time.
(i) Determine the current failure intensity.
(ii) Calculate the decrement of failure intensity per failure.
(iii) Find the failures experienced and failure intensity after 20 and 100 CPU
hrs. of execution.
(iv)Compute the additional failures and additional execution time required to
reach the failure intensity objective of 2 failures/CPU hr.
Use Logarithmic Poisson execution time model for the above mentioned
calculations.
Solution
0 20 failures/CPU hr.
100 failures
0.02 / failures
(i) Current failure intensity:
( ) 0 exp( )
= 20 exp (-0.02 x 100)
= 2.7 failures/CPU hr.
Solution
(ii) Decrement of failure intensity per failure can be calculated as:
d
d
= -.02 x 2.7 = -.054/CPU hr.
(iii) (a) Failures experienced & failure intensity after 20 CPU hr:
( )
1
Ln 0 1
Solution
( ) 0 / 0 1
(20) /(20 .02 20 1) 2.22 failures / CPU hr.
(b) Failures experienced & failure intensity after 100 CPU hr:
( )
1
Ln 0 1
( ) 0 / 0 1
(20) /( 20 .02 100 1) 0.4878 failures / CPU hr.
Solution
(iv) Additional failures required to reach the failure intensity
objective of 2 failures/CPU hr.
1
P
1
2.7
Ln
Ln
15 failures
F 0.02 2
1 1
1
1 1 1
F P 0.02 2 2.7
Example
The following parameters for basic and logarithmic Poisson models are
given:
(a) Determine the addition failures and additional execution time required to
reach the failure intensity objective of 5 failures/CPU hr. for both models.
(b) Repeat this for an objective function of 0.5 failure/CPU hr. Assume that
we start with the initial failure intensity only.
Basic execution time model
Logarithmic Poisson
execution time model
10 failures/CPU hr
30 failures/CPU hr
V 100 failures
0.25 / failure
Solution
(a) (i) Basic execution time model
V0
(P F )
0
100
(10 5) 50 failures
10
V0 P
Ln
0 F
(initial
Solution
100 10
Ln
6.93 CPU hr.
10
5
(ii) Logarithmic execution time model
1 P
Ln
F
1
30
Ln
71.67 Failures
0.025 5
1 1
1
F P
1
1 1
Ln 6.66 CPU hr.
0.025 5 30
Solution
Logarithmic model has calculated more failures in almost some duration of
execution time initially.
V0
P F
0
100
V0 P
Ln
0 F
100 10
Ln
30 CPU /hr
10
0.05
Solution
(ii) Logarithmic execution time model
1 P
Ln
F
1
30
Ln
164 failures
0.025 0.5
1 1
1
F P
1 1
1
78.66 CPU/hr
0.025 0.5 30
Resource Usage
Usage parameters
requirements per
Resource
Planned parameters
CPU hr
Failure
Quantities
available
Utilisation
Failure identification
personnel
PI
Failure correction
personnel
Pf
Pf
Computer time
Pc
Pc
X C c c
X f f
X I I I
dxT / d r r
dt / d (1 / Pr pr )dxT / d
dt / d ( r r ) / Pr pr
Example
A team run test cases for 10 CPU hrs and identifies 25 failures. The effort
required per hour of execution time is 5 person hr. Each failure requires 2
hr. on an average to verify and determine its nature. Calculate the failure
identification effort required.
Solution
As we know, resource usage is:
X r r r
Here
Hence,
r 15 person hr.
25 failures
10 CPU hrs.
r 2 hrs./failure
Xr = 5 (10) + 2 (25)
= 50 + 50 = 100 person hr.
Example
Initial failure intensity ( ) for a given software is 20 failures/CPU hr. The
0
failure intensity objective ( ) of 1 failure/CPU hr. is to be achieved.
F
Resource Usage
Failure identification effort
Failure Correction effort
Computer time
Per hour
Per failure
2 Person hr.
1 Person hr.
5 Person hr.
1 CPU hr.
Example
(a) What
resources
must
be
expended
to
achieve
the
reliability
Solution
(a)
1 P
Ln
F
1
20
Ln
119 failures
0.025 1
1 1
1
F P
1 1 1
1
1 0.05 38 CPU hrs.
0.025 1 20 0.025
Solution
Hence
X1 1 1
= 1 (119) + 2 (38) = 195 Person hrs.
X F F
= 5 (119) = 595 Person hrs.
X C c c
= 1 (119) + (1.5) (38) = 176 CPU hr.
Solution
(b)
1
20
Ln
148 failures
0.025 0.5
1 1
1
78 CPU hr.
0.025 0.5 20
So,
Solution
is
Example
A program is expected to have 500 faults. It is also assumed that one fault
may lead to one failure only. The initial failure intensity was 2 failures/CPU
hr. The program was to be released with a failure intensity objective of 5
failures/100 CPU hr. Calculated the number of failure experienced before
release.
Solution
The number of failure experienced during testing can be calculated using
the equation mentioned below:
V0
P F
0
Here
0 2 failures/CPU hr.
Solution
So
500
2 0.05
2
= 487 failures
Example
Solution
N = 100 errors
i = 60 failures
= 0.03
We know
(t ) 0.03(100 60 1)
= 0.03(100-60+1)
= 1.23 failures/CPU hr.
After 80 failures
(t ) 0.03(100 80 1)
= 0.63 failures/CPU hr.
Text Books
References
Thank You
Please forward your query
To: asinghal1@amity.edu
CC:
manoj.amity@panafnet.com