SlideShare a Scribd company logo
IJSRD - International Journal for Scientific Research & Development| Vol. 2, Issue 09, 2014 | ISSN (online): 2321-0613
All rights reserved by www.ijsrd.com 90
A Comparative Study of Forward and Reverse Engineering
Dhaval Jha1
Bansal Shah2
Dhwanish Shah3
Saloni Shah4
Yash Shah5
1,2,3,4,5
Department of Computer Engineering
1,2,3,4,5
Nirma University
Abstract— With the software development at its boom
compared to 20 years in the past, software developed in the
past may or may not have a well-supported documentation
during the software evolution. This may increase the
specification gap between the document and the legacy code
to make further evolutions and updates. Understanding the
legacy code of the underlying decisions made during
development is the prime motto, which is very well
supported by Reverse Engineering. In this paper, we
compare the Transformational Forward engineering, where a
stepwise abstraction is obtained with the Transformational
Reverse Methodology. While the forward transformation
process produces overlap of the decisions, performance is
affected. Hence, the use of transformational method of
Reverse Engineering which is a backwards Forward
Engineering process is suitable. Besides the design
recognition obtained is a domain knowledge which can be
used in future by the forward engineers.
Key words: Software development, Specification document,
Legacy code, forward engineering, Reverse engineering
I. INTRODUCTION
Software Engineering is a process of creating, enhancing
and maintaining a well-defined system to meet the specific
requirements of the client with the support of tools required
by the same. The Software Development Life Cycle
(SDLC) is not just the prime feature of software engineering
but also required is a round the clock maintenance and
support to meet the changes as asked by the client.
But often it happens that the software doesn't have
well defined document to support changes made in the
software. This increases the task of the developer to
understand the code of its purpose and the design decisions
made. Hence the adaptability of the software to changes is a
question.
Having a semiformal specification can lead to a
more varied interpretations for the coders and hence can
lead to a limited usability. Therefore a formal description
with a rationale can help bridge the communication
problem.
II. MOTIVATION
Among all plausible methods defined for plan recognition,
Programmer's Apprentice is one of the most advanced and
sophisticated, representing plans with the support of control
and data flows. It uses the recursive method to match the
codes with the templates and maximize the ability and
independence. For the ongoing research in reverse
engineering 'the big-problems' are not being divided into its
sub modules, for which we were inspired to carry out the
comparative study between Forward & Reverse
Engineering.
III. LITERATURE SURVEY
A. Forward Engineering
This approach is channelized by collecting the informal
requirements which are converted into semi-formal
requirements in the present scenario of software
development. This gives the programmer and developer the
option/choice to make underlying decisions not provided in
the document.
Hence, hidden in this document and code are those
underlying decisions made to make the implementation
more efficient. Example would implement a binary search
rather than linear search to reduce response time of the
system, which is not known to the client.
Besides post development and usage phase, errors
and bugs detected in the system will be rectified. But these
changes may not be reflected in the program but not in the
document. Hence, the program is mismatched with the
document which leads to understandability problems. To
bridge the gap between specification and the program its
required to first reflect the changes in the design and then
make hardcore changes in the program to induce flexibility
and provide maintainability. Document including the
rationale generates relationships between the same. Two
fundamental approaches are channelized as: First and the
conventional method involve the stepped filter and precede
process wherein underlying intermediate decisions and steps
which provide the formalized and understandable structure
of the software, are added to the document to reduce the
gap. However, this conventionality introduces certain
drawbacks to the software and the client. It still involves a
non-automatic implementation as they still don't have any
rationale nor any underlying decisions taken by the
programmer. Besides, a serious inefficiency is observed as
piles of documents have to be maintained for every change
incorporated in the software.
With the previous approach inducing inefficiency,
developers use a much better and faster approach referred as
the transformational method wherein a more specific system
and user requirements are required. Detailed requirements
may be considered to contain a domain notation like UMLs,
object diagrams or data-flow diagrams. Based on these
specifications provided, a transformed program code is
generated to change the previous code or generate a new
software code which also rationale for each transformations,
unlike the previous approach. This helps convert the given
specification to a more specific and updated document. It
involves three standard steps to carry out the
transformations: [1]
Refinement, Optimization and Integrating the
filtration & optimization.
Hence, these steps generate an understandable code
with a rationale mentioned for each. Transformational
design generated, achieve the performance requirements
along with new selections made by the programmer but at
each level this details are documented.
A Comparative Study of Forward and Reverse Engineering
(IJSRD/Vol. 2/Issue 09/2014/020)
All rights reserved by www.ijsrd.com 91
Various techniques or approaches can be applied
by the developer to attain the transformational design:
1) Flow Generation:
Generalization or specialization as required is structured. To
achieve higher efficiency a better decision is to use
specialization.
2) Algorithm Selection:
Algorithm selection based on the different implementations
possible can be done to be able to properly document the
implementations.
3) Interleaving:
Various different modules or functionalities can be
integrated into same code or section to achieve higher
performance.
4) Classification into Subsystems:
Hierarchy of subsystems can be achieved to organize the
different modules/designs as per usage in the code.
5) Representation Changes:
To attain the required specification in a particular language
it might be possible to change the representations. As a
structure of arrays or array of structures [1], representing the
parsed data as an indexed single dimensional array or a
parse tree for better understandability and usage.
6) Resource Sharing:
To avail the same resource to various functionalities and
modules.
7) Caching:
In order to preserve the intermediate results to be used later
in the program, these results are cached.
Besides the transformations can be optimized using
various techniques such as Elimination of common sub-
expression, Dead Code Elimination, Frequency Reduction
Strength Reduction Compile Time Evaluation [2]
Irrespective of the implementation, manual or
semi-automated tools understandability is affected as an
overlap of the decisions occurs. However, if the code
implementation is carried out considering the performance
motive, the recorded decisions provide a faster way to
develop a new system and modify the existing systems using
the CASE tools.
B. Reverse Engineering
Fig. 1 Flow from old to new implementation [3]
Executing the forward engineering to all systems is not
feasible as providing a rationale and formal specific
document for each developed software is next to impossible.
Over time each software demands an evolution to meet the
new client requirements. Removing the bugs and faults,
enhancement demands incorporating the different approach
than the conventional Forward Engineering.
In the most recent and currently implemented
method, recognizing the plans is a process to understand the
code fragments. This is a bottom-up design to analyses the
code as matching is done of the code fragments with the
defined templates to recognize the concepts by the reverse
engineer. However this is carried out using certain
procedural steps: [3]
1) Software Data Collection:
Involves aggregating the specifications document, source
code, all entities relating the software.
2) Information Interpretation:
All collected information in the previous step is analyzed for
further implementation.
3) Structure Identification:
Based on the information analyzed, structures of code are
created as a chart to represent the calls and returns to map
them properly.
4) Functionality Identification:
Structural points in the chart provide the details regarding
the code executed in each structure. Appropriate higher level
language can be used to describe the functionality extracted.
5) Data-Flow Identification:
Transformations among the data and its related processing
and execution are identified and it’s recorded using the data-
flow diagrams.
6) Control-Flow Identification:
Control structures affecting the overall operation of the
system are identified and represented using appropriate flow
diagrams.
7) Review Recovered Plan:
Check the correctness and the pattern extracted with the
available plans for consistency and fill in the holes by
checking the representations.
8) Document Specification:
Recording every step of reverse engineering to cache the
pattern extracted, even the rationale derived for each.
Fig. 2 Reverse Engineering Execution Flow-Diagram
However this induces a drawback as all necessary
and required plans need to be known priory. Besides
different implementations of the recognized plans is possible
which can create a discrepancy. Example a pass by value or
A Comparative Study of Forward and Reverse Engineering
(IJSRD/Vol. 2/Issue 09/2014/020)
All rights reserved by www.ijsrd.com 92
pass by reference in case of function arguments. To identify
the correct underlying decision all plans need to be known.
Problems identified can be resolved mainly using
alternative approaches:
First method is an extension to the original method.
It requires the reverse engineer to add more plans, patterns,
templates and correlating rules to detect with more better
semantic and syntactical specifications. This increases the
probability to recognize the correct plan and make
appropriate design decisions. Still, rationale is also required
to properly trace back the code with the extracted pattern.
Appropriate valid reasoning and transformations are
required for the code to be matched to the recorded data set.
Compared to the convention, an approach is also
defined for the same. For each set of code, small
transformations in reverse order are carried out compared to
Forward Engineering, and suitable abstraction is identified.
Besides it may happen that the plan abstracted may not exist
in the current libraries and hence new domain dataset is
obtained. This dataset can further be used by reverse
engineers to maintain and modify the existing software, by
the forward engineers for develop new systems.
Also, it's not so that plan recognition serves no
advantage, it provides a basis for certain transformations
too. While performing a match of a natural no from a string
value property of hashing is recognized, which helps
indicates that a hash table type transformation is required.
Besides from both the reverse engineering
processes certain levels of abstraction are obtained.
Purposes served are
 maintenance purpose
 evolution purpose
 reengineering purpose
Levels achieved for abstraction are:
 Application: Application concepts, business rule,
policies
 Function: Logical and functional specification,
non-functional requirement
 Structure: Data and control flow, dependency graph
Structure and subsystem charts Architectures
 Implementation : Symbol tables, source text
IV. CONCLUSION
After analyzing four methods of software development and
modification, it is concluded that irrespective of the type of
checking performed, we require domain knowledge in each
to extract the system design and plan. But Reverse
Engineering provides an external support not just to identify
the bugs and rectify them but also help generate new domain
datasets for future use by the Forward engineers.
Fig. 3 Forward versus Reverse Engineering Flow
REFERENCES
[1] D. M. Dhamdhere, Systems Programming, New
Delhi: McGraw Hill Education (India) Private
Limited, Fifth Reprint 2013.
[2] M. M. Ira D. Baxter, "Reverse Engineering is
Reverse Forward Engineering," in Fourth Working
Conference on Reverse Engineering,
Amsterdam,Netherlands, 1997.
[3] E. J. Byrne, "Software Reverse Engineering: A
Case Study," SOFTWARE—PRACTICE AND
EXPERIENCE, vol. 21(12), no. December(1991),
pp. 1349-1364.

More Related Content

What's hot

Software re engineering
Software re engineeringSoftware re engineering
Software re engineering
Indu Sharma Bhardwaj
 
5 software design
5 software design5 software design
5 software design
cherrybear2014
 
Introduction to Software Reverse Engineering
Introduction to Software Reverse EngineeringIntroduction to Software Reverse Engineering
Introduction to Software Reverse Engineering
Teodoro Cipresso
 
G213538
G213538G213538
Ui design final
Ui design finalUi design final
Ui design final
Indu Sharma Bhardwaj
 
Software reverse engineering
Software reverse engineeringSoftware reverse engineering
Software reverse engineering
Parminder Singh
 
Reverse Engineering Web Applications
Reverse Engineering Web ApplicationsReverse Engineering Web Applications
Reverse Engineering Web Applications
Porfirio Tramontana
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
Abdul Wahid
 
Software Re-Engineering in Software Engineering SE28
Software Re-Engineering in Software Engineering SE28Software Re-Engineering in Software Engineering SE28
Software Re-Engineering in Software Engineering SE28
koolkampus
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
Piyush Gogia
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
JayaKamal
 
SWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design BasicsSWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design Basics
ghayour abbas
 
Software Reuse: Challenges and Business Success
Software Reuse: Challenges and Business SuccessSoftware Reuse: Challenges and Business Success
Software Reuse: Challenges and Business Success
University of Zurich
 
SWE-401 - 6. Software Analysis and Design Tools
SWE-401 - 6. Software Analysis and Design ToolsSWE-401 - 6. Software Analysis and Design Tools
SWE-401 - 6. Software Analysis and Design Tools
ghayour abbas
 
CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2
SIMONTHOMAS S
 
Software design presentation
Software design presentationSoftware design presentation
Software design presentation
bit allahabad
 
Bse 3105 lecture 4-software re-engineering
Bse 3105  lecture 4-software re-engineeringBse 3105  lecture 4-software re-engineering
Bse 3105 lecture 4-software re-engineering
Alonzee Tash
 
Software Cost Estimation in Software Engineering SE23
Software Cost Estimation in Software Engineering SE23Software Cost Estimation in Software Engineering SE23
Software Cost Estimation in Software Engineering SE23
koolkampus
 
9. Software Implementation
9. Software Implementation9. Software Implementation
9. Software Implementation
ghayour abbas
 
Software engineering: design for reuse
Software engineering: design for reuseSoftware engineering: design for reuse
Software engineering: design for reuse
Marco Brambilla
 

What's hot (20)

Software re engineering
Software re engineeringSoftware re engineering
Software re engineering
 
5 software design
5 software design5 software design
5 software design
 
Introduction to Software Reverse Engineering
Introduction to Software Reverse EngineeringIntroduction to Software Reverse Engineering
Introduction to Software Reverse Engineering
 
G213538
G213538G213538
G213538
 
Ui design final
Ui design finalUi design final
Ui design final
 
Software reverse engineering
Software reverse engineeringSoftware reverse engineering
Software reverse engineering
 
Reverse Engineering Web Applications
Reverse Engineering Web ApplicationsReverse Engineering Web Applications
Reverse Engineering Web Applications
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
 
Software Re-Engineering in Software Engineering SE28
Software Re-Engineering in Software Engineering SE28Software Re-Engineering in Software Engineering SE28
Software Re-Engineering in Software Engineering SE28
 
Chapter 5 software design
Chapter 5 software designChapter 5 software design
Chapter 5 software design
 
Software Engineering
Software Engineering Software Engineering
Software Engineering
 
SWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design BasicsSWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design Basics
 
Software Reuse: Challenges and Business Success
Software Reuse: Challenges and Business SuccessSoftware Reuse: Challenges and Business Success
Software Reuse: Challenges and Business Success
 
SWE-401 - 6. Software Analysis and Design Tools
SWE-401 - 6. Software Analysis and Design ToolsSWE-401 - 6. Software Analysis and Design Tools
SWE-401 - 6. Software Analysis and Design Tools
 
CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2CS8494 SOFTWARE ENGINEERING Unit-2
CS8494 SOFTWARE ENGINEERING Unit-2
 
Software design presentation
Software design presentationSoftware design presentation
Software design presentation
 
Bse 3105 lecture 4-software re-engineering
Bse 3105  lecture 4-software re-engineeringBse 3105  lecture 4-software re-engineering
Bse 3105 lecture 4-software re-engineering
 
Software Cost Estimation in Software Engineering SE23
Software Cost Estimation in Software Engineering SE23Software Cost Estimation in Software Engineering SE23
Software Cost Estimation in Software Engineering SE23
 
9. Software Implementation
9. Software Implementation9. Software Implementation
9. Software Implementation
 
Software engineering: design for reuse
Software engineering: design for reuseSoftware engineering: design for reuse
Software engineering: design for reuse
 

Similar to A Comparative Study of Forward and Reverse Engineering

Improved Strategy for Distributed Processing and Network Application Developm...
Improved Strategy for Distributed Processing and Network Application Developm...Improved Strategy for Distributed Processing and Network Application Developm...
Improved Strategy for Distributed Processing and Network Application Developm...
Editor IJCATR
 
Improved Strategy for Distributed Processing and Network Application Development
Improved Strategy for Distributed Processing and Network Application DevelopmentImproved Strategy for Distributed Processing and Network Application Development
Improved Strategy for Distributed Processing and Network Application Development
Editor IJCATR
 
System analsis and design
System analsis and designSystem analsis and design
System analsis and design
Rizwan Kabir
 
HW/SW Partitioning Approach on Reconfigurable Multimedia System on Chip
HW/SW Partitioning Approach on Reconfigurable Multimedia System on ChipHW/SW Partitioning Approach on Reconfigurable Multimedia System on Chip
HW/SW Partitioning Approach on Reconfigurable Multimedia System on Chip
CSCJournals
 
term paper for cbd models
term paper for cbd modelsterm paper for cbd models
term paper for cbd models
Sukhdeep Singh
 
Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptx
ethiouniverse
 
Elements of legacy program complexity
Elements of legacy program complexityElements of legacy program complexity
Elements of legacy program complexity
eSAT Journals
 
Object oriented analysis and design unit- v
Object oriented analysis and design unit- vObject oriented analysis and design unit- v
Object oriented analysis and design unit- v
Shri Shankaracharya College, Bhilai,Junwani
 
Ch17
Ch17Ch17
Ch17
phanleson
 
Sdpl1
Sdpl1Sdpl1
A petri net model for hardware software codesign
A petri net model for hardware software codesignA petri net model for hardware software codesign
A petri net model for hardware software codesign
JULIO GONZALEZ SANZ
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
puttipavan23022023
 
Slcm sharbani bhattacharya
Slcm sharbani bhattacharyaSlcm sharbani bhattacharya
Slcm sharbani bhattacharya
Sharbani Bhattacharya
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
Vishal Singh
 
Software engineering
Software engineeringSoftware engineering
Software engineering
Xavient Information Systems
 
04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx
MarwondoMarwondo
 
Lecture - 7-10.pptx
Lecture - 7-10.pptxLecture - 7-10.pptx
Lecture - 7-10.pptx
FarHana74914
 
Performance Evaluation using Blackboard Technique in Software Architecture
Performance Evaluation using Blackboard Technique in Software ArchitecturePerformance Evaluation using Blackboard Technique in Software Architecture
Performance Evaluation using Blackboard Technique in Software Architecture
Editor IJCATR
 
An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
 An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
IRJET Journal
 
Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...
eSAT Journals
 

Similar to A Comparative Study of Forward and Reverse Engineering (20)

Improved Strategy for Distributed Processing and Network Application Developm...
Improved Strategy for Distributed Processing and Network Application Developm...Improved Strategy for Distributed Processing and Network Application Developm...
Improved Strategy for Distributed Processing and Network Application Developm...
 
Improved Strategy for Distributed Processing and Network Application Development
Improved Strategy for Distributed Processing and Network Application DevelopmentImproved Strategy for Distributed Processing and Network Application Development
Improved Strategy for Distributed Processing and Network Application Development
 
System analsis and design
System analsis and designSystem analsis and design
System analsis and design
 
HW/SW Partitioning Approach on Reconfigurable Multimedia System on Chip
HW/SW Partitioning Approach on Reconfigurable Multimedia System on ChipHW/SW Partitioning Approach on Reconfigurable Multimedia System on Chip
HW/SW Partitioning Approach on Reconfigurable Multimedia System on Chip
 
term paper for cbd models
term paper for cbd modelsterm paper for cbd models
term paper for cbd models
 
Elementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptxElementary Probability theory Chapter 2.pptx
Elementary Probability theory Chapter 2.pptx
 
Elements of legacy program complexity
Elements of legacy program complexityElements of legacy program complexity
Elements of legacy program complexity
 
Object oriented analysis and design unit- v
Object oriented analysis and design unit- vObject oriented analysis and design unit- v
Object oriented analysis and design unit- v
 
Ch17
Ch17Ch17
Ch17
 
Sdpl1
Sdpl1Sdpl1
Sdpl1
 
A petri net model for hardware software codesign
A petri net model for hardware software codesignA petri net model for hardware software codesign
A petri net model for hardware software codesign
 
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvfUNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
UNIT3 PART2.pptx dhfdifhdsfvgudf dhfbdhbffdvf
 
Slcm sharbani bhattacharya
Slcm sharbani bhattacharyaSlcm sharbani bhattacharya
Slcm sharbani bhattacharya
 
Software engineering introduction
Software engineering introductionSoftware engineering introduction
Software engineering introduction
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx
 
Lecture - 7-10.pptx
Lecture - 7-10.pptxLecture - 7-10.pptx
Lecture - 7-10.pptx
 
Performance Evaluation using Blackboard Technique in Software Architecture
Performance Evaluation using Blackboard Technique in Software ArchitecturePerformance Evaluation using Blackboard Technique in Software Architecture
Performance Evaluation using Blackboard Technique in Software Architecture
 
An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
 An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
 
Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...
 

More from ijsrd.com

IoT Enabled Smart Grid
IoT Enabled Smart GridIoT Enabled Smart Grid
IoT Enabled Smart Grid
ijsrd.com
 
A Survey Report on : Security & Challenges in Internet of Things
A Survey Report on : Security & Challenges in Internet of ThingsA Survey Report on : Security & Challenges in Internet of Things
A Survey Report on : Security & Challenges in Internet of Things
ijsrd.com
 
IoT for Everyday Life
IoT for Everyday LifeIoT for Everyday Life
IoT for Everyday Life
ijsrd.com
 
Study on Issues in Managing and Protecting Data of IOT
Study on Issues in Managing and Protecting Data of IOTStudy on Issues in Managing and Protecting Data of IOT
Study on Issues in Managing and Protecting Data of IOT
ijsrd.com
 
Interactive Technologies for Improving Quality of Education to Build Collabor...
Interactive Technologies for Improving Quality of Education to Build Collabor...Interactive Technologies for Improving Quality of Education to Build Collabor...
Interactive Technologies for Improving Quality of Education to Build Collabor...
ijsrd.com
 
Internet of Things - Paradigm Shift of Future Internet Application for Specia...
Internet of Things - Paradigm Shift of Future Internet Application for Specia...Internet of Things - Paradigm Shift of Future Internet Application for Specia...
Internet of Things - Paradigm Shift of Future Internet Application for Specia...
ijsrd.com
 
A Study of the Adverse Effects of IoT on Student's Life
A Study of the Adverse Effects of IoT on Student's LifeA Study of the Adverse Effects of IoT on Student's Life
A Study of the Adverse Effects of IoT on Student's Life
ijsrd.com
 
Pedagogy for Effective use of ICT in English Language Learning
Pedagogy for Effective use of ICT in English Language LearningPedagogy for Effective use of ICT in English Language Learning
Pedagogy for Effective use of ICT in English Language Learning
ijsrd.com
 
Virtual Eye - Smart Traffic Navigation System
Virtual Eye - Smart Traffic Navigation SystemVirtual Eye - Smart Traffic Navigation System
Virtual Eye - Smart Traffic Navigation System
ijsrd.com
 
Ontological Model of Educational Programs in Computer Science (Bachelor and M...
Ontological Model of Educational Programs in Computer Science (Bachelor and M...Ontological Model of Educational Programs in Computer Science (Bachelor and M...
Ontological Model of Educational Programs in Computer Science (Bachelor and M...
ijsrd.com
 
Understanding IoT Management for Smart Refrigerator
Understanding IoT Management for Smart RefrigeratorUnderstanding IoT Management for Smart Refrigerator
Understanding IoT Management for Smart Refrigerator
ijsrd.com
 
DESIGN AND ANALYSIS OF DOUBLE WISHBONE SUSPENSION SYSTEM USING FINITE ELEMENT...
DESIGN AND ANALYSIS OF DOUBLE WISHBONE SUSPENSION SYSTEM USING FINITE ELEMENT...DESIGN AND ANALYSIS OF DOUBLE WISHBONE SUSPENSION SYSTEM USING FINITE ELEMENT...
DESIGN AND ANALYSIS OF DOUBLE WISHBONE SUSPENSION SYSTEM USING FINITE ELEMENT...
ijsrd.com
 
A Review: Microwave Energy for materials processing
A Review: Microwave Energy for materials processingA Review: Microwave Energy for materials processing
A Review: Microwave Energy for materials processing
ijsrd.com
 
Web Usage Mining: A Survey on User's Navigation Pattern from Web Logs
Web Usage Mining: A Survey on User's Navigation Pattern from Web LogsWeb Usage Mining: A Survey on User's Navigation Pattern from Web Logs
Web Usage Mining: A Survey on User's Navigation Pattern from Web Logs
ijsrd.com
 
APPLICATION OF STATCOM to IMPROVED DYNAMIC PERFORMANCE OF POWER SYSTEM
APPLICATION OF STATCOM to IMPROVED DYNAMIC PERFORMANCE OF POWER SYSTEMAPPLICATION OF STATCOM to IMPROVED DYNAMIC PERFORMANCE OF POWER SYSTEM
APPLICATION OF STATCOM to IMPROVED DYNAMIC PERFORMANCE OF POWER SYSTEM
ijsrd.com
 
Making model of dual axis solar tracking with Maximum Power Point Tracking
Making model of dual axis solar tracking with Maximum Power Point TrackingMaking model of dual axis solar tracking with Maximum Power Point Tracking
Making model of dual axis solar tracking with Maximum Power Point Tracking
ijsrd.com
 
A REVIEW PAPER ON PERFORMANCE AND EMISSION TEST OF 4 STROKE DIESEL ENGINE USI...
A REVIEW PAPER ON PERFORMANCE AND EMISSION TEST OF 4 STROKE DIESEL ENGINE USI...A REVIEW PAPER ON PERFORMANCE AND EMISSION TEST OF 4 STROKE DIESEL ENGINE USI...
A REVIEW PAPER ON PERFORMANCE AND EMISSION TEST OF 4 STROKE DIESEL ENGINE USI...
ijsrd.com
 
Study and Review on Various Current Comparators
Study and Review on Various Current ComparatorsStudy and Review on Various Current Comparators
Study and Review on Various Current Comparators
ijsrd.com
 
Reducing Silicon Real Estate and Switching Activity Using Low Power Test Patt...
Reducing Silicon Real Estate and Switching Activity Using Low Power Test Patt...Reducing Silicon Real Estate and Switching Activity Using Low Power Test Patt...
Reducing Silicon Real Estate and Switching Activity Using Low Power Test Patt...
ijsrd.com
 
Defending Reactive Jammers in WSN using a Trigger Identification Service.
Defending Reactive Jammers in WSN using a Trigger Identification Service.Defending Reactive Jammers in WSN using a Trigger Identification Service.
Defending Reactive Jammers in WSN using a Trigger Identification Service.
ijsrd.com
 

More from ijsrd.com (20)

IoT Enabled Smart Grid
IoT Enabled Smart GridIoT Enabled Smart Grid
IoT Enabled Smart Grid
 
A Survey Report on : Security & Challenges in Internet of Things
A Survey Report on : Security & Challenges in Internet of ThingsA Survey Report on : Security & Challenges in Internet of Things
A Survey Report on : Security & Challenges in Internet of Things
 
IoT for Everyday Life
IoT for Everyday LifeIoT for Everyday Life
IoT for Everyday Life
 
Study on Issues in Managing and Protecting Data of IOT
Study on Issues in Managing and Protecting Data of IOTStudy on Issues in Managing and Protecting Data of IOT
Study on Issues in Managing and Protecting Data of IOT
 
Interactive Technologies for Improving Quality of Education to Build Collabor...
Interactive Technologies for Improving Quality of Education to Build Collabor...Interactive Technologies for Improving Quality of Education to Build Collabor...
Interactive Technologies for Improving Quality of Education to Build Collabor...
 
Internet of Things - Paradigm Shift of Future Internet Application for Specia...
Internet of Things - Paradigm Shift of Future Internet Application for Specia...Internet of Things - Paradigm Shift of Future Internet Application for Specia...
Internet of Things - Paradigm Shift of Future Internet Application for Specia...
 
A Study of the Adverse Effects of IoT on Student's Life
A Study of the Adverse Effects of IoT on Student's LifeA Study of the Adverse Effects of IoT on Student's Life
A Study of the Adverse Effects of IoT on Student's Life
 
Pedagogy for Effective use of ICT in English Language Learning
Pedagogy for Effective use of ICT in English Language LearningPedagogy for Effective use of ICT in English Language Learning
Pedagogy for Effective use of ICT in English Language Learning
 
Virtual Eye - Smart Traffic Navigation System
Virtual Eye - Smart Traffic Navigation SystemVirtual Eye - Smart Traffic Navigation System
Virtual Eye - Smart Traffic Navigation System
 
Ontological Model of Educational Programs in Computer Science (Bachelor and M...
Ontological Model of Educational Programs in Computer Science (Bachelor and M...Ontological Model of Educational Programs in Computer Science (Bachelor and M...
Ontological Model of Educational Programs in Computer Science (Bachelor and M...
 
Understanding IoT Management for Smart Refrigerator
Understanding IoT Management for Smart RefrigeratorUnderstanding IoT Management for Smart Refrigerator
Understanding IoT Management for Smart Refrigerator
 
DESIGN AND ANALYSIS OF DOUBLE WISHBONE SUSPENSION SYSTEM USING FINITE ELEMENT...
DESIGN AND ANALYSIS OF DOUBLE WISHBONE SUSPENSION SYSTEM USING FINITE ELEMENT...DESIGN AND ANALYSIS OF DOUBLE WISHBONE SUSPENSION SYSTEM USING FINITE ELEMENT...
DESIGN AND ANALYSIS OF DOUBLE WISHBONE SUSPENSION SYSTEM USING FINITE ELEMENT...
 
A Review: Microwave Energy for materials processing
A Review: Microwave Energy for materials processingA Review: Microwave Energy for materials processing
A Review: Microwave Energy for materials processing
 
Web Usage Mining: A Survey on User's Navigation Pattern from Web Logs
Web Usage Mining: A Survey on User's Navigation Pattern from Web LogsWeb Usage Mining: A Survey on User's Navigation Pattern from Web Logs
Web Usage Mining: A Survey on User's Navigation Pattern from Web Logs
 
APPLICATION OF STATCOM to IMPROVED DYNAMIC PERFORMANCE OF POWER SYSTEM
APPLICATION OF STATCOM to IMPROVED DYNAMIC PERFORMANCE OF POWER SYSTEMAPPLICATION OF STATCOM to IMPROVED DYNAMIC PERFORMANCE OF POWER SYSTEM
APPLICATION OF STATCOM to IMPROVED DYNAMIC PERFORMANCE OF POWER SYSTEM
 
Making model of dual axis solar tracking with Maximum Power Point Tracking
Making model of dual axis solar tracking with Maximum Power Point TrackingMaking model of dual axis solar tracking with Maximum Power Point Tracking
Making model of dual axis solar tracking with Maximum Power Point Tracking
 
A REVIEW PAPER ON PERFORMANCE AND EMISSION TEST OF 4 STROKE DIESEL ENGINE USI...
A REVIEW PAPER ON PERFORMANCE AND EMISSION TEST OF 4 STROKE DIESEL ENGINE USI...A REVIEW PAPER ON PERFORMANCE AND EMISSION TEST OF 4 STROKE DIESEL ENGINE USI...
A REVIEW PAPER ON PERFORMANCE AND EMISSION TEST OF 4 STROKE DIESEL ENGINE USI...
 
Study and Review on Various Current Comparators
Study and Review on Various Current ComparatorsStudy and Review on Various Current Comparators
Study and Review on Various Current Comparators
 
Reducing Silicon Real Estate and Switching Activity Using Low Power Test Patt...
Reducing Silicon Real Estate and Switching Activity Using Low Power Test Patt...Reducing Silicon Real Estate and Switching Activity Using Low Power Test Patt...
Reducing Silicon Real Estate and Switching Activity Using Low Power Test Patt...
 
Defending Reactive Jammers in WSN using a Trigger Identification Service.
Defending Reactive Jammers in WSN using a Trigger Identification Service.Defending Reactive Jammers in WSN using a Trigger Identification Service.
Defending Reactive Jammers in WSN using a Trigger Identification Service.
 

Recently uploaded

Wound healing PPT
Wound healing PPTWound healing PPT
Wound healing PPT
Jyoti Chand
 
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
Nguyen Thanh Tu Collection
 
ZK on Polkadot zero knowledge proofs - sub0.pptx
ZK on Polkadot zero knowledge proofs - sub0.pptxZK on Polkadot zero knowledge proofs - sub0.pptx
ZK on Polkadot zero knowledge proofs - sub0.pptx
dot55audits
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
Dr. Mulla Adam Ali
 
IGCSE Biology Chapter 14- Reproduction in Plants.pdf
IGCSE Biology Chapter 14- Reproduction in Plants.pdfIGCSE Biology Chapter 14- Reproduction in Plants.pdf
IGCSE Biology Chapter 14- Reproduction in Plants.pdf
Amin Marwan
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
Katrina Pritchard
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
Colégio Santa Teresinha
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Excellence Foundation for South Sudan
 
Mule event processing models | MuleSoft Mysore Meetup #47
Mule event processing models | MuleSoft Mysore Meetup #47Mule event processing models | MuleSoft Mysore Meetup #47
Mule event processing models | MuleSoft Mysore Meetup #47
MysoreMuleSoftMeetup
 
UGC NET Exam Paper 1- Unit 1:Teaching Aptitude
UGC NET Exam Paper 1- Unit 1:Teaching AptitudeUGC NET Exam Paper 1- Unit 1:Teaching Aptitude
UGC NET Exam Paper 1- Unit 1:Teaching Aptitude
S. Raj Kumar
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
adhitya5119
 
Solutons Maths Escape Room Spatial .pptx
Solutons Maths Escape Room Spatial .pptxSolutons Maths Escape Room Spatial .pptx
Solutons Maths Escape Room Spatial .pptx
spdendr
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
Présentationvvvvvvvvvvvvvvvvvvvvvvvvvvvv2.pptx
Présentationvvvvvvvvvvvvvvvvvvvvvvvvvvvv2.pptxPrésentationvvvvvvvvvvvvvvvvvvvvvvvvvvvv2.pptx
Présentationvvvvvvvvvvvvvvvvvvvvvvvvvvvv2.pptx
siemaillard
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
eBook.com.bd (প্রয়োজনীয় বাংলা বই)
 
The basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptxThe basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptx
heathfieldcps1
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
Nguyen Thanh Tu Collection
 
Walmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdfWalmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdf
TechSoup
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
Priyankaranawat4
 
The History of Stoke Newington Street Names
The History of Stoke Newington Street NamesThe History of Stoke Newington Street Names
The History of Stoke Newington Street Names
History of Stoke Newington
 

Recently uploaded (20)

Wound healing PPT
Wound healing PPTWound healing PPT
Wound healing PPT
 
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
BÀI TẬP BỔ TRỢ TIẾNG ANH LỚP 9 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2024-2025 - ...
 
ZK on Polkadot zero knowledge proofs - sub0.pptx
ZK on Polkadot zero knowledge proofs - sub0.pptxZK on Polkadot zero knowledge proofs - sub0.pptx
ZK on Polkadot zero knowledge proofs - sub0.pptx
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
 
IGCSE Biology Chapter 14- Reproduction in Plants.pdf
IGCSE Biology Chapter 14- Reproduction in Plants.pdfIGCSE Biology Chapter 14- Reproduction in Plants.pdf
IGCSE Biology Chapter 14- Reproduction in Plants.pdf
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
 
Mule event processing models | MuleSoft Mysore Meetup #47
Mule event processing models | MuleSoft Mysore Meetup #47Mule event processing models | MuleSoft Mysore Meetup #47
Mule event processing models | MuleSoft Mysore Meetup #47
 
UGC NET Exam Paper 1- Unit 1:Teaching Aptitude
UGC NET Exam Paper 1- Unit 1:Teaching AptitudeUGC NET Exam Paper 1- Unit 1:Teaching Aptitude
UGC NET Exam Paper 1- Unit 1:Teaching Aptitude
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
 
Solutons Maths Escape Room Spatial .pptx
Solutons Maths Escape Room Spatial .pptxSolutons Maths Escape Room Spatial .pptx
Solutons Maths Escape Room Spatial .pptx
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
Présentationvvvvvvvvvvvvvvvvvvvvvvvvvvvv2.pptx
Présentationvvvvvvvvvvvvvvvvvvvvvvvvvvvv2.pptxPrésentationvvvvvvvvvvvvvvvvvvvvvvvvvvvv2.pptx
Présentationvvvvvvvvvvvvvvvvvvvvvvvvvvvv2.pptx
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
 
The basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptxThe basics of sentences session 6pptx.pptx
The basics of sentences session 6pptx.pptx
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
 
Walmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdfWalmart Business+ and Spark Good for Nonprofits.pdf
Walmart Business+ and Spark Good for Nonprofits.pdf
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
 
The History of Stoke Newington Street Names
The History of Stoke Newington Street NamesThe History of Stoke Newington Street Names
The History of Stoke Newington Street Names
 

A Comparative Study of Forward and Reverse Engineering

  • 1. IJSRD - International Journal for Scientific Research & Development| Vol. 2, Issue 09, 2014 | ISSN (online): 2321-0613 All rights reserved by www.ijsrd.com 90 A Comparative Study of Forward and Reverse Engineering Dhaval Jha1 Bansal Shah2 Dhwanish Shah3 Saloni Shah4 Yash Shah5 1,2,3,4,5 Department of Computer Engineering 1,2,3,4,5 Nirma University Abstract— With the software development at its boom compared to 20 years in the past, software developed in the past may or may not have a well-supported documentation during the software evolution. This may increase the specification gap between the document and the legacy code to make further evolutions and updates. Understanding the legacy code of the underlying decisions made during development is the prime motto, which is very well supported by Reverse Engineering. In this paper, we compare the Transformational Forward engineering, where a stepwise abstraction is obtained with the Transformational Reverse Methodology. While the forward transformation process produces overlap of the decisions, performance is affected. Hence, the use of transformational method of Reverse Engineering which is a backwards Forward Engineering process is suitable. Besides the design recognition obtained is a domain knowledge which can be used in future by the forward engineers. Key words: Software development, Specification document, Legacy code, forward engineering, Reverse engineering I. INTRODUCTION Software Engineering is a process of creating, enhancing and maintaining a well-defined system to meet the specific requirements of the client with the support of tools required by the same. The Software Development Life Cycle (SDLC) is not just the prime feature of software engineering but also required is a round the clock maintenance and support to meet the changes as asked by the client. But often it happens that the software doesn't have well defined document to support changes made in the software. This increases the task of the developer to understand the code of its purpose and the design decisions made. Hence the adaptability of the software to changes is a question. Having a semiformal specification can lead to a more varied interpretations for the coders and hence can lead to a limited usability. Therefore a formal description with a rationale can help bridge the communication problem. II. MOTIVATION Among all plausible methods defined for plan recognition, Programmer's Apprentice is one of the most advanced and sophisticated, representing plans with the support of control and data flows. It uses the recursive method to match the codes with the templates and maximize the ability and independence. For the ongoing research in reverse engineering 'the big-problems' are not being divided into its sub modules, for which we were inspired to carry out the comparative study between Forward & Reverse Engineering. III. LITERATURE SURVEY A. Forward Engineering This approach is channelized by collecting the informal requirements which are converted into semi-formal requirements in the present scenario of software development. This gives the programmer and developer the option/choice to make underlying decisions not provided in the document. Hence, hidden in this document and code are those underlying decisions made to make the implementation more efficient. Example would implement a binary search rather than linear search to reduce response time of the system, which is not known to the client. Besides post development and usage phase, errors and bugs detected in the system will be rectified. But these changes may not be reflected in the program but not in the document. Hence, the program is mismatched with the document which leads to understandability problems. To bridge the gap between specification and the program its required to first reflect the changes in the design and then make hardcore changes in the program to induce flexibility and provide maintainability. Document including the rationale generates relationships between the same. Two fundamental approaches are channelized as: First and the conventional method involve the stepped filter and precede process wherein underlying intermediate decisions and steps which provide the formalized and understandable structure of the software, are added to the document to reduce the gap. However, this conventionality introduces certain drawbacks to the software and the client. It still involves a non-automatic implementation as they still don't have any rationale nor any underlying decisions taken by the programmer. Besides, a serious inefficiency is observed as piles of documents have to be maintained for every change incorporated in the software. With the previous approach inducing inefficiency, developers use a much better and faster approach referred as the transformational method wherein a more specific system and user requirements are required. Detailed requirements may be considered to contain a domain notation like UMLs, object diagrams or data-flow diagrams. Based on these specifications provided, a transformed program code is generated to change the previous code or generate a new software code which also rationale for each transformations, unlike the previous approach. This helps convert the given specification to a more specific and updated document. It involves three standard steps to carry out the transformations: [1] Refinement, Optimization and Integrating the filtration & optimization. Hence, these steps generate an understandable code with a rationale mentioned for each. Transformational design generated, achieve the performance requirements along with new selections made by the programmer but at each level this details are documented.
  • 2. A Comparative Study of Forward and Reverse Engineering (IJSRD/Vol. 2/Issue 09/2014/020) All rights reserved by www.ijsrd.com 91 Various techniques or approaches can be applied by the developer to attain the transformational design: 1) Flow Generation: Generalization or specialization as required is structured. To achieve higher efficiency a better decision is to use specialization. 2) Algorithm Selection: Algorithm selection based on the different implementations possible can be done to be able to properly document the implementations. 3) Interleaving: Various different modules or functionalities can be integrated into same code or section to achieve higher performance. 4) Classification into Subsystems: Hierarchy of subsystems can be achieved to organize the different modules/designs as per usage in the code. 5) Representation Changes: To attain the required specification in a particular language it might be possible to change the representations. As a structure of arrays or array of structures [1], representing the parsed data as an indexed single dimensional array or a parse tree for better understandability and usage. 6) Resource Sharing: To avail the same resource to various functionalities and modules. 7) Caching: In order to preserve the intermediate results to be used later in the program, these results are cached. Besides the transformations can be optimized using various techniques such as Elimination of common sub- expression, Dead Code Elimination, Frequency Reduction Strength Reduction Compile Time Evaluation [2] Irrespective of the implementation, manual or semi-automated tools understandability is affected as an overlap of the decisions occurs. However, if the code implementation is carried out considering the performance motive, the recorded decisions provide a faster way to develop a new system and modify the existing systems using the CASE tools. B. Reverse Engineering Fig. 1 Flow from old to new implementation [3] Executing the forward engineering to all systems is not feasible as providing a rationale and formal specific document for each developed software is next to impossible. Over time each software demands an evolution to meet the new client requirements. Removing the bugs and faults, enhancement demands incorporating the different approach than the conventional Forward Engineering. In the most recent and currently implemented method, recognizing the plans is a process to understand the code fragments. This is a bottom-up design to analyses the code as matching is done of the code fragments with the defined templates to recognize the concepts by the reverse engineer. However this is carried out using certain procedural steps: [3] 1) Software Data Collection: Involves aggregating the specifications document, source code, all entities relating the software. 2) Information Interpretation: All collected information in the previous step is analyzed for further implementation. 3) Structure Identification: Based on the information analyzed, structures of code are created as a chart to represent the calls and returns to map them properly. 4) Functionality Identification: Structural points in the chart provide the details regarding the code executed in each structure. Appropriate higher level language can be used to describe the functionality extracted. 5) Data-Flow Identification: Transformations among the data and its related processing and execution are identified and it’s recorded using the data- flow diagrams. 6) Control-Flow Identification: Control structures affecting the overall operation of the system are identified and represented using appropriate flow diagrams. 7) Review Recovered Plan: Check the correctness and the pattern extracted with the available plans for consistency and fill in the holes by checking the representations. 8) Document Specification: Recording every step of reverse engineering to cache the pattern extracted, even the rationale derived for each. Fig. 2 Reverse Engineering Execution Flow-Diagram However this induces a drawback as all necessary and required plans need to be known priory. Besides different implementations of the recognized plans is possible which can create a discrepancy. Example a pass by value or
  • 3. A Comparative Study of Forward and Reverse Engineering (IJSRD/Vol. 2/Issue 09/2014/020) All rights reserved by www.ijsrd.com 92 pass by reference in case of function arguments. To identify the correct underlying decision all plans need to be known. Problems identified can be resolved mainly using alternative approaches: First method is an extension to the original method. It requires the reverse engineer to add more plans, patterns, templates and correlating rules to detect with more better semantic and syntactical specifications. This increases the probability to recognize the correct plan and make appropriate design decisions. Still, rationale is also required to properly trace back the code with the extracted pattern. Appropriate valid reasoning and transformations are required for the code to be matched to the recorded data set. Compared to the convention, an approach is also defined for the same. For each set of code, small transformations in reverse order are carried out compared to Forward Engineering, and suitable abstraction is identified. Besides it may happen that the plan abstracted may not exist in the current libraries and hence new domain dataset is obtained. This dataset can further be used by reverse engineers to maintain and modify the existing software, by the forward engineers for develop new systems. Also, it's not so that plan recognition serves no advantage, it provides a basis for certain transformations too. While performing a match of a natural no from a string value property of hashing is recognized, which helps indicates that a hash table type transformation is required. Besides from both the reverse engineering processes certain levels of abstraction are obtained. Purposes served are  maintenance purpose  evolution purpose  reengineering purpose Levels achieved for abstraction are:  Application: Application concepts, business rule, policies  Function: Logical and functional specification, non-functional requirement  Structure: Data and control flow, dependency graph Structure and subsystem charts Architectures  Implementation : Symbol tables, source text IV. CONCLUSION After analyzing four methods of software development and modification, it is concluded that irrespective of the type of checking performed, we require domain knowledge in each to extract the system design and plan. But Reverse Engineering provides an external support not just to identify the bugs and rectify them but also help generate new domain datasets for future use by the Forward engineers. Fig. 3 Forward versus Reverse Engineering Flow REFERENCES [1] D. M. Dhamdhere, Systems Programming, New Delhi: McGraw Hill Education (India) Private Limited, Fifth Reprint 2013. [2] M. M. Ira D. Baxter, "Reverse Engineering is Reverse Forward Engineering," in Fourth Working Conference on Reverse Engineering, Amsterdam,Netherlands, 1997. [3] E. J. Byrne, "Software Reverse Engineering: A Case Study," SOFTWARE—PRACTICE AND EXPERIENCE, vol. 21(12), no. December(1991), pp. 1349-1364.