Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

ブランコの比喩はどこから来たのか / Where did the swing metaphor...

ブランコの比喩はどこから来たのか / Where did the swing metaphor come from

ブランコの比喩の出自からソフトウェア設計の歴史を学びましょう

Kazuki Higashiguchi

September 25, 2019
Tweet

More Decks by Kazuki Higashiguchi

Other Decks in Technology

Transcript

  1. © - BASE, Inc. : @hgsgtk var_dump($hgsgtk); 東⼝ 和暉 (

    Higashiguchi Kazuki ) Back-end Engineer (Go, PHP, Python ) BASE BANK, Inc. (BASE, Inc.) / Dev Division / Tech Lead
  2. © - BASE, Inc. 掲載されたブランコの⽐喩のマンガ • 建築業界における各領域の専⾨家と利⽤ 者との理解の齟齬を批判的に⽰したの が、ブランコの⽐喩 •

    アレグザンダー⽒のオリジナルではない • カリフォルニア⼤学バークレー校の研究 所のドアによく貼られていたもの
  3. © - BASE, Inc. アレグザンダー⽒の思考の変遷 • 「⼈が⽣きるに値する暮らしを送れる」 環境を提供すること、この⼀点を⽬指し て構築してきた •

    その中で、⻑い研究⽣活の中で幾度も考 えを変化させている 参考書籍 ⻑坂 ⼀郎 著 『クリストファー‧アレグザンダーの思考の軌跡―デザイン⾏為の意味を 問う』
  4. © - BASE, Inc. 主な著書‧論⽂ • 1964年 『形の合成に関するノート』 • 1965年

    『都市はツリーではない』 • 1975年 『オレゴン⼤学の実験』 • 1977年 『パタン‧ランゲージ』 • 1979年 『時を超えた建設の道』
  5. © - BASE, Inc. 数学的に扱うアプローチ . 要求条件を洗い出し細分化する • 要求条件の集合全体を「システム」と呼ぶ .

    条件間の関係性を検討し、すべての条件について 他の条件との関係性を洗い出す . それぞれの条件が適合している/していないとい う2値で取ると数値の集合として数学的に扱える
  6. © - BASE, Inc. 条件間は複雑に絡み合うためツリー構造へ . 要求条件を洗い出し細分化する • 要求条件の集合全体を「システム」と呼ぶ .

    条件の関係を吟味、互いに影響を与えうる条件だ けを集めて「サブシステム」とする . サブシステムで更に分割し、より⼩さなサブシス テムへ . 全体の構造をシステム‧サブシステムの親⼦関係 (ツリー構造)に還元していく、トップダウンな アプローチ
  7. © - BASE, Inc. 1964年 ベイエリア⾼速鉄道の計画 でわかった問題点 • 要求分析をし、390個の要求分析をし、ツリー構 造に分割

    • 膨⼤な数のサブシステムになり、計算プログラム も巨⼤に • 予期しなかったサブシステム間の連携が⽣じる • ex. チケットブースの列が膨らむ→⼈の通⾏が妨 げられる
  8. © - BASE, Inc. 論⽂『都市はツリーではない』 • それまでの都市計画に対する批判 • それまでの都市計画によってできた都市を「⼈⼯ 都市」と呼ぶ、ツリー構造に還元される

    • ⾃然都市: ⾃然にできた都市 • 1つの場所が複数の役割を同時に担うセミラティ ス構造を持つ http://en.bp.ntu.edu.tw/wp-content/uploads/ / / -Alexander-A-city-is-not-a-tree.pdf
  9. © - BASE, Inc. セミラティス構造 • 重複を許すように分割するときに出来る構造 • 市⺠の活動はツリー構造には収まらない •

    ex. 仕事と週末、同じ地域で⾏うこともある • 都市は、セミレティス構造のまま扱わなければな らない
  10. © - BASE, Inc. 建築‧計画を⾏うための6つの原理 . 有機的秩序の原理 (The principle of

    organic order) . 参加の原理 (The principle of participation) . 斬新的成⻑の原理 (The principle of piecemeal growth) . パターンの原理 (The principle of patterns) . 診断の原理 (The principle of diagnosis) . 調整の原理 (The principle of coordination) 書籍 Alexandar C 『オレゴン⼤学の実験』
  11. © - BASE, Inc. 詳説:6つの原理 • 有機的秩序の原理 • 計画や施⼯は、全体を個別的な⾏為から徐々に ⽣み出していくようなプロセスによって導かれる

    こと • 参加の原理 • 建築内容や建設⽅法に関するすべての決定は利⽤ 者の⼿に委ねること 書籍 Alexandar C 『オレゴン⼤学の実験』
  12. © - BASE, Inc. 詳説:6つの原理 • 斬新的成⻑の原理 • 各予算年度に企画される建築は、⼩規模なプロ ジェクトに特に重点を置くこと

    • パターンの原理 • すべての設計と建設は、正式に採⽤されたパター ンと呼ばれる計画原理の集合によって指導され ること 書籍 Alexandar C 『オレゴン⼤学の実験』
  13. © - BASE, Inc. 詳説:6つの原理 • 診断の原理 • 各コミュニティ全体の健康状態は、コミュニティ の変遷のどの時点でも、どのスペースが⽣かさ

    れ、どのスペースが⽣かされていないか、を詳し く説明する定期的な診断に基づいて保護される こと 書籍 Alexandar C 『オレゴン⼤学の実験』
  14. © - BASE, Inc. 詳説:6つの原理 • 調整の原理 • 全体における有機的秩序の緩やかな⽣成は、利 ⽤者の推進する個々のプロジェクトの流れに制

    御を施す財政的処理によって確実なものとされ ること。 書籍 Alexandar C 『オレゴン⼤学の実験』
  15. © - BASE, Inc. パタン‧ランゲージ • 建築において繰り返し現れる構造を再利 ⽤しやすい形式にまとめたもの • 利⽤者と設計者の共通⾔語として使うこ

    とで、利⽤者が⾃分⾃⾝で建築の設計を ⾏い、本当に望んだ建築を実現できる⽤ になることを⽬指した 書籍 Alexandar C 『パタン‧ランゲージ』
  16. © - BASE, Inc. 『パタン‧ランゲージ』の3つの部 • 「町」:都市の⼤きな配置を考えるため の⼤きなパターン • 「建築」:敷地の空間にどのように建物

    を配置すべきかというパターン • 「施⾏」:建物の構造‧材料、柱‧壁、 床‧天井などの⼀つ⼀つの構造を決める ためのパターン
  17. © - BASE, Inc. OOPSLA • Object-Oriented Programming, Systems, Languages,

    and Applications • オブジェクト指向に関するシンポジウム • 1986年 オレゴンにて第⼀回開催
  18. © - BASE, Inc. 1987年 “Using Pattern Languages for Object-

    Oriented Programs” http://c .com/doc/oopsla .html
  19. © - BASE, Inc. Using Pattern Languages for Object-Oriented Programs

    • ユーザーインターフェースの設計をシステム設計 に取り込む • 旧来の設計⽅法論(構造化分析‧エンティティリ レーションシップ)は有効ではないという主張 • アレグザンダーのパタン‧ランゲージを取り⼊れ る
  20. © - BASE, Inc. 1988年 “ET++ - An Object-Oriented Application

    Framework in C++ “ http://citeseerx.ist.psu.edu/viewdoc/download?doi= . . . . &rep=rep &type=pdf
  21. © - BASE, Inc. 1992年 “Documenting Frameworks using Patterns” /

    Ralph E. Johnson https://www.researchgate.net/publication/ _Documenting_Frameworks_Using_Patterns
  22. © - BASE, Inc. 1994年 GoF (Gang of Four) •

    1992年 OOPSLAで、Erich Gamma、Richard Helm、Ralph E. Johnson、John Matthew Vlissides の4⼈組が顔合わせ • 1994年10⽉、書籍『オブジェクト指向における再 利⽤のためのデザインパターン』を発表 • ソフトウェア設計において繰り返し現れる構造を パターンとしてまとめる
  23. © - BASE, Inc. 1996年~ C プロジェクト • C: Chrysler

    Comprehensive Compensation project • 1996年、Kent BeckがChrysler社に呼ばれる • COBOLで書かれた給与計算プログラムを Smalltalkに置き換えるプロジェクト • これまでのコミュニティのパターンを徹底的に実 践
  24. © - BASE, Inc. C プロジェクトで実践されたプラクティス • Unit Testing •

    Integration, Relentless Testing • Short Iterations • YAGNI (You’re NOT gonna need it!) • Code Ownership • Pair Programming • etc
  25. © - BASE, Inc. 1999年 『XP エクストリーム‧プログラミング⼊⾨』 • Kent Beckによる発表の書籍

    • 良いとされている⾏動指針を極端なまで に実践してみようという発想 • C プロジェクトで培ったプラクティス をまとめた
  26. © - BASE, Inc. まとめ • ソフトウェア開発は⼤きく建築設計の理 論に影響を受けている • デザインパターン‧XPは、Kent

    Beck とその周辺コミュニティが起こしたムー ブメントであり、アレグザンダーの思想 をプログラミングの世界に持ち込む試み
  27. © - BASE, Inc. パタン‧ランゲージとの対応 • 「町」 ≈ アーキテクチャ •

    ex. Layers, MVC etc • 「建築」 ≈ GoFのデザインパターン • 「施⾏」 ≈ 各⾔語での実装パターン • ex. Smalltalkベストプラクティスパターン 書籍 江渡 浩⼀郎. パターン、Wiki、XP 時を超えた創造の原則
  28. © - BASE, Inc. アレグザンダーの6つの原理とXP . 有機的秩序の原理 ≈ ストーリー .

    参加の原理 ≈ 実顧客の参加 . 斬新的成⻑の原理 ≈ インクリメンタル設計‧配 置 . パターンの原理 ≈ ストーリー . 診断の原理 ≈ 常時結合‧テストファーストプロ グラミング . 調整の原理 ≈ 根本原因の分析 書籍 江渡 浩⼀郎. パターン、Wiki、XP 時を超えた創造の原則