Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

SOFTWARE ENGINEERING TECHNIQUES

LESSON 18:

Topics Covered is not maximum (not limiting), it is plotted thin. Note the
Calendar time to execution time relationship, Parametric model, transaction points FI and IC.
Software Maintenance, Categories of software maintenance,
Problems during software maintenance, Potential solutions to
maintenance problems
Objectives
Upon completion of this Lesson, you should be able to:
• Know what is the relationship between calendar time and
execution time
• Know what is Parametric model and software maintenance
• Know what are the problems during software maintenance
Calendar Time to Execution Time Relationship
Resource quantities and utilizations are assumed to be constant
for the period over which the model is being applied. This is a
Here, the calendar time to execution time ratios of two
reasonable assumption, as increases are usually not feasible.
resources are equal and the limiting resource changes. The point
The instantaneous ratio of calendar time to execution time can FC is a potential but not true transition point. Neither resource
be obtained by dividing the resource usage rate of the limiting F nor resource C is limiting near this point. The calendar time
resource by the constant quantity of resources available that can component allows you to estimate the calendar time in days
be utilized. Let t be calendar time. Then required to meet the failure intensity objective. The value of this
dt /dt = (1/ Pr ?r) dxr/dt 6.15 interval is particularly useful to software managers and engi-
neers. One may determine it from the additional execution time
The quantity Pr represents resource available. Note that Pr is the and additional number of failures needed to meet the objective
utilization. The above ratio must be computed separately for that we found for the execution time component. Second, one
each resource limited period. Since xr is a function of t , we now now determines the date on which the failure intensity objective
have a relationship between t and in each resource-limited will be achieved. This is a simple variant of the first quantity
period. that takes account of things like weekends and holidays.
The form of the instantaneous calendar time to execution time However, it is useful quantity because it speaks in terms
ratio for any given limiting resource and either model is shown managers and engineers understand.
in figures.
Reliability Allocation
Most software reliability models are used for reliability estima-
tion. Almost all the existing models estimate the reliability in
the testing and operational stages, after the completion of the
initial stage of product development. These models answer the
question, “how reliable is the system?” These models rely on
the data generated after the initial stage of development and
coding, hence they could hardly have any impact on the
planning and design stages of a software project. They provide
no guidelines for how much time and effort should be spent
on different modules of the software in the planning, design,
and early coding and development stages; the stages, which are
crucial to subsequent reliability of the system. Once the damage
is done, errors are committed; these models step in to measure
The shape of this curve will parallel that of the failure intensity. the extent of injury and may at most recommend the necessary
The curve approaches an asymptote of (S/PrPr Note that the dosage of corrective action. In this section, we discuss software
asymptote is 0 for the failure correction personnel resource. At reliability apportionment schemes, which attempt to answer the
any given time, the maximum of the ratios for the three question, “how reliable should each system module be?” These
limiting resources actually determines the rate at which calendar provide the reliability guidelines well in advance of any develop-
time is expended; this is illustrated in figure 6.12. The maxi- ment at the planning and design stage of the system, hence
mum is plotted as a solid curve. When the curve for a resource designing reliability into the system and making it a cost

© Copy Right: Rai University


66 3E.253
effective control tool for development management. Reliability installed and is operational. Therefore, delivery or release of

SOFTWARE ENGINEERING TECHNIQUES


allocation deals with setting of reliability goals for individual software inaugurates the maintenance phase of the life cycle.
modules such that a specified system reliability goal is met and The time spent and effort required keeping software operational
the modules’ goals are “well balanced” among themselves. Well after release is very significant and consumes about 40-70% of
balanced usually refers to approximate equality of development the cost of the entire life cycle. Despite the fact that it is very
time, difficulty, or risk or to the minimization of overall important and challenging task; it is routinely the poorly
development cost. Reliability requirements determined through managed headache that nobody wants to do.
systematic allocation procedure would be more realistic,
What is Software Maintenance?
consistent and economically attainable than those obtained
The term maintenance is a little strange when applied to
through subjective or haphazard methods, or those resulting
software. In common speech, it means fixing things that break
from crash programs initiated after unfortunate field experience.
or wear out. In software, nothing wears out; it is either wrong
Two such systematic approaches are discussed below.
from the beginning, or we decide later that we want to do
Parametric Model something different. However, the term is so common that we
The problem of reliability allocation is to apportion the must live with it .
reliability goal R to n modules such that Software Maintenance is a very broad activity that includes error
n corrections, enhancements of capabilities, deletion of obsolete
? R i* >= R ——(1) capabilities, and optimization. Because change is inevitable,
mechanisms must be developed for evaluating, controlling and
I=1 making modifications. So any work done to change the
where,R: System reliability goal software after it is in operation is considered to be maintenance.
The purpose is to preserve the value of software over time. The
Ri*: Allocated reliability for module i
value can be enhanced by expanding the customer base, meeting
After the development of any software, it is not expected to be additional requirements, becoming easier to use, more efficient
modified at the user end till there is a crash or till the next and employing newer technology. Maintenance may span for
version is to be released. For this situation, the failure rate of 500 years, whereas development may be 1-2 years.
every module and hence of the whole system can be assumed
constant. Then if, ?i* is the allocated failure rate for module i Categories of Maintenance
and ? is the required failure rate for the system, equation (1) is The only thing that remains constant in life is “CHANGE”. As
equivalent to the specification of the computer systems change, reflecting
changes in the external world, so must the system themselves.
n More than two-fifths of maintenance activities are extensions
∑ ? i* <= ? ——(2) and modifications requested by the users.
There are four major categories of software maintenance, which
I=1
are discussed below:
As ?i* is obviously a fraction of the total failure rate, let
Corrective Maintenance
?i* = W i ? ——(3) This refers to modifications initiated by defects in the software.
A defect can result from design errors, logic errors and coding
where Wi is the weight age factor for module i. These weight
errors. Design errors occur when, changes made to the software
age factors have obviously to be defined in such a manner so as
are incorrect, incomplete, wrongly communicated or the change
to have
request is misunderstood. Logic errors result from invalid tests
n and conclusions, incorrect implementation of design specifica-
∑ Wi=1 ——( 4) tions, faulty logic flow or incomplete test data. Coding errors are
caused by incorrect implementation of detailed logic design and
i=l incorrect use of the source code logic. Defects are also caused by
Also Ri* can be expressed as data processing errors and system performance errors.
Ri* = ( R)wi In the event of system failure due to an error, actions are taken
To make sure that equation (4) is satisfied, we define Wi in to restore operation of the software system. Due to pressure
terms of proportionality factors Zi’s as from management, maintenance personnel sometimes resort to
emergency fixes known as “patching”. The adhoc nature of this
approach often gives rise to a range of problems that include
increased program complexity and unforeseen ripple effects.
Unforeseen ripple effects imply that a change to one part of a
program may affect other sections is an unpredictable manner,
thereby leading to distortion in the logic of the system. This is
Software Maintenance often due to lack of time to carry out a through “impact
Software maintenance is a task that every development group analysis” before effecting the change.
has to face when the software is delivered to the customer’s site,

© Copy Right: Rai University


3E.253 67
Adaptive Maintenance Problems During Maintenance
SOFTWARE ENGINEERING TECHNIQUES

It includes modifying the software to match changes in the ever- The most important problem during maintenance is that
changing environment. The term environment in this context before correcting or modifying a program, the programmer
refers to the totality of all conditions and influences which act must first understand it. Then, the programmer must under-
from outside upon the software, for example, business rules, stand the impact of the intended change. Few problems are
government policies, work patterns, software and hardware discussed below [LEHM85, ARN082]:
operating platforms. A change to the whole or part of this • Often the program is written by another person or group
environment will require a corresponding modification of the of persons working over the years in isolation from each
software. other.
Thus, this type of maintenance includes any work initiated as a • Often the program is changed by person who did not
consequence of moving the software to a different hardware or understand it clearly, resulting in a deterioration of the
software platform-compiler, operating system or new processor. program’s original organization.
Any change in the government policy can have far-reaching • Program listings, even those that are well organized, are
ramifications on the software. not structured to support reading for comprehension. We
When European countries had decided to go for “single normally read an article or book straight through, but with
European currency”, this change affected all banking system listing, programmer rummages back and forth.
software and was modified accordingly • There is a high staff turnover within Information
Perfective Maintenance Technology industry. Due to this many systems are
It means improving processing efficiency or performance, or maintained by persons who are not the original authors.
restructuring the software to improve changeability. When the These persons may not have adequate knowledge about
software becomes useful, the user tends to experiment with the system. This may mean that these persons may
new cases beyond the scope for which it was initially developed. introduce changes to programs without being aware of
Expansion in requirements can take the form of enhancement their effects on other parts of the system - the ripple, effect.
of existing system functionality or improvement in computa- This problem may be worsened by the absence of
tional efficiency; for example, providing a Management documentation. Even where it exists, it may be out of date
Information System with a data entry Module or a new message or inadequate.
handling facility. • Some problems only become clearer when a system is
Other Types of Maintenance incuse.
There are long term effects of corrective, adaptive and perfective Many users know what they want but lack the ability to
changes. This leads to increase in the complexity of the express it in a form understandable to programmers/
software, which reflects deteriorating structure. The work is analysts. This is primarily due to information gap.
required to be done to maintain it or to reduce it, if possible. • Systems are not designed for change. If there is
This work may be named as preventive maintenance. This term hardly any scope for change, maintenance will be
is often used with hardware systems and implies such things as very difficult. Therefore approach of development
lubrication of parts before need occurs, or automatic replace- should be the production of maintainable
ment of banks of light bulbs before they start to individually software. All these problems translate to a huge
burn out. Since software does not degrade in the same way as maintenance expenditure, which has been
hardware and does not need maintenance to retain the presently estimated ranging from 40% to 70% of the total
established level of functionality. Some authors do not use this cost during the life cycle of large-scale software
term. That is why we have included this type of activity under systems.
“Other Types of Maintenance” category. This activity is usually
Potential Solutions to Maintenance Problems
initiated from within the maintenance organization with the
A number of possible solutions to maintenance problems have
intention of making program easier to understand and hence
been suggested. They include: budget & effort reallocation;
facilitating future maintenance work. This includes code
complete replacement of existing systems; and enhancement of
restructuring, code optimization and documentation updating.
existing systems.
After a series of quick fixes to software, the complexity of its
source code can increase to an unmanageable level, thus Complete replacement of the system is not usually a viable
justifying complete restructuring of the code. Code optimiza- option. An operational system in itself can be asset to an
tion can be performed to enable the programs to run faster or organization in terms of the investment in technical knowledge
to make more efficient use of storage. Updating user & system and the working culture engendered. The current system may
documentation, though frequently ignored, is often necessary need to have the potential to evolve to a higher state, providing
when any part of software is changed. The documents affected more sophisticated user-driven functionality, the capability of
by the change should be modified to reflect the current state of developing cutting edge technology, and of allowing the
the system. integration of other systems in a cost effective manner.
Budget and Effort Reallocation
It is now-a-days suggested that more time and resources
should be invested in the development-specification & design

© Copy Right: Rai University


68 3E.253
of more maintainable systems rather than allocating resources

SOFTWARE ENGINEERING TECHNIQUES


to develop unmentionable or difficult to maintain systems. The
use of more advanced requirement specification approaches;
design techniques & tools, quality assurance procedures and
standards such as ISOP 9000, CMM and maintenance standards
are aimed at addressing this issue.
Complete Replacement of the System
If maintaining an existing system costs as much as developing a
new one, why not develop a new system from scratch. This
point of view is understandable, but in practice it is not simple.
The risk and costs associated with complete system replacement
are very high. Corrective & preventive maintenance take place
periodically at relatively small but incremental costs. Some
organization can afford to pay for these comparatively small
maintenance charges while at the same time supporting more
ambitious and financially demanding project may not be
possible.
The creation of another system is no guarantee that it will
function better than the old one. On installation, errors may be
found in functions the old system performed correctly and such
errors will need to be fixed as they are discovered.
Notes

© Copy Right: Rai University


3E.253 69

You might also like