Software Refactoring Techniques: Week 8 Quiz

KnowledgeableDidactic avatar
KnowledgeableDidactic
·
·
Download

Start Quiz

Study Flashcards

17 Questions

Why do refactoring steps need to be relatively small?

To reduce the risk of making accidental changes to functionality

In the context of refactoring, what is the purpose of extracting a function or method?

To prepare for moving code between classes

When referring to the extraction of variables, what should be considered regarding performance?

Considering potential performance issues

What is the primary reason for turning a complex expression into a reusable variable?

To improve code readability and potentially performance

Which technique helps in breaking up large monolithic functions during refactoring?

Extracting functions or methods

What makes regression testing important in the context of refactoring?

To check for accidental changes in functionality

What is the purpose of moving a method from one class to another?

To improve modularity and maintainability

What is the purpose of the 'k_future_mapping' function in the given code snippet?

To create a dictionary mapping current states to their respective next states with k-future information.

When moving a field to another class, what should be considered?

Placing the field where methods that use it are located

What data structure is used to store future state mappings in the 'k_future_mapping' function after applying the 'Extract Variable' refactoring?

Set

What does combining multiple functions into a class help improve?

Modularity, maintainability, and sustainability

In the 'k_future_mapping' function, what does the 'get_k_future' function do?

Calculates the k-future state for a given state in an FSM.

Why should automated refactoring be used with caution?

To avoid introducing new bugs or issues

After applying the 'Rename Variable' refactoring, what is the major advantage gained in terms of variable naming?

Improved readability and consistency in representing future state information.

What is the significance of using 'frozenset' in storing future state mappings in the 'k_future_mapping' function?

Ensures immutability and uniqueness of future state collections.

Which design principle is violated when methods are not moved to the classes where they belong?

Single Responsibility Principle

How does combining functions into a class impact code organization?

Improves code organization and readability

Test your knowledge on essential refactoring techniques discussed in Donghwan Shin and Neil Walkinshaw's software reengineering course. Learn about changing code structure while preserving functionality, removing code smells, and improving sustainability. Explore the importance of small, behavior-preserving steps in refactoring and the role of regression testing in preventing accidental changes in functionality.

Make Your Own Quizzes and Flashcards

Convert your notes into interactive study material.

Get started for free
Use Quizgecko on...
Browser
Browser