2章適応度関数

進化的アーキテクチャとは、複数の次元にわたる漸進的で誘導的な変更を支援するものである。

――我々の定義

前述したように、「誘導的」という言葉は、アーキテクチャとして向かうべき方向、あるいは示される目標が存在することを示している。そのため、我々は遺伝的アルゴリズム設計で成功の定義に使われる「適応度関数(Fitness Function)」という進化的計算の概念を拝借する。進化的計算には、各世代のソフトウェアで起きる小さな変化によって解が徐々に現れてくるようにするための仕組みが多く含まれている。解は最終目標に近づいたか、それとも遠く離れているか、といった具合に、エンジニアは解の世代ごとに現在の状態を評価する。例えば、翼の設計を最適化するために遺伝的アルゴリズムを使用する場合、適応度関数は、風抵抗、重量、空気流量をはじめとする、好ましい翼設計に望まれる各種特性を評価する。アーキテクトは適応度関数を定義し、何がより良いかを説明するとともに、目標が達成されたかの計測に役立てる。ソフトウェアにおいて適応度関数がチェックするのは、開発者がアーキテクチャ上の重要な特性を維持できているかだ。

アーキテクチャの適応度関数を定義するため、我々は以下のような考え方を用いる。

アーキテクチャの適応度関数は、あるアーキテクチャ特性がどの程度満たされているかを評価する客観的な指標を与える。

――我々の定義

この適応度関数は、システムに求められる様々なアーキテクチャ特性を保護する。具体的なアーキテクチャ要件は、システムや組織によって大きく異なる。それはビジネス推進力や技術的な能力、その他多くの要因によって決定される。システムによっては強固なセキュリティが必要なこともあれば、高いスループットや低レイテンシを必要とすることもある。障害からの回復力を何よりも必要とするシステムもあることだろう。考慮すべきこうした事項は、アーキテクトが気に掛ける「~性」を形作る。考え方としては、あるアーキテクチャ特性についての適応度関数とは、対象とするシステムの「~性」を保護する仕組みを具体化したものと言える。 ...

Get 進化的アーキテクチャ ―絶え間ない変化を支える now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.