2章適応度関数テストピラミッド:アーキテクチャテストとメトリクスのためのアナロジー

Rene Weiss

適応度関数とは、進化的計算†1から借用した概念で、ソフトウェアシステムのメトリクスを定義するためにも使える簡潔な手法です。この章では、取り組んでいるのが新しいシステムの構築か既存システムの改善かに関わらず、システムに合わせたメトリクスを定義しアーキテクチャを改善するのに、適応度関数がどのように役立つかを説明します。適応度関数とメトリクスをテストピラミッドの概念と組み合わせることで、メトリクスを定義し、優先順位をつけ、釣り合いを取って、目的に対する進捗を計測できるようになります。

[†1] 訳注:生物の進化のメカニズムをまねてデータ構造を変形、合成、選択する手法およびそれを研究する分野。最適化問題を解くことと最適な構造を生成することを目的としています。

2.1 適応度関数とメトリクス

適応度関数という概念は、Neil Ford、Rebecca Parsons、Patrick Kuaによる書籍『進化的アーキテクチャ』(オライリー・ジャパン)[4]の中で初めて紹介されました。『進化的アーキテクチャ』では、適応度関数を「見込みのある設計ソリューションが、設定した目的の達成にどれだけ近いかを要約するために使用する目的関数†2」と定義しています。適応度関数は通常、達成または改善しようとしているメトリクスである離散値を出力します。目的を達成できているかを知るには、対象となるメトリクスを計測するテストまたは検証の仕組みが必要です。理想的には、これは自動化されていて欲しいところですが、適応度関数では、それを必須とは定めていません。

[†2] 訳注:最適化問題において最大化あるいは最小化したい関数のことを目的関数と呼びます。 ...

Get ソフトウェアアーキテクチャメトリクス ―アーキテクチャ品質を改善する10のアドバイス now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.