Podcast
Questions and Answers
What defines a variable in an assignment statement?
What defines a variable in an assignment statement?
What is the purpose of data flow analysis?
What is the purpose of data flow analysis?
What does a backward slice provide in program slicing?
What does a backward slice provide in program slicing?
Which of the following statements about forward slicing is true?
Which of the following statements about forward slicing is true?
Signup and view all the answers
What question does control flow analysis fail to answer?
What question does control flow analysis fail to answer?
Signup and view all the answers
What is the primary objective of the renovation project mentioned?
What is the primary objective of the renovation project mentioned?
Signup and view all the answers
Which strategy is NOT mentioned as a replacement strategy for recording?
Which strategy is NOT mentioned as a replacement strategy for recording?
Signup and view all the answers
What is the main purpose of the redocumentation phase?
What is the main purpose of the redocumentation phase?
Signup and view all the answers
During target system testing, what is primarily evaluated?
During target system testing, what is primarily evaluated?
Signup and view all the answers
What testing strategy is applied to ensure the new system meets the same requirements as the existing system?
What testing strategy is applied to ensure the new system meets the same requirements as the existing system?
Signup and view all the answers
What should be established at the beginning of a project for acceptance testing?
What should be established at the beginning of a project for acceptance testing?
Signup and view all the answers
Which of the following tasks is NOT part of the redocumentation phase?
Which of the following tasks is NOT part of the redocumentation phase?
Signup and view all the answers
What is the role of the target system test plan during reengineering?
What is the role of the target system test plan during reengineering?
Signup and view all the answers
What are the four kinds of elements in the Source Code Reengineering Reference Model?
What are the four kinds of elements in the Source Code Reengineering Reference Model?
Signup and view all the answers
Which phase in the Phase Reengineering Model focuses on the characteristics of the new system to be produced?
Which phase in the Phase Reengineering Model focuses on the characteristics of the new system to be produced?
Signup and view all the answers
What is the primary focus of the renovation phase in the software reengineering process?
What is the primary focus of the renovation phase in the software reengineering process?
Signup and view all the answers
What does data reengineering refer to in the renovation phase?
What does data reengineering refer to in the renovation phase?
Signup and view all the answers
Which of the following is NOT a technical issue addressed in the analysis phase?
Which of the following is NOT a technical issue addressed in the analysis phase?
Signup and view all the answers
In the context of the Phase Reengineering Model, what is typically involved in the target system testing phase?
In the context of the Phase Reengineering Model, what is typically involved in the target system testing phase?
Signup and view all the answers
What role does metrication play in the Source Code Reengineering Reference Model?
What role does metrication play in the Source Code Reengineering Reference Model?
Signup and view all the answers
Which of the following is a main aspect considered during the renovation phase?
Which of the following is a main aspect considered during the renovation phase?
Signup and view all the answers
What is the primary purpose of Data Reverse Engineering (DRE)?
What is the primary purpose of Data Reverse Engineering (DRE)?
Signup and view all the answers
What are the two main phases of the reverse engineering process?
What are the two main phases of the reverse engineering process?
Signup and view all the answers
Which phase of the forward design process gathers and formalizes user requirements?
Which phase of the forward design process gathers and formalizes user requirements?
Signup and view all the answers
What is the primary function of reverse engineering tools?
What is the primary function of reverse engineering tools?
Signup and view all the answers
What does the logical schema describe in the database forward design process?
What does the logical schema describe in the database forward design process?
Signup and view all the answers
Why is human intervention necessary in reverse engineering projects?
Why is human intervention necessary in reverse engineering projects?
Signup and view all the answers
How does the Data Reverse Engineering (DRE) process benefit software assessment?
How does the Data Reverse Engineering (DRE) process benefit software assessment?
Signup and view all the answers
Which component is used to produce alternative views of the system in reverse engineering?
Which component is used to produce alternative views of the system in reverse engineering?
Signup and view all the answers
What is the significance of the physical schema in database engineering?
What is the significance of the physical schema in database engineering?
Signup and view all the answers
What distinguishes data structure extraction from data structure conceptualization?
What distinguishes data structure extraction from data structure conceptualization?
Signup and view all the answers
Which of the following is NOT a purpose of Data Reverse Engineering (DRE)?
Which of the following is NOT a purpose of Data Reverse Engineering (DRE)?
Signup and view all the answers
What defines the conceptual schema in the context of database reverse engineering?
What defines the conceptual schema in the context of database reverse engineering?
Signup and view all the answers
What is the main focus of database reverse engineering (DBRE)?
What is the main focus of database reverse engineering (DBRE)?
Signup and view all the answers
What does Depth of Inheritance Tree (DIT) measure?
What does Depth of Inheritance Tree (DIT) measure?
Signup and view all the answers
Which is a function of a decompiler?
Which is a function of a decompiler?
Signup and view all the answers
What is a major limitation of decompilation?
What is a major limitation of decompilation?
Signup and view all the answers
Which of the following is NOT a recommended application of decompilation?
Which of the following is NOT a recommended application of decompilation?
Signup and view all the answers
What is the role of a disassembler?
What is the role of a disassembler?
Signup and view all the answers
What must be examined from a legal perspective when using decompilers?
What must be examined from a legal perspective when using decompilers?
Signup and view all the answers
Which statement accurately describes traditional reverse engineering?
Which statement accurately describes traditional reverse engineering?
Signup and view all the answers
In the context of software engineering, what is NOT a characteristic of decompilation?
In the context of software engineering, what is NOT a characteristic of decompilation?
Signup and view all the answers
Study Notes
Software Evolution and Maintenance: Reengineering
- Reengineering is a process of improving a software system without altering its external behavior.
- Source code reengineering has several stages
- A source code reengineering reference model includes: function, documentation, repository database, and metrication.
- A phase reengineering model involves five stages: analysis and planning, renovation, target system testing, redocumentation, and acceptance testing and system transition
- Analysis and planning addresses three technical and one economic issue. The first addresses the current state and properties of the system. The second identifies the needed changes. The third details the characteristics of the new system.
- Renovation modifies an existing system into a new system
- Two main aspects are considered in the Renovation phase: (i) system representation (source code, design model, requirements specification) and (ii) external data representation (databases and data files).
- There are multiple strategies for renovation such as source-to-source translation, high-level design reimplementation, and a mix of compilation/decompilation.
- Target system testing involves detecting faults introduced during reengineering, using the target system test plan on the target system. Same testing techniques as those for software development are used.
- Redocumentation rewrites, updates, or replaces documents to reflect the target system. Major tasks are analyzing the new source code and creating documentation.
- Acceptance and system transition evaluates the reengineered system through acceptance testing. Acceptance criteria are established at the beginning of the project. If the system passes, preparation for transition to the new system begins; otherwise, faults are fixed to pass tests.
- The old system is then taken offline.
- Techniques involved in Reverse Engineering: lexical analysis, syntactical analysis, control flow analysis, data flow analysis, program slicing, and visualization.
- Lexical Analysis decomposes a source code's character sequence into lexical units; typically uses a mathematical notation called regular expressions. Tools include LEX, FLEX (Fast Lex).
- Syntactic analysis is done by a parser. YACC is a commonly used tool. Two types of representations are used (parse tree, abstract syntax tree). ASTs contain only program details relevant to the program logic; removing extraneous details from a parse tree produces the AST structure for an easier analysis.
- Control Flow Analysis (CFA) shows the statement execution order within a subprogram (intraprocedural), and the calling relationships between subprograms (interprocedural).
- A control flow graph (CFG) uses basic blocks (maximal sequence of program statements) to represent the possible flow.
- Data Flow Analysis (DFA) tracks data flow throughout a program. It identifies code that never executes, and statements that may need fixing based on data flows
- Program slicing isolates program portions that contribute to a specific variable's value at a chosen point based on given criteria. Backward program slicing finds the parts of the program affecting the value of a variable while forward slicing locates parts of the program affected by a particular variable/expression.
- Visualization uses visual representations for better understanding.
- Program Metrics include: Weighted Methods per Class (WMC) for number of methods implemented; Lack of Cohesion in Methods (LCOM) for average percentage of attribute usage by methods; Coupling between Object Class (CBO) for counting coupled classes; Depth of Inheritance Tree (DIT), and Number of Children (NOC).
- Decompilation is a process that takes an executable and tries to generate source code. It is not always possible and the output may not be identical to original source and/or the same language. Disassembling is converting executable to assembly language.
- Data Reverse Engineering (DRE) is analyzing existing data to design a new system.
- Reverse engineering tools aid in analyzing, storing results, and visualizing components of a system.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Explore the critical aspects of software reengineering in this quiz, covering processes aimed at enhancing software systems while maintaining their external behavior. Delve into various stages, models, and issues related to source code reengineering, including analysis and planning.