解決策の立案
「何が問題」で「なぜ問題」なのかを明確にし、
症状に応じた解決策を立案する
解決策を立案するためには、まず「何が問題」で「なぜ問題」なのかを明確にする必要があります。それを怠ると、見当違いな結果となってしまい、達成したい効果を得ることができません。問題を確実に掴んだうえで、症状に応じた解決策を立案します。
ここでは、ツリーマップから得られる「サイズが大きくて複雑な関数」の解決策を立案します。
下図は、「派生開発」で複数機種に対応したことで、問題が生じた関数の例です。

問題は「肥大化・複雑化」、なぜ問題かは「バグの温床になる」から
上図のように、対応する機種が増えることによって作りこまれた「肥大化」と「複雑化」は、保守性を低下させます。例えばA機種のみに対する変更があった場合、このような「肥大化」した関数は、変更箇所を見つけることが難しく、また、変更箇所も分散しています。そして「複雑化」したことで、深いネストと入り組んだ制御構造を持つ関数は、誤った対応を誘発します。
解決先は「判断と実行の分離」
このようなケースでは、関数を分割することで、品質を改善することが可能です。まずは、機種ごとに処理を実行する部分を特定し、それを関数として切り出します。そして、それらを呼び出す関数を作ります。すなわち、機種の「判断」と、機種ごとの「実行」を分離します。こうすることで、特定機種への変更を局所化し、変更しやすいコードに改善することができます。

頑張ってるけど、ちっとも楽にならない…何で?
すぐに成果を出すために頑張ってるけど、自前ではもう限界
効果的だろうけど高額なコンサルには手がでない…
あなたに合う一番最適な解決方法を
エクスモーションがご提案いたします。
レガシーリファクタリングの関連サービス
適用支援
レガシーリファクタリング実施支援サービス
ソースコード診断による問題の把握から、あるべき姿への改善まで、設計技術支援とプロセス設計によって、レガシーコードの改善を総合的に支援します。
適用支援
要求仕様書作成サービス
「要求仕様書」を作成したいのに作成する工数が取れないといったお客様に向けて、エクスモーションが制御仕様書や機能仕様書などの既存資料の調査や開発者へのヒアリングを行って「要求仕様書」を作成します。
「リファクタリング」による品質改善についての理論を学び、問題発見・コードの変更・CIフレームワークを使ってのテストまでを実践する本格的トレーニングです。テスト自動化ツール「Google Test」とCIフレームワーク「Jenkins」を使用します。
レガシーリファクタリングに関する記事を見る
他のソリューションを見る
モデリング プロダクトライン開発
最新コラム
パワエレ製品向けMBSE
パワエレの製品開発では電力・電子・制御など複数の技術ドメインに対する定量値や制約の扱いがシステム設計...
データ駆動開発のすすめ
車がネットワークにつながったことで、多種多様なデータを収集することができるようになりました。集めたデ...
LLMOpsが導く新たな可能性
エクスモーションでは、全社的に生成AIを皆さんの開発現場にどう生かせるかを模索しています。ここでは、...
CASE時代に不可欠なサイバーセキュリティ& 機能安全
自動車産業における「CASE」は、便利さや効率性を向上させる一方で、セキュリティや安全上の問題を引き...