プログラムの書き方の不統一で保守しにくいときの低減策とは
基本情報技術者試験 令和8年度 問11 / システム開発技術 › ソフトウェア構築
過去問にチャレンジ
あるシステムにおいて,“プログラムの記述方法が統一されていないので保守がしづらい”という問題が発生している。今後の新規開発プロジェクトにおけるこの問題の低減策として,最も適切なものはどれか。
- ア
コーディング規約を見直し,教育する。
- イ
セキュアプログラミングを採用する。
- ウ
単体テストでの命令網羅度を上げる。
- エ
プロジェクト管理レビューに全プログラマーが参加する。
会話形式の解説
講師今回は、保守しにくいという問題への対策を選ぶ問題です。まず、問題文が何を原因として挙げているかに注目してください。
受験者原因は「プログラムの記述方法が統一されていない」ことですね。人によって書き方がばらばらなので、読みにくくて直しにくい、という状況だと思います。
講師そのとおりです。原因が書き方のばらつきなので、書き方のルールをそろえる手段が答えになります。その点で、コーディング規約を見直して教育する案はどうでしょうか。
受験者コーディング規約は、命名や字下げ、コメントの書き方などを決めたルールですよね。それをそろえて教育すれば、担当者ごとのばらつきが減りそうです。
講師はい。規約は作るだけでなく、教育で現場に定着させることで効果が出ます。書き方がそろえば修正箇所を調べやすくなり、機能追加もしやすくなるので、保守性が上がります。
受験者セキュアプログラミングも、プログラムの書き方に関するものなので、少し迷いました。
講師迷いやすいところですね。セキュアプログラミングは、脆弱性、つまりセキュリティ上の弱点を作り込まないように実装する考え方です。目的は情報セキュリティの確保なので、記述方法をそろえることを直接ねらったものではありません。
受験者単体テストの命令網羅度を上げる案は、品質が上がるので良い施策に見えます。でも、書き方そのものは変わらないですよね。
講師そうです。命令網羅度は、プログラム中の命令のうち、テストで実際に実行された割合を表す指標です。上げれば誤りは見つけやすくなりますが、コードの書き方は統一されません。
受験者プロジェクト管理レビューに全プログラマーが参加する案は、全員で話し合えば書き方もそろいそうな気がしました。
講師プロジェクト管理レビューは、進捗やコストなど、プロジェクトの実施状況を確認する場です。全員が参加しても、書き方をそろえるルールがなければ不統一は解消しません。また、管理上必要な関係者が参加する場なので、全プログラマーが参加する形は一般には適切とはいえないでしょう。
受験者つまり、良い施策かどうかではなく、問題文の原因に直接効くかどうかで選べばよいのですね。
講師はい。この種の問題では、セキュリティやテストなど、もっともらしい品質向上策が誤りの選択肢として並ぶことがあります。原因を先に特定してから選択肢を見ると迷いにくくなります。
まとめ
プログラムの記述方法が統一されておらず保守しにくい、という問題への低減策としては、コーディング規約を見直し、教育によって定着させるのが最も適切です。コーディング規約は命名や字下げ、コメントなどの書き方を定めたルールで、担当者ごとのばらつきを抑えます。セキュアプログラミングはセキュリティの確保、命令網羅度はテストの実行割合の指標、プロジェクト管理レビューは進捗やコストの確認が目的で、どれも書き方の不統一には直接効きません。対策を選ぶ問題では、まず原因を特定し、それに直接効くかどうかで判断します。
解答・解説
正解はアです
この問題のテーマ
プログラムの書き方がそろっていないために保守しにくい、という問題の原因を見極め、それに直接効く対策を選ぶ問題です。
解き方の考え方
まず問題文から原因を確認します。原因は「記述方法が統一されていない」ことなので、書き方のルールをそろえる手段が答えになります。各選択肢について、書き方の統一に直接つながるかどうかを見ていきます。セキュリティ、テスト、進捗管理といった別の目的のための施策は、いずれも原因に対応していないため外せます。
選択肢ごとの解説
- ○ア コーディング規約を見直し,教育する。コーディング規約を見直して教育する案は、記述方法の不統一という原因に直接対処できます。コーディング規約は命名、字下げ、コメントなどの書き方を定めたルールです。教育によって現場に定着させれば、担当者ごとのばらつきが抑えられます。書き方がそろうと修正箇所を調べやすくなり、機能追加もしやすくなるので、保守性が向上します。
- ×イ セキュアプログラミングを採用する。セキュアプログラミングは、脆弱性を作り込まないように実装するための考え方です。主な目的は情報セキュリティの確保であり、記述方法をそろえることを直接ねらったものではありません。そのため、今回の問題の低減策としては的外れです。
- ×ウ 単体テストでの命令網羅度を上げる。命令網羅度は、プログラム中の命令のうち、テストで実際に実行された割合を表す指標です。網羅度を上げると誤りを見つけやすくなりますが、コードの書き方は統一されません。品質向上の手段であっても、保守性の低下の原因には効きません。
- ×エ プロジェクト管理レビューに全プログラマーが参加する。プロジェクト管理レビューは、進捗やコストなど、プロジェクトの実施状況を確認する場です。全プログラマーが参加しても、書き方をそろえるルールがなければ不統一は解消しません。
補足
この種の問題では、セキュリティやテストなど、もっともらしい品質向上策が誤りの選択肢として並びます。「良い施策かどうか」ではなく「問題文の原因に直接効くかどうか」で判断すると迷いにくくなります。
POINT
- 対策を選ぶ問題では、まず問題文から原因を特定し、その原因に直接効く選択肢を選びます。
- コーディング規約は、命名、字下げ、コメントなどプログラムの書き方をそろえるためのルールです。
- 規約は作るだけでは不十分で、教育などを通じて現場に定着させることで効果が出ます。
- 命令網羅度はテストで実行された命令の割合を示す指標で、品質の確認には役立ちますが、書き方の統一とは関係ありません。
- プロジェクト管理レビューは進捗やコストなどを確認する場であり、コードの書き方をそろえる手段ではありません。
