見出し画像

発生学からソフトウェアアーキテクチャを考察してみよう2

こんにちは。前回はソフトウェア開発の基本的な方針を考察しましたね。今回は実際のヒト胚の成長過程を追いつつ、ソフトウェアの構造を考えていきましょう。

前回:発生学からソフトウェアアーキテクチャを考察してみよう1|むら|note

一次胚葉

まず、受精卵は胚盤葉上層(本体)と胚盤葉下層(エネルギー貯蔵)に分かれ、胚盤葉上層が一次胚葉と呼ばれる三つの胚葉に分化します。それが外胚葉、中胚葉、内胚葉です。のちに外胚葉は感覚器と中枢神経、中胚葉は筋肉と骨、内胚葉は内臓などになることから、外胚葉は判断、中胚葉は運動、内胚葉はエネルギー生成を担っていると考えられます。これをソフトウェアに置き換えると外胚葉がバックエンド、中胚葉がフロントエンドになるでしょうか。しかし、外胚葉がのちに分化する感覚器はバックエンドとは言い難いです。これは後に考えていきましょう。また、内胚葉が行うエネルギー生成は完全にハードウェアの問題なのでソフトウェアに落とし込むことは難しいでしょう。

一次胚葉は前回の記事で話した「一般的かつ抽象度の高い構造」であり、すべて脊椎動物で受精卵がこれに分化することがわかっています。よって、動物はすべて判断、運動、エネルギー生成の機能を持っていることがわかります。また、受精卵からは一次胚葉しか分化しないとも言えるので一次胚葉から動物胚に「抽象度的積分」することができます。つまり、動物は判断、運動、エネルギー生成の三つの機能からなるシステムであることがわかります。このように、一般的かつ抽象度の高い枠組みを「分化」して責任を定義し、一種の機能制限を行っていることがわかります。受精卵がまず一次胚葉に分化することで判断、運動、エネルギー生成の機能以外は絶対にサポートしないと定義しているというわけです。動物の進化はこの制限の中で行われています。

脊索

一次胚葉が完成すると、次に中胚葉から脊索という軸のようなものが分化します。この脊索は形成体(オーガナイザー)と呼ばれ、様々な組織の分化の誘導を行っています。例えば、脊索は脊髄からの末端神経を分裂を促し、筋肉とつなげます。ここから脊索は他組織の依存関係を解決する役割を持っていると考えられます。脊索も「一般的かつ抽象度の高い機能」で、すべて動物胚でこれが分化されます。ここで重要なのが低レベルである脊索種では脊索は最終的に体の軸となりますが、高レベルな脊椎動物では消失し、体の軸としての役割は脊椎に置き換わることです。動物の進化が進むにつれて、より一つの部位が担う責任が少なくなっていることがわかります。

さて、中胚葉から脊索が分化したので中胚葉を一つ低い抽象度で説明することができます。中胚葉は脊索とその他からなる物、すなわち依存性を解決する機能(DI?)と運動(フロントエンド的出力)を担う物であると言えます。

結論

今回は受精卵から脊索の分化まで人の発生の過程を調べてみました。その中で、枠組みが「分化」されることでその枠組みより一つ抽象度の高い機能の責任を制限していることがわかりました。これが発生学流の単一責務の原則なのでしょう。

最後に脊索の分化段階までの動物の構造をソフトウェアに落とし込んでみましょう。

横軸:開発の経過時間または抽象度

もしかしたら動物の構造をソフトウェアに落とし込むことでソフトウェアアーキテクチャのテンプレートを作れるかもしれません。 次回は胚子期の考察をしていきます。胚子期までが動物の一般的な構造を分化する段階で、そのあとから各動物に派生するような分化の段階が始まります。次回も見ていただけると嬉しいです。

次回:発生学からソフトウェアアーキテクチャを考察してみよう3|むら|note

この記事が気に入ったらサポートをしてみませんか?