SlideShare a Scribd company logo
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
1
セミナー: IoT・機械学習応用ソフトウェアの設計とパターン
ソフトウェアパターン概論およびパ
ターンを活用したアーキテクチャ設計
鷲崎 弘宜
早稲田大学ほか
IEEE Computer Society 2021-2023 Board of
Governors 候補者
2020年 7月13日
v20200713
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
目次
◼ パターン(ランゲージ)とソフトウェアパターン
◼ アーキテクチャ設計
◼ アーキテクチャ評価
2
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
パターン(ランゲージ)とソフトウェア
3
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
4
https://en.wikipedia.org/wiki/Coffeehouse#/media/File:Caf%C3%A9_de_Flore.jpg
https://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%95%E3%82%A7#/media/%E3%83%95%E3%82
%A1%E3%82%A4%E3%83%AB:Former_Foreign_Settlement_of_Kobe_Hyogo_Japan_A55_03s3.jpg
名前: 路上カフェ
解決: 各近隣にカフェが開かれるよう促すこと。カフェにはいくつかの部屋を設け、
にぎやかな歩行路に向けて解放し、座ってコーヒーなどの飲み物を取りながら、
移りゆく世界を眺められるような親しみのある場所に仕立てること。カフェの前面
は、室内からテーブル・セットが街路にそのまま張り出すような作りとすること。
問題: 忙しい都会において、衆目の中で合法
的に腰を下ろし、移りゆく世界をノンビリと眺め
られる場所がほしい。
[Alexander77] C. Alexander他著, 平田翰那訳, “パタン・ランゲージ”, 鹿島出版, 1977
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
5
建築におけるパターンランゲージ
◼ 粒度をまたいだ繋がり
◼ 街の中心部には 活動の拠点 として 小さな広
場 を設けよう。その広場には、訪問者や近隣
の人々が気軽に集い落ち着けるように、いくつ
かの 路上のカフェ が集まってひらかれるよう
に奨励しよう。それぞれのカフェは、オープン
エアで楽しめるように 街路への開口 を持たせ
られるとよい ・・・
◼ 同一粒度における繋がり
◼ 快適に暮らせるためには 屋内の陽光 は不可
欠なので、 南向きの屋外 に庭をおきたいな。
さらに、部屋の陽光をたくさんとって快適にす
るために どの部屋も二面採光 にしたい。そう
そう、お客さんにも来てほしいから、 街路への
開口 をもうけて、玄関から寝室までうまく 親
密度の変化 をもたせたいね ・・・
玄関
居間
寝室
庭
建物 口
街
路
街路
広場
カフェ
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
6
class Mathematic {
public Data sort(Data data){
switch(settings) {
case QUICK:
return quickSort(data);
case BUBBLE:
return bubbleSort(data);
default: ...
}
}
class Loan {
public double capital() {
if(expiry == null &&
maturity != null)
return ...;
if(expiry != null &&
maturity == null) {
...
}
class Mathematic {
Sorter sorter;
public Data sort(Data data){
return sorter.sort(data);
}
abstract class Sorter {
public abstract Data sort(Data);
class QuickSorter extends Sorter {
public Data sort(Data) { ... }
class Loan {
CapitalCalc capitalCalc;
public double capital(){
return capitalCalc.calc(this);
}
Interface CapitalCalc {
double calc(Loan l);
class TermCapital implements ...{
double calc(Loan l) { ... }
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
例: オブジェクト指向デザインパターン Strategy
Context Strategy
algorithmInterface()
ConcreteStrategyA
algorithmInterface()
ConcreteStrategyB
algorithmInterface()
・・・
・・・
contextInterface()
解決
同期(文脈)
If there are hard-wiring line breaking algorithms, clients get
bigger and harder to maintain. Moreover it becomes difficult to
add new algorithms and vary existing ones…
適用可能性(問題、フォース)
Many related classes differ only in their behavior.
You need different variants of an algorithm…
結果
利点: families of algorithms , elimination of conditional statements…
欠点: Communication overhead…
E. Gamma, et al. “Design Patterns: Elements of Reusable Object-
Oriented Software,” Addison-Wesley, 1994.
7
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
8
パターンランゲージとソフトウェア
◼ ソフトウェアコミュニティが学んだこと
◼ 文脈(Know-Why)、問題(What)、解決(How)の言語化・文書化形式
◼ 抽象的なビジョンと、具体的なライブラリ・指示の間の抽象度
◼ 対話の手段、問題・解決の再利用、非機能要求満足とアーキテクチャ一貫
◼ 特にソフトウェア設計、開発プロセス・組織構造
◼ ソフトウェアコミュニティが(あまり)学ばなかったこと [羽生田]
◼ 利害関係者間の合意形成のための共通言語
◼ 利用者参加型の仕組み、生成的
成功事例
文脈: こういうときに
問題: こうしたかったら・こう困っていたら
フォース: こういうことを考慮して
解決: こうしなさい
結果: こうなるでしょう
新たな状況
解決 解決
抽象化 具象化
類似
抽象化
羽生田栄一 監修, パターンワーキンググループ著, "ソフトウェアパターン入門~基礎から応用へ~", ソフトリサーチセンター, 2005.
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
パターン、参照アーキテクチャ、実現手法
◼ アーキテクチャパターン、デザインパターン
◼ 典型的な優れたアーキテクチャや詳細設計の導出過程をパターン化
◼ アーキテクチャスタイル: Batch Sequentialパターン, Repositoryパターン,
Interpreterパターンなど [Shaw]
◼ POSAアーキテクチャパターン: Layersパターン,
MVCパターン, Pipes and Filtersパターンなど [POSA]
◼ デザインパターン: GoFデザインパターンなど
◼ 参照アーキテクチャ: 特定ドメインのためのテンプレート
◼ 実現手法: 特定品質を満足する実装技術、パターン、設計原則
9
再利用して効率的かつ効果的にアーキテクチャ設計
一部: 鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018
[Shaw] M. Shaw & D. Garlan, "Software Architecture: Perspectives on an Emerging Discipline", Prentice Hall, 1996
[POSA] F. Buschmann and et.al., “Pattern-Oriented Software Architecture, A System of Patterns: Volume 1 (Wiley
Software Patterns Series)”, Wiley, 2013
刺激源
成果物
環境
刺激 応答
応答測定法実現手法
アーキテクチャパタ
ーン/スタイル
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
アーキテクチャ設計
10
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
アーキテクチャとは
◼ システムの基本的な概念や性質 [ISO/IEC/IEEE 42010]
◼ 構成要素、要素間の関係、設計・進化の原則から成る
◼ 効果:理解、再利用、構築、進化、分析、管理 [Garlan14]
◼ AI/ML・IoTシステムにおける必要性
◼ 大規模化/複雑化に伴い、途中で変更することが困難
◼ 非機能要求(信頼性/性能/拡張性などの向上)の増大
◼ 多種多様な技術、環境、サービスの組み合わせの意思決定
11
実装要求
設計 実装
実装・進化
達成 準拠
達成
アーキテクチャ
図: CMU SEI, Software Architecture, http://www.sei.cmu.edu/architecture
図: 鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
例: Netflixのアーキテクチャ 12
Browser
(Smart)
TV
Mobile/Table
t
Gaming
Console
Media-
Player
Load Balancer
(Amazon ELB)
WebAPIGatewa
y
Streaming
Control API
Cassandra
Cluster
AmazonS3
AmazonSQ
S
Playback
UserProfile
DRM
Review
Search
Notifications
Video History
Recommendatio
n
…
Edge
Services
Backend
Services
Mid-tire
Services
IaaS
Services
HTTP request
REST aync.
REST aync.
Platform
Services
ServiceRegistry
Security,Monitoring,Configuration,
Logging,Rx,Dynamicrouting,Caching,…
図: Stefan Toth, An Inverse Evaluation of Netflix Architecture Using ATAM, SATURN2016
図: 鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
アーキテクチャの種類と課題
◼ システム、基盤アーキテクチャ(物理層)
◼ 主に非機能要求の実現
◼ 品質目標の曖昧な構築 ⇒ 非機能要求駆動の設計、評価
◼ アプリケーションアーキテクチャ(論理層)
◼ 主に機能要求の実現
◼ 一貫性の欠如、保守の難しさ ⇒ 原則やパターン等に基
づく一貫した設計、評価
13
ソフトウェア
ハードウェア
アプリケーション
基盤
システム
参考: 長谷川, アーキテクチャ設計評価, 日科技連SQIP研究会演習, 2017
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
設計上のアーキテクチャドライバ
(主たる要求)
◼ 主機能
◼ 品質(シナリオ)
◼ 制約: 技術、組織、顧客
◼ システムの種類: 新システム(
ドメイン未知、既知)、既存シ
ステム変更
◼ 設計目的: プロトタイプ、顧客
用、連続的進化
◼ 関心事: その他の設計上必要
な決定
14
アーキテクチャ
ドライバ
アーキテクチャ
設計
アーキテクチャ
アーキテクチャ
パターン/スタイル
実現手法参照アーキテ
クチャ
一部: 鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
アーキテクチャ設計手法
Attribute-Driven Design (ADD)
◼ カーネギーメロン大学(CMU) Software Engineering
Institute(SEI)で開発
◼ 要求を優先順位付けし,各イテレーションごとに扱う要求
を実現するようにアーキテクチャを段階的に洗練化
◼ 設計の検討の際には参照アーキテクチャ,アーキテクチ
ャスタイル等の過去の優れた知見を参考に
15
ユーザー
System
要求1
優先順位
高 低
ユーザー ユーザー
1st
Iteration
2nd
Iteration
要求2 要求4要求3 要求5
鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018
L. Bass, et al. 前田ほか訳: 実践ソフトウェアアーキテクチャ(Software Architecture in
Practice 2nd Ed.), 日刊工業新聞社, 2005
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
IoT事例: 疲労予測・改善 16
身体行動データ
視線・まばたきデータ
生
成
予
測
疲労度
推
薦
改善行動JINS MEME
(メガネ型センサー)
鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018
◼ 機能要求
◼ FR1:計測を開始する
◼ FR2:疲労度を表示する
◼ 品質要求
◼ QR1(変更容易性): 新規ユーザ追加容易
◼ QR2(変更容易性): データ処理方式の追加容易
◼ QR3(可用性): 接続が一時切断しても・・・
◼ 制約
◼ C1: 推定モデルは専門チームによって事前に構
築
◼ C2: 推定モデルの実行時更新は現段階では扱
わない
FR1 FR2
QR1 QR2
QR3
FR3
優先順位
高
低
優先順位付けられた要求
C1 C2
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
1回目: 基本的な要求に着目 17
FR1:計測を
開始する
FR2:疲労度
を表示する
考慮する要求 適用パターン
Actions
Insights
Things
IoT参照アーキテクチャ
HealthCareU
I
MEMEData
Processing
MEMEData
Collector
ユーザー MEME
Stress
Estimator
Insights Things
MEMEデータからのストレス度推定
にはDLで構築する回帰モデルを使用
1. sendData(data)
1.1 estimate(data)
1.2 show(stress)
データを生成するThings
生成されたデータに基づき
分析するInsights
C1:推定モデ
ルの制約
C2:推定モデル
更新の制約
改善行動推薦などの機能
は対象ではないため
Actionsは省略
鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
2回目: 変更容易性に着目 18
鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018
QR1(変更容易性
): MEMEの追加
QR2(変更容易性):
データ処理の追加
考慮する要求 適用パターン
/実装技術
Publish-Subscribe
Health
CareU
I
MEMEData
Processing
MEMEData
Collector
ユーザー MEME
Stress
Estimator
Insights Things
2. publish(data, topic)
2.1.1 estimate(data)
2.1.2 show(stress)
Broker
<<publisher>>
1. subscribe(topic)
2.1. notify(data, topic)
<<subscriber>> <<broker>>
デバイスID等をtopicとして
必要とするデータ処理
(subscriber)にのみ通知
Brokerを介した疎結合のため
デバイス追加時は個別のデータ処
理部に変更は必要なし
データ処理部追加時もBroker
のみに依存.データ生成部に
変更は必要なし
Publisher
Broker
Subscriber
Publisher
Subscriber
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
アーキテクチャ評価
19
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
アーキテクチャの評価
◼ 定量的評価: 測定による How much
◼ ゴール指向、結果の解釈は難しい。
◼ チェックリストや原則に照らした評価
◼ 定性的評価
◼ シナリオによる What if
◼ あらゆる注目する品質特性に集中できるが, 精度は評価者の経験に
依存
◼ 手法: Architecture Tradeoff Analysis Method (ATAM)など
20
CMU/SEI, The Architecture Tradeoff Analysis Method (ATAM),
http://www.sei.cmu.edu/architecture/ata_method.html
+-多層(レイヤ)
-+コントロールループ
・・・セキュリティシナリオ信頼性シナリオアーキテクチャ
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
Architecture Trade-off
Analysis Method (ATAM)
◼ CMU/SEIが提唱するアーキテクチャ設計手法
◼ 設計上の判断/選択/決定が品質要求を十分に扱うかを評価
◼ 品質特性を予測する試みではない
◼ 比較的軽量: 通常3日程度で実施
◼ 目的
◼ リスクの発見: 品質特性について将来問題を生じる可能性のあ
る選択肢、トレードオフポイント(およびセンシティビティポイント)
はリスクの候補
◼ センシティビティーポイントの発見: 僅かな変化が品質特性に有
意な差をもたらす選択肢
◼ トレードオフポイントの発見: 複数の品質特性に影響する決定
◼ 事例多数: 米ボーイング, Netflix[Toth]
21
Stefan Toth, An Inverse Evaluation of Netflix Architecture Using ATAM, SATURN2016
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
センシティビティ&トレードオフポイント
22
⇒通信の暗号化 セキュリティ
の向上
性能の
低下
&
マスター キャッシュ アプリケーション
ファイルサーバ アプリケーションサーバ
暗号化
⇒キャッシュ 実行効率
の向上
資源効率
の低下
&
ただし「書き込み率」が大きいと
ヒットしなくなり逆に性能を損なう
Michel Chaudron, Software Architecting, http://www.win.tue.nl/~mchaudro/swads/
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
まとめ
◼ パターンによるKnow-Why/What/Howの言語化と再利用
◼ 共通言語としてのパターンランゲージへ
◼ IoT・AI時代のアーキテクチャの重要性:異種技術、多種多
様な選択や組み合わせ
◼ 品質に駆動されるアーキテクチャの設計と評価、パターン
や実現手法の参照活用
◼ アーキテクチャ設計・評価の詳細やコツは、ぜひ「スマート
エスイー」で学びましょう!
23
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae
enPit-Proスマートエスイーのご紹介 https://smartse.jp
◼ 文科省 社会人教育 enPiT-Pro AI・IoT×ビジネス
◼ 履修証明プログラム10科目120時間
◼ 一部JMOOCオンライン提供中、関連内容をセミナー
24
全国規模の14大学・
研究所ネットワーク
26以上の企業・業界
団体(会員企業5000
超)・自治体との連携
+
+
クラウド
センサ・IoT
人工
知能
ビッグ
データ 生成
知識
抽出
革新
情報処理
アプリケーション
ビジネス
価値
創造
題材・事例
教材・指導
受講生派遣・
外部評価
進学・共同
研究接続
教材・指導
地区展開
スマートエスイー
通信・物理協力校
質問 http://sli.do/ #58755
アンケートhttp://u0u1.net/Urae 25
参考: より深めるために
◼ パターンの原典をあたる
◼ C. Alexander他著, 平田翰那訳, “パタン・ランゲージ”, 鹿島出版,
1977
◼ ソフトウェアパターンの広がり全体を掴む
◼ 深澤監修, 鷲崎, 丸山, 山本, 久保, “ソフトウェアパターン”, 近代科
学社, 2007.
◼ 羽生田栄一 監修, パターンワーキンググループ著, "ソフトウェアパ
ターン入門~基礎から応用へ~", ソフトリサーチセンター, 2005.
◼ ソフトウェアパターンとパターンランゲージの最先端を知る
◼ 鷲崎, 江渡, 吉岡, 位野木, 本橋, 羽生田, 懸田, 井庭, “ソフトウェア
パターン - 時を超えるソフトウェアの道", 情報処理, 情報処理学会,
Vol.52, No.9, 2011.

More Related Content

What's hot

今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
Takuto Wada
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
 
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったかRustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
ShunsukeNakamura17
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
Preferred Networks
 
ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。
toshihiro ichitani
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
Rui Watanabe
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知るShuhei Fujita
 
TDD のこころ
TDD のこころTDD のこころ
TDD のこころ
Takuto Wada
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
Yoshitaka Kawashima
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
泰 増田
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
NTT DATA Technology & Innovation
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
Daisuke Morishita
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
 

What's hot (20)

今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
 
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら「関心の分離」と「疎結合」   ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjugフロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
 
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったかRustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
 
ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。ユーザーストーリー駆動開発で行こう。
ユーザーストーリー駆動開発で行こう。
 
イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)イミュータブルデータモデル(入門編)
イミュータブルデータモデル(入門編)
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
イベント・ソーシングを知る
イベント・ソーシングを知るイベント・ソーシングを知る
イベント・ソーシングを知る
 
TDD のこころ
TDD のこころTDD のこころ
TDD のこころ
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
 
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
 

Similar to ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計

機械学習応用アーキテクチャ・デザインパターン概観
機械学習応用アーキテクチャ・デザインパターン概観機械学習応用アーキテクチャ・デザインパターン概観
機械学習応用アーキテクチャ・デザインパターン概観
Hironori Washizaki
 
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏Developers Summit
 
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
HironoriTAKEUCHI1
 
ソフトウェアエンジニアリングとEssenceの広がり
ソフトウェアエンジニアリングとEssenceの広がりソフトウェアエンジニアリングとEssenceの広がり
ソフトウェアエンジニアリングとEssenceの広がり
Hironori Washizaki
 
IoTアーキテクチャ・デザインパターン概観
IoTアーキテクチャ・デザインパターン概観IoTアーキテクチャ・デザインパターン概観
IoTアーキテクチャ・デザインパターン概観
Hironori Washizaki
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
Hironori Washizaki
 
情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...
情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...
情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...
Shinji Takao
 
ソフトウェアエンジニアリングとEssenceの広がり
ソフトウェアエンジニアリングとEssenceの広がりソフトウェアエンジニアリングとEssenceの広がり
ソフトウェアエンジニアリングとEssenceの広がり
Hironori Washizaki
 
Session4:「先進ビッグデータ応用を支える機械学習に求められる新技術」/比戸将平
Session4:「先進ビッグデータ応用を支える機械学習に求められる新技術」/比戸将平Session4:「先進ビッグデータ応用を支える機械学習に求められる新技術」/比戸将平
Session4:「先進ビッグデータ応用を支える機械学習に求められる新技術」/比戸将平
Preferred Networks
 
スマートエスイーセミナー:機外学習応用システムパターンの例
スマートエスイーセミナー:機外学習応用システムパターンの例スマートエスイーセミナー:機外学習応用システムパターンの例
スマートエスイーセミナー:機外学習応用システムパターンの例
HironoriTAKEUCHI1
 
TERAS Conference
TERAS ConferenceTERAS Conference
TERAS ConferenceKeiju Anada
 
チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性 チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性
Makoto SAKAI
 
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
Yasuharu Nishi
 
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PC Cluster Consortium
 
機械学習システムの品質保証に向けた課題とコンソーシアム活動
機械学習システムの品質保証に向けた課題とコンソーシアム活動機械学習システムの品質保証に向けた課題とコンソーシアム活動
機械学習システムの品質保証に向けた課題とコンソーシアム活動
Hideto Ogawa
 
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 FallJavaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Yusuke Suzuki
 
企業向けUXデザイン導入のポイント
企業向けUXデザイン導入のポイント企業向けUXデザイン導入のポイント
企業向けUXデザイン導入のポイント
Roy Kim
 
データ可視化の研究って何をしているの?何の役に立つ?
データ可視化の研究って何をしているの?何の役に立つ?データ可視化の研究って何をしているの?何の役に立つ?
データ可視化の研究って何をしているの?何の役に立つ?
Kazuyo Mizuno
 
伊久美様 アジャイルジャパン2010プレゼン資料(4 9)
伊久美様 アジャイルジャパン2010プレゼン資料(4 9)伊久美様 アジャイルジャパン2010プレゼン資料(4 9)
伊久美様 アジャイルジャパン2010プレゼン資料(4 9)Akiko Kosaka
 
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
Hironori Washizaki
 

Similar to ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計 (20)

機械学習応用アーキテクチャ・デザインパターン概観
機械学習応用アーキテクチャ・デザインパターン概観機械学習応用アーキテクチャ・デザインパターン概観
機械学習応用アーキテクチャ・デザインパターン概観
 
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
 
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
機械学習応用システムのアーキテクチャ・デザイパターン(2020-07 ドラフトバージョン))
 
ソフトウェアエンジニアリングとEssenceの広がり
ソフトウェアエンジニアリングとEssenceの広がりソフトウェアエンジニアリングとEssenceの広がり
ソフトウェアエンジニアリングとEssenceの広がり
 
IoTアーキテクチャ・デザインパターン概観
IoTアーキテクチャ・デザインパターン概観IoTアーキテクチャ・デザインパターン概観
IoTアーキテクチャ・デザインパターン概観
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
 
情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...
情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...
情報システム障害解析のための知識グラフ構築の試み / Constructing a knowledge graph for information sys...
 
ソフトウェアエンジニアリングとEssenceの広がり
ソフトウェアエンジニアリングとEssenceの広がりソフトウェアエンジニアリングとEssenceの広がり
ソフトウェアエンジニアリングとEssenceの広がり
 
Session4:「先進ビッグデータ応用を支える機械学習に求められる新技術」/比戸将平
Session4:「先進ビッグデータ応用を支える機械学習に求められる新技術」/比戸将平Session4:「先進ビッグデータ応用を支える機械学習に求められる新技術」/比戸将平
Session4:「先進ビッグデータ応用を支える機械学習に求められる新技術」/比戸将平
 
スマートエスイーセミナー:機外学習応用システムパターンの例
スマートエスイーセミナー:機外学習応用システムパターンの例スマートエスイーセミナー:機外学習応用システムパターンの例
スマートエスイーセミナー:機外学習応用システムパターンの例
 
TERAS Conference
TERAS ConferenceTERAS Conference
TERAS Conference
 
チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性 チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性
 
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
Tomorrow's software testing for embedded systems ~明日にでも訪れてしまう組込みシステムのテストの姿~
 
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
 
機械学習システムの品質保証に向けた課題とコンソーシアム活動
機械学習システムの品質保証に向けた課題とコンソーシアム活動機械学習システムの品質保証に向けた課題とコンソーシアム活動
機械学習システムの品質保証に向けた課題とコンソーシアム活動
 
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 FallJavaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
 
企業向けUXデザイン導入のポイント
企業向けUXデザイン導入のポイント企業向けUXデザイン導入のポイント
企業向けUXデザイン導入のポイント
 
データ可視化の研究って何をしているの?何の役に立つ?
データ可視化の研究って何をしているの?何の役に立つ?データ可視化の研究って何をしているの?何の役に立つ?
データ可視化の研究って何をしているの?何の役に立つ?
 
伊久美様 アジャイルジャパン2010プレゼン資料(4 9)
伊久美様 アジャイルジャパン2010プレゼン資料(4 9)伊久美様 アジャイルジャパン2010プレゼン資料(4 9)
伊久美様 アジャイルジャパン2010プレゼン資料(4 9)
 
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
青山幹雄先生を偲んで(開拓、理論、実践、コミュニティ&国際)
 

More from Hironori Washizaki

SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
Hironori Washizaki
 
IEEE Computer Society 2024 Technology Predictions Update
IEEE Computer Society 2024 Technology Predictions UpdateIEEE Computer Society 2024 Technology Predictions Update
IEEE Computer Society 2024 Technology Predictions Update
Hironori Washizaki
 
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
Hironori Washizaki
 
IEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
IEEE Computer Society’s Strategic Activities and Products including SWEBOK GuideIEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
IEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
Hironori Washizaki
 
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
Hironori Washizaki
 
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
Hironori Washizaki
 
Joseph Yoder : Being Agile about Architecture
Joseph Yoder : Being Agile about ArchitectureJoseph Yoder : Being Agile about Architecture
Joseph Yoder : Being Agile about Architecture
Hironori Washizaki
 
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
Hironori Washizaki
 
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
Hironori Washizaki
 
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
Hironori Washizaki
 
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
Hironori Washizaki
 
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
Hironori Washizaki
 
スマートエスイーコンソーシアムの概要と2021年度成果紹介
スマートエスイーコンソーシアムの概要と2021年度成果紹介スマートエスイーコンソーシアムの概要と2021年度成果紹介
スマートエスイーコンソーシアムの概要と2021年度成果紹介
Hironori Washizaki
 
DXの推進において企業内に求められる人材やデジタル人材の育て方
DXの推進において企業内に求められる人材やデジタル人材の育て方DXの推進において企業内に求められる人材やデジタル人材の育て方
DXの推進において企業内に求められる人材やデジタル人材の育て方
Hironori Washizaki
 
対応性のある運用のパターン
対応性のある運用のパターン対応性のある運用のパターン
対応性のある運用のパターン
Hironori Washizaki
 
モデル訓練のパターン
モデル訓練のパターンモデル訓練のパターン
モデル訓練のパターン
Hironori Washizaki
 
パターンのつながりとAI活用成熟度
パターンのつながりとAI活用成熟度パターンのつながりとAI活用成熟度
パターンのつながりとAI活用成熟度
Hironori Washizaki
 
データ表現のパターン
データ表現のパターンデータ表現のパターン
データ表現のパターン
Hironori Washizaki
 
機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル
Hironori Washizaki
 

More from Hironori Washizaki (20)

SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
IEEE Computer Society 2024 Technology Predictions Update
IEEE Computer Society 2024 Technology Predictions UpdateIEEE Computer Society 2024 Technology Predictions Update
IEEE Computer Society 2024 Technology Predictions Update
 
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
鷲崎弘宜, "国際規格ISO/IEC 24773とその意義", 情報処理学会 第86回全国大会
 
IEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
IEEE Computer Society’s Strategic Activities and Products including SWEBOK GuideIEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
IEEE Computer Society’s Strategic Activities and Products including SWEBOK Guide
 
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
TISO/IEC JTC1におけるソフトウェア工学知識体系、技術者認証および品質の標準化と研究・教育他への活用
 
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
アジャイル品質のパターンとメトリクス Agile Quality Patterns and Metrics (QA2AQ) 20240225
 
Joseph Yoder : Being Agile about Architecture
Joseph Yoder : Being Agile about ArchitectureJoseph Yoder : Being Agile about Architecture
Joseph Yoder : Being Agile about Architecture
 
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
世界標準のソフトウェア工学知識体系SWEBOK Guide最新第4版を通じた開発アップデート
 
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
SWEBOK Guide Evolution and Its Emerging Areas including Machine Learning Patt...
 
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
デジタルトランスフォーメーション(DX)におけるソフトウェアの側面とダイバーシティ・インクルーシブに関する研究実践動向
 
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
 
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
人生100年・60年カリキュラム時代のDX人材育成: スマートエスイー 2021年度成果および2022年度募集
 
スマートエスイーコンソーシアムの概要と2021年度成果紹介
スマートエスイーコンソーシアムの概要と2021年度成果紹介スマートエスイーコンソーシアムの概要と2021年度成果紹介
スマートエスイーコンソーシアムの概要と2021年度成果紹介
 
DXの推進において企業内に求められる人材やデジタル人材の育て方
DXの推進において企業内に求められる人材やデジタル人材の育て方DXの推進において企業内に求められる人材やデジタル人材の育て方
DXの推進において企業内に求められる人材やデジタル人材の育て方
 
対応性のある運用のパターン
対応性のある運用のパターン対応性のある運用のパターン
対応性のある運用のパターン
 
モデル訓練のパターン
モデル訓練のパターンモデル訓練のパターン
モデル訓練のパターン
 
パターンのつながりとAI活用成熟度
パターンのつながりとAI活用成熟度パターンのつながりとAI活用成熟度
パターンのつながりとAI活用成熟度
 
データ表現のパターン
データ表現のパターンデータ表現のパターン
データ表現のパターン
 
機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル機械学習デザインパターンの必要性と機械学習ライフサイクル
機械学習デザインパターンの必要性と機械学習ライフサイクル
 

ソフトウェアパターン概論およびパターンを活用したアーキテクチャ設計

  • 1. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae 1 セミナー: IoT・機械学習応用ソフトウェアの設計とパターン ソフトウェアパターン概論およびパ ターンを活用したアーキテクチャ設計 鷲崎 弘宜 早稲田大学ほか IEEE Computer Society 2021-2023 Board of Governors 候補者 2020年 7月13日 v20200713
  • 2. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae 目次 ◼ パターン(ランゲージ)とソフトウェアパターン ◼ アーキテクチャ設計 ◼ アーキテクチャ評価 2
  • 4. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae 4 https://en.wikipedia.org/wiki/Coffeehouse#/media/File:Caf%C3%A9_de_Flore.jpg https://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%95%E3%82%A7#/media/%E3%83%95%E3%82 %A1%E3%82%A4%E3%83%AB:Former_Foreign_Settlement_of_Kobe_Hyogo_Japan_A55_03s3.jpg 名前: 路上カフェ 解決: 各近隣にカフェが開かれるよう促すこと。カフェにはいくつかの部屋を設け、 にぎやかな歩行路に向けて解放し、座ってコーヒーなどの飲み物を取りながら、 移りゆく世界を眺められるような親しみのある場所に仕立てること。カフェの前面 は、室内からテーブル・セットが街路にそのまま張り出すような作りとすること。 問題: 忙しい都会において、衆目の中で合法 的に腰を下ろし、移りゆく世界をノンビリと眺め られる場所がほしい。 [Alexander77] C. Alexander他著, 平田翰那訳, “パタン・ランゲージ”, 鹿島出版, 1977
  • 5. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae 5 建築におけるパターンランゲージ ◼ 粒度をまたいだ繋がり ◼ 街の中心部には 活動の拠点 として 小さな広 場 を設けよう。その広場には、訪問者や近隣 の人々が気軽に集い落ち着けるように、いくつ かの 路上のカフェ が集まってひらかれるよう に奨励しよう。それぞれのカフェは、オープン エアで楽しめるように 街路への開口 を持たせ られるとよい ・・・ ◼ 同一粒度における繋がり ◼ 快適に暮らせるためには 屋内の陽光 は不可 欠なので、 南向きの屋外 に庭をおきたいな。 さらに、部屋の陽光をたくさんとって快適にす るために どの部屋も二面採光 にしたい。そう そう、お客さんにも来てほしいから、 街路への 開口 をもうけて、玄関から寝室までうまく 親 密度の変化 をもたせたいね ・・・ 玄関 居間 寝室 庭 建物 口 街 路 街路 広場 カフェ
  • 6. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae 6 class Mathematic { public Data sort(Data data){ switch(settings) { case QUICK: return quickSort(data); case BUBBLE: return bubbleSort(data); default: ... } } class Loan { public double capital() { if(expiry == null && maturity != null) return ...; if(expiry != null && maturity == null) { ... } class Mathematic { Sorter sorter; public Data sort(Data data){ return sorter.sort(data); } abstract class Sorter { public abstract Data sort(Data); class QuickSorter extends Sorter { public Data sort(Data) { ... } class Loan { CapitalCalc capitalCalc; public double capital(){ return capitalCalc.calc(this); } Interface CapitalCalc { double calc(Loan l); class TermCapital implements ...{ double calc(Loan l) { ... }
  • 7. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae 例: オブジェクト指向デザインパターン Strategy Context Strategy algorithmInterface() ConcreteStrategyA algorithmInterface() ConcreteStrategyB algorithmInterface() ・・・ ・・・ contextInterface() 解決 同期(文脈) If there are hard-wiring line breaking algorithms, clients get bigger and harder to maintain. Moreover it becomes difficult to add new algorithms and vary existing ones… 適用可能性(問題、フォース) Many related classes differ only in their behavior. You need different variants of an algorithm… 結果 利点: families of algorithms , elimination of conditional statements… 欠点: Communication overhead… E. Gamma, et al. “Design Patterns: Elements of Reusable Object- Oriented Software,” Addison-Wesley, 1994. 7
  • 8. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae 8 パターンランゲージとソフトウェア ◼ ソフトウェアコミュニティが学んだこと ◼ 文脈(Know-Why)、問題(What)、解決(How)の言語化・文書化形式 ◼ 抽象的なビジョンと、具体的なライブラリ・指示の間の抽象度 ◼ 対話の手段、問題・解決の再利用、非機能要求満足とアーキテクチャ一貫 ◼ 特にソフトウェア設計、開発プロセス・組織構造 ◼ ソフトウェアコミュニティが(あまり)学ばなかったこと [羽生田] ◼ 利害関係者間の合意形成のための共通言語 ◼ 利用者参加型の仕組み、生成的 成功事例 文脈: こういうときに 問題: こうしたかったら・こう困っていたら フォース: こういうことを考慮して 解決: こうしなさい 結果: こうなるでしょう 新たな状況 解決 解決 抽象化 具象化 類似 抽象化 羽生田栄一 監修, パターンワーキンググループ著, "ソフトウェアパターン入門~基礎から応用へ~", ソフトリサーチセンター, 2005.
  • 9. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae パターン、参照アーキテクチャ、実現手法 ◼ アーキテクチャパターン、デザインパターン ◼ 典型的な優れたアーキテクチャや詳細設計の導出過程をパターン化 ◼ アーキテクチャスタイル: Batch Sequentialパターン, Repositoryパターン, Interpreterパターンなど [Shaw] ◼ POSAアーキテクチャパターン: Layersパターン, MVCパターン, Pipes and Filtersパターンなど [POSA] ◼ デザインパターン: GoFデザインパターンなど ◼ 参照アーキテクチャ: 特定ドメインのためのテンプレート ◼ 実現手法: 特定品質を満足する実装技術、パターン、設計原則 9 再利用して効率的かつ効果的にアーキテクチャ設計 一部: 鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018 [Shaw] M. Shaw & D. Garlan, "Software Architecture: Perspectives on an Emerging Discipline", Prentice Hall, 1996 [POSA] F. Buschmann and et.al., “Pattern-Oriented Software Architecture, A System of Patterns: Volume 1 (Wiley Software Patterns Series)”, Wiley, 2013 刺激源 成果物 環境 刺激 応答 応答測定法実現手法 アーキテクチャパタ ーン/スタイル
  • 11. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae アーキテクチャとは ◼ システムの基本的な概念や性質 [ISO/IEC/IEEE 42010] ◼ 構成要素、要素間の関係、設計・進化の原則から成る ◼ 効果:理解、再利用、構築、進化、分析、管理 [Garlan14] ◼ AI/ML・IoTシステムにおける必要性 ◼ 大規模化/複雑化に伴い、途中で変更することが困難 ◼ 非機能要求(信頼性/性能/拡張性などの向上)の増大 ◼ 多種多様な技術、環境、サービスの組み合わせの意思決定 11 実装要求 設計 実装 実装・進化 達成 準拠 達成 アーキテクチャ 図: CMU SEI, Software Architecture, http://www.sei.cmu.edu/architecture 図: 鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018
  • 12. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae 例: Netflixのアーキテクチャ 12 Browser (Smart) TV Mobile/Table t Gaming Console Media- Player Load Balancer (Amazon ELB) WebAPIGatewa y Streaming Control API Cassandra Cluster AmazonS3 AmazonSQ S Playback UserProfile DRM Review Search Notifications Video History Recommendatio n … Edge Services Backend Services Mid-tire Services IaaS Services HTTP request REST aync. REST aync. Platform Services ServiceRegistry Security,Monitoring,Configuration, Logging,Rx,Dynamicrouting,Caching,… 図: Stefan Toth, An Inverse Evaluation of Netflix Architecture Using ATAM, SATURN2016 図: 鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018
  • 13. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae アーキテクチャの種類と課題 ◼ システム、基盤アーキテクチャ(物理層) ◼ 主に非機能要求の実現 ◼ 品質目標の曖昧な構築 ⇒ 非機能要求駆動の設計、評価 ◼ アプリケーションアーキテクチャ(論理層) ◼ 主に機能要求の実現 ◼ 一貫性の欠如、保守の難しさ ⇒ 原則やパターン等に基 づく一貫した設計、評価 13 ソフトウェア ハードウェア アプリケーション 基盤 システム 参考: 長谷川, アーキテクチャ設計評価, 日科技連SQIP研究会演習, 2017
  • 14. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae 設計上のアーキテクチャドライバ (主たる要求) ◼ 主機能 ◼ 品質(シナリオ) ◼ 制約: 技術、組織、顧客 ◼ システムの種類: 新システム( ドメイン未知、既知)、既存シ ステム変更 ◼ 設計目的: プロトタイプ、顧客 用、連続的進化 ◼ 関心事: その他の設計上必要 な決定 14 アーキテクチャ ドライバ アーキテクチャ 設計 アーキテクチャ アーキテクチャ パターン/スタイル 実現手法参照アーキテ クチャ 一部: 鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018
  • 15. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae アーキテクチャ設計手法 Attribute-Driven Design (ADD) ◼ カーネギーメロン大学(CMU) Software Engineering Institute(SEI)で開発 ◼ 要求を優先順位付けし,各イテレーションごとに扱う要求 を実現するようにアーキテクチャを段階的に洗練化 ◼ 設計の検討の際には参照アーキテクチャ,アーキテクチ ャスタイル等の過去の優れた知見を参考に 15 ユーザー System 要求1 優先順位 高 低 ユーザー ユーザー 1st Iteration 2nd Iteration 要求2 要求4要求3 要求5 鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018 L. Bass, et al. 前田ほか訳: 実践ソフトウェアアーキテクチャ(Software Architecture in Practice 2nd Ed.), 日刊工業新聞社, 2005
  • 16. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae IoT事例: 疲労予測・改善 16 身体行動データ 視線・まばたきデータ 生 成 予 測 疲労度 推 薦 改善行動JINS MEME (メガネ型センサー) 鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018 ◼ 機能要求 ◼ FR1:計測を開始する ◼ FR2:疲労度を表示する ◼ 品質要求 ◼ QR1(変更容易性): 新規ユーザ追加容易 ◼ QR2(変更容易性): データ処理方式の追加容易 ◼ QR3(可用性): 接続が一時切断しても・・・ ◼ 制約 ◼ C1: 推定モデルは専門チームによって事前に構 築 ◼ C2: 推定モデルの実行時更新は現段階では扱 わない FR1 FR2 QR1 QR2 QR3 FR3 優先順位 高 低 優先順位付けられた要求 C1 C2
  • 17. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae 1回目: 基本的な要求に着目 17 FR1:計測を 開始する FR2:疲労度 を表示する 考慮する要求 適用パターン Actions Insights Things IoT参照アーキテクチャ HealthCareU I MEMEData Processing MEMEData Collector ユーザー MEME Stress Estimator Insights Things MEMEデータからのストレス度推定 にはDLで構築する回帰モデルを使用 1. sendData(data) 1.1 estimate(data) 1.2 show(stress) データを生成するThings 生成されたデータに基づき 分析するInsights C1:推定モデ ルの制約 C2:推定モデル 更新の制約 改善行動推薦などの機能 は対象ではないため Actionsは省略 鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018
  • 18. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae 2回目: 変更容易性に着目 18 鄭顕志,”アーキテクチャ・品質エンジニアリング”, スマートエスイー, 2018 QR1(変更容易性 ): MEMEの追加 QR2(変更容易性): データ処理の追加 考慮する要求 適用パターン /実装技術 Publish-Subscribe Health CareU I MEMEData Processing MEMEData Collector ユーザー MEME Stress Estimator Insights Things 2. publish(data, topic) 2.1.1 estimate(data) 2.1.2 show(stress) Broker <<publisher>> 1. subscribe(topic) 2.1. notify(data, topic) <<subscriber>> <<broker>> デバイスID等をtopicとして 必要とするデータ処理 (subscriber)にのみ通知 Brokerを介した疎結合のため デバイス追加時は個別のデータ処 理部に変更は必要なし データ処理部追加時もBroker のみに依存.データ生成部に 変更は必要なし Publisher Broker Subscriber Publisher Subscriber
  • 20. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae アーキテクチャの評価 ◼ 定量的評価: 測定による How much ◼ ゴール指向、結果の解釈は難しい。 ◼ チェックリストや原則に照らした評価 ◼ 定性的評価 ◼ シナリオによる What if ◼ あらゆる注目する品質特性に集中できるが, 精度は評価者の経験に 依存 ◼ 手法: Architecture Tradeoff Analysis Method (ATAM)など 20 CMU/SEI, The Architecture Tradeoff Analysis Method (ATAM), http://www.sei.cmu.edu/architecture/ata_method.html +-多層(レイヤ) -+コントロールループ ・・・セキュリティシナリオ信頼性シナリオアーキテクチャ
  • 21. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae Architecture Trade-off Analysis Method (ATAM) ◼ CMU/SEIが提唱するアーキテクチャ設計手法 ◼ 設計上の判断/選択/決定が品質要求を十分に扱うかを評価 ◼ 品質特性を予測する試みではない ◼ 比較的軽量: 通常3日程度で実施 ◼ 目的 ◼ リスクの発見: 品質特性について将来問題を生じる可能性のあ る選択肢、トレードオフポイント(およびセンシティビティポイント) はリスクの候補 ◼ センシティビティーポイントの発見: 僅かな変化が品質特性に有 意な差をもたらす選択肢 ◼ トレードオフポイントの発見: 複数の品質特性に影響する決定 ◼ 事例多数: 米ボーイング, Netflix[Toth] 21 Stefan Toth, An Inverse Evaluation of Netflix Architecture Using ATAM, SATURN2016
  • 22. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae センシティビティ&トレードオフポイント 22 ⇒通信の暗号化 セキュリティ の向上 性能の 低下 & マスター キャッシュ アプリケーション ファイルサーバ アプリケーションサーバ 暗号化 ⇒キャッシュ 実行効率 の向上 資源効率 の低下 & ただし「書き込み率」が大きいと ヒットしなくなり逆に性能を損なう Michel Chaudron, Software Architecting, http://www.win.tue.nl/~mchaudro/swads/
  • 23. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae まとめ ◼ パターンによるKnow-Why/What/Howの言語化と再利用 ◼ 共通言語としてのパターンランゲージへ ◼ IoT・AI時代のアーキテクチャの重要性:異種技術、多種多 様な選択や組み合わせ ◼ 品質に駆動されるアーキテクチャの設計と評価、パターン や実現手法の参照活用 ◼ アーキテクチャ設計・評価の詳細やコツは、ぜひ「スマート エスイー」で学びましょう! 23
  • 24. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae enPit-Proスマートエスイーのご紹介 https://smartse.jp ◼ 文科省 社会人教育 enPiT-Pro AI・IoT×ビジネス ◼ 履修証明プログラム10科目120時間 ◼ 一部JMOOCオンライン提供中、関連内容をセミナー 24 全国規模の14大学・ 研究所ネットワーク 26以上の企業・業界 団体(会員企業5000 超)・自治体との連携 + + クラウド センサ・IoT 人工 知能 ビッグ データ 生成 知識 抽出 革新 情報処理 アプリケーション ビジネス 価値 創造 題材・事例 教材・指導 受講生派遣・ 外部評価 進学・共同 研究接続 教材・指導 地区展開 スマートエスイー 通信・物理協力校
  • 25. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae 25 参考: より深めるために ◼ パターンの原典をあたる ◼ C. Alexander他著, 平田翰那訳, “パタン・ランゲージ”, 鹿島出版, 1977 ◼ ソフトウェアパターンの広がり全体を掴む ◼ 深澤監修, 鷲崎, 丸山, 山本, 久保, “ソフトウェアパターン”, 近代科 学社, 2007. ◼ 羽生田栄一 監修, パターンワーキンググループ著, "ソフトウェアパ ターン入門~基礎から応用へ~", ソフトリサーチセンター, 2005. ◼ ソフトウェアパターンとパターンランゲージの最先端を知る ◼ 鷲崎, 江渡, 吉岡, 位野木, 本橋, 羽生田, 懸田, 井庭, “ソフトウェア パターン - 時を超えるソフトウェアの道", 情報処理, 情報処理学会, Vol.52, No.9, 2011.