Skip to content

平成24年度 秋期 ITパスポート試験 問50

This question's explanation and your answers so far.

問50
頻出度★★★

ソフトウェア保守に関する説明のうち, 適切なものはどれか。

出典 平成24年度 秋期 ITパスポート試験 問50
解説

問 50

  • Incorrectア

    Incorrect. Modifying a program because of a specification change during development is work done before the software has been handed over to the production environment, that is, within the development process, so it is not software maintenance. It is a target of change management (configuration management) in software development, and is handled inside the development project as a review of the requirements definition or the design. The important point in distinguishing maintenance from development is that, even when the work itself looks similar, the two are told apart by the point in time: before or after handover (release).

  • Incorrectイ

    Incorrect. Modifying a program to keep up with changes in the external environment surrounding the software — revisions to laws and regulations, version upgrades of the OS or middleware, hardware replacement, and so on — is called adaptive maintenance, and it is genuine software maintenance. Because the change is made even though there is no defect, it is easy to think that this is not maintenance, but maintenance does not mean only fixing defects; it also includes changes made after the system is running so that it keeps up with changes in the environment. Therefore, the assertion that it is not software maintenance is wrong.

  • ウ

    正解 The correct answer is ウ. Software maintenance is the general term for all the change activities carried out after development is finished and the software has been handed over to the production environment (after release), in order to keep the software running correctly and to keep preserving its value. Therefore, the first criterion for deciding whether something is maintenance is whether the change is made after the system is in production. What ウ describes is this work: a failure occurred in production, so the program was fixed urgently, and afterwards the design documentation was revised to match the content of the fixed program. In emergency failure handling, restoring operation comes first, so it is common to fix only the program first, as a temporary measure. However, if things are left that way, the content of the program and the design documents no longer agree, and the next person who modifies the software will rely on incorrect design documents, which becomes a cause of new defects. For this reason, maintenance can be said to be complete only once the work of bringing the design documentation into agreement with the actual program has also been done after the emergency response. The target of software maintenance is the software product, which includes not only the executable program but also related documents such as design documents and manuals. Therefore, the work in ウ — performed after the system is in production, and keeping the design documentation, which is part of the software product, in a correct state — does count as software maintenance.

  • Incorrectエ

    Incorrect. Modifying a program defect discovered while the production system is running is called corrective maintenance, and it is the most typical form of software maintenance. Fixing a defect that could not be removed during testing and that surfaces only after the system is running falls into this category. If fixing defects found after the system is running were also regarded as an extension of development, it would fall outside the definition of maintenance. Defect fixes performed after handover are maintenance, so the assertion that it is not software maintenance is wrong.

ここがポイント
  • Definition of software maintenance — the general term for change activities performed after the software has been handed over to the production environment. A change made during development (responding to a specification change) is development, not maintenance; whether it comes before or after handover is the dividing line.
  • The four categories of maintenance — corrective maintenance, which fixes defects found after the system is running; preventive maintenance, which acts before defects surface; adaptive maintenance, which keeps up with changes in the external environment such as legal revisions or OS upgrades; and perfective maintenance, which improves performance or maintainability. All of them are maintenance; maintenance does not mean only fixing defects.
  • The target of maintenance is not only the program — related documents such as design documents and manuals are also part of the software product. When the program is fixed first during an emergency response, maintenance is complete only once the work of bringing the design documentation into agreement with the actual program has also been done afterwards.
用語

Your answers