SlideShare a Scribd company logo
ソフトウェア工学からコンピューターサイエンスへ
- 今後のシステムアーキテクチャーに必要な技術的切り口とその裏側

日本マイクロソフト株式会社
萩原 正義
@masayh
目的とアジェンダ
• 目的:システムアーキテクチャーを支配
する新しいルール、考え方を提言
• アジェンダ:
– ソフトウェア工学とコンピュータサイエンス
– コンピュータサイエンスの先端事例
– 大事なこと

(C) 2014 Microsoft Corporation

2
ソフトウェア技術者の2極化

出典: IT人材白書2013 製本版
(C) 2014 Microsoft Corporation

3
ソフトウェア技術者を取り巻く課題

• 自己流の経験で何でもうまくいくと錯覚
• 不可能なことが証明されているのに、努力
を続ける無駄
• 設計の正しさ、合理性に確証が持てない
• 複雑な技術をどう理解し使いこなすか
• 人より先行して技術を習得する技
(C) 2014 Microsoft Corporation

4
サイエンスと工学
方向性

両者の役割

物理法則、原理(理論)

決まり、規律(プラクティス)

コンピュータサイエンス
アルゴリズム
リソース管理
スケジュール管理
CAP(FLP) 定理
プロトコル設計
Correctness criteria
正規化、意味的分類
型システム、DSL
機械学習
スループット…

品質

ソフトウェア工学

プログラ
ミング

見積もり
要求開発、概念モデリング
ALM
プロジェクト管理
デザインパターン
OOAD
UX
パッケージ、デプロイ
仮説、検証
レイテンシー…

制約、トレードオフ
(C) 2014 Microsoft Corporation

5
ソフトウェア開発の複雑度
• 複雑な問題領域(ドメイン)
• 機能数、データ項目数、デー
タ量、画面数などの開発規模
• 適応すべき複合技術
• 複雑な開発組織

http://gigaom.com/2011/04/26/
facts-and-figures-behind-greenpeace%E2%80%99s-green-data-center-report/

(C) 2014 Microsoft Corporation
ソフトウェア工学
の名著
• 実践UML―パターンによる統一プロセスガイド
• オブジェクト指向における再利用のためのデザイン
パターン (GoF)
• ソフトウェアアーキテクチャ―ソフトウェア開発の
ためのパターン体系 (POSA)
• AWS-CloudDesignPattern
• ドメイン駆動設計
• データ中心アプローチによる情報システムの構築
• アナリシスパターン―再利用可能なオブジェクトモ
デル
• 人月の神話―狼人間を撃つ銀の弾はない
• リーン・スタートアップ
(C) 2014 Microsoft Corporation

7
コンピュータサイエンス
の名著
• 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
このプログラムの結果は?

• プロセス 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
一貫性モデルに依存する解

• プロセス 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
Correctness Criteria
• Correctness criteria を満足する、証明されたアルゴ
リズムを支援する機構をアーキテクチャーに組込む
• アプリケーションをそのアーキテクチャー機構で実装
• アプリケーションは correctness criteria を満足する
動作が保証される
構造要素 A

構造要素 B

サービス 1

構造要素 C

構造要素 D

サービス 2
サービス 3
サービス 4

(C) 2014 Microsoft Corporation

11
LSM-Tree

(C) 2014 Microsoft Corporation

12
コンピュータサイエンスが主軸
• コンピュータサイエンスの進化がアーキテクチャー
スタイル(プログラミングモデル)を変えて、その
上にノウハウとしてのプラクティスが乗る
• ソフトウェア工学はプラクティスを体系化する枠を
提供
コンピュータ
サイエンス

時間

プラク
ティス

ソフトウェア
工学

(C) 2014 Microsoft Corporation

13
アーキテクトにとって大事なこと
•
•
•
•

自分自身を理解すること
モチベーションの維持
知識管理
アウトプット

http://f.hatena.ne.jp/BlueBackIMAGE/20070516182938

(C) 2014 Microsoft Corporation

14
これからのこと
• ビジネスニーズ
– リアルタイム、アドホック、双方向性、スケール
する更新

• コンピュータサイエンスとソフトウェア工学
の役割
– 技術選択肢、自由度が多い方がよいという考え方
– 制約の中で洗練された設計は美しい
– IT のイノベーションの大半はクラウドから起こる
⇒ 分散システムが主要なテーマとなる
– スケーラビリティは可用性、耐障害性
(Resiliency)の前提で考える
(C) 2014 Microsoft Corporation

15

More Related Content

PPTX
20151018 study-設計を学ぶための最初の一冊はなにがいいのだろうか
PPTX
20160130 モデリング技術を学ぼう
PPTX
システム開発について
PDF
最新のデータベース技術の方向性で思うこと
PPTX
バラバラの同僚を社内勉強会でつなげよう
PDF
Fly weight pattern #dezapatan
PDF
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
ODP
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性
20151018 study-設計を学ぶための最初の一冊はなにがいいのだろうか
20160130 モデリング技術を学ぼう
システム開発について
最新のデータベース技術の方向性で思うこと
バラバラの同僚を社内勉強会でつなげよう
Fly weight pattern #dezapatan
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
Strategy パターンと開放/閉鎖原則に見るデザインパターンの有用性

Viewers also liked (20)

PPTX
Reactor Design Pattern
PDF
GoF のデザインパターンじゃないけど、よくあるパターン
PDF
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
PDF
デザインパターン
PDF
Circle ci and docker+serverspec
PPTX
自分のチームをどう作る?
PDF
"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本
PDF
第3回全脳アーキテクチャ勉強会(山川)発表資料
PDF
iOSアプリケーションアーキテクチャ選定の鍵を探す
PPT
XP寺子屋 デザインパターン入門
PDF
Impact Mapping
KEY
Practical OOP In Java
PDF
全脳アーキテクチャ勉強会 第2回 (山川)
PDF
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
PPTX
Let us understand design pattern
PDF
ビジネスモデル設計ワークショップ
PDF
Drone.io のご紹介
PPTX
SOLID, DRY, SLAP design principles
PDF
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
PDF
Deep learning実装の基礎と実践
Reactor Design Pattern
GoF のデザインパターンじゃないけど、よくあるパターン
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
デザインパターン
Circle ci and docker+serverspec
自分のチームをどう作る?
"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本
第3回全脳アーキテクチャ勉強会(山川)発表資料
iOSアプリケーションアーキテクチャ選定の鍵を探す
XP寺子屋 デザインパターン入門
Impact Mapping
Practical OOP In Java
全脳アーキテクチャ勉強会 第2回 (山川)
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
Let us understand design pattern
ビジネスモデル設計ワークショップ
Drone.io のご紹介
SOLID, DRY, SLAP design principles
Swift : クラス継承とプロトコル拡張を比べてみる #yidev
Deep learning実装の基礎と実践
Ad

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

PDF
第ⅴ部:clean architecture アーキテクチャ Part2
PDF
「シン・テストエンジニアのキャリアについて~[序・破・急]の先に向けて~」
PDF
インフラ領域の技術スタックや業務内容について紹介
PDF
RHF2021_ポイントは業務視点.pdf
PDF
『アプリケーション アーキテクチャ ガイド2.0』のガイド
PDF
クラウド時代にこそ求められるIt部門の役割
PPTX
Application Development Oveview
PDF
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
PPTX
システムエンジニア勉強会『入門編』
PDF
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
PDF
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
PDF
(事前共有)wakamonog meeting 12 パネルディスカッション企画 投影資料
PDF
Mirai carved out by innovations
PDF
Node-REDから見えた未来 - 変わるもの、変わらないもの -
PDF
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
PDF
Devlove2012 どうしたら良いシステムが作れるのか
PDF
第1回 配信講義 計算科学技術特論B(2022)
PDF
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
PPTX
組込みSW開発技術研究会キックオフミーティング
PDF
N02_製造業のレジリエンス強化に必要なデジタル変革 最新の取り組みと事例のご紹介 [Microsoft Japan Digital Days]
第ⅴ部:clean architecture アーキテクチャ Part2
「シン・テストエンジニアのキャリアについて~[序・破・急]の先に向けて~」
インフラ領域の技術スタックや業務内容について紹介
RHF2021_ポイントは業務視点.pdf
『アプリケーション アーキテクチャ ガイド2.0』のガイド
クラウド時代にこそ求められるIt部門の役割
Application Development Oveview
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
システムエンジニア勉強会『入門編』
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
(事前共有)wakamonog meeting 12 パネルディスカッション企画 投影資料
Mirai carved out by innovations
Node-REDから見えた未来 - 変わるもの、変わらないもの -
Machine Learning Operations (MLOps): Overview, Definition, and Architecture
Devlove2012 どうしたら良いシステムが作れるのか
第1回 配信講義 計算科学技術特論B(2022)
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
組込みSW開発技術研究会キックオフミーティング
N02_製造業のレジリエンス強化に必要なデジタル変革 最新の取り組みと事例のご紹介 [Microsoft Japan Digital Days]
Ad

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