Week 11 - Software Maintenance Flashcards

1
Q

What is software maintenance?

A

Software maintenance is the modification of a software product after delivery to perform various maintenance activities, which include corrective, adaptive, perfective, and preventive maintenance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is corrective maintenance?

A

Corrective maintenance involves fixing errors or bugs that are discovered after the software is in use. It focuses on correcting day-to-day errors and issues that affect the software’s functionality or performance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is adaptive maintenance?

A

Adaptive maintenance is maintenance that helps the software adapt to changes in the environment, such as new operating systems, changes in business policies, or hardware.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is perfective maintenance?

A

Perfective maintenance is maintenance whereby you enhance the software to improve system functionality, usability, and performance, basically improving the quality of the product or software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is preventive maintenance?

A

Preventive maintenance is maintenance whereby you prevent problems before they occur, enhancing software reliability, security, and robustness, such as building in more error checks, reducing program complexity, and patching discovered vulnerabilities.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is refactoring?

A

Refactoring is the changing of the internal structure of the code to make it easier to understand and cheaper to modify, without changing its observable behavior.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is Feature Envy?

A

Feature envy occurs when a method shows more interest in the data of another object than the data in its own class, indicating it may be better placed in the class it is ‘envying’.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is the refactoring technique for Feature Envy?

A

The Move Method should be used, moving the method with feature envy to a more appropriate class where the method is most frequently used.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are switch statements in the context of bad smells?

A

The cases in a switch statement contain logic for different types of instances of the same class, indicating that new subclasses should be created in object-oriented code, and this may be a sign that polymorphism could be better utilized.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is the refactoring method for switch statements?

A

The refactoring technique should be to use Extract Subclass and Extract Method. Create new subclasses, extract methods to move case block logic into methods on the new subclasses, and then use polymorphism to substitute the switch block.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly