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

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

88964b936e864ca7d326272eaa70fa9a?s=128

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

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

    よくみるブランコの⽐喩
  4. © - BASE, Inc. : @hgsgtk var_dump($hgsgtk); 東⼝ 和暉 (

    Higashiguchi Kazuki ) Back-end Engineer (Go, PHP, Python ) BASE BANK, Inc. (BASE, Inc.) / Dev Division / Tech Lead
  5. © - BASE, Inc. • 時間の都合上、歴史を厳選ピックアップ してお届けしています 本資料の注意事項

  6. © - BASE, Inc. 本トークの構成について • 序章:ブランコの⽐喩 • 第⼆章:クリストファー‧アレグザン ダーの理論

    • 第三章:ソフトウェア設計への展開 • 終章:まとめ
  7. © - BASE, Inc. Special Thanks: http://gihyo.jp/magazine/wdpress/plus/ - - -

    -
  8. © - BASE, Inc. 本トークの構成について • 序章:ブランコの⽐喩 • 第⼆章:クリストファー‧アレグザン ダーの理論

    • 第三章:ソフトウェア設計への展開 • 終章:まとめ
  9. © - BASE, Inc. よくみるブランコの⽐喩 https://tech.nikkeibp.co.jp/it/article/COLUMN/ / / “ユーザーは⾃分が本当に必要とする要件について 正しく表現できない。

    ユーザーからの要求事項は絶対ではない。”
  10. © - BASE, Inc. よくみるブランコの⽐喩 https://tech.nikkeibp.co.jp/it/article/COLUMN/ / /

  11. © - BASE, Inc. 書籍『オレゴン⼤学の実験』 著者: クリストファー‧ア レグザンダー 1975年に原著出版 オレゴン⼤学で著者が試

    みた、建築‧計画に対す るアプローチをまとめま たもの https://www.amazon.co.jp/dp/
  12. © - BASE, Inc. ブランコの⽐喩 https://www.pinterest.com/pin/

  13. © - BASE, Inc. 掲載されたブランコの⽐喩のマンガ • 建築業界における各領域の専⾨家と利⽤ 者との理解の齟齬を批判的に⽰したの が、ブランコの⽐喩 •

    アレグザンダー⽒のオリジナルではない • カリフォルニア⼤学バークレー校の研究 所のドアによく貼られていたもの
  14. © - BASE, Inc. 序章まとめ • ブランコの⽐喩は、建築業界を出⾃とし ている • では、ソフトウェア業界‧建築業界がど

    う繋がって現在に⾄ったのか
  15. t t 令和PHPer

  16. © - BASE, Inc. 本トークの構成について • 序章:ブランコの⽐喩 • 第⼆章:クリストファー‧アレグザン ダーの理論

    • 第三章:ソフトウェア設計への展開 • 終章:まとめ
  17. t t 令和PHPer

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

    https://en.wikipedia.org/wiki/Christopher_Alexander
  19. © - BASE, Inc. アレグザンダー⽒の思考の変遷 • 「⼈が⽣きるに値する暮らしを送れる」 環境を提供すること、この⼀点を⽬指し て構築してきた •

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

    『都市はツリーではない』 • 1975年 『オレゴン⼤学の実験』 • 1977年 『パタン‧ランゲージ』 • 1979年 『時を超えた建設の道』
  21. © - BASE, Inc. 1964年 『形の合成に関するノート』 https://www.amazon.co.jp/dp/ X

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

    • 数学的なアプローチで解ける問題へ還元
  23. © - BASE, Inc. やかんの例 http://www.girlwonder.com/tag/cybernetics

  24. © - BASE, Inc. 数学的に扱うアプローチ . 要求条件を洗い出し細分化する • 要求条件の集合全体を「システム」と呼ぶ .

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

    条件の関係を吟味、互いに影響を与えうる条件だ けを集めて「サブシステム」とする . サブシステムで更に分割し、より⼩さなサブシス テムへ . 全体の構造をシステム‧サブシステムの親⼦関係 (ツリー構造)に還元していく、トップダウンな アプローチ
  26. © - BASE, Inc. やかんの例 http://www.girlwonder.com/tag/cybernetics

  27. © - BASE, Inc. https://www.sfgate.com/travel/resources/transit/article/The-location-of-a-historic-BART-meeting- was-a- .php 1964年 ベイエリア⾼速鉄道の計画 ※

    当時の写真ではありません
  28. © - BASE, Inc. 1964年 ベイエリア⾼速鉄道の計画 でわかった問題点 • 要求分析をし、390個の要求分析をし、ツリー構 造に分割

    • 膨⼤な数のサブシステムになり、計算プログラム も巨⼤に • 予期しなかったサブシステム間の連携が⽣じる • ex. チケットブースの列が膨らむ→⼈の通⾏が妨 げられる
  29. © - BASE, Inc. http://en.bp.ntu.edu.tw/wp-content/uploads/ / / -Alexander-A-city-is-not-a-tree.pdf 1965年 『都市はツリーではない』

  30. © - BASE, Inc. 論⽂『都市はツリーではない』 • それまでの都市計画に対する批判 • それまでの都市計画によってできた都市を「⼈⼯ 都市」と呼ぶ、ツリー構造に還元される

    • ⾃然都市: ⾃然にできた都市 • 1つの場所が複数の役割を同時に担うセミラティ ス構造を持つ http://en.bp.ntu.edu.tw/wp-content/uploads/ / / -Alexander-A-city-is-not-a-tree.pdf
  31. © - BASE, Inc. セミラティス構造とツリー構造 https://www.researchgate.net/figure/Semilattice-a-and-Tree-Structures-b-Source-A-City-is-Not-a- Tree- _fig _

  32. © - BASE, Inc. セミラティス構造 • 重複を許すように分割するときに出来る構造 • 市⺠の活動はツリー構造には収まらない •

    ex. 仕事と週末、同じ地域で⾏うこともある • 都市は、セミレティス構造のまま扱わなければな らない
  33. © - BASE, Inc. 1975年『オレゴン⼤学の実験』 https://www.amazon.co.jp/dp/

  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 『オレゴン⼤学の実験』
  35. © - BASE, Inc. 詳説:6つの原理 • 有機的秩序の原理 • 計画や施⼯は、全体を個別的な⾏為から徐々に ⽣み出していくようなプロセスによって導かれる

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

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

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

    御を施す財政的処理によって確実なものとされ ること。 書籍 Alexandar C 『オレゴン⼤学の実験』
  39. © - BASE, Inc. 1977年『パタン‧ランゲージ』 https://www.amazon.co.jp/dp/

  40. © - BASE, Inc. パタン‧ランゲージ • 建築において繰り返し現れる構造を再利 ⽤しやすい形式にまとめたもの • 利⽤者と設計者の共通⾔語として使うこ

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

    を配置すべきかというパターン • 「施⾏」:建物の構造‧材料、柱‧壁、 床‧天井などの⼀つ⼀つの構造を決める ためのパターン
  42. © - BASE, Inc. パタン‧ランゲージによる建築 • 部品を⽤意してつなぎ合わせるというわ けではない • 利⽤者と建築家をつなぐための⼯夫の集

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

  44. © - BASE, Inc. 『時を超えた建設の道』 • ⼀連の著作の背景理論を述べた理論書 • 「無名の質(QWAN: Quality

    Without A Name)」 • ⽣き⽣きとした建物や町が持つ特性
  45. © - BASE, Inc. 第⼆章まとめ • 建築家アレグザンダーによる理論 • 建築‧計画するための「6つの原理」 •

    「パタン‧ランゲージ」 • 「無名の質」
  46. t t 令和PHPer

  47. © - BASE, Inc. 本トークの構成について • 序章:ブランコの⽐喩 • 第⼆章:クリストファー‧アレグザン ダーの理論

    • 第三章:ソフトウェア設計への展開 • 終章:まとめ
  48. t t 令和PHPer

  49. © - BASE, Inc. OOPSLA • Object-Oriented Programming, Systems, Languages,

    and Applications • オブジェクト指向に関するシンポジウム • 1986年 オレゴンにて第⼀回開催
  50. © - BASE, Inc. アレグザンダー⽒の理論の適⽤の初め https://en.wikipedia.org/wiki/Ward_Cunningham https://en.wikipedia.org/wiki/Kent_Beck Ward Cunningham Kent

    Beck
  51. t t 令和PHPer

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

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

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

    • パターンを使って設計してもらう
  55. © - BASE, Inc. 1987年 “Using Pattern Languages for Object-

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

    • ユーザーインターフェースの設計をシステム設計 に取り込む • 旧来の設計⽅法論(構造化分析‧エンティティリ レーションシップ)は有効ではないという主張 • アレグザンダーのパタン‧ランゲージを取り⼊れ る
  57. © - BASE, Inc. • Erich Gamma⽒がソフトウェアの設計 に繰り返し現れる構造に着⽬するように なる 繰り返し現れる構造への着⽬

  58. © - BASE, Inc. 1988年 “ET++ - An Object-Oriented Application

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

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

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

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

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

    • 良いとされている⾏動指針を極端なまで に実践してみようという発想 • C プロジェクトで培ったプラクティス をまとめた
  64. © - BASE, Inc. 第三章まとめ • アレグザンダーのパタン‧ランゲージの 取り組みをソフトウェア設計に取り⼊れ る試み •

    GoF デザインパターン • XP
  65. t t GoF 令和PHPer XP

  66. © - BASE, Inc. まとめ • 序章:ブランコの⽐喩 • 第⼆章:クリストファー‧アレグザン ダーの理論

    • 第三章:ソフトウェア設計への展開 • 終章:まとめ
  67. © - BASE, Inc. まとめ • ソフトウェア開発は⼤きく建築設計の理 論に影響を受けている • デザインパターン‧XPは、Kent

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

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

    参加の原理 ≈ 実顧客の参加 . 斬新的成⻑の原理 ≈ インクリメンタル設計‧配 置 . パターンの原理 ≈ ストーリー . 診断の原理 ≈ 常時結合‧テストファーストプロ グラミング . 調整の原理 ≈ 根本原因の分析 書籍 江渡 浩⼀郎. パターン、Wiki、XP 時を超えた創造の原則
  70. © - BASE, Inc. この流れを知って • 単純にプラクティスとして覚えて実践す るよりも、その背景にどういう成り⽴ち があるか知ると、かけがえのない歴史の 積み重ねの結果だと分かる

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

  72. © - BASE, Inc. Special Thanks • 〈建築理論研究 07〉──クリストファー‧アレグ ザンダー『形の合成に関するノート∕都市はツ

    リーではない』『パタン‧ランゲージ』 • http:// plus .jp/monthly/ / /- .php
  73. © - BASE, Inc. おしまい