1.
Software re-engineering primarily focuses on:
A) Developing new software from scratch
B) Improving existing software systems
C) Removing old software completely
D) Hardware upgrading
Answer: B
2. Which strategy involves converting code from one programming language to another?
A) Rework
B) Replace
C) Rewrite
D) Incremental
Answer: C
3. In rewrite strategy, which of the following remains the same?
A) Programming language
B) Abstraction level
C) System architecture
D) Hardware platform
Answer: B
4. Rework strategy mainly focuses on:
A) Changing system functionality
B) Improving code structure
C) Replacing hardware
D) Changing abstraction level
Answer: B
5. Which programming construct is considered unstructured?
A) For loop
B) While loop
C) If–else
D) GOTO
Answer: D
6. Replace strategy applies which principles?
A) Refinement only
B) Abstraction only
C) Abstraction and Refinement
D) Rewrite and Rework
Answer: C
7. Which approach replaces the entire system at once?
A) Incremental
B) Partial
C) Iterative
D) Big Bang
Answer: D
8. The biggest disadvantage of Big Bang approach is:
A) Low cost
B) Low risk
C) Monolithic task
D) Easy error detection
Answer: C
9. Which approach produces several interim versions?
A) Big Bang
B) Incremental
C) Evolutionary
D) Partial
Answer: B
10. Incremental approach does NOT allow:
A) Early error detection
B) Customer feedback
C) Complete architecture change
D) Interim releases
Answer: C
11. In partial approach, the system is divided into:
A) Three parts
B) Two parts
C) Four parts
D) Multiple modules
Answer: B
12. Which approach ensures continuous system operation?
A) Big Bang
B) Incremental
C) Iterative
D) Replace
Answer: C
13. How many types of components coexist in iterative approach?
A) Two
B) Three
C) Four
D) Five
Answer: C
14. Evolutionary approach focuses on:
A) Location-based components
B) Functionally cohesive components
C) Hardware replacement
D) Language translation
Answer: B
15. Re-engineering is preferred over redevelopment because it:
A) Takes more time
B) Has higher risk
C) Costs less
D) Needs more resources
Answer: C
Q1. What is software re-engineering?
Answer:
Software re-engineering is the process of improving and modifying an existing software system
to enhance its quality, maintainability, and performance without changing its core functionality.
Q2. What is the rewrite strategy in software re-engineering?
Answer:
Rewrite strategy involves rewriting the existing system in a new programming language while
preserving the same abstraction level and functionality of the original system.
Q3. Give an example of rewrite strategy.
Answer:
Rewriting a program written in C language into Python language while keeping the same logic
and output is an example of rewrite strategy.
Q4. What is rework strategy?
Answer:
Rework strategy focuses on improving the internal structure and quality of code by replacing
unstructured constructs with structured programming constructs.
Q5. Why are GOTO statements removed in rework strategy?
Answer:
GOTO statements make the code unstructured and difficult to maintain, so they are replaced with
structured constructs like loops and conditional statements.
Q6. What is replace strategy?
Answer:
Replace strategy changes a specific characteristic of a system by applying abstraction to hide
details and refinement to build a new improved representation.
Q7. Which principles are used in replace strategy?
Answer:
The principles used in replace strategy are abstraction and refinement.
Q8. What is the Big Bang approach?
Answer:
The Big Bang approach re-engineers the entire system at once and continues the process until the
complete target system is developed.
Q9. Write one advantage of the Big Bang approach.
Answer:
The system is fully transformed into the new environment at one time.
Q10. Write one disadvantage of the Big Bang approach.
Answer:
It is a monolithic task that requires high cost, high resources, and long development time.
Q11. What is the incremental approach?
Answer:
The incremental approach re-engineers the system gradually by producing and releasing multiple
interim versions.
Q12. Why are interim versions important in incremental approach?
Answer:
Interim versions allow easier error detection and help customers observe progress during
development.
Q13. What is partial re-engineering approach?
Answer:
Partial approach re-engineers only a selected portion of the system and integrates it with the non-
re-engineered part.
Q14. List the steps of partial approach.
Answer:
1. Divide the system into re-engineered and non-re-engineered parts
2. Re-engineer the selected part
3. Integrate both parts into the new system
Q15. What is iterative approach?
Answer:
Iterative approach applies re-engineering in repeated short cycles while ensuring continuous
operation of the system.
Q16. Name the four types of components in iterative approach.
Answer:
1. Old components
2. Components being re-engineered
3. Re-engineered components
4. New components
Q17. What is evolutionary approach?
Answer:
Evolutionary approach replaces existing components by grouping similar functions and re-
engineering them into new cohesive components.
Q18. Why is evolutionary approach considered cohesive?
Answer:
Because components are grouped and redesigned based on functionality, resulting in better
cohesion.
Q19. Write two advantages of software re-engineering.
Answer:
1. Reduced risk
2. Reduced cost
Q20. Why is re-engineering less risky than redevelopment?
Answer:
Re-engineering works on an existing system, so there is less chance of specification and
development errors.
✅ Long Questions WITH Answers
Q1. Explain software re-engineering.
Answer:
Software re-engineering is the process of modifying and improving an existing software system
to enhance its structure, quality, and maintainability. It focuses on reusing existing functionality
instead of developing a completely new system. Re-engineering reduces cost and risk while
extending the life of the software.
Q2. Explain rewrite strategy with example.
Answer:
Rewrite strategy converts an existing software system into a new system using a different
programming language while keeping the same abstraction level. The functionality and logic
remain unchanged. For example, rewriting a C language program into Python without altering its
output is a rewrite strategy.
Q3. Explain rework strategy with example.
Answer:
Rework strategy improves code quality by replacing poor programming constructs with
structured ones. For example, replacing GOTO statements with if–else or loops improves
readability and maintainability without changing the system’s functionality.
Q4. Explain replace strategy.
Answer:
Replace strategy modifies a particular system characteristic using abstraction and refinement.
First, system details are hidden using abstraction, then a better representation is created through
refinement to generate the improved system.
Q5. Discuss Big Bang approach with advantages and disadvantages.
Answer:
In the Big Bang approach, the entire system is re-engineered at once.
Advantages:
Complete system transformation
New environment achieved at one time
Disadvantages:
High cost and risk
Long development time
Difficult to manage large systems
Q6. Explain incremental approach with pros and cons.
Answer:
Incremental approach re-engineers the system step by step through interim versions.
Advantages:
Easier error detection
Visible progress to customers
Disadvantages:
Longer completion time
Entire system architecture cannot be changed
Q7. Explain partial re-engineering approach.
Answer:
Partial approach re-engineers only a selected portion of the system. The re-engineered part is
then integrated with the unchanged portion. It reduces time and cost but does not improve the
interface between modified and unmodified parts.
Q8. Explain iterative approach with advantages and disadvantages.
Answer:
Iterative approach re-engineers small parts of the system repeatedly while keeping the system
operational.
Advantages:
Continuous system operation
User familiarity preserved
Disadvantages:
Difficult to manage multiple component types
Both old and new components must be maintained
Q9. Explain evolutionary approach.
Answer:
Evolutionary approach groups similar functions of the system and re-engineers them into
cohesive components.
Advantages:
Improved design cohesion
Reduced component scope
Disadvantages:
Difficult to identify similar functions across the system
Q10. Why is software re-engineering preferred over redevelopment?
Answer:
Software re-engineering is preferred because it reduces development risk and cost. Existing
functionality is reused, minimizing errors. Studies show re-engineering can be up to four times
cheaper than redeveloping a new system.