最近、折に触れて手に取っている本の一冊に、オライリー社の『ビューティフル・アーキテクチャ』(*1)があります。表題の通り、「美しいアーキテクチャ」・・ソフトウェア・アーキテクチャの美しさについて、19人のITアーキテクトが書いた小論集となっています。
業務アプリケーションSEの一人としては、普段、良いアーキテクチャの恩恵を享受しながら、ややもすると、それを当り前のものだと受け取っています。その一方、機能拡張に大幅な変更工数が発生したり、性能が想定した通り出ない、というような困った事態になってから付け焼刃的にアーキテクチャにまで手を入れる改善を試みることにもなることしばしばです。そんな身としては、そもそもアーキテクチャが担うべき役割をふまえて、意図して作り込まれたアーキテクチャとアーキテクトの素晴らしさと重要性を再認識させられました。
ところで、アーキテクチャの語源には、いくつかの説があるようです。
ウィキペディアによると、共和政ローマ期に活動した建築家・建築理論家であったウィトルウィウス(紀元前80年/70年頃 - 紀元前15年以降)が著書『建築について De Architectura』の中で、古代ギリシャ語の「arkhitekton」(アルキテクトーン)を基にするarchitectus(アルキテクトゥス)というラテン語を使ったことが始まりであるといいます。この語は「architectura」(アルキテクトゥーラ)と変化し、これからおそらくはフランス語を経由し、英語の architecture(アーキテクチャ)になった、といいます。
また、ONLINE ETYMOLOGY DICTIONARYで語源を辿ってみると、「arkhitekton」(アルキテクトーン)は、「arkhi-」(アーキ)と「tekton」(テクトン)に分かれます。各々が「第一の」「建築家」を意味します。さらに「arkhi-」(アーキ)の語源となった「arkhon」(アルコーン)を辿ると、根拠、根源、原因、はじまりを意味する「arkhe」(アルケー)に行きあたります。アーキテクチャの言葉の中に、西洋思想の大本であるアルケーが隠れていたことに感動するのでした(*2)。
従来のさほど条件の厳しくないシステム開発であれば、アドホックで(その場限りの・その場しのぎの)形式化されていない工学的手法でも、構築できたのかもしれませんが、現在の大規模・複雑化するシステムにおいて、高性能・高信頼・高品質なソフトウェアシステムの開発は、全体をカバーする単一のアーキテクチャを開発・維持することが必須となっているのだと思います。部分的な場当たり的な開発やトータルの構想なく接ぎ木をして出来上るシステムは、テストや統合の失敗の真因となるからです。
そもそもアーキテクチャとは何でしょうか?
≪「アーキテクトや開発者などすべてのステークホルダが、自分の関心事・利益がいかにして満たされるかを了解できるように設計された、一群の構造から成っている」≫
もの
≪「システムがステークホルダたちの関心事を満たすことの保証手段、そしてシステムの構想・計画・構築・保守時の複雑さへの対処手段になり得る」≫もの
という定義が紹介されています。
現在のアーキテクチャに求められるものを具体的に挙げると、
と多岐にわたります。
ソフトウェアアーキテクトの関心事は、直接的には、システムの機能要件にはなく、いわゆる「非機能要件」にあります。この非機能要件は、トレードオフの関係にあるため、何を活かし、何に制約をつけるかを、整合性のある統一されたコンセプトにより決める必要があります。
アーキテクチャ構築にあたって、アーキテクトが行う最初の仕事は、ステークホルダたちと一緒になって、システムの品質要件や制約について理解し、それらの優先順位づけを行うことにあります。
また、ステークホルダたちの関心事は実にさまざまです。
だから、機能要求だけに飛びつくと、機能要求を実現できても、変更可能性、保守性、拡張性などの非機能要件が十分に実現できません。逆に、非機能要件を充足させるために、後から機能要求に制約が加わりかねません。一方、機能要求を実現できるアーキテクチャは複数ありえます。
また、良いアーキテクチャは、いくつかの共通する普遍的原理がある、といいます。
そして、
といいます。
「たくさんの良いアイデアが独立に調和なしに含まれているシステムよりも、1つの設計上のアイデアを体現したシステムの方が、ずっと好ましい」(フレデリック・ブルックス)
つまり、美しいアーキテクチャが持つ特徴は、
≪「システム全体を通じて使われる抽象技法と規則の集合が、可能な限り簡単にまとまっている」≫
また、もしも、「アーキテクチャの殿堂」「美しいアーキテクチャの美術館」というようなものを作るとしたら・・その基準となる要件は、このようなものになるのでは、といいます。
などが、美しいアーキテクチャが満たすべき要件として求められています。
最後に、アーキテクチャの美しさ・・って、どういうものだろうか?、を改めて思う時、漠然と考えてもイメージがわかなければ、1930年にスイス人の建築家であるロベール・マイヤールが設計したサルギナトーベル橋を見てみることです、というアドバイスがあります。
スイスのスヒール近郊にあるサルギナトーベル橋は、アルプスの裾野、グラウヴュンデンカートーの切り立った渓谷にかかる橋です。径間は90メートルにも渡り、サルジナ川の水面から80メートルもの高さを持っていますが、ゆるやかなアーチと白いコンクリートでできており、周りの景色と完全に調和したシンプルで、とても美しい橋となっています。
≪重要なのは、それらが美しいだけではないということです。マイヤールは競争入札で契約を勝ち取って橋を作りました。サルギナトーベル橋のときは、19人の設計者たちより低い値をつけて契約を勝ち得ました。サルギナトーベル橋と道路の建設に掛かったのは、当時の金額にしてたったの70万スイスフランであり、これは現在の400万ドルより安いのです。≫
この橋の写真を一目見ていただければわかると思うのですが、この美しい橋が、他の設計会社19社の競争入札の結果、最も安かったという事実に心底驚きました。
低コストと美しさを両立させたのは、1900年から1940年にかけてマイヤールが構造芸術の分野で行った革命的な業績の結果でした。マイヤールによって、過去の石造りの建築からコンクリートの特性・・構造がスレンダーで薄い、それゆえに優雅で経済的であることを活かしきった橋が誕生したのでした。
橋はなぜ美しいのか?
美しくあることを求められているから。
でも、橋はまず強くある必要があります。
レイモンド・チャンドラーの言葉ではありませんが、、
美しく作った橋でも、強くなければ生き残れません。
また、強いだけでも、愛されません。
しかし、
風雪に耐えて生き残った美しい橋は、
できた時から美しい橋であった。
そして、それは自然にできたものではなく、設計者の強い意図が働いています。
(*1)『ビューティフル・アーキテクチャ』 編 Diomidis Spinellis , Georgios Gousios、訳 久野禎子・久野靖 オライリージャパン 2009年刊
(*2)ONLINE ETYMOLOGY DICTIONARY
http://www.etymonline.com/index.php