________ involves reworking programs to make them clearer and easier to maintain while preserving their correctness and functionality. a. Object-oriented programming b. Refactoring c. Agile software development d. LAMP