2. Tables of Content
Software Maintenance, Maintenance Process
Models, Maintenance Cost, Software
Configuration Management
Software Reuse: What can be Reused? Why
almost no Reuse, Basic Issues in Reuse
Approach, Reuse at Organization level
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
2
3. SOFTWARE
MAINTENANCE
Software maintenance denotes any changes
made to a software product after it has been
delivered to the customer.
On the other hand, software products do not
need maintenance on this count, but need
maintenance to correct errors, enhance
features, port to new platforms, etc.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
3
4. Types of Software
Maintenance
Corrective: It is necessary either to rectify the bugs
observed while the system is in use.
Adaptive: Adding new features to the existing code.
Perfective: Typically made to improve the
maintainability of the code.
Inspection: They are usually made as a result of
code inspection to reduce the likelihood of a failure.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
4
5. Maintenance Process
Models
Two types of models for s/w maintenance is
proposed
1st model – Small networks were the code is
changed directly and changes are reflected in the
relevant documents later.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
5
7. Maintenance Process
Models
2nd model – The amount of rework required is
significant.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
7
9. Maintenance Cost
Boehm [1981] proposed a formula for estimating
maintenance costs as part of his COCOMO cost
estimation model.
Boehm’s maintenance cost estimation is made
in terms of a quantity called the annual change
traffic (ACT).
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
9
10. Maintenance Cost
Annual Change Traffic (ACT)
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
10
The annual change traffic (ACT) is multiplied
with the total development cost to arrive at
the maintenance cost:
Maintenance cost = ACT × Development cost
11. Maintenance Cost
Most maintenance cost estimation models, give
only approximate results because they do not
take into account several factors such as
experience level of the engineers, and
familiarity of the engineers with the product,
hardware requirements,
software complexity, etc.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
11
12. Software Configuration
Management
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
12
The configuration of the software is the state
of all project deliverables at any point of time;
and software configuration management
deals with effectively tracking and controlling
the configuration of a software during its life
cycle.
13. Necessity of Software
Configuration Management
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
13
Problems associated with concurrent access
Providing a stable development environment
System accounting and maintaining status
information
Handling variants
15. Software Configuration
Management Activities
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
15
Configuration identification
Project managers normally classify the
objects associated with a software
development into three main categories—
Controlled,
Pre-controlled, and
Uncontrolled.
16. Software Configuration
Management Activities
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
16
Controlled objects are those that are
already under configuration control.
Pre-controlled objects are not yet under
configuration control, but will eventually be
under configuration control.
Uncontrolled objects are not subject to
configuration control.
17. Software Configuration
Management Activities
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
17
Controllable objects include both controlled and pre-
controlled objects. Typical controllable objects include:
Requirements specification document
Design documents
Tools used to build the system, such as compilers,
linkers, lexical analyzers, parsers, etc.
Source code for each module
Test cases
Problem reports
18. Software Configuration
Management Activities
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
18
Configuration control allows only authorized changes to
the controlled objects to occur and prevents unauthorized
changes.
In order to change a controlled object such as a module, a
developer can get a private copy of the module by a reserve
operation (see in the Figure).
Configuration management tools allow only one person to
reserve a module at any time.
Once an object is reserved, it does not allow any one else to
reserve this module until the reserved module is restored.
20. Tables of Content
Software Maintenance, Maintenance Process
Models, Maintenance Cost, Software
Configuration Management
Software Reuse: What can be Reused? Why
almost no Reuse, Basic Issues in Reuse
Approach, Reuse at Organization level
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
20
21. Software Reuse
Software products are expensive.
A possible way to reduce development cost
is to reuse parts from previously developed
software.
A reuse approach that is of late gaining
prominence is component-based
development.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
21
22. What can be reused?
The prominent items that can be effectively
reused are:
Requirements specification
Design
Code
Test cases
Knowledge
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
22
23. Why almost no reuse
so far?
Engineers feeling that the current system that
they are developing is similar to the last few
systems built.
No attention is paid on how not to duplicate
what can be reused from previously
developed systems.
Everything is being built from scratch.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
23
24. Why almost no reuse
so far?
Creation of components that are reusable in
different applications is a difficult problem.
It is very difficult to anticipate the exact
components that can be reused across
different applications.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
24
25. Why almost no reuse
so far?
The following observation is significant:
Mathematical libraries are being reused
No one in their mind would think of writing
a routine to compute sine or cosine.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
25
26. Basic issues in any
reuse program
The following are some of the basic
issues that must be clearly understood
for starting any reuse program:
Component creation.
Component indexing and storing.
Component search.
Component understanding.
Component adaptation.
Repository maintenance.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
26
27. Basic issues in any
reuse program
Component creation - the reusable components
have to be first identified. Selection of the right kind of
components having potential for reuse is important.
Component indexing and storing - Indexing
requires classification of the reusable components so
that they can be easily searched when we look for a
component for reuse. The components need to be
stored in a relational database management system
(RDBMS) or an object-oriented database system
(ODBMS) for efficient access when the number of
components becomes large.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
27
28. Basic issues in any
reuse program
Component search - The programmers
need to search for right components matching
their requirements in a database of
components.
Component understanding - The
programmers need a precise and sufficiently
complete understanding of what the
component does to be able to decide whether
they can reuse the component.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
28
29. Basic issues in any
reuse program
Component adaptation - Often, the components
may need adaptation before they can be reused,
since a selected component may not exactly fit the
problem at hand.
Repository maintenance - A component
repository once is created requires continuous
maintenance. New components, as and when
created have to be entered into the repository. The
faulty components have to be tracked.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
29
30. Basic issues in any
Reuse Approach
A promising approach that is being adopted by
many organizations is to introduce a building block
approach into the software development process.
Domain Analysis
Component Classification
Searching
Repository Maintenance
Reuse without Modifications
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
30
31. Basic issues in any
Reuse Approach
Domain Analysis:
The aim of domain analysis is to identify the reusable
components for a problem domain.
1. Reuse domain
2. Evolution of a reuse domain
1. Reuse domain – Application Areas
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
31
32. Basic issues in any
Reuse Approach
2. Evolution of a reuse domain - The ultimate results
of domain analysis is development of problem oriented
languages. The problem-oriented languages are also
known as application generators.
Stage 1 : There is no clear and consistent set of notations.
Stage 2 : Here, only experience from similar projects are
used in a development effort.
Stage 3: At this stage, the domain is ripe for reuse.
Stage 4: The domain has been fully explored.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
32
33. Basic issues in any
Reuse Approach
Component Classification
Properly classified in order to develop an effective
indexing and storage scheme
Hardware reuse has been very successful
At the lowest level, the components are described
in several forms — natural language, description,
logic schema, timing information, etc.
The higher the level at which a component is
described, the more is the ambiguity.
This has motivated the Prieto-Diaz’s
classification scheme.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
33
34. Basic issues in any
Reuse Approach
Prieto-Diaz’s classification scheme
Each component is best described using a
number of different characteristics or facets.
For example, objects can be classified using
the following:
Actions they embody.
Objects they manipulate.
Data structures used.
Systems they are part of, etc.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
34
35. Basic issues in any
Reuse Approach
Searching
A popular search technique that has proved to be
very effective is one that provides a web interface
to the repository.
Using such a web interface, one would search an
item using an approximate automated search
using key words, and then from these results
would do a browsing using the links provided to
look up related items.
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
35
36. Basic issues in any
Reuse Approach
Searching
Repository Maintenance
Reuse without Modifications
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
36
37. Basic issues in any
Reuse Approach
Searching
Repository Maintenance
Reuse without Modifications
10-08-2023
DR.M.PARTHIBAN, ASSOCIATE PROFESSOR, CSE
DEPARTMENT
37