Successfully reported this slideshow.
Your SlideShare is downloading. ×

新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて

新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて

Download to read offline

鷲崎弘宜, 新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて, Agile Tour Osaka × miniPLoP 2020 基調講演, 2020年12月12日

鷲崎弘宜, 新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて, Agile Tour Osaka × miniPLoP 2020 基調講演, 2020年12月12日

More Related Content

Slideshows for you

More from Hironori Washizaki

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて

  1. 1. 新しいソフトウェアエンジニアリングの ためのパターンランゲージに向けて 鷲崎 弘宜 早稲田大学 / 国立情報学研究所 / 株式会社システム情報 / 株式会社エクスモーション Agile Tour Osaka × miniPLoP 2020 基調講演 2020年12月12日
  2. 2. What is software engineering? • “Application of systematic, disciplined, quantifiable approach to development, operation, and maintenance of software” – SWEBOK 2014 • Guide to the Software Engineering Body of Knowledge (SWEBOK) 2 • Software Requirements • Software Design • Software Construction • Software Testing • Software Maintenance • Software Configuration Management • Software Engineering Management • Software Engineering Process • Software Engineering Tools and Methods • Software Quality • Software Engineering Professional Practice • Software Engineering Economics • Computing Foundations • Mathematical Foundations • Engineering Foundations
  3. 3. Vision of SWEBOK 2021 (subject to change) (Evolution lead: Hironori Washizaki, since 2018-) https://www.computer.org/volunteering/boards-and-committees/professional-educational-activities/software-engineering-committee/swebok-evolution • Expansion of SE – AI/Machine Learning Engineering – Restructuring foundation areas incl. Internet of Things (IoT) • Value in SE – Value proposition • Dependable SE – Architecture – Security • Modern SE – Agile – DevOps 3 Software Engineering Value proposition AI/ML Engineering Foundation incl. IoT Architecture Security Agile & DevOps Expansion Value Dependable Modern
  4. 4. Paradigm shifts in “new” software engineering 4 Current New Scope and perspective Software systems Software systems, business, society and related disciplines Process Planned, static, common, and closed Adaptive, dynamic, diverse, and open Focus Specification Value, data, and speed Thinking Cognitive (logical) or affective (design) Cognitive (logical), affective (design), and conative (conceptual) Inference Deduction and analogy Deduction, analogy, induction, and abduction Hironori Washizaki, Junzo Hagimoto, Kazuo Hamai, Mitsunori Seki, Takeshi Inoue, Shinya Taniguchi, Hiroshi Kobayashi, Kenji Hiranabe and Eiichi Hanyuda, “Framework and Value-Driven Process of Software Engineering for Business and Society (SE4BS),” 5th International Conference on Enterprise Architecture and Information Systems (EAIS 2020)
  5. 5. Example: Deduction and induction 5 Goal Data Model Behavior Goal Model Behavior Data Conventional software: Deduction ML-based software: Induction H. Maruyama, “Machine Learning Engineering and Reuse of AI Work Products,” The First International Workshop on Sharing and Reuse of AI Work Products, 2017 Hironori Washizaki, “Towards Software Value Co-Creation with AI”, The 44th IEEE Computer Society Signature Conference on Computers, Software, and Applications (COMPSAC 2020), Fast Abstract
  6. 6. パターン(言語)が必要! • 抽象的なパラダイムと具体的な事例 、指示、ツールの橋渡し – Know-Why(文脈)、What(問題)、How( 解決策)を言語化し、文書化する。 – 解決策や問題点の再利用 – 一貫性のあるアーキテクチャの取得 6 パラダイム 事例 ツール フレーム ワーク 作業指示 ? ? • ステークホルダー間の共通言語 – ソフトウェアエンジニア、ハードウェアエ ンジニア、ネットワークエンジニア、ドメ インエキスパート、データアナリスト・・・
  7. 7. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae 7 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
  8. 8. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae 8 建築におけるパターンランゲージ ◼ 粒度をまたいだ繋がり ◼ 街の中心部には 活動の拠点 として 小さな広 場 を設けよう。その広場には、訪問者や近隣 の人々が気軽に集い落ち着けるように、いくつ かの 路上のカフェ が集まってひらかれるよう に奨励しよう。それぞれのカフェは、オープン エアで楽しめるように 街路への開口 を持たせ られるとよい ・・・ ◼ 同一粒度における繋がり ◼ 快適に暮らせるためには 屋内の陽光 は不可 欠なので、 南向きの屋外 に庭をおきたいな。 さらに、部屋の陽光をたくさんとって快適にす るために どの部屋も二面採光 にしたい。そう そう、お客さんにも来てほしいから、 街路への 開口 をもうけて、玄関から寝室までうまく 親 密度の変化 をもたせたいね ・・・ 玄関 居間 寝室 庭 建物 口 街 路 街路 広場 カフェ
  9. 9. 質問 http://sli.do/ #58755 アンケートhttp://u0u1.net/Urae 9 パターンランゲージとソフトウェア ◼ ソフトウェアコミュニティが学んだこと ◼ 文脈(Know-Why)、問題(What)、解決(How)の言語化・文書化形式 ◼ 抽象的なビジョンと、具体的なライブラリ・指示の間の抽象度 ◼ 対話の手段、問題・解決の再利用、非機能要求満足とアーキテクチャ一貫 ◼ 特にソフトウェア設計、開発プロセス・組織構造 ◼ ソフトウェアコミュニティが(あまり)学ばなかったこと [羽生田] ◼ 利害関係者間の合意形成のための共通言語 ◼ 利用者参加型の仕組み、生成的 成功事例 文脈: こういうときに 問題: こうしたかったら・こう困っていたら フォース: こういうことを考慮して 解決: こうしなさい 結果: こうなるでしょう 新たな状況 解決 解決 抽象化 具象化 類似 抽象化 羽生田栄一 監修, パターンワーキンググループ著, "ソフトウェアパターン入門~基礎から応用へ~", ソフトリサーチセンター, 2005.
  10. 10. Problem and goal • ML and IoT are key enablers of digital transformations. • Patterns in ML and IoT software design are not well classified and studied. • Thus, we conducted a systematic literature review to reveal landscapes of ML and IoT software design patterns. 10 Machine Learning Software engineering IoT
  11. 11. エグゼクティブサマリ • 抽象度の異なる様々なIoTアーキテクチャ・デザインパターン は、十分に分類および研究されていない • RQ1.学術的な文献では、IoTのアーキテクチャや設計パター ンはどのように扱われているのか? – IoTアーキテクチャ・デザインパターンの関連論文32編 • RQ2.既存のIoTアーキテクチャやデザインパターンは本当に 全てIoTパターンなのか? – 抽出された143パターンのうち、57%が非IoTパターン • RQ3.IoTアーキテクチャ・デザインパターンは分類できるか? – 抽象化レベル、ドメイン、品質特性に沿って分類可 • RQ4.IoTアーキテクチャ・デザインパターンはどのようなもの があるのか? – 多くのIoTパターンは、相互運用性、セキュリティ、保守性を扱う – 多くのIoTアーキテクチャパターンはドメイン固有 11
  12. 12. 例: IoTアプリケーション多層アーキテクチャ • 多層アプリケーション向けに軽量な仮想化によるリソース仮想化を提供 12 IoT GatewayIoT Device / Application IoT Device / Application publish IoT Device / Application IoT Device / Application subscribe Virtual part Physical part 例: IoTゲートウェイ・イベントサブスクリプション • IoTゲートウェイにサブスクリプションの仕組みを採用 • センサによって得られたデータと要素間メッセージを非同期かつ相互伝送
  13. 13. 機械学習アーキテクチャ・デザインパターンの 全体像に向けて • RQ1. ML開発者はMLシステム(MLS)の設計をどのように捉えて扱 っているのか? – 方法: アンケート調査 – 結果: MLアーキテクチャ・デザインパターンについてほとんど知られ ていない。 • RQ2. 学術論文や灰色文献はMLSの設計をどのように扱っている のか? – 方法: 体系的文献調査 – 結果: 学術論文19編、灰色文献19編 • RQ3. MLアーキテクチャ・デザインパターンはどのように分類できる か? – 方法: 様々な代表的プロセスの検討 – 結果: MLパイプラインプロセスおよびISO/IEC 12207ソフトウェアライフ サイクルプロセスによる分類 • RQ4. MLアーキテクチャ・デザインパターンにはどのようなものがあ るか? – 方法: 文献からのパターン抽出およびプロセス上での分類 – 結果: 33パターン候補 → 最終的に15パターン抽出 13
  14. 14. Classification of ML design patterns 14 Training data Trained model Prediction (inference) Infrastructure Input data Topology Different Workloads in Different Computing Environments Distinguish Business Logic from ML Models ML Gateway Routing Architecture Microservice Architecture for ML Lambda Architecture Kappa Architecture Programming Data Lake for ML Separation of Concerns and Modularization of ML Components Encapsulate ML models within Rule-base Safeguards Discard PoC Code Model operations Parameter-Server Abstraction Data flows up, Model flow down Secure Aggregation Deployable Canary Model ML Versioning Hironori Washizaki, Hironori Takeuchi, Foutse Khomh, Naotake Natori, Takuo Doi, Satoshi Okuda, “Practitioners’ insights on machine-learning software engineering design patterns: a preliminary study,” 36th IEEE International Conference on Software Maintenance and Evolution (ICSME 2020), Late Breaking Ideas track
  15. 15. E.g., Distinguish Business Logic from ML Models • Separate the business logic and the inference engine, loosely coupling the business logic and ML-specific dataflows. 15 Data LayerLogic LayerPresentation Layer User Interface Database Data Collection Data Lake Business Logic Data Processing Inference Engine RealWorld Business LogicSpecific MLSpecific Architectural Layers Deployed as ML System Business Logic Data Flow ML Runtime Data Flow ML Development Data Flow Legend Haruki Yokoyama, Machine Learning System Architectural Pattern for Improving Operational Stability, ICSA-C, 2019 Hironori Washizaki, Foutse Khomh, Yann-Gael Gueheneuc, “Software Engineering Patterns for Machine Learning Applications (SEP4MLA),” 9th Asian Conference on Pattern Languages of Programs (AsianPLoP 2020)
  16. 16. Summary and future • Summary – Paradigm shifts in new software engineering, especially ML and IoT engineering – Patterns as bridge and common language for new software engineering – Classification of ML and IoT design patterns • Future – Classify and relate patterns across over different disciplines such as ML and IoT – Build pattern languages – Open expanded community 16

×