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.

ソフトウェアエンジニアリングの全体とIoT時代のモデリングおよび関連する品質

2,213 views

Published on

基調講演 :
ソフトウェアエンジニアリングの全体とIoT時代のモデリングおよび関連する品質
本講演では最初に、ソフトウェアエンジニアリグ知識体系ガイドであるSoftware Engineering Body of Knowledge (SWEBOK) Guide 最新版を用いて、ソフトウェアにまつわる職業人が押さえるべき知識・技術の広がりと境界を解説します。続いて、その中でも特に重要なソフトウェアのモデリング技術と関連する品質を、IoTにおける重要性も含めて解説します。


 早稲田大学グローバルソフトウェアエンジニアリング研究所 所長・教授
 株式会社システム情報 社外取締役
 国立情報学研究所 客員教授
  鷲崎 弘宜 教授

Published in: Software
  • Be the first to comment

ソフトウェアエンジニアリングの全体とIoT時代のモデリングおよび関連する品質

  1. 1. ソフトウェアエンジニアリングの全体 とIoT時代のモデリングおよび関連す る品質 鷲崎 弘宜 早稲田大学 グローバルソフトウェアエンジニアリング研究所 Twitter: @Hiro_Washi washizaki@waseda.jp http://www.washi.cs.waseda.ac.jp/ 2016年11月11日 JEITA フォーラム 基調講演 わしざき ひろのり
  2. 2. • 早稲田大学グローバルソフトウ ェアエンジニアリング研究所所 長・教授 • 国立情報学研究所客員教授 • 株式会社 システム情報 社外取 締役 • ISO/IEC/JTC1/SC7/WG20 Convenor • SEMAT Japan Chapter Chair • IEEE CS Japan Chapter Secretary • IEEE ICST 2017 PC Co-Chair 2
  3. 3. 3 日本経済新聞 2016年11月2日 日本は優れ た技術を持 ちながら世界 のスピードに 追い付けて いない 世界に何を 学び、日本 のどの強み を伸ばすべ きか ソフトの総 合的な品質 評価が必要 データ+経験則 パターン大事ソフト開発の人 材づくりが重要 ビジネス、 システムも 含めた捉 え方 世界のソフト ウェア開発の 潮流はアジャ イル開発 IoT時代のセ キュリティ、プ ライバシは重 要な研究課題
  4. 4. 目次 • 正統なエンジニアリングと知識体系 • モデリングとモデル駆動開発 • モデリングと品質 • IoT時代のモデリング: 参照アーキテクチャと 接続 • IoT時代のモデリング: 測定・学習さらには育 成 • まとめ 4
  5. 5. 正統なエンジニアリング 職業人が果たす判断, 行為,助言が,社会で 実質的な価値を形成 5 松本吉弘, “エンジニアリング基礎知識体系とISO標準”, ITSCJ Newsletter, No.88, 2010. Paul Star, “The Social Transformation of American Medicine,” Basic Books, 1982. 知識・適格性の妥当 性をコミュニティで 判定できる環境 コミュニティで妥当と確 認される知識が科学的 基盤に基づく
  6. 6. 知識の島々から体系へ 経験、ガイド 知識 プロフェッショナリズム ベストプラクティ スに裏打ちさ れた能力 参考 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13 知識の島々 カバレッジ UML Java, C#, Python アジャイル 6 知識の体系 体系上のパ ターンや手法
  7. 7. Guide to the Software Engineering Body of Knowledge (SWEBOK) v3 2014 http://www.swebok.org/ 7 要求 構築設計 テスティング マネジメント プロセス 保守 構成管理 モデル・手法 品質 経済 プロフェッショナル 実践 要求の基礎 要求プロセス 要求抽出 要求分析 要求仕様 要求妥当性確認 実践上の考慮事項 設計の基礎 設計の主要問題 構造とアーキテクチャ ユーザインタフェース設計 設計品質の分析評価 設計の表記 設計戦略・手法 設計ツール 構築の基礎 構築の管理 実践上の考慮事項 構築技法 構築ツール テストの基礎 テストレベル テスト技法 テスト関連計量尺度 テストプロセス テストツール 保守の基礎 保守の主要問題 保守プロセス 保守技法 保守ツール SCMプロセスのマネ ジメント 構成の識別 構成制御 構成状態記録・報告 構成監査 リリース管理・配布 構成管理ツール 開始と範囲定義 プロジェクト計画 プロジェクト実施 レビュー・評価 終結 計量 マネジメントツール プロセス定義 ライフサイクル プロセス査定・ 改善 計量 プロセスツール モデリング モデル種別 モデルの分析 開発手法 品質の基礎 品質マネジメントプ ロセス 実践上の考慮事項 品質ツール プロフェッショナリズム 集団ダイナミクス・心理 コミュニケーションスキ ル 経済の基礎 ライフサイクル経済 リスク・不確実性 経済分析手法 実践上の考慮事項 計算基礎 数学基礎 エンジニアリング 基礎
  8. 8. V3改訂に見るソフトウェアエンジニアリング進化 • プロフェッショナリズムの重要性 – 倫理、法令、技術者認定、コミュニケ ーション • ソフトウェアの外への拡大 – ビジネス、経済 – 計算、数学、エンジニアリング • 深化や定着 – 各種ツール・自動化 – モデリング: モデリングの原則、表記 、種別、分析 – 構築技法: テンプレート、契約による 設計、MDA – テスト技法: モデルベース、ペアワイ ズ、テスト駆動 • 新たな品質特性 – ユーザビリティ: UI設計、インタラクシ ョンテスティング – セーフティ: Airborne Systems and Equipment Certification 8 プロフェッショナリズム 計算、数学、エンジニアリング 組織 ビジネ ス システ ム ソフト ウェア PMBOK BABOK REBOK SEBOK SWEBOK SQuBOK SWEBOKV3
  9. 9. 目次 • 正統なエンジニアリングと知識体系 • モデリングとモデル駆動開発 • モデリングと品質 • IoT時代のモデリング: 参照アーキテクチャと 接続 • IoT時代のモデリング: 測定・学習さらには育 成 • まとめ 9
  10. 10. モデルとは 「現実世界の何か」に対する「認知上の目的」 のためのコスト上効率的な「代用物」 12 システム モデル ~の表現 メタモデル ~に従う 日高宗一郎, Jean BEZIVIN, 胡振江, Frederic JOUAULT, 『モデル駆動工学の原理と応用』 (1) モデル駆動工学の歴史と背景, コンピュータソフトウェア, 30(3), 2013
  11. 11. プログラミングからモデリングへ • 「どう動かすのか」から「何をしたいのか」へ • 品質の早期の作り込みと検証 • コミュニケーション 時代 抽象度 MOV ADD… アセンブラ MOV ADD… アセンブラ 要求要求 public abstract aspect ObserverProtocol { protected interface Subject { } protected interface Observer { }  protected abstract pointcut   subjectChange(Subject s); after(Subject s): subjectChange(s) { Iterator iter = getObservers(s).iterator(); while(iter.hasNext()) updateObserver(s,(Observer)iter.next()); } protected abstract void updateObserver(Subject s, Observer o); public abstract aspect ObserverProtocol { protected interface Subject { } protected interface Observer { }  protected abstract pointcut   subjectChange(Subject s); after(Subject s): subjectChange(s) { Iterator iter = getObservers(s).iterator(); while(iter.hasNext()) updateObserver(s,(Observer)iter.next()); } protected abstract void updateObserver(Subject s, Observer o); public abstract aspect ObserverProtocol { protected interface Subject { } protected interface Observer { }  protected abstract pointcut   subjectChange(Subject s); after(Subject s): subjectChange(s) { Iterator iter = getObservers(s).iterator(); while(iter.hasNext()) updateObserver(s,(Observer)iter.next()); } protected abstract void updateObserver(Subject s, Observer o); public abstract aspect ObserverProtocol { protected interface Subject { } protected interface Observer { }  protected abstract pointcut   subjectChange(Subject s); after(Subject s): subjectChange(s) { Iterator iter = getObservers(s).iterator(); while(iter.hasNext()) updateObserver(s,(Observer)iter.next()); } protected abstract void updateObserver(Subject s, Observer o); プログラム public abstract aspect ObserverProtocol { protected interface Subject { } protected interface Observer { }  protected abstract pointcut   subjectChange(Subject s); after(Subject s): subjectChange(s) { Iterator iter = getObservers(s).iterator(); while(iter.hasNext()) updateObserver(s,(Observer)iter.next()); } protected abstract void updateObserver(Subject s, Observer o); public abstract aspect ObserverProtocol { protected interface Subject { } protected interface Observer { }  protected abstract pointcut   subjectChange(Subject s); after(Subject s): subjectChange(s) { Iterator iter = getObservers(s).iterator(); while(iter.hasNext()) updateObserver(s,(Observer)iter.next()); } protected abstract void updateObserver(Subject s, Observer o); モデル ハード /システム 13
  12. 12. 14 Lv0: モデルなし – 口頭伝達、その場しのぎの修正 Lv1: 文書のみ – あいまい、主観がそのまま Lv2: 文書+図 – 理解しやすい Lv3: 図+文書 – 主観が客観に Lv4: 精密な図+文書 – コードとの自動接続 Lv5: 図のみ – モデル駆動開発が目指す未来 モデリングの成熟度 参考: ヨシュヴァルメル他: UML/MDAのためのオブジェクト制約言語OCL, エスアイビーアクセス, 2004 public abstract aspect ObserverProtocol { protected interface Subject { } protected interface Observer { }  protected abstract pointcut   subjectChange(Subject s); after(Subject s): subjectChange(s) { Iterator iter = getObservers(s).iterator(); while(iter.hasNext()) updateObserver(s,(Observer)iter.next()); } protected abstract void updateObserver(Subject s, Observer o); public abstract aspect ObserverProtocol { protected interface Subject { } protected interface Observer { }  protected abstract pointcut   subjectChange(Subject s); after(Subject s): subjectChange(s) { Iterator iter = getObservers(s).iterator(); while(iter.hasNext()) updateObserver(s,(Observer)iter.next()); } protected abstract void updateObserver(Subject s, Observer o);
  13. 13. 15 出発地 目的地 WP1 WP2 出発地 目的地 WP1 WP2 モデル駆動開発とは • モデル変換 – モデルに付加情報を加え て、異なる視点のモデルや コードを得る – 視点の設定、モデルの記 述・操作の重要性 – 関心事の分離 • Computation Independent • Platform Independent • Platform Specific • モデル駆動開発(MDD) – 分析・設計情報をモデルと して表現 – モデル変換の繰り返し – 可搬性、再利用性、相互 運用性向上 飛行船とは・・・ 基地局とは・・・ 回転の指示が あると・・・ プロトコルXXXに 従い16bitデータ YYYを受信し class Ship{ void move() x = y + 1; PIM PSM コード CIM PM CPU, モータ, OS, 言語・・・
  14. 14. ソフトウェア・システムの様々なモデル • アプリケーション – UMLなど – 設計や検証、コード生成 • 制御 – Simulinkなど – 設計やシミュレーション、 コード生成 • 電気・機械 – CADなど – 設計や解析 16 • システム全体 – SysML, ADL – 要求分析、設計、 シミュレーション
  15. 15. 周辺領域との関係 • ドメイン特化言語(Domain-Specific Language; DSL) – 特定の問題領域(ドメイン)用の開発言語 – MDDにおけるモデリング言語として • ドメイン駆動設計(Domain-Driven-Design; DDD) – ドメインモデル中心の考え方 – MDDがパターン・実現方法の一つ • プロダクトラインエンジニアリング(Product-Line Engineering; PLE) – 共通資産を再利用した組織的・戦略的なプロダクト系列 開発・管理 – MDDが実現方法の一つ 17
  16. 16. 目次 • 正統なエンジニアリングと知識体系 • モデリングとモデル駆動開発 • モデリングと品質 • IoT時代のモデリング: 参照アーキテクチャと 接続 • IoT時代のモデリング: 測定・学習さらには育 成 • まとめ 18
  17. 17. SWEBOKに見るモデリングと品質 • モデル・手法 – モデリング、モデル種別、モデルの分析、開発手法 • エンジニアリング基礎 – 統計分析、モデリング・シミュレーション・プロトタイピング・ ・・ • 要求 – 要求の基礎、要求プロセス、要求抽出、要求分析、要求 仕様、要求妥当性確認、実践上の考慮事項 • 設計 – 設計の基礎、設計の主要問題、構造とアーキテクチャ、 ユーザインタフェース設計、設計品質の分析評価、設計 の表記、設計戦略・手法、設計ツール • 品質 – 品質の基礎(ソフトウェアセーフティー) • 計算基礎 – セキュア開発・保守(要求セキュリティ、設計セキュリティ・ ・・) 19
  18. 18. リダイレクトシステム開発の例[繁在家08] • 要求 品質要求を明確化で きるか? – シナリオ – ゴール指向分析 • 設計 品質を着実に組み入 れられるか? – パターン – 品質駆動設計・評価 リダイレクト システム リダイレクト システム [繁在家08] 繁在家学, 鷲崎 弘宜, "品質要求駆動型のアーキテクチャ分析設計手法によるWEBシステム開発", 情報処理学会 研究報告ソフトウェア工学研究会報告 SE160, pp.33-40, 2008. 20
  19. 19. 要求: 品質シナリオ 刺激源 成果物 環境 刺激 応答 応答測定法 A7 (環境)通常稼働時に (刺激)リダイレクト情報に変更があった場合(応答)運用 を止めずに反映できる。 A1 (環境)通常稼働時に (刺激)JMeterで高負荷をかけた場合 (応答)HTTPリクエストを秒間1000トランザクション処理できる。 [繁在家08] 繁在家学, 鷲崎 弘宜, "品質要求駆動型のアーキテクチャ分析設計手法によるWEBシステム開発", 情報処理学会 研究報告ソフトウェア工学研究会報告 SE160, pp.33-40, 2008. 21
  20. 20. 要求: ゴール指向分析 PC/携帯 リダイレクト処理 ができる PCと携帯を 判別する リダイレクト 種別を判別する マイルストーン分割 AND AND 効率性保守性 ISO9126の観点 時間 効率性 資源 効率性 変更性 試験性 ファイルを 読み込む APSの再起動なし にリダイレクト情報 の変更が反映され る ロギング モジュール 使用性 運用性 副特性 ゴールモデル 責任モデル 高いスルー プットが得ら れること 平均レスポンスタ イムが諸元値を 満たすこと CPU利用率 が諸元値以 下であること キャッシュに 情報を保持する マイルストーン 分割 デバッグ作業 及び試験が 容易に実施 できること 運用状況及びリ ダイレクト情報の 変更の確認が容 易に行えること A1 A2A3A5 A7 A9 リダイレクト情報 を容易に変更できること A6 A8 PC/携帯 判定モジュール リダイレクト情報 ファイル読込モジュール URLパラメータ 判定モジュール リダイレクト 実行モジュール 品質特性群 リダイレクト処理を 実行する ログの出力を 実行する ログデータを 提供する ログを 出力する AND AND リダイレクト情報 を取得する 事例分割 PC/携帯 リダイレクト処理 ができる PCと携帯を 判別する リダイレクト 種別を判別する マイルストーン分割 AND AND 効率性保守性 ISO9126の観点 時間 効率性 資源 効率性 変更性 試験性 ファイルを 読み込む APSの再起動なし にリダイレクト情報 の変更が反映され る ロギング モジュール 使用性 運用性 副特性 ゴールモデル 責任モデル 高いスルー プットが得ら れること 平均レスポンスタ イムが諸元値を 満たすこと CPU利用率 が諸元値以 下であること キャッシュに 情報を保持する マイルストーン 分割 デバッグ作業 及び試験が 容易に実施 できること 運用状況及びリ ダイレクト情報の 変更の確認が容 易に行えること A1 A2A3A5 A7 A9 リダイレクト情報 を容易に変更できること A6 A8 PC/携帯 判定モジュール リダイレクト情報 ファイル読込モジュール URLパラメータ 判定モジュール リダイレクト 実行モジュール 品質特性群 リダイレクト処理を 実行する ログの出力を 実行する ログデータを 提供する ログを 出力する AND AND リダイレクト情報 を取得する 事例分割 [繁在家08] 繁在家学, 鷲崎 弘宜, "品質要求駆動型のアーキテクチャ分析設計手法によるWEBシステム開発", 情報処理学会 研究報告ソフトウェア工学研究会報告 SE160, pp.33-40, 2008. 22
  21. 21. 設計: パターンと品質駆動設計 刺激源 成果物 環境 刺激 応答 応答測定法実現手法 アーキテクチャパターン A7. リダイレクト情報の 変更を停止無しで反映 A1. HTTPリクエストを秒間 1000トランザクション処理 定義ファイル 動的読込み 多重化・ 負荷分散 [繁在家08] 繁在家学, 鷲崎 弘宜, "品質要求駆動型のアーキテクチャ分析設計手法によるWEBシステム開発", 情報処理学会 研究報告ソフトウェア工学研究会報告 SE160, pp.33-40, 2008. 23
  22. 22. ノード FW 負荷 分散 クラスタ システム・基盤 PC/携帯 判定 URLパラ メータ判定 リダイレクト 実行 ロギング UI アスペクト型ロギング 定義ファイル動 的読込み リダイレクト 情報ファイル リダイレクト情報 ファイル読込 レイヤ アプリケーション [繁在家08] 繁在家学, 鷲崎 弘宜, "品質要求駆動型のアーキテクチャ分析設計手法によるWEBシステム開発", 情報処理学会 研究報告ソフトウェア工学研究会報告 SE160, pp.33-40, 2008. 24
  23. 23. MDDとセキュリティパターン Y. Shiroma, H. Washizaki, et al., “Model-Driven Security Patterns Application and Validation,” PLoP 2010 T. Kobashi, N. Yoshioka, H. Kaiya, H. Washizaki, T. Okubo, Y. Fukazawa, “Validating Security Design Pattern Applications by Testing Design Models,” International Journal of Secure Software Engineering, Vol. 5, Issue 4, pp.1-30, 2014. 25 <<Subject>> 従業員 id name 患者 id name Right accessType checkRight() Subject id name ProtectionObject id name 守られるべき 資産 アクセスしよう とするユーザ 権限のチェック <<Subject>> 従業員 id name 患者 id name Authenticator Proof_of_Identify Authentication Information <<Creates>> <<Subject>> 従業員 id name Authenticator Proof_of_Identify Authentication Information <<Creates>> Authorization (認可)パターン Right accessType checkRight() <<ProtOb>> 患者 id name
  24. 24. Nov. 14,26 window.onload = setEventHandler; function setEventHandler() { $(“reg_type”).onchange = calcPrice; ・・・ $(“reg_addcart”).onclick = addCart; }; function calcPrice() { ・・・ }; function addCart() { if(isValidInput()) { reqRunTrans(); } else { alert(“Invalid user inputs”); } }; function reqRunTrans() { new Ajax.Request(“runTrans.php”, { method: “GET”, parameters: getParams(), onSuccess: succeeded }); }; function succeeded() { disableAll(); jumpToConfirm(); }; [Maezawa13] Y. Maezawa, H. Washizaki, Y. Tanabe, S. Honiden, “Automated Verification of Pattern-Based Interaction Invariants in Ajax Applications,” IEEE/ACM ASE 2013
  25. 25. Nov. 14, [Maezawa13] Y. Maezawa, H. Washizaki, Y. Tanabe, S. Honiden, “Automated Verification of Pattern-Based Interaction Invariants in Ajax Applications,” IEEE/ACM ASE 2013 モデルのリバースエンジニアリング 二重注文
  26. 26. Nov. 14,28 window.onload = setEventHandler; function setEventHandler() { $(“reg_type”).onchange = calcPrice; ・・・ $(“reg_addcart”).onclick = addCart; }; function calcPrice() { ・・・ }; function addCart() { if(isValidInput()) { $(“addCart”).disabled = true; reqRunTrans(); } else { alert(“Invalid user inputs”); $(“addCart”).disabled = false; } }; function reqRunTrans() { new Ajax.Request(“runTrans.php”, { method: “GET”, parameters: getParams(), onSuccess: succeeded }); }; function succeeded() { disableAll(); jumpToConfirm(); }; [Maezawa13] Y. Maezawa, H. Washizaki, Y. Tanabe, S. Honiden, “Automated Verification of Pattern-Based Interaction Invariants in Ajax Applications,” IEEE/ACM ASE 2013
  27. 27. 目次 • 正統なエンジニアリングと知識体系 • モデリングとモデル駆動開発 • モデリングと品質 • IoT時代のモデリング: 参照アーキテクチャと 接続 • IoT時代のモデリング: 測定・学習さらには育 成 • まとめ 29
  28. 28. IoT/CPSの時代 • Internet of Things – 物理世界にあるモノのインターネットによる接続 – IoEへ: データ・情報、生体の接続 • Cyber Physical System – 物理世界の情報とサイバー世界の情報の融合 • 効率化、新ビジネス・価値の創発 30 岩野和生, 高島洋典, サイバーフィジカルシステムとIoT(モノのインターネット) 実世界と情報を結びつける ,情報管理 57, 2014. Cloud
  29. 29. IoT/CPS時代の課題 • 社会やビジネスとの接続 – バリューをどう創発するか? • 物理世界との接続 – ギャップは?(連続/離散、(非)同期) • ヘテロな構成 – 異領域やライフサイクルをどう扱うか? • 不確実な未来 – 変化を予測できるか?対応できるか? • 品質、特にセキュリティ&セーフティ&プ ライバシ – リスクの増大、全体を保証できるか? 31 岩野和生, 高島洋典, サイバーフィジカルシステムとIoT(モノのインターネット) 実世界と情報を結びつける ,情報管理 57, 2014. K. Marzullo, NSF Cyber Physical Systems (CPS) Program, 2013. P. Patel and D. Cassou, Enabling High-level Application Development for the Internet of Things, JSS 103, 2015.
  30. 30. ISO/IEC 25010:2011 32 利用時の品質 Quality in use 有効性 Effectivenes s 効率性 Efficiency リスク回避性 Freedom from risk 満足性 Satisfaction 利用状況網羅性 Context coverage 内部品質・外部品質 Internal and external quality 機能 適合性 Functional suitability 互換性 Compatibilit y セキュリ ティ Security 信頼性 Reliability 使用性 Usability 性能効率性 Performance efficiency 保守性 Maintainability 移植性 Portabilit y Functional completen ess Co- existence Confidenti ality Maturity Appropriateness recognisability Time- behavior Analysability Adaptabi lity Functional correctne ss Interoperabi lity Integrity Fault tolerance Learnability Resource utilization Modifiability Installabi lity Functional appropriat eness Non- repudiation Recoverab ility Operability Capacity Reusability Replacea bility Accountab ility Availabilit y User error protection Testability Authenticit y UI aesthetics Modularity Accessibility ISO/IEC 25010:2011 Systems and software engineering-Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models
  31. 31. IoT/CPS時代の挑戦の可能性 33 岩野和生, 高島洋典, サイバーフィジカルシステムとIoT(モノのインターネット) 実世界と情報を結びつける ,情報管理 57, 2014. K. Marzullo, NSF Cyber Physical Systems (CPS) Program, 2013. P. Patel and D. Cassou, Enabling High-level Application Development for the Internet of Things, JSS 103, 2015. 参照アーキテクチャ バリューや物理世界 との接続モデリング 測定・予測および適応 データと機械学習によ る品質保証の改善 社会やビジネスとの接続 物理世界との接続 ヘテロな構成 不確実な未来 品質、特にセキュリティ& セーフティ&プライバシ 知識ベース、ガイドライン エコシステム 適応的追跡・回復
  32. 32. 参照アーキテクチャに向けて • IISF-SSR「クラウドサービ ス・セキュリティ・プライバ シメタモデル」代表: 鷲崎 http://www.iisf.or.jp/SSR/ • EU ClouTプロジェクト http://clout-project.eu/ 34 Platform (プラットフォーム) Problem (問題) Bridge (ブリッジ) Solution (解決)Target (対象) Application (アプリケーション) Infrastructure (インフラ) メタモデル クラウド 知識ベース パター ン プラク ティス 事例 要求 アーキテクチャ 新規 分析評価 H. Washizaki, “A Metamodel for Security and Privacy Knowledge in Cloud Services,” Proceedings of the 12th IEEE World Congress on Services (IEEE SERVICES 2016)
  33. 33. モデル駆動IoT開発[Patel] 35 P. Patel and D. Cassou, Enabling High-level Application Development for the Internet of Things, JSS 103, 2015. • 関心事の分離 – ドメイン – 機能 – 配備 – プラットフォーム ドメイン 配備 機能 プラットフォーム
  34. 34. モデル駆動IoT開発(つづき) [Patel] • モデル変換 とコード生成 – 関心事ごと のDSL – マッピング とリンク 36 P. Patel and D. Cassou, Enabling High-level Application Development for the Internet of Things, JSS 103, 2015. ドメイン 配備 アーキテクチャ プラットフォーム
  35. 35. ゴール指向による接続・整合 GQM+Strateges 37 顧客満足度10%向上 製品の信頼性 を改善する 製品の使いや すさを改善する 不具合指摘を 20%削減 テスト効率 を改善する 保守性を 改善する 顧客満足度調査 不具合データ プログラムの複雑さ OG. 上位 組織目標 S. 戦略 S. 戦略 OG. 下位 組織目標 M. メトリクス Jens Heidrich, Adam Trendowicz, “測定を基にした、ソフトウェア戦略とビジネス目標の整合” IPA/SEC資料 鷲崎ほか監訳, ゴール&ストラテジ入門: 残念なシステムの無くし方 (GQM+Strategies), オーム社, 2015 M. メトリクス
  36. 36. Trace in all directions Trace ANY (‘16-’20 代表: 鷲崎) 38 Req. ER, UML SimulinkGoal models SysML, UML JavaScript Java C Cloud Reliable trace by transitive and interactive recovery Modularize and Reuse, change managementExtractionVerification Hironori Washizaki, Yann-Gael Gueheneuc, Foutse Khomh, “A Taxonomy for Program Metamodels in Program Reverse Engineering,” 32nd IEEE International Conference on Software Maintenance and Evolution (ICSME)
  37. 37. 目次 • 正統なエンジニアリングと知識体系 • モデリングとモデル駆動開発 • モデリングと品質 • IoT時代のモデリング: 参照アーキテクチャと 接続 • IoT時代のモデリング: 測定・学習さらには育 成 • まとめ 39
  38. 38. IoT/CPS時代の挑戦の可能性 40 岩野和生, 高島洋典, サイバーフィジカルシステムとIoT(モノのインターネット) 実世界と情報を結びつける ,情報管理 57, 2014. K. Marzullo, NSF Cyber Physical Systems (CPS) Program, 2013. P. Patel and D. Cassou, Enabling High-level Application Development for the Internet of Things, JSS 103, 2015. 参照アーキテクチャ バリューや物理世界 との接続モデリング 測定・予測および適応 データと機械学習によ る品質保証の改善 社会やビジネスとの接続 物理世界との接続 ヘテロな構成 不確実な未来 品質、特にセキュリティ& セーフティ&プライバシ 知識ベース、ガイドライン エコシステム 適応的追跡・回復
  39. 39. 品質測定: 構造的複雑さ(結合性) • Coupling factor (COF) [Abreuら 95] – オブジェクト指向クラ ス間凝集度のメトリ ック – ETロボコン実証 [Washizaki06] 41 y = -4.0214x + 2.86 1 1.5 2 2.5 3 3.5 4 4.5 0 0.05 0.1 0.15 0.2 0.25 0.3COF 審査員の定性評価 n(n-1)/2モジュール数: n (頂点数)2-(頂点数)-(全継承子クラス数×2) (継承を除く有向参照辺の数) H. Washizaki, et al., “Experiments on Quality Evaluation of Embedded Software in Japan Robot Software Design Contest,” 28th IEEE/ACM International Conference on Software Engineering (ICSE 2006)
  40. 40. 品質測定: 構造的複雑さ(凝集性) 42 図A 図B 通常走行 ロボット 階段走行 坂道走行 ロボット情報 基本走行 走行管理 階段管理 坂道管理 図B 図A • 責務が大きいクラス を含まない設計モデ ルは構造を十分検 討されていない N. Tsuda, H. Washizaki, Y. Fukazawa, “Evaluating Structural Validity of UML Class Diagrams by Measuring the Number of Highly Responsible Classes,” 13th IASTED International Conference on Software Engineering (SE2014)
  41. 41. 品質測定: 意味的複雑さ • Class Relational Structure Understandability (CRSU) [Nakamura11] – 構造と意味のギャップ の定量化 43 y = 11.778x - 7.0508 1 1.5 2 2.5 3 3.5 4 4.5 0.7 0.75 0.8 0.85 0.9 CRSU 審査員の定性評価 Y. Nakamura, K. Sakamoto, K. Inoue, H. Washizaki and Y. Fukazawa, “Evaluation of Understandability of UML Class Diagrams by Using Word Similarity,” The Joint Conference of the 21st International Workshop on Software Measurement (IWSM) and the 6th International Conference on Software Process and Product Measurement (Mensura), 2011
  42. 42. 事例: 機械学習によるメトリクス・システム改善 (コマツ との共同研究) 44 10 25 300 150 M. 関数の数 M.実行行数 OK NG 71 M. 関数の数 M.実行行数 OK NG △ OK, ○ NG N. Tsuda, et al. Iterative Process to Improve GQM Models with Metrics Thresholds to Detect High-risk Files, SANER'15 Doctoral
  43. 43. 人材育成に向けて • 抽象化能力がカギ [Kramer07] – 詳細の捨象、共通部の一般化 – 「測定」による能力把握と向上 – 数学、問題中心のモデリング作業による習得 • 様々な領域把握と接続がカギ – 様々なビジネス、システム、ソフトウェア – ゴール指向 • アーキテクチャ設計能力がカギ – 様々な品質特性: セキュリティ、セーフティー・・・ – 品質駆動設計 – 各種パターン 45 Jeff Kramer, “Is abstraction the key to computing,” Communications of the ACM, 50(4), 2007
  44. 44. 目次 • 正統なエンジニアリングと知識体系 • モデリングとモデル駆動開発 • モデリングと品質 • IoT時代のモデリング: 参照アーキテクチャと 接続 • IoT時代のモデリング: 測定・学習さらには育 成 • まとめ 46
  45. 45. 取り上げた技術のSWEBOK上のつながり 47 要求 構築設計 テスティング マネジメント プロセス 保守 構成管理 モデル・手法 品質 経済 プロフェッショナル 実践 要求の基礎 要求プロセス 要求抽出 要求分析 要求仕様 要求妥当性確認 実践上の考慮事項 設計の基礎 設計の主要問題 構造とアーキテクチャ ユーザインタフェース設計 設計品質の分析評価 設計の表記 設計戦略・手法 設計ツール 構築の基礎 構築の管理 実践上の考慮事項 構築技法 構築ツール テストの基礎 テストレベル テスト技法 テスト関連計量尺度 テストプロセス テストツール 保守の基礎 保守の主要問題 保守プロセス 保守技法 保守ツール SCMプロセスのマネ ジメント 構成の識別 構成制御 構成状態記録・報告 構成監査 リリース管理・配布 構成管理ツール 開始と範囲定義 プロジェクト計画 プロジェクト実施 レビュー・評価 終結 計量 マネジメントツール プロセス定義 ライフサイクル プロセスアセス メント・改善 プロセス計量 プロセスツール モデリング モデル種別 モデルの分析 開発手法 品質の基礎 品質マネジメントプ ロセス 実践上の考慮事項 品質ツール プロフェッショナリズム 集団ダイナミクス・心理 コミュニケーションスキ ル 経済の基礎 ライフサイクル経済 リスク・不確実性 経済分析手法 実践上の考慮事項 計算基礎 数学基礎 エンジニアリング 基礎 UML MDD •シナリオ •ゴール指向分析 •品質駆動設計・評価 •パターン •モデルの測定 セキュリティ パターン 形式検証 クラウド 品質特性
  46. 46. まとめ • 共通基盤上でより良く、早く、幸せに – 知識体系上での知識の整理、深耕、拡大 – プロフェッショナリズム • モデリング再考 – モデリング成熟度とモデル駆動開発 • モデリングと品質 – 検証、作り込み • IoT/CPS時代の課題と挑戦 – 品質特性の移り変わり – モデル駆動開発と参照アーキテクチャ – バリューとの接続モデル – 測定とシステム改善 – 人材育成 48

×