Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ソフトウェア工学からコンピューターサイエンスへ (デブサミ2014)

9,386 views

Published on

Published in: Technology
  • 学ぶことはたくさんあるわけだが、今自分が置かれた立場で何をどう取捨選択するのか。。それが知識管理だったり、自分をよく知る。ということになるのだろうけれど、ね。。

    機会があるのであれば、自分を知る、俯瞰的な立場で自分を定量する方法を開示してほしいと思います。
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

ソフトウェア工学からコンピューターサイエンスへ (デブサミ2014)

  1. 1. ソフトウェア工学からコンピューターサイエンスへ - 今後のシステムアーキテクチャーに必要な技術的切り口とその裏側 日本マイクロソフト株式会社 萩原 正義 @masayh
  2. 2. 目的とアジェンダ • 目的:システムアーキテクチャーを支配 する新しいルール、考え方を提言 • アジェンダ: – ソフトウェア工学とコンピュータサイエンス – コンピュータサイエンスの先端事例 – 大事なこと (C) 2014 Microsoft Corporation 2
  3. 3. ソフトウェア技術者の2極化 出典: IT人材白書2013 製本版 (C) 2014 Microsoft Corporation 3
  4. 4. ソフトウェア技術者を取り巻く課題 • 自己流の経験で何でもうまくいくと錯覚 • 不可能なことが証明されているのに、努力 を続ける無駄 • 設計の正しさ、合理性に確証が持てない • 複雑な技術をどう理解し使いこなすか • 人より先行して技術を習得する技 (C) 2014 Microsoft Corporation 4
  5. 5. サイエンスと工学 方向性 両者の役割 物理法則、原理(理論) 決まり、規律(プラクティス) コンピュータサイエンス アルゴリズム リソース管理 スケジュール管理 CAP(FLP) 定理 プロトコル設計 Correctness criteria 正規化、意味的分類 型システム、DSL 機械学習 スループット… 品質 ソフトウェア工学 プログラ ミング 見積もり 要求開発、概念モデリング ALM プロジェクト管理 デザインパターン OOAD UX パッケージ、デプロイ 仮説、検証 レイテンシー… 制約、トレードオフ (C) 2014 Microsoft Corporation 5
  6. 6. ソフトウェア開発の複雑度 • 複雑な問題領域(ドメイン) • 機能数、データ項目数、デー タ量、画面数などの開発規模 • 適応すべき複合技術 • 複雑な開発組織 http://gigaom.com/2011/04/26/ facts-and-figures-behind-greenpeace%E2%80%99s-green-data-center-report/ (C) 2014 Microsoft Corporation
  7. 7. ソフトウェア工学 の名著 • 実践UML―パターンによる統一プロセスガイド • オブジェクト指向における再利用のためのデザイン パターン (GoF) • ソフトウェアアーキテクチャ―ソフトウェア開発の ためのパターン体系 (POSA) • AWS-CloudDesignPattern • ドメイン駆動設計 • データ中心アプローチによる情報システムの構築 • アナリシスパターン―再利用可能なオブジェクトモ デル • 人月の神話―狼人間を撃つ銀の弾はない • リーン・スタートアップ (C) 2014 Microsoft Corporation 7
  8. 8. コンピュータサイエンス の名著 • Distributed Algorithms • The Art of Multiprocessor Programming • Distributed Systems Principles and Paradigms • Guide to Reliable Distributed Systems • Concurrency Control and Recovery in Database Systems • Transactional Information Systems • プログラミング言語理論への招待 (C) 2014 Microsoft Corporation 8
  9. 9. このプログラムの結果は? • プロセス h と プロセス v が同時実行するとき、 1. 2. 3. 4. 5. 6. 7. 8. h.w[1] v.w[1] h.w[2] h.w[3] v.w[2] h.w[4] h.w[5] Print (v.r[ ] + ”-” + h.r[ ]) (C) 2014 Microsoft Corporation 2-5 9
  10. 10. 一貫性モデルに依存する解 • プロセス h と プロセス v が同時実行するとき、 1. 2. 3. 4. 5. 6. 7. 8. h.w[1] 取りうる結果 v.w[1] 一貫性モデル h.w[2] Linearizability 2-5 h.w[3] Eventual 0-0, 0-1, 0-2, 0-3, 0-4, 0-5, 1-0, 1-1, 1-2, 1-3, 1-4, 1-5, 2-0, 2-1, 2-2, 2-3, 2-4, 2-5 Consistency v.w[2] Consistent Prefix 0-0, 0-1, 1-1, 1-2, 1-3, 2-3, 2-4, 2-5 h.w[4] 遅延、メッセージ喪失、ネッ h.w[5] トワーク切断、動的構成変更 Print (v.r[ ] + ”-” + h.r[ ]) (C) 2014 Microsoft Corporation 10
  11. 11. Correctness Criteria • Correctness criteria を満足する、証明されたアルゴ リズムを支援する機構をアーキテクチャーに組込む • アプリケーションをそのアーキテクチャー機構で実装 • アプリケーションは correctness criteria を満足する 動作が保証される 構造要素 A 構造要素 B サービス 1 構造要素 C 構造要素 D サービス 2 サービス 3 サービス 4 (C) 2014 Microsoft Corporation 11
  12. 12. LSM-Tree (C) 2014 Microsoft Corporation 12
  13. 13. コンピュータサイエンスが主軸 • コンピュータサイエンスの進化がアーキテクチャー スタイル(プログラミングモデル)を変えて、その 上にノウハウとしてのプラクティスが乗る • ソフトウェア工学はプラクティスを体系化する枠を 提供 コンピュータ サイエンス 時間 プラク ティス ソフトウェア 工学 (C) 2014 Microsoft Corporation 13
  14. 14. アーキテクトにとって大事なこと • • • • 自分自身を理解すること モチベーションの維持 知識管理 アウトプット http://f.hatena.ne.jp/BlueBackIMAGE/20070516182938 (C) 2014 Microsoft Corporation 14
  15. 15. これからのこと • ビジネスニーズ – リアルタイム、アドホック、双方向性、スケール する更新 • コンピュータサイエンスとソフトウェア工学 の役割 – 技術選択肢、自由度が多い方がよいという考え方 – 制約の中で洗練された設計は美しい – IT のイノベーションの大半はクラウドから起こる ⇒ 分散システムが主要なテーマとなる – スケーラビリティは可用性、耐障害性 (Resiliency)の前提で考える (C) 2014 Microsoft Corporation 15

×