ユースケース:リファクタリング
リファクタリングとは、ソフトウェアの外部の振る舞いを保ちつつ、内部の構造を改善していく作業を指します。 リファクタリングを実施することで、コードの可読性が良くなるだけではなく、修正が簡単になり、バグを見つけやすくなり、開発工数の削減に繋がります。
ここでは、Understandで、クラス・関数の構造を可視化し、リファクタリングする方法についてご紹介します。
リファクタリングの関連資料はこちら>>
ここでは、Understandで、クラス・関数の構造を可視化し、リファクタリングする方法についてご紹介します。
リファクタリングの関連資料はこちら>>
課題
- リファクタリングにかける時間がない
- リファクタリングすべき箇所が特定できない
- 周囲にリファクタリングの効果を説明できない
原因
ソースコードの構造が把握できていない例:コーディング担当者以外が構造を理解できていないため、どこをリファクタリングすべきか分からない
動作しているプログラムのデグレードが怖い
例:リファクタリングの必要性は理解しているが、いきなりシステムを変更することは抵抗がある
リファクタリングの効果を定量的に表現するのが難しい
例:ソースコードの修正はコストがかかるため、修正前にリファクタリングの効果を確認したい
解決策
リファクタリングすべき箇所が特定できない課題に対して、 コードの構造を可視化し、構造上の問題点を把握、リファクタリングを行います。1.保守性の低い関数やクラスを確認する
ポイント- ソースコードメトリクスの値から、保守性の低い関数やクラスを確認する
Understandの機能
Low Maintainability Functions レポート、Low Maintainability Classes レポートで、それぞれ関数の保守性、クラスの保守性に関与が大きい3つのメトリクス値を計測できます。あらかじめ閾値を設定しておくと、閾値を超えた値は赤で表示され、リファクタリング対象の選定に役立ちます。2.コードクローンを検出する
ポイント- コードクローン(ソースコード中で類似・一致した部分)は、コピー&ペーストなどで作りこまれる
- ソースコードの中から類似した関数を検出
Understandの機能
Cloned Functionsレポートで、類似した関数を検出できます。検出後、レポートの[View Comparison]から、比較機能を開き、類似している関数のコード差分を確認できます。3.使用されていない関数を検出する
ポイント- コードの理解を妨げる、実行されると問題をおこす、などのリスクがあるためデッドコード(実行されないコード)は取り除くべき
- 使用されていない関数や変数の粒度で、デッドコードを検出可能
4.リファクタリングの計画を立てる
ポイント- リファクタリング対象の関数、クラスの構造を把握
5.リファクタリング後の保守性を確認する
ポイント- リファクタリング前後でのメトリクス値を比較
- リファクタリングの効果を定量的に説明
関連情報のご紹介
リファクタリングのユースケースについて、操作動画や関連セミナーをまとめております。是非お役立てください。
- 動画:Understand操作動画(YouTube)
- セミナー:Understand 活用セミナー(中級編) - [リファクタリング編]
- 関連ツール:Lattix リファクタリングページ(全体構造の把握が得意な姉妹ツール)
関連資料のご案内
過去に開催したソフトウェア品質向上セミナーの講演資料をご案内します。資料は、セミナーにご登壇いただいた企業様の品質向上に関する取り組みをご紹介しています。資料をご希望の方は、申込フォームよりお申し込みください。
パナソニック アドバンストテクノロジー株式会社様
パナソニック アドバンストテクノロジー株式会社が実践するUnderstandを用いた構造的リスクの効果的な抽出手法とは?
他社開発や受託開発における構造的リスクを抽出するため、Understandを用いた構造解析結果を元にしたメトリクス分析の自動化、リバースエンジニアリングツールの整備し、啓発活動などもおこないながら解析の効率化を図った取り組みについてご紹介いたします。富士フイルムソフトウエア株式会社様
ソフトウェアの構造悪化を防止して、テスト工数・修正工数を削減する! 富士フイルムソフトウエアが実践する品質確保の取り組み
「保守性や再利用性に関する品質指標は、開発プロセスへの適用が難しい」という言葉や下記のような課題に対して、ソフトウェアの品質確保をテーマに、品質改善活動へのツール適用事例をご紹介いたします。イベント・セミナー
ニュース・キャンペーン
ソースコード解析ツール Understandに
関するお問い合わせ
テクマトリックス株式会社
東京本社ソフトウェアエンジニアリング事業部
03-4405-7853
- メールでのお問い合わせ
- scitools-info@techmatrix.co.jp