PMプロジェクトマネージャ試験 午前Ⅱ

平成29年度春期 プロジェクトマネージャ 午前Ⅱ 問18

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

ソフトウェアのリファクタリングの説明はどれか。

選択肢

  1. ア
    外部から見た振る舞いを変更せずに保守性が高いプログラムに書き直す。
  2. イ
    ソースコードから設計書を作成する。
  3. ウ
    ソフトウェア部品を組み合わせてシステムを開発する。
  4. エ
    プログラムの修正が他の部分に影響していないかどうかをテストする。
解き方のヒントを見る

作業手法は目的と成果物で見分ける

開発・保守の作業手法は名称が似ていても、何を出発点にして何を得ようとする作業なのかで意味が分かれます。名称の印象ではなく、作業の対象と成果の関係に注目して、問われている内容を自分の言葉で整理してみましょう。

この問題で問われていること

この問題で確認したいのは、ある作業が何を入力として受け取り、どのような成果を生み出すのかという一つの観点です。作業の前後で何が変化し、何が保たれるのかを意識しながら、手法の意味を区別できるかが問われています。

視点

ソフトウェアの開発や保守では、多くの作業手法が用語として定義されています。それぞれの手法は、何を対象として始め、どのような成果を得ることを狙うかによって位置付けが決まります。名称に含まれる語感や、よく一緒に語られる話題から判断すると、取り違えが起きやすくなります。学習の際は、一つの手法ごとに『作業の出発点』『作業で得られるもの』『作業の前後で変わるもの・変わらないもの』を短く書き出してみると、意味の違いを自分の言葉で説明しやすくなります。

確認ポイント

  • その作業が何を出発点(入力)として始まるのかを、自分の言葉で説明できるか確認する
  • その作業の結果として何が得られるのか(成果)を、出発点と対にして整理できているか確認する
  • 名称の語感ではなく、作業の前後で何が変わり何が変わらないかに基づいて判断しているか確認する
正解と解説を見る

正解

ア

解説

リファクタリングとは、プログラムの外部から見た振る舞いを変えずに、ソースコードの内部構造を整理・改善し、保守性を高める作業です。したがって、アが該当する。

理由

リファクタリングは、利用者から見たプログラムの振る舞いを変えないことを前提に、ソースコードの構造を整理して、読みやすさや変更しやすさなどの保守性を高める作業です。

比較

設計書の作成、部品の組合せによる開発、修正後の影響確認テストは、それぞれ別の工程や活動を表します。コードの外部仕様を維持しながら内部を改善する説明に一致するのはアです。

選択肢ア(正解)

これは正解だよ。リファクタリングは、外部から見たプログラムの振る舞いを変更せず、ソースコードの内部構造を整理して保守性を高める作業である。この選択肢は、目的と前提の両方を正しく説明している。

選択肢イ

これは不正解だよ。ソースコードから設計書を作成することは、既存システムの構造や仕様を把握して文書化する作業に当たる。リファクタリングの中心である、外部の振る舞いを保った内部構造の改善を説明していない。

選択肢ウ

これは不正解だよ。ソフトウェア部品を組み合わせてシステムを開発することは、部品の再利用や構成による開発を示している。既存プログラムの内部構造を整理して保守性を高めるリファクタリングとは作業の目的が異なる。

選択肢エ

これは不正解だよ。プログラムの修正が他の部分に影響していないかをテストすることは、変更の影響を確認するテスト活動である。リファクタリング後に必要となる場合はあるが、リファクタリングそのものの説明ではない。

学習のポイント

リファクタリングは外部仕様を保ったまま内部構造を改善する保守技法です。

出典:独立行政法人 情報処理推進機構(IPA)平成29年度春期 プロジェクトマネージャ試験 午前Ⅱ 問18(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針