リファクタリングとは?基本情報処理午前対策

 

この記事を書いている人 - WRITER -

基本情報処理技術者試験から不定期に1題出題、解説いたします。

試験を受けない人にとっても役に立つ解説を心掛けていきます。

 

問題

テクノロジ系
ソフトウェア開発の活動のうち,アジャイル開発においても重視されているリファクタリングはどれか。

 

  1. ソフトウェアの品質を高めるために,2人のプログラマが協力して,一つのプログラムをコーディングする。
  2. ソフトウェアの保守性を高めるために,外部仕様を変更することなく,プログラムの内部構造を変更する。
  3. 動作するソフトウェアを迅速に開発するために,テストケースを先に設定してから,プログラムをコーディングする。
  4. 利用者からのフィードバックを得るために,提供予定のソフトウェアの試作品を早期に作成する。

 

基本情報技術者 平成29年春期試験から抜粋

 

 

 

正解は

イが正解

リファクタリングについて解説

リファクタリングとは

プログラムの外部から見た動作を変えずにソースコードの内部構造を整理することである。また、いくつかのリファクタリング手法の総称としても使われる。

引用:Wikipediaより

かつてシステム業界では

「一度リリースしたプログラムは、仕様変更や問題が起きない限り、どんな小さな改修もしてはならない」

という暗黙のルールが存在していました。

 

その結果

似たような機能や処理が、複製されて

明らかに汚いソースなのに改修が出来ず、保守が困難になった

ソースから仕様の意図を読み取る事が困難になった

 

リファクタリングの目的

リファクタリングの目的は保守性を高める事です。

使っているユーザーは意識出来ないシステムの内側のメンテナンス

リファクタリングのデメリット

リファクタリングは大変時間が掛かる事です。

複雑なソースから、正しい仕様を読み解いたり、その他処理への影響度を調査し
入出力結果に影響を与えず、内部の複雑なコードや可読性の改善をする必要があります。

 

リファクタリングは将来に備えて行うものであるため、作業が実を結ぶ可能性は少ないです。
納期に追われたシステムである程、リファクタリングをする余裕が無くなります。

 

その他の選択肢について

ペアプログラミング

二人以上のメンバーで1つのプログラミングを行う事ですね。

 

一人が設計し、その横でもうひとりが指示された通りのプログラミングをしたり

一人がプログラミングしながら、もうひとりがテスト用のコードやデータを作成したり

 

テスト駆動開発

最初にテストを作成し、そのテストが満たせる実装を後から実装していく手法です。

テストを元に実装を組み上げていく為。、バグが少なくなりますが、詳細な仕様・パターン網羅がしっかりとできている事が前提です。

 

プロトタイピング

プロトタイプ(試作品)を作りながら、テストと変更を繰り返し最終席な成果物に近づけていく手法です。

エンドユーザーに目に見えるプログラムを提供してフィードバッグが得られる為、要件定義や設計の戻りが少なくなります。

しかし、プロジェクトマネジメントが困難になるデメリットもあります。

 

今回の問題のキーポイント

リファクタリングというキーワードが出たら、

「保守性」「動作を変えない」「内部構造の変更」

というキーワードに注目しましょう。

まとめ

今日の問題はいかがでしょうか。

今回は、リファクタリングの問題について解説させていただきました。

ポイントとなるキーワードを見つけ、ピンポイントで正答を判断しましょう。

この記事を書いている人 - WRITER -
 

Copyright© 株式会社ヴァックスラボ , 2018 All Rights Reserved.