Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

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

Kazuki Higashiguchi
PRO

September 25, 2019
Tweet

More Decks by Kazuki Higashiguchi

Other Decks in Technology

Transcript

  1. © - BASE, Inc. X
    ブランコの⽐喩は
    どこから来たのか
    2019.9.25 第142回PHP勉強会 #phpstudy
    - @hgsgtk

    View Slide

  2. © - BASE, Inc.
    よくみるブランコの⽐喩
    https://tech.nikkeibp.co.jp/it/article/COLUMN/ / /

    View Slide

  3. © - BASE, Inc.
    • どこからこの⽐喩が⽣まれたかご存知で
    すか?
    • ブランコの⽐喩の出⾃からソフトウェア
    設計の歴史を⾒ていきます
    よくみるブランコの⽐喩

    View Slide

  4. © - BASE, Inc.
    : @hgsgtk
    var_dump($hgsgtk);
    東⼝ 和暉 ( Higashiguchi Kazuki )
    Back-end Engineer (Go, PHP, Python )
    BASE BANK, Inc. (BASE, Inc.)
    / Dev Division / Tech Lead

    View Slide

  5. © - BASE, Inc.
    • 時間の都合上、歴史を厳選ピックアップ
    してお届けしています
    本資料の注意事項

    View Slide

  6. © - BASE, Inc.
    本トークの構成について
    • 序章:ブランコの⽐喩
    • 第⼆章:クリストファー‧アレグザン
    ダーの理論
    • 第三章:ソフトウェア設計への展開
    • 終章:まとめ

    View Slide

  7. © - BASE, Inc.
    Special Thanks:
    http://gihyo.jp/magazine/wdpress/plus/ - - - -

    View Slide

  8. © - BASE, Inc.
    本トークの構成について
    • 序章:ブランコの⽐喩
    • 第⼆章:クリストファー‧アレグザン
    ダーの理論
    • 第三章:ソフトウェア設計への展開
    • 終章:まとめ

    View Slide

  9. © - BASE, Inc.
    よくみるブランコの⽐喩
    https://tech.nikkeibp.co.jp/it/article/COLUMN/ / /
    “ユーザーは⾃分が本当に必要とする要件について
    正しく表現できない。
    ユーザーからの要求事項は絶対ではない。”

    View Slide

  10. © - BASE, Inc.
    よくみるブランコの⽐喩
    https://tech.nikkeibp.co.jp/it/article/COLUMN/ / /

    View Slide

  11. © - BASE, Inc.
    書籍『オレゴン⼤学の実験』
    著者: クリストファー‧ア
    レグザンダー
    1975年に原著出版
    オレゴン⼤学で著者が試
    みた、建築‧計画に対す
    るアプローチをまとめま
    たもの
    https://www.amazon.co.jp/dp/

    View Slide

  12. © - BASE, Inc.
    ブランコの⽐喩
    https://www.pinterest.com/pin/

    View Slide

  13. © - BASE, Inc.
    掲載されたブランコの⽐喩のマンガ
    • 建築業界における各領域の専⾨家と利⽤
    者との理解の齟齬を批判的に⽰したの
    が、ブランコの⽐喩
    • アレグザンダー⽒のオリジナルではない
    • カリフォルニア⼤学バークレー校の研究
    所のドアによく貼られていたもの

    View Slide

  14. © - BASE, Inc.
    序章まとめ
    • ブランコの⽐喩は、建築業界を出⾃とし
    ている
    • では、ソフトウェア業界‧建築業界がど
    う繋がって現在に⾄ったのか

    View Slide

  15. t
    t
    令和PHPer

    View Slide

  16. © - BASE, Inc.
    本トークの構成について
    • 序章:ブランコの⽐喩
    • 第⼆章:クリストファー‧アレグザン
    ダーの理論
    • 第三章:ソフトウェア設計への展開
    • 終章:まとめ

    View Slide

  17. t
    t
    令和PHPer

    View Slide

  18. © - BASE, Inc.
    クリストファー‧アレグザンダー
    1936年ウィーン出⾝の都
    市計画家‧建築家
    建築‧都市計画の理論と
    して、「パタン‧ラン
    ゲージ」を提唱
    https://en.wikipedia.org/wiki/Christopher_Alexander

    View Slide

  19. © - BASE, Inc.
    アレグザンダー⽒の思考の変遷
    • 「⼈が⽣きるに値する暮らしを送れる」
    環境を提供すること、この⼀点を⽬指し
    て構築してきた
    • その中で、⻑い研究⽣活の中で幾度も考
    えを変化させている
    参考書籍
    ⻑坂 ⼀郎 著 『クリストファー‧アレグザンダーの思考の軌跡―デザイン⾏為の意味を
    問う』

    View Slide

  20. © - BASE, Inc.
    主な著書‧論⽂
    • 1964年 『形の合成に関するノート』
    • 1965年 『都市はツリーではない』
    • 1975年 『オレゴン⼤学の実験』
    • 1977年 『パタン‧ランゲージ』
    • 1979年 『時を超えた建設の道』

    View Slide

  21. © - BASE, Inc.
    1964年 『形の合成に関するノート』
    https://www.amazon.co.jp/dp/ X

    View Slide

  22. © - BASE, Inc.
    設計プロセスの数学的な形式化
    • 設計という⾏為を理論化する研究
    • 良い設計=なるべく多くの条件を満たす
    形態を探し当てる
    • 数学的なアプローチで解ける問題へ還元

    View Slide

  23. © - BASE, Inc.
    やかんの例
    http://www.girlwonder.com/tag/cybernetics

    View Slide

  24. © - BASE, Inc.
    数学的に扱うアプローチ
    . 要求条件を洗い出し細分化する
    • 要求条件の集合全体を「システム」と呼ぶ
    . 条件間の関係性を検討し、すべての条件について
    他の条件との関係性を洗い出す
    . それぞれの条件が適合している/していないとい
    う2値で取ると数値の集合として数学的に扱える

    View Slide

  25. © - BASE, Inc.
    条件間は複雑に絡み合うためツリー構造へ
    . 要求条件を洗い出し細分化する
    • 要求条件の集合全体を「システム」と呼ぶ
    . 条件の関係を吟味、互いに影響を与えうる条件だ
    けを集めて「サブシステム」とする
    . サブシステムで更に分割し、より⼩さなサブシス
    テムへ
    . 全体の構造をシステム‧サブシステムの親⼦関係
    (ツリー構造)に還元していく、トップダウンな
    アプローチ

    View Slide

  26. © - BASE, Inc.
    やかんの例
    http://www.girlwonder.com/tag/cybernetics

    View Slide

  27. © - BASE, Inc.
    https://www.sfgate.com/travel/resources/transit/article/The-location-of-a-historic-BART-meeting-
    was-a- .php
    1964年 ベイエリア⾼速鉄道の計画
    ※ 当時の写真ではありません

    View Slide

  28. © - BASE, Inc.
    1964年 ベイエリア⾼速鉄道の計画 でわかった問題点
    • 要求分析をし、390個の要求分析をし、ツリー構
    造に分割
    • 膨⼤な数のサブシステムになり、計算プログラム
    も巨⼤に
    • 予期しなかったサブシステム間の連携が⽣じる
    • ex. チケットブースの列が膨らむ→⼈の通⾏が妨
    げられる

    View Slide

  29. © - BASE, Inc.
    http://en.bp.ntu.edu.tw/wp-content/uploads/ / / -Alexander-A-city-is-not-a-tree.pdf
    1965年 『都市はツリーではない』

    View Slide

  30. © - BASE, Inc.
    論⽂『都市はツリーではない』
    • それまでの都市計画に対する批判
    • それまでの都市計画によってできた都市を「⼈⼯
    都市」と呼ぶ、ツリー構造に還元される
    • ⾃然都市: ⾃然にできた都市
    • 1つの場所が複数の役割を同時に担うセミラティ
    ス構造を持つ
    http://en.bp.ntu.edu.tw/wp-content/uploads/ / / -Alexander-A-city-is-not-a-tree.pdf

    View Slide

  31. © - BASE, Inc.
    セミラティス構造とツリー構造
    https://www.researchgate.net/figure/Semilattice-a-and-Tree-Structures-b-Source-A-City-is-Not-a-
    Tree- _fig _

    View Slide

  32. © - BASE, Inc.
    セミラティス構造
    • 重複を許すように分割するときに出来る構造
    • 市⺠の活動はツリー構造には収まらない
    • ex. 仕事と週末、同じ地域で⾏うこともある
    • 都市は、セミレティス構造のまま扱わなければな
    らない

    View Slide

  33. © - BASE, Inc.
    1975年『オレゴン⼤学の実験』
    https://www.amazon.co.jp/dp/

    View Slide

  34. © - 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 『オレゴン⼤学の実験』

    View Slide

  35. © - BASE, Inc.
    詳説:6つの原理
    • 有機的秩序の原理
    • 計画や施⼯は、全体を個別的な⾏為から徐々に
    ⽣み出していくようなプロセスによって導かれる
    こと
    • 参加の原理
    • 建築内容や建設⽅法に関するすべての決定は利⽤
    者の⼿に委ねること
    書籍 Alexandar C 『オレゴン⼤学の実験』

    View Slide

  36. © - BASE, Inc.
    詳説:6つの原理
    • 斬新的成⻑の原理
    • 各予算年度に企画される建築は、⼩規模なプロ
    ジェクトに特に重点を置くこと
    • パターンの原理
    • すべての設計と建設は、正式に採⽤されたパター
    ンと呼ばれる計画原理の集合によって指導され
    ること
    書籍 Alexandar C 『オレゴン⼤学の実験』

    View Slide

  37. © - BASE, Inc.
    詳説:6つの原理
    • 診断の原理
    • 各コミュニティ全体の健康状態は、コミュニティ
    の変遷のどの時点でも、どのスペースが⽣かさ
    れ、どのスペースが⽣かされていないか、を詳し
    く説明する定期的な診断に基づいて保護される
    こと
    書籍 Alexandar C 『オレゴン⼤学の実験』

    View Slide

  38. © - BASE, Inc.
    詳説:6つの原理
    • 調整の原理
    • 全体における有機的秩序の緩やかな⽣成は、利
    ⽤者の推進する個々のプロジェクトの流れに制
    御を施す財政的処理によって確実なものとされ
    ること。
    書籍 Alexandar C 『オレゴン⼤学の実験』

    View Slide

  39. © - BASE, Inc.
    1977年『パタン‧ランゲージ』
    https://www.amazon.co.jp/dp/

    View Slide

  40. © - BASE, Inc.
    パタン‧ランゲージ
    • 建築において繰り返し現れる構造を再利
    ⽤しやすい形式にまとめたもの
    • 利⽤者と設計者の共通⾔語として使うこ
    とで、利⽤者が⾃分⾃⾝で建築の設計を
    ⾏い、本当に望んだ建築を実現できる⽤
    になることを⽬指した
    書籍 Alexandar C 『パタン‧ランゲージ』

    View Slide

  41. © - BASE, Inc.
    『パタン‧ランゲージ』の3つの部
    • 「町」:都市の⼤きな配置を考えるため
    の⼤きなパターン
    • 「建築」:敷地の空間にどのように建物
    を配置すべきかというパターン
    • 「施⾏」:建物の構造‧材料、柱‧壁、
    床‧天井などの⼀つ⼀つの構造を決める
    ためのパターン

    View Slide

  42. © - BASE, Inc.
    パタン‧ランゲージによる建築
    • 部品を⽤意してつなぎ合わせるというわ
    けではない
    • 利⽤者と建築家をつなぐための⼯夫の集
    積、そのための道具の⼀つ

    View Slide

  43. © - BASE, Inc.
    1979年『時を超えた建設の道』
    https://www.amazon.co.jp/dp/

    View Slide

  44. © - BASE, Inc.
    『時を超えた建設の道』
    • ⼀連の著作の背景理論を述べた理論書
    • 「無名の質(QWAN: Quality Without
    A Name)」
    • ⽣き⽣きとした建物や町が持つ特性

    View Slide

  45. © - BASE, Inc.
    第⼆章まとめ
    • 建築家アレグザンダーによる理論
    • 建築‧計画するための「6つの原理」
    • 「パタン‧ランゲージ」
    • 「無名の質」

    View Slide

  46. t
    t
    令和PHPer

    View Slide

  47. © - BASE, Inc.
    本トークの構成について
    • 序章:ブランコの⽐喩
    • 第⼆章:クリストファー‧アレグザン
    ダーの理論
    • 第三章:ソフトウェア設計への展開
    • 終章:まとめ

    View Slide

  48. t
    t
    令和PHPer

    View Slide

  49. © - BASE, Inc.
    OOPSLA
    • Object-Oriented Programming,
    Systems, Languages, and
    Applications
    • オブジェクト指向に関するシンポジウム
    • 1986年 オレゴンにて第⼀回開催

    View Slide

  50. © - BASE, Inc.
    アレグザンダー⽒の理論の適⽤の初め
    https://en.wikipedia.org/wiki/Ward_Cunningham https://en.wikipedia.org/wiki/Kent_Beck
    Ward Cunningham Kent Beck

    View Slide

  51. t
    t
    令和PHPer

    View Slide

  52. © - BASE, Inc.
    パタン‧ランゲージへの興味
    https://www.amazon.co.jp/dp/
    Kent Beck⽒は、⼤学⽣のときに
    ⽣協でこの書籍を読んだそう

    View Slide

  53. http://wiki.c .com/?SemiconductorTestSystemsGroup

    View Slide

  54. © - BASE, Inc.
    パターンを使ったシステム設計の試み
    • システム利⽤者に最終設計をしてもらう
    • ユーザーインターフェースに関するパ
    ターン5つ収集
    • パターンを使って設計してもらう

    View Slide

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

    View Slide

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

    View Slide

  57. © - BASE, Inc.
    • Erich Gamma⽒がソフトウェアの設計
    に繰り返し現れる構造に着⽬するように
    なる
    繰り返し現れる構造への着⽬

    View Slide

  58. © - BASE, Inc.
    1988年 “ET++ - An Object-Oriented Application
    Framework in C++ “
    http://citeseerx.ist.psu.edu/viewdoc/download?doi= . . . . &rep=rep &type=pdf

    View Slide

  59. © - BASE, Inc.
    1992年 “Documenting Frameworks using Patterns”
    / Ralph E. Johnson
    https://www.researchgate.net/publication/ _Documenting_Frameworks_Using_Patterns

    View Slide

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

    View Slide

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

    View Slide

  62. © - BASE, Inc.
    C プロジェクトで実践されたプラクティス
    • Unit Testing
    • Integration, Relentless Testing
    • Short Iterations
    • YAGNI (You’re NOT gonna need it!)
    • Code Ownership
    • Pair Programming
    • etc

    View Slide

  63. © - BASE, Inc.
    1999年 『XP エクストリーム‧プログラミング⼊⾨』
    • Kent Beckによる発表の書籍
    • 良いとされている⾏動指針を極端なまで
    に実践してみようという発想
    • C プロジェクトで培ったプラクティス
    をまとめた

    View Slide

  64. © - BASE, Inc.
    第三章まとめ
    • アレグザンダーのパタン‧ランゲージの
    取り組みをソフトウェア設計に取り⼊れ
    る試み
    • GoF デザインパターン
    • XP

    View Slide

  65. t
    t
    GoF
    令和PHPer
    XP

    View Slide

  66. © - BASE, Inc.
    まとめ
    • 序章:ブランコの⽐喩
    • 第⼆章:クリストファー‧アレグザン
    ダーの理論
    • 第三章:ソフトウェア設計への展開
    • 終章:まとめ

    View Slide

  67. © - BASE, Inc.
    まとめ
    • ソフトウェア開発は⼤きく建築設計の理
    論に影響を受けている
    • デザインパターン‧XPは、Kent Beck
    とその周辺コミュニティが起こしたムー
    ブメントであり、アレグザンダーの思想
    をプログラミングの世界に持ち込む試み

    View Slide

  68. © - BASE, Inc.
    パタン‧ランゲージとの対応
    • 「町」 ≈ アーキテクチャ
    • ex. Layers, MVC etc
    • 「建築」 ≈ GoFのデザインパターン
    • 「施⾏」 ≈ 各⾔語での実装パターン
    • ex. Smalltalkベストプラクティスパターン
    書籍 江渡 浩⼀郎. パターン、Wiki、XP 時を超えた創造の原則

    View Slide

  69. © - BASE, Inc.
    アレグザンダーの6つの原理とXP
    . 有機的秩序の原理 ≈ ストーリー
    . 参加の原理 ≈ 実顧客の参加
    . 斬新的成⻑の原理 ≈ インクリメンタル設計‧配

    . パターンの原理 ≈ ストーリー
    . 診断の原理 ≈ 常時結合‧テストファーストプロ
    グラミング
    . 調整の原理 ≈ 根本原因の分析
    書籍 江渡 浩⼀郎. パターン、Wiki、XP 時を超えた創造の原則

    View Slide

  70. © - BASE, Inc.
    この流れを知って
    • 単純にプラクティスとして覚えて実践す
    るよりも、その背景にどういう成り⽴ち
    があるか知ると、かけがえのない歴史の
    積み重ねの結果だと分かる

    View Slide

  71. © - BASE, Inc.
    よくみるブランコの⽐喩
    https://tech.nikkeibp.co.jp/it/article/COLUMN/ / /

    View Slide

  72. © - BASE, Inc.
    Special Thanks
    • 〈建築理論研究 07〉──クリストファー‧アレグ
    ザンダー『形の合成に関するノート∕都市はツ
    リーではない』『パタン‧ランゲージ』
    • http:// plus .jp/monthly/ / /- .php

    View Slide

  73. © - BASE, Inc.
    おしまい

    View Slide