0% found this document useful (0 votes)
55 views12 pages

Software Engineering: Slide Set 07: Software Maintenance

The document discusses business process reengineering and software reengineering. It describes the steps of business process reengineering as identifying business goals, processes, evaluating existing processes, specifying and designing redesigned processes, prototyping, and refining and implementing the redesigned process. For software reengineering, it outlines analyzing existing software to select candidates, restructuring documentation, using reverse engineering to analyze code, restructuring code and data, and then forward engineering to redesign the software architecture using modern concepts.

Uploaded by

Umar Malik
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
55 views12 pages

Software Engineering: Slide Set 07: Software Maintenance

The document discusses business process reengineering and software reengineering. It describes the steps of business process reengineering as identifying business goals, processes, evaluating existing processes, specifying and designing redesigned processes, prototyping, and refining and implementing the redesigned process. For software reengineering, it outlines analyzing existing software to select candidates, restructuring documentation, using reverse engineering to analyze code, restructuring code and data, and then forward engineering to redesign the software architecture using modern concepts.

Uploaded by

Umar Malik
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

SOFTWARE ENGINEERING

Slide Set 07: Software Maintenance


Reengineering
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 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.
Business Process Reengineering

Figure 8.1: Business Process Reengineering


Software re-Engineering

Figure 8.2: Software Re-engineering


Software re-Engineering
Inventory Analysis : Establish a list of criteria, e.g.,
• Name of the application
• Year it was originally created
• Number of substantive changes made to it
• Total effort applied to make these changes
• Date of last substantive change
• Effort applied to make the last change
• System(s) in which it resides
• Applications to which it interfaces, ...
• Analyze and prioritize to select candidates for reengineering
Document Restructuring
• Weak documentation is the trademark of many legacy systems.
• 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 re-document an application.
• The system is business critical and must be fully re-documented.
Even in this case, an intelligent approach is to pare documentation to
an essential minimum.
Reverse Engineering

Figure 8.3: Reverse Engineering


Code Restructuring
• Source code is analyzed using a restructuring tool.
• Poorly design code segments are redesigned
•Violations of structured programming constructs are noted and code
is then restructured (this can be done automatically)
•The resultant restructured code is reviewed and tested to ensure that
no anomalies have been introduced
•Internal code documentation is updated.
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.
Forward Engineering
• The cost to maintain one line of source code may be 20 to 40 times the
cost of initial development of that line.
• Redesign of the software architecture (program and/or data structure),
using modern design concepts, can greatly facilitate future maintenance.
• Because a prototype of the software already exists, development
productivity should be much higher than average.
• The user now has experience with the software. Therefore, new
requirements and the direction of change can be ascertained with greater
ease.
• CASE tools for reengineering will automate some parts of the job.
• A complete software configuration (documents, programs and data) will
exist upon completion of preventive maintenance.

You might also like