Wa0003.
Wa0003.
REENGINEERING
1
SOFTWARE MAINTENANCE
2
Maintainable Software
3
Software Supportability
• “the capability of supporting a software system over its whole
product life.
• This implies satisfying any necessary needs or requirements,
but also the provision of equipment, support infrastructure,
additional software, facilities, manpower, or any other resource
required to maintain the software operational and capable of
satisfying its function.” [SSO08]
• The software should contain facilities to assist support personnel
when a defect is encountered in the operational environment (and
make no mistake, defects will be encountered).
• Support personnel should have access to a database that contains
records of all defects that have already been encountered—their
characteristics, cause, and cure.
4
REENGINEERING
Business
processes
IT Software
systems Reengineering application
s
5
BUSINESS PROCESS REENGINEERING
• Business definition. Business goals are identified within the context of
four key drivers: cost reduction, time reduction, quality improvement, and
personnel development and empowerment.
• Process identification. Processes that are critical to achieving the goals
defined in the business definition are identified.
• Process evaluation. The existing process is thoroughly analyzed and
measured.
• Process specification and design. Based on information obtained during
the first three BPR activities, use-cases are prepared for each process that
is to be redesigned.
• Prototyping. A redesigned business process must be prototyped before it
is fully integrated into the business.
• Refinement and instantiation. Based on feedback from the prototype, the
business process is refined and then instantiated within a business system.
6
Business Process Reengineering
7
BPR Principles
• Organize around outcomes, not tasks.
• Have those who use the output of the process perform the
process.
• Incorporate information processing work into the real work
that produces the raw information.
• Treat geographically dispersed resources as though they were
centralized.
• Link parallel activities instead of integrated their results.
When different
• Put the decision point where the work is performed, and build
control into the process.
• Capture data once, at its source.
8
Software Reengineering
Forward inventory
engineering analysis
Data document
restructuring restructuring
code reverse
restructuring engineering
9
Inventory Analysis
10
Document Restructuring
• Weak documentation is the trademark of many legacy systems.
• But what do we do about it? What are our options?
• Options …
• Creating documentation is far too time consuming. If the
system works, we’ll live with what we have. In some cases, this
is the correct approach.
• Documentation must be updated, but we have limited resources.
We’ll use a “document when touched” approach. It may not be
necessary to fully redocument an application.
• The system is business critical and must be fully redocumented.
Even in this case, an intelligent approach is to pare
documentation to an essential minimum.
11
Reverse Engineering
12
Code Restructuring
13
Data Restructuring
• Unlike code restructuring, which occurs at a relatively low level of
abstraction, data structuring is a full-scale reengineering activity
• In most cases, data restructuring begins with a reverse engineering
activity.
• Current data architecture is dissected and necessary data models
are defined.
• Data objects and attributes are identified, and existing data
structures are reviewed for quality.
• When data structure is weak (e.g., flat files are currently
implemented, when a relational approach would greatly
simplify processing), the data are reengineered.
• Because data architecture has a strong influence on program
architecture and the algorithms that populate it, changes to the data
will invariably result in either architectural or code-level changes.
14
FORWARD ENGINEERING
1. The cost to maintain one line of source code may be 20 to 40 times the cost of
initial development of that line.
2. Redesign of the software architecture (program and/or data structure), using
modern design concepts, can greatly facilitate future maintenance.
3. Because a prototype of the software already exists, development productivity
should be much higher than average.
4. The user now has experience with the software. Therefore, new requirements
and the direction of change can be ascertained with greater ease.
5. CASE tools for reengineering will automate some parts of the job.
6. A complete software configuration (documents, programs and data) will exist
upon completion of preventive maintenance.
15
ECONOMICS OF REENGINEERING-I
16
ECONOMICS OF REENGINEERING-II
17