ソフトウェアアーキテクチャメトリクス ―アーキテクチャ品質を改善する10のアドバイス
by Christian Ciceri, Dave Farley, Neal Ford, Andrew Harmel-Law, Michael Keeling, Carola Lilienthal, João Rosa, Alexander von Zitzewitz, Rene Weiss, Eoin Woods, 島田 浩二
8章メトリクスからエンジニアリングへの進化
Neal Ford
私は、大学でさまざまな専攻を経験し、遠回りをしてきました。数年間は機械工学の道をひたすら突き進みましたし、物理学で2年制の学位を取得し、近くの主要な工学系大学のコースワークに入りました。1年後、私はコンピュータサイエンスに転向し、物理工学の世界から離れることにしました。
とはいえ、コンピュータサイエンスの研究に十分な時間を費やした結果、物理学の基礎となる数学がどのように姿を変え、機械工学という学問分野になったのかを理解するに至りました。数学は計測に枠組みを与えます。ですが、計測が世界をどう反映しているかを正確に理解するまで、エンジニアは数学をものづくりに応用できません。
アーキテクトや開発者とメトリクスの関係は、エンジニアと物理学の関係と同じです。メトリクスを有用なコンテキストで評価できなければ、アーキテクトや開発者はメトリクスを開発には活かせません。アーキテクトや開発者は、何十年もの間、アーキテクチャの一部を検証するためにメトリクスを使用してきました。しかし、多くの場合、それらは場当たり的な方法でした。必要なのは、メトリクスを活用してエンジニアリングをサポートする一貫したアプローチです。ソフトウェア工学は物理工学ほど進んでいませんが、私たちは計測値を工学的実践に変換する方法を学びつつあります。
8.1 適応度関数への道
Patrick Kua、Rebecca Parsonsと共著した『進化的アーキテクチャ』[4]で、私たちはアーキテクチャ適応度関数という概念を定義しました†1。Rebecca Parsonsには遺伝的アルゴリズムの研究に携わっていた経験がありました。遺伝的アルゴリズムとは、結果を生成し、自身を変異させ、また別の結果を生成し、ということを終了条件が満たされるまで繰り返すアルゴリズムです。例えば、変異の手法の1つにルーレット変異というものがあります。アルゴリズムが1つ以上の定数値を使用する場合、この変異はルーレットからランダムに新しい値を選びます。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access