稼働中のソフトウェアに対して, 発見された障害の是正や, 新しい要件に対応するための機能拡張を行う活動として, 最も適切なものはどれか。
平成23年度 特別試験 ITパスポート試験 問44
This question's explanation and your answers so far.
問 44
Incorrectア
System testing is an activity carried out late in the development process that targets the system as a whole and verifies, before operation starts, that it works as required. It is indeed a process for finding faults, but it is not an activity that fixes software already in operation or enhances its functions, so it is not appropriate.
Incorrectイ
System requirements definition is an upstream development process in which the functions, performance, and constraints required of the system are clarified and documented. It is the stage that decides what is going to be built, and it is not a term for correcting faults or enhancing functions after the software is in operation, so it is not appropriate.
Incorrectウ
Software configuration management is a supporting activity that identifies deliverables such as programs and design documents and manages their version numbers and change histories, so that it is always clear which versions make up the correct configuration. It is a management mechanism that supports maintenance work, but it does not itself carry out the change work of correcting faults or enhancing functions, so it is not appropriate.
- エ
正解 The question asks about an activity performed on software that is in operation (running in production), so the answer must be a process that comes after development has finished. In the software life cycle (planning → requirements definition → development → operation → maintenance), the activity of removing faults found after the software has gone into operation, and of adding or improving functions to meet new requirements, is “software maintenance.” JIS X 0161 (Software Maintenance) classifies maintenance into four types: corrective maintenance (removing faults that have been found), adaptive maintenance (keeping up with environmental changes such as the OS, hardware, or laws and regulations), perfective maintenance (function enhancement and performance improvement), and preventive maintenance (removing latent faults before they surface). In the question, “correcting discovered faults” is corrective maintenance and “enhancing functions to meet new requirements” is perfective maintenance; both are typical maintenance work. Therefore the correct answer is エ Software maintenance.
- In the software life cycle (planning, requirements definition, development, operation, maintenance), the process responsible for correcting faults and enhancing functions after operation has started is maintenance. The trick is to sort the processes by whether they come before or after the software starts operating.
- The four types of maintenance: corrective maintenance (removing faults that have been found) / adaptive maintenance (keeping up with environmental changes such as the OS, hardware, or laws and regulations) / perfective maintenance (function enhancement and performance improvement) / preventive maintenance (removing latent faults before they cause trouble).