Week 9 SREE
Week 9 SREE
Software Re-engineering
(SREE)
Course Code: SESE4183
Taimoor Hassan
Senior Lecturer (SE), FOIT
taimoor.hassan01@ucp.edu.pk
4.4.2 Source Code Reengineering Reference Model
model of
process phases © IEEE, 1992
software
reengineering
was originally
proposed by
Byrne and
Gustafson.
• The model
comprises five
phases: analysis
and planning,
renovation,
target system
testing,
redocumentatio
n, and
acceptance
testing and
to C.
• Figure 4.9 shows the
three possible
replacement strategies.
• First, to perform source-
to-source translation,
program migration is
used.
• Second, a high-level
design is constructed
from the operational
source code, say, in
Fortran, and the
resulting design is re-
implemented in the
target language, C in this
case.
• Finally, a mix of
compilation and
4.4.3 Phase Reengineering Model
decompilation is used to
obtain the system
implementation in C
Target system testing:
4.4.3 Phase Reengineering Model
Redocumentation:
• In the redocumentation phase,
documentations are rewritten, updated,
and/or replaced to reflect the target system.
• Documents are revised according to the
redocumentation plan.
• The two major tasks within this phase are:
(i) analyze new source code, and
(ii) create documentation.
• Documents requiring revision are:
• requirement specification.
• design documentation.
• a report justifying the design decisions,
assumptions made in the implementation.
configuration.
• user and reference manuals.
• on-line help.
• document describing the differences between
the existing and the target system.
Acceptance and system
4.4.3 Phase Reengineering Model
transition:
• In this final phase, the reengineered
system is evaluated by performing
acceptance testing.
• Acceptance criteria should already
have been established in the
beginning of the project.
• Should the reengineered system
pass those tests, preparation begins
to transition to the new system.
• On the other hand, if the
reengineered system fails some
tests, the faults must be fixed; in
some cases, those faults are fixed
after the target system is deployed.
• Upon completion of the acceptance
tests, the reengineered system is
made operational, and the old
system is put out of service.
• System transition is guided by the
prior developed transition plan.
• Reverse engineering was first applied in electrical
engineering to produce schematics from an
electrical circuit.
4.5 Code Reverse Engineering
•
in
er
e
n
gi
n
e
re
g,
in
er
e
n
gi
n
e
d
ar
w
r
fo
n
e
e
w
et
b
p
hi
s
n
o
ti
la
re
e
h
T
Figure 4.10 Relationship between reengineering and reverse engineering ©IEEE, 1990
• Six objectives of reverse engineering, as identified
by Chikofsky and Cross II:
• generating alternative views.
• recovering lost information.
• synthesizing higher levels of abstractions.
• detecting side effects.
• facilitating reuse.
• coping with complexity.
• Six key steps in reverse engineering, as
documented in the IEEE Standard for Software
Maintenance, are:
• partition source code into units.
• describe the meanings of those units and identify the
functional units.
• create the input and output schematics of the units
identified before.
• describe the connected units.
• describe the system application.
• create an internal structure of the system.
• The first three of the six steps involve local
analysis, the rest involve global analysis.
4 .5 C o d e R e v e rs e E n g in e e rin g
4.5 Code Reverse Engineering
Reverse engineering has been effectively applied in the following problem areas:
documentation
• redesigning user interfaces
• parallelizing largely sequential programs
• translating a program to another language
• migrating data
• extracting business rules
• wrapping legacy code
• auditing security and vulnerability
• extracting protocols of network
applications
4.5 Code Reverse Engineering
• A high level organizational paradigm is found to be useful while setting up a
reverse engineering process, as advocated by Benedusi et al.
• Analyses are performed to identify the information needs of the process and the
abstractions to be created by the process.
• The team setting up the process first acquires a good understanding of the
forward engineering activities and the environment where the products of the
reverse engineering process will be used.
expressed in a mathematical
notation called regular expressions.
• Modern lexical analyzers are
automatically built using tools called
lexical analyzer generators, namely,
lex and flex (fast lexical analyzer).
• Syntactic analysis is performed by a parser.
• Similar to syntactic analyzers, parsers can
be automatically constructed from a
description of the programatical
properties of a programming language.
• YACC is one of the most commonly used
parsing tools.
• Two types of representations are used to
hold the results of syntactic analysis: parse
tree and abstract syntax tree.
• A parse tree contains details unrelated to
actual program meaning, such as the
4.6.2 Syntax Analysis
•
account while designing a visualization:
1. Simple navigation. 6.
Effective visual metaphors.
2. High information content. 7.
Friendly user interface.
3. Low visual complexity. 8.
Integration with other
information sources.
4. Varying levels of detail. 9.
Good use of interactions .
5. Resilience to change. 10.
Suitability for automation.
• To
und
erst
and
and
con
trol
the
ove
rall
soft
war
e
engi
nee
ring
pro
cess
,
pro
gra
m
met
rics
are
app
lied
.
• Tabl
4.6.7 Program Metrics
e
4.3
sum
mar
izes
the
co
mm
onl
y
use
d
pro
gra
m
met
rics.
• Based on a module’s fan-in and fan-out information
flow characteristics, Henry and Kafura define a
complexity metric,
Cp = (fan-in fan- out).
×
• Component:
(Computer 2) Core Architecture Refinement: IEEE Transactions on Software Engineering, Vol 21, No .4 April 1995, pgs 356-372
• Configuration:
• A collection of Constraints that wire the objects into a specific architecture
• Mapping:
• A relationship that defines a syntactical translation from the language of an abstract architecture to the
language of a concrete architecture
• Architectural Style:
• A vocabulary of design elements, constraints that determine how they are to be used and a
What are the different considerations for a local vs distributed homogeneous vs distributed heterogeneous system ?
semantic definition of the connectors associated with this style.
• http://www.sei.cmu.edu/str/taxonomies/view_qm.html
Organizational Measures
–Cost of Ownership
• Maintenance Measures Cost of Operation
• Maintainability Operations Personnel
• Understandability Training
• Complexity Operations System
• Simplicity Cost of Maintenance
• Structuredness Maintenance Personnel
• Readability Training
Maintenance Control
• Adaptive Measures
HW Maintenance
• Interoperability
SW Maintenance
• Compatibility
Requirements Growth
• Openness
Life-Time Operational Capability
• Portability Acquisition Cycle Time
• Scalability Software Change Cycle Time
• Reusability –Productivity
• Functional Scope
Retrievability
What are the• different considerations for a local vs distributed homogeneous vs distributed heterogeneous system ?
• Functionality
• Suitability, Accuracy, Interoperability, Compliance, Security
• What are the different considerations for a local vs distributed homogeneous vs distributed heterogeneous system ?
• Reliability
• Maturity, Fault-Tolerance, Recoverability
• What are the different considerations for a local vs distributed homogeneous vs distributed heterogeneous system ?
• Usability
• Understandability, Learn ability, Operability
• What are the different considerations for a local vs distributed homogeneous vs distributed heterogeneous system ?
• Efficiency
• Time behavior, Resource Behavior
• What are the different considerations for a local vs distributed homogeneous vs distributed heterogeneous system ?
• Maintainability
• Analyzability, changeability, Stability, Testability
• What are the different considerations for a local vs distributed homogeneous vs distributed heterogeneous system ?
• Portability
• Adaptability, Install ability, Conformance, Replace ability
• What are the different considerations for a local vs distributed homogeneous vs distributed heterogeneous system ?
Fall 2002 http://www.sei.cmu.edu/about/disclaimer.html 41
CS-545-Fall-2002
ISO vs. SEI Differences?
Architecture Recovery: Some
References
Architecture Recovery