Software Engineering Reengineering
42 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

What defines a variable in an assignment statement?

  • It appears only on the right side of the statement.
  • It is referenced in other variables.
  • It is mentioned in comments within the code.
  • It appears on the left side of the assignment statement. (correct)
  • What is the purpose of data flow analysis?

  • Identifying potential syntax errors.
  • Finding variables that are never used. (correct)
  • Identifying control structures in the program.
  • Determining the execution sequence of statements.
  • What does a backward slice provide in program slicing?

  • All instructions that can be executed after a given point.
  • Components directly dependent on a variable at a point.
  • Instructions and predicates affecting a variable's value at a point. (correct)
  • Components that might output values for a given variable.
  • Which of the following statements about forward slicing is true?

    <p>It consists of instructions that depend on the value of a variable. (C)</p> Signup and view all the answers

    What question does control flow analysis fail to answer?

    <p>Which program statements are affected by a specific assignment statement? (C)</p> Signup and view all the answers

    What is the primary objective of the renovation project mentioned?

    <p>To re-code the system from Fortran to C (D)</p> Signup and view all the answers

    Which strategy is NOT mentioned as a replacement strategy for recording?

    <p>Simulation-based migration (B)</p> Signup and view all the answers

    What is the main purpose of the redocumentation phase?

    <p>To rewrite, update, and replace documentation for the target system (D)</p> Signup and view all the answers

    During target system testing, what is primarily evaluated?

    <p>Faults introduced during reengineering (C)</p> Signup and view all the answers

    What testing strategy is applied to ensure the new system meets the same requirements as the existing system?

    <p>Applying existing system-level test cases to both systems (A)</p> Signup and view all the answers

    What should be established at the beginning of a project for acceptance testing?

    <p>Acceptance criteria (D)</p> Signup and view all the answers

    Which of the following tasks is NOT part of the redocumentation phase?

    <p>Developing new system features (C)</p> Signup and view all the answers

    What is the role of the target system test plan during reengineering?

    <p>It ensures that faults are detected in the target system. (C)</p> Signup and view all the answers

    What are the four kinds of elements in the Source Code Reengineering Reference Model?

    <p>Function, documentation, repository database, and metrication (D)</p> Signup and view all the answers

    Which phase in the Phase Reengineering Model focuses on the characteristics of the new system to be produced?

    <p>Analysis and planning (B)</p> Signup and view all the answers

    What is the primary focus of the renovation phase in the software reengineering process?

    <p>Modification of the operational system into the target system (D)</p> Signup and view all the answers

    What does data reengineering refer to in the renovation phase?

    <p>Reengineering the external data such as databases and data files (D)</p> Signup and view all the answers

    Which of the following is NOT a technical issue addressed in the analysis phase?

    <p>Management of the project budget (C)</p> Signup and view all the answers

    In the context of the Phase Reengineering Model, what is typically involved in the target system testing phase?

    <p>Verifying that the new system meets its requirements and specifications (C)</p> Signup and view all the answers

    What role does metrication play in the Source Code Reengineering Reference Model?

    <p>Analyzing software performance metrics (A)</p> Signup and view all the answers

    Which of the following is a main aspect considered during the renovation phase?

    <p>Representation of the system (D)</p> Signup and view all the answers

    What is the primary purpose of Data Reverse Engineering (DRE)?

    <p>To recover and reconstitute valuable data assets (D)</p> Signup and view all the answers

    What are the two main phases of the reverse engineering process?

    <p>Data structure extraction and data structure conceptualization (C)</p> Signup and view all the answers

    Which phase of the forward design process gathers and formalizes user requirements?

    <p>Conceptual phase (B)</p> Signup and view all the answers

    What is the primary function of reverse engineering tools?

    <p>To analyze software systems and store results in an information base (C)</p> Signup and view all the answers

    What does the logical schema describe in the database forward design process?

    <p>Data structures in concrete forms (C)</p> Signup and view all the answers

    Why is human intervention necessary in reverse engineering projects?

    <p>Projects require subjective judgement and interpretation (B)</p> Signup and view all the answers

    How does the Data Reverse Engineering (DRE) process benefit software assessment?

    <p>Through documentation and knowledge acquisition (C)</p> Signup and view all the answers

    Which component is used to produce alternative views of the system in reverse engineering?

    <p>Information base (A)</p> Signup and view all the answers

    What is the significance of the physical schema in database engineering?

    <p>It describes the implementation details of logical schemas (D)</p> Signup and view all the answers

    What distinguishes data structure extraction from data structure conceptualization?

    <p>Extraction retrieves existing structures, whereas conceptualization describes the underlying semantics. (B)</p> Signup and view all the answers

    Which of the following is NOT a purpose of Data Reverse Engineering (DRE)?

    <p>User interface design (D)</p> Signup and view all the answers

    What defines the conceptual schema in the context of database reverse engineering?

    <p>An abstract, implementation-independent description of stored data (A)</p> Signup and view all the answers

    What is the main focus of database reverse engineering (DBRE)?

    <p>Understanding and redocumenting an application’s database and files (C)</p> Signup and view all the answers

    What does Depth of Inheritance Tree (DIT) measure?

    <p>The length of the longest path from a class to the root (A)</p> Signup and view all the answers

    Which is a function of a decompiler?

    <p>To produce readable high-level language source code from binary files (B)</p> Signup and view all the answers

    What is a major limitation of decompilation?

    <p>It does not include original programmers’ annotations (C)</p> Signup and view all the answers

    Which of the following is NOT a recommended application of decompilation?

    <p>Trademarking original software (C)</p> Signup and view all the answers

    What is the role of a disassembler?

    <p>To create text files containing assembly language code from binaries (C)</p> Signup and view all the answers

    What must be examined from a legal perspective when using decompilers?

    <p>Patent and copyright infringement issues (B)</p> Signup and view all the answers

    Which statement accurately describes traditional reverse engineering?

    <p>It involves recognizing 'goals' or 'plans' in advance (D)</p> Signup and view all the answers

    In the context of software engineering, what is NOT a characteristic of decompilation?

    <p>It converts high-level code to binary code (A)</p> 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.

    Quiz Team

    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.

    More Like This

    Reengineering Approaches: Iterative Approach
    15 questions
    Software Reengineering Quiz
    47 questions
    Use Quizgecko on...
    Browser
    Browser