Consider the following statements:
P: Refactoring is the process of changing a software system in such a way that it does not alter the external behaviour of the code yet improves the internal architecture.
Q: An example of refactoring is adding new features to satisfy a customer requirement discovered after a project is shipped.
Which of the above statements is/are true?
Pick an option to check yourself, or open the answer below.
Show answer & explanation
Correct answer: A. P only
Explanation
The answer is P only. P is Fowler's standard definition of refactoring: the observable behaviour of the system is preserved while the internal structure is cleaned up, for example by extracting a method, renaming a variable or removing duplication. Q is false, because adding a new feature changes what the software does and is therefore enhancement (perfective maintenance), not refactoring. Since exactly one statement is true, options (2), (3) and (4) are ruled out.More Software Engineering questions
- Statistical software quality assurance in software engineering involves ______.
- A signal processor software is expected to operate for 91.25 days after repair, and the mean software repair time is expected to be 5 minut…
- Which of the following is not one of three software product aspects addressed by McCall's software quality factors?
- A server has 30 days mean time between failure (MTBF) and 12 hours mean time to repair (MTTR). The availability of the server is approximat…
- Software safety is quality assurance activity that focuses on hazards that
- Which of the following set of statements represents the five stages defined by the Capability Maturity Model (CMM) in increasing order of m…