アレグザンダーからソフトウェア工学への直接的な影響として明確なのは、パタン言語からソフトウェアの設計パターンへの系譜である。 Ward Cunningham と Kent Beck は、利用者が設計へ参加するためのパタン言語を1980年代に試みた。 その後、設計パターン集や PLoP を通して、反復する設計問題と解決方法に名前を与え、経験を共有する実践が普及した。
ただし、ソフトウェアの設計パターンは、アレグザンダーの考えをそのまま移植したものではない。 再利用可能な解の型として個々のパターンを取り出すと、文脈の中にある力を読み、複数のパタンを順に適用して全体を成長させる生成過程が抜け落ちる。 アレグザンダーにとってパタンは完成した部品ではなく、ある状況を次の形へ変える規則である。
この違いは、設計パターンをクラス構成の見本として適用する場合と、設計者や利用者が共通の語彙を使って次の局所的な変更を決める場合に現れる。 前者が主に解の構造を再利用するのに対し、後者は設計判断を分散し、完成形を先に固定せず全体を生成する。
アレグザンダーがソフトウェア界に残した射程は、既知の解へ名前を付けることだけではない。 局所的な経験を共有可能な言語にし、その言語を使う人々が状況に応じて全体を生成できるようにすることまで含む。
https://c2.com/doc/oopsla88.html
https://c2.com/ppr/about/patterns.html
https://www.patternlanguage.com/archive/ieee.html
#software-design #design-pattern #pattern-language #christopher-alexander