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.

SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質

1,018 views

Published on

鷲崎弘宜, SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質

Published in: Software
  • Be the first to comment

SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質

  1. 1. 2016年9月9日 講演会 SWEBOKにみるソフトウェアエンジニSWEBOKにみるソフトウェアエンジニ アリングの全体、および、 つながるアリングの全体、および、 つながる 時代のソフトウェアモデリング&品質 鷲崎 弘宜 わしざき ひろのり 鷲崎 弘宜 早稲田大学早稲田大学 グローバルソフトウェアエンジニアリング研究所 Twitter: @Hiro_Washi washizaki@waseda.jp http://www.washi.cs.waseda.ac.jp/http://www.washi.cs.waseda.ac.jp/
  2. 2. • 早稲田大学グローバルソフトウ ェアエンジニアリング研究所所ェアエンジニアリング研究所所 長・教授長・教授 • 国立情報学研究所客員教授 • 株式会社 システム情報 社外取 締役締役 • ISO/IEC/JTC1/SC7/WG20• ISO/IEC/JTC1/SC7/WG20 Convenor • SEMAT Japan Chapter Chair• SEMAT Japan Chapter Chair • IEEE CS Japan Chapter Secretary• IEEE CS Japan Chapter Secretary • IEEE ICST 2017 PC Co-ChairIEEE ICST 2017 PC Co-Chair 2
  3. 3. 目次目次 • SWEBOKに見る広がり • IoT/CPS時代の課題と挑戦• IoT/CPS時代の課題と挑戦 • ソフトウェアモデ リング技術• ソフトウェアモデ リング技術 • ソフトウェア品質技術• ソフトウェア品質技術 • まとめ 3
  4. 4. エンジニアリンエンジニアリン グとは科学にグとは科学に 裏打ちされた裏打ちされた 技術活動、学 問体系 4
  5. 5. ソフトウェアエンジニアリングとはソフトウェアエンジニアリングとは the application of a systematic, disciplined, quantifiable approach to the development,quantifiable approach to the development, operation, and maintenance of software; thatoperation, and maintenance of software; that is, the application of engineering to software) SWEBOK v3.0SWEBOK v3.0 5
  6. 6. 我々のソフトウェ我々のソフトウェ ア技術活動は、ア技術活動は、 正統なエンジニ正統なエンジニ アリングか?アリングか? 6
  7. 7. 正統なエンジニアリング 職業人が果たす判断,職業人が果たす判断, 行為,助言が,社会で 実質的な価値を形成実質的な価値を形成 コミュニティで妥当と確コミュニティで妥当と確 認される知識が科学的 基盤に基づく 知識・適格性の妥当 性をコミュニティで性をコミュニティで 判定できる環境 7 松本吉弘, “エンジニアリング基礎知識体系とISO標準”, ITSCJ Newsletter, No.88, 2010. Paul Star, “The Social Transformation of American Medicine,” Basic Books, 1982.
  8. 8. 知識の島々知識の島々 知識 プロフェッショナリズム知識 プロフェッショナリズム ベストプラクティベストプラクティ スに裏打ちさ れた能力れた能力 経験、ガイド 知識の島々 同値分割 経験、ガイドカバレッジ 同値分割 インスペクション UML Java, C# アジャイル直交表 参考 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13 Java, C# アジャイル 8
  9. 9. 9
  10. 10. 活動 To Do Doing Done 活動 プラクティス、プラクティス、 パターンと手法 知識の体系 SWEBOK SQuBOK知識の体系 SQuBOK ・・・ 知識の島々 ・・・ 知識の島々 10
  11. 11. 知識体系 Body Of Knowledge知識体系 Body Of Knowledge BOK ガイド 妥当と認められ た知識群を整 BOK ガイド 知識体系へのガイド た知識群を整 理・構造化し ・・・カテゴリ 知識領域の大分類 (BOKによっては無し)理・構造化し た全体 ・・・知識領域 (BOKによっては無し) 知識の技術・プロセス 専門領域の定 ・・・知識領域 トピック 上の分類 専門領域の定 義づけ トピック (知識項目) 最小の知識単位 (技術・プロセス知識) 文献文献 (技術・プロセス知識) 知識の詳細記述・実体文献 知識の詳細記述・実体 11
  12. 12. 組織組織 ビジネ BABOK ビジネ ス PMBOK BABOK システ ム PMBOK BABOK REBOK SEBOK ム PMBOK REBOK SEBOK SWEBOK ソフト SWEBOK SQuBOK ソフト ウェア SWEBOK SQuBOKSQuBOK 12
  13. 13. Guide to the Software Engineering Body of Knowledge (SWEBOK)(SWEBOK) SQuBOKガイド • 背景 – IEEE CS/ACM, Software Engineering Coordinating Committee SQuBOK 知識領域 ・・・ ・・・ Coordinating Committee – 1998年開始、2001年 Trial v0.7, v1.0, 2004 年 v2004、2014年 v3.0 知識領域 ・・・ ・・・v2004 2014 v3.0 – ISO/IEC JTC1/SC7/WG20 におけるTR化 ISO/IEC TR 19759:2005 (v2004) – http://www.swebok.org/– http://www.swebok.org/ • 目的 – 世界中への一貫性ある見解の普及推進、 他分野との境界 トピック トピック – 他分野との境界 – 内容の性格付け、知識体系へのアクセス の促し 推薦書籍– カリキュラムおよび技術者認証 CSDA, CSDP の基礎 • 対象読者 推薦書籍 推薦論文 国際規格など• 対象読者 – ソフトウェアエンジニアリングの実務家、研 究者、学習者 – 特に、大学卒業後4年以上の実務経験者 国際規格など – 特に、大学卒業後4年以上の実務経験者 が有すべき知識体系 13
  14. 14. SWEBOK 2004: 10の知識領域(KA: Knowledge Area) +8個の関連分野: コンピュータエンジニアリング、コンピュータサイエンス、マネジメント、数学、 要求 設計 構築 テスティング 保守 テスティングの基礎 +8個の関連分野: コンピュータエンジニアリング、コンピュータサイエンス、マネジメント、数学、 プロジェクトマネジメント、品質マネジメント、ソフトウェア人間工学、システムエンジニアリング 要求の基礎的概念 設計の基礎的概念 テスティングの基礎 的概念 保守の基礎的概念 要求エンジニアリン グプロセス 設計における主要な 問題 テストレベル 構造とアーキテク 保守プロセス 構築の基礎的概念 要求の抽出 構造とアーキテク チャ テスト技法 要求分析 設計品質の分析評価 保守プロセス テストに関した計量 尺度 構築の管理 保守における主要な 課題 要求仕様 設計のための表記 要求の妥当性確認 設計戦略および手法 実践上の考慮事項 保守のための技法テストプロセス 尺度 構築の管理 課題 実践上の考慮事項 設計戦略および手法 実践上の考慮事項 保守のための技法テストプロセス 構成管理 マネジメント プロセス ツールおよび手法 品質 SCMプロセスのマネジ プロセス実現および変SCMプロセスのマネジ メント 開始と範囲定義 プロセス実現および変 更 構成の識別 プロジェクト計画 プロセス定義 品質の基礎的概念 ツール 構成制御 プロジェクト実施 構成状態記録および報 告 レビューおよび評価 プロセスアセスメント マネジメントプロセス 構成監査 終結 リリース管理および配 布 計量 開発手法 プロセス計量 実践上の考慮事項 14
  15. 15. SWEBOK V3 (2014): 15の知識領域 要求 構築設計 テスティング 保守要求 構築設計 テスティング 保守 要求の基礎 要求プロセス 設計の基礎 設計の主要問題 構築の基礎 構築の管理 テストの基礎 テストレベル 保守の基礎 保守の主要問題 要求抽出 要求分析 要求仕様 要求妥当性確認 構造とアーキテクチャ ユーザインタフェース設計 設計品質の分析評価 設計の表記 実践上の考慮事項 構築技法 構築ツール テスト技法 テスト関連計量尺度 テストプロセス テストツール 保守プロセス 保守技法 保守ツール マネジメント プロセス構成管理 モデル・手法 要求妥当性確認 実践上の考慮事項 設計の表記 設計戦略・手法 設計ツール テストツール マネジメント プロセス構成管理 モデル・手法 品質 SCMプロセスのマネ ジメント 開始と範囲定義 プロジェクト計画 プロセス定義 ライフサイクル モデリング モデル種別 品質の基礎 品質マネジメントプジメント 構成の識別 構成制御 構成状態記録・報告 構成監査 プロジェクト計画 プロジェクト実施 レビュー・評価 終結 ライフサイクル プロセス査定・ 改善 計量 プロセスツール モデル種別 モデルの分析 開発手法 品質マネジメントプ ロセス 実践上の考慮事項 品質ツール 経済 プロフェッショナル 構成監査 リリース管理・配布 構成管理ツール 計量 マネジメントツール プロセスツール 計算基礎 数学基礎 エンジニアリング 経済 プロフェッショナル 実践 プロフェッショナリズム 集団ダイナミクス・心理 経済の基礎 ライフサイクル経済 計算基礎 数学基礎 エンジニアリング 基礎 15 集団ダイナミクス・心理 コミュニケーションスキ ル ライフサイクル経済 リスク・不確実性 経済分析手法 実践上の考慮事項
  16. 16. 組織組織 ビジネビジネ ス PMBOK BABOK ス システ PMBOK BABOK REBOK SEBOK ム PMBOK REBOK SEBOK SWEBOKSWEBOKV3 ソフト SWEBOK SQuBOK SWEBOKV3 ソフト ウェア SWEBOK SQuBOK SWEBOKV3 計算、数学、エンジニアリング SQuBOK プロフェッショナリズム 計算、数学、エンジニアリング 16
  17. 17. V3改訂に見るソフトウェアエンジニアリングの傾向 • プロフェッショナリズムの重要性の高まり• プロフェッショナリズムの重要性の高まり – 倫理、法令、技術者認定、コミュニケーション– 倫理、法令、技術者認定、コミュニケーション • ソフトウェアの外への拡大 – ビジネス、経済– ビジネス、経済 – 計算、数学、エンジニアリング • 深化や定着• 深化や定着 – 各種ツール・自動化– 各種ツール・自動化 – モデリング: モデリングの原則、表記、種別、分析 – 構築技法: テンプレート、契約による設計、MDA– 構築技法: テンプレート、契約による設計、MDA – テスト技法: モデルベース、ペアワイズ、テスト駆動 • 新たな品質特性• 新たな品質特性 – ユーザビリティ: UI設計、インタラクションテスティング– ユーザビリティ: UI設計、インタラクションテスティング – セーフティ: Airborne Systems and Equipment Certification17
  18. 18. 目次目次 • SWEBOKに見る広がり • IoT/CPS時代の課題と挑戦• IoT/CPS時代の課題と挑戦 • ソフトウェアモデ リング技術• ソフトウェアモデ リング技術 • ソフトウェア品質技術• ソフトウェア品質技術 • まとめ 18
  19. 19. IoT/CPSの時代 • Internet of Things – 物理世界にあるモノのインターネットによる接続– 物理世界にあるモノのインターネットによる接続 – IoEへ: データ・情報、生体の接続 • Cyber Physical System – 物理世界の情報とサイバー世界の情報の融合– 物理世界の情報とサイバー世界の情報の融合 • 効率化、新ビジネス・価値の創発 Cloud 19 岩野和生, 高島洋典, サイバーフィジカルシステムとIoT(モノのインターネット) 実世界と情報を結びつける ,情報管理 57, 2014.
  20. 20. IoT/CPS時代の課題IoT/CPS時代の課題 • 社会やビジネスとの接続• 社会やビジネスとの接続 – バリューをどう創発するか? • 物理世界との接続 – ギャップは?(連続/離散、(非)同期)– ギャップは?(連続/離散、(非)同期) • ヘテロな構成 – 異領域やライフサイクルをどう扱うか?– 異領域やライフサイクルをどう扱うか? • 不確実な未来 – 変化を予測できるか?対応できるか?– 変化を予測できるか?対応できるか? • 品質、特にセキュリティ&セーフティ&プ ライバシライバシ – リスクの増大、全体を保証できるか? 20 岩野和生, 高島洋典, サイバーフィジカルシステムと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.
  21. 21. ISO/IEC 9126-1:2001 利用時の品質利用時の品質 Quality in use 有効性 生産性 安全性 満足性有効性 Effectiveness 生産性 Productivity 安全性 Safety 満足性 Satisfaction 内部品質・外部品質内部品質・外部品質 Internal and external quality 機能性 信頼性 使用性 効率性 保守性 移植性機能性 Functionality 信頼性 Reliability 使用性 Usability 効率性 Efficiency 保守性 Maintaina bility 移植性 Portability bility Suitability Maturity Understandability Time behavior Analyzability Adaptability Accurateness Fault tolerance Learnability Resource Changeabilit InstallabilityAccurateness Fault tolerance Learnability Resource behavior Changeabilit y Installability Interoperability Recoverability Operability Compliance Stability Co- existenceexistence Security Compliance Attractiveness Testability Replaceabilit y 21 y Compliance Compliance Compliance Compliance ISO/IEC 9126-1:2001,Software engineering−Product quality−Part 1: Quality model
  22. 22. ISO/IEC 25010:2011 利用時の品質 ISO/IEC 25010:2011 Systems and software engineering-Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models ISO/IEC 25010:2011Quality in use 有効性 Effectivenes 効率性 Efficiency リスク回避性 Freedom from risk 満足性 Satisfaction 利用状況網羅性 Context coverageEffectivenes s Efficiency Freedom from risk Satisfaction Context coverage 内部品質・外部品質 Internal and external qualityInternal and external quality 機能 適合性 Functional 互換性 Compatibilit y セキュリ ティ Security 信頼性 Reliability 使用性 Usability 性能効率性 Performance efficiency 保守性 Maintainability 移植性 Portabilit yFunctional suitability y Security efficiency y Functional completen Co- existence Confidenti ality Maturity Appropriateness recognisability Time- behavior Analysability Adaptabi litycompleten ess existence ality recognisability behavior lity Functional correctne Interoperabi lity Integrity Fault tolerance Learnability Resource utilization Modifiability Installabi litycorrectne ss lity tolerance utilization lity Functional appropriat Non- repudiation Recoverab ility Operability Capacity Reusability Replacea bilityappropriat eness repudiation ility bility Accountab ility Availabilit y User error protection Testability Authenticit UI aesthetics Modularity 22 Authenticit y UI aesthetics Modularity Accessibility
  23. 23. IoT/CPS時代の挑戦の可能性IoT/CPS時代の挑戦の可能性 参照アーキテクチャ社会やビジネスとの接続 物理世界との接続 知識ベース、ガイドライン エコシステム バリューや物理世界 物理世界との接続 ヘテロな構成 エコシステム バリューや物理世界 を含むモデリング ヘテロな構成 予測と適応的 不確実な未来 データと機械学習によ 品質、特にセキュリティ& 適応的追跡・回復 データと機械学習によ る品質保証の改善 セーフティ&プライバシ 23 岩野和生, 高島洋典, サイバーフィジカルシステムと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.
  24. 24. 目次目次 • SWEBOKに見る広がり • IoT/CPS時代の課題と挑戦• IoT/CPS時代の課題と挑戦 • ソフトウェアモデ リング技術• ソフトウェアモデ リング技術 • ソフトウェア品質技術• ソフトウェア品質技術 • まとめ 24
  25. 25. IoT/CPS時代の挑戦の可能性IoT/CPS時代の挑戦の可能性 参照アーキテクチャ社会やビジネスとの接続 物理世界との接続 知識ベース、ガイドライン エコシステム バリューや物理世界 物理世界との接続 ヘテロな構成 エコシステム バリューや物理世界 を含むモデリング ヘテロな構成 予測と適応的 不確実な未来 データと機械学習によ 品質、特にセキュリティ& 適応的追跡・回復 データと機械学習によ る品質保証の改善 セーフティ&プライバシ 25 岩野和生, 高島洋典, サイバーフィジカルシステムと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.
  26. 26. モデルとはモデルとは 「現実世界の何か」に対する「認知上の目的」 のためのコスト上効率的な「代用物」のためのコスト上効率的な「代用物」 メタモデル ~に従う システム モデル ~の表現 ~に従う システム モデル 28日高宗一郎, Jean BEZIVIN, 胡振江, Frederic JOUAULT, 『モデル駆動工学の原理と応用』 (1) モデル駆動工学の歴史と背景, コンピュータソフトウェア, 30(3), 2013
  27. 27. プログラミングからモデリングへ29 プログラミングからモデリングへ • 「どう動かすのか」から「何をしたいのか」へ • 品質の早期の作り込みと検証• 品質の早期の作り込みと検証 • コミュニケーション 抽象度 要求要求 モデル プログラム アセンブラアセンブラ 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 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 MOV ADD… MOV ADD… updateObserver(Subject s, Observer o);updateObserver(Subject s, Observer o); ハード /システム 時代
  28. 28. 31 モデリングの成熟度 Lv0: モデルなし – 口頭伝達、その場しのぎの修正 モデリングの成熟度 – 口頭伝達、その場しのぎの修正 Lv1: 文書のみ – あいまい、主観がそのまま– あいまい、主観がそのまま Lv2: 文書+図 – 理解しやすい– 理解しやすい Lv3: 図+文書Lv3: – 主観が客観に Lv4: 精密な図+文書Lv4: 精密な図+文書 – コードとの自動接続 Lv5: 図のみ 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); Lv5: 図のみ – MDDが目指す未来 参考: ヨシュヴァルメル他: UML/MDAのためのオブジェクト制約言語OCL, エスアイビーアクセス, 2004
  29. 29. 32 モデル駆動開発とは • モデル変換• モデル変換 – モデルに付加情報を加え て、異なる視点のモデルや 飛行船とは・・・ 基地局とは・・・ 出発地 目的地 WP1 WP2 出発地 目的地 WP1 WP2 て、異なる視点のモデルや コードを得る – 視点の設定、モデルの記 回転の指示が CIM – 視点の設定、モデルの記 述・操作の重要性 – 関心事の分離 回転の指示が あると・・・ PIM– 関心事の分離 • Computation Independent • Platform Independent PIM • Platform Independent • Platform Specific • モデル駆動開発(MDD) プロトコルXXXに 従い16bitデータ YYYを受信し PM CPU, モータ,• モデル駆動開発(MDD) – 分析・設計情報をモデルと して表現 YYYを受信し CPU, モータ, OS, 言語・・・ して表現 – モデル変換の繰り返し – 可搬性、再利用性、相互 class Ship{ void move() PSM – 可搬性、再利用性、相互 運用性向上 x = y + 1; コード
  30. 30. 周辺領域との関係周辺領域との関係 • ドメイン特化言語(Domain-Specific Language; DSL) – 特定の問題領域(ドメイン)用の開発言語– 特定の問題領域(ドメイン)用の開発言語 – MDDにおけるモデリング言語として • ドメイン駆動設計(Domain-Driven-Design; DDD)• ドメイン駆動設計(Domain-Driven-Design; DDD) – ドメインモデル中心の考え方 – MDDがパターン・実現方法の一つ– MDDがパターン・実現方法の一つ • プロダクトラインエンジニアリング(Product-Line Engineering; PLE)Engineering; PLE) – 共通資産を再利用した組織的・戦略的なプロダクト系列 開発・管理開発・管理 – MDDが実現方法の一つ 33
  31. 31. モデル駆動IoT開発の例 [Patel] •• 関心事の分離 – ドメイン– ドメイン – 機能 – 配備– 配備 – プラットフォーム– プラットフォーム 34 P. Patel and D. Cassou, Enabling High-level Application Development for the Internet of Things, JSS 103, 2015.
  32. 32. モデル駆動IoT開発の例(つづき) [Patel] • モデル変換• モデル変換 とコード生成 – 関心事ごと– 関心事ごと のDSL – マッピング– マッピング とリンク 35 P. Patel and D. Cassou, Enabling High-level Application Development for the Internet of Things, JSS 103, 2015.
  33. 33. 参照アーキテクチャに向けて: セキュリティ&プライバシメタモデルセキュリティ&プライバシメタモデル • 情報科学国際交流財団 SSRフォーラム プロジェクト ’15-’16• 情報科学国際交流財団 SSRフォーラム プロジェクト ’15-’16 • クラウドサービス開発運用におけるメタモデル クラウド要求 Bridge (ブリッジ)知識ベース アーキテクチャ 新規 分析評価 Problem (問題) ( ) Solution (解決)Target 知識ベース パター ン プラク ティス 事例 アーキテクチャ Target (対象) Application (アプリケーション) Infrastructure (インフラ)メタモデル Platform (プラットフォーム) 36H. Washizaki, “A Metamodel for Security and Privacy Knowledge in Cloud Services,” Proceedings of the 12th IEEE World Congress on Services (IEEE SERVICES 2016)
  34. 34. メタモデルに基づく知識活用の例 contents = Protecting the confidentiality of personal information : PrivacyGoal : PrivacyPolicy untrustedOnlineService : Attacker (Miss User) Register user profile (Server) : UseCaseTrustedProvider : CloudServiceRegister user profile (client) : UseCase: User 1: connectSecurely(target) 1.1: connectSecurely(target)() メタモデルに基づく知識活用の例 contents = Ensuring persons' privacy and specifically preventing unauthorized access to their personal information Name = Encryption of the personal information of the user prior to storing it with, or transferring it through an online service : PrivacyPattern contents = Generating a strong encryption key : Guideline: CloudService 個人情報が盗聴されてしまう : Vulnerability TrustedCloudServiceProvider : Organization (Provider) connection 2.1: connection.transfer(encryptedPersonalInformation) 2.1.1: connection.transfer(encryptedPersonalInformation) 2.1.1.1: decrypt(encryptedPersonalInformation)() 2: input(personalInformation) 2.1.1.1.1: business logic() name = Register user profile : UseCase authority = Share user : User : PersonalInformation codeTemplate = ... contents = Generating a strong encryption key codeSnippet = /* Code for Generating a strong encryption key */ : CodingRule authority = user with no login untrustedOnlineService : Attacker (Miss User) authority = user with no login untrusted3rdParty : Attacker (Miss User) Encryption : Function Manage(Protect) name = Unauthorized access to personal information : MisUseCase access :プライバシゴール 構造 振る舞い:プライバシポリシ ユーザ管理キーでユーザ管理キーで 暗号化:パターン 暗号化キー生成:暗号化キー生成: ガイドライン盗聴: 脆弱性 暗号化:パターン ガイドライン キー コード断片:キー コード断片: 盗聴: 脆弱性 規約 キー コード断片: コーディング規約:クラウドサービス :プロバイダ :ミスユース 37暗号化:機能 :個人情報 :ミスユース ケース :攻撃者
  35. 35. ゴールやバリューとの接続 GQM+Strateges 顧客満足度10%向上 顧客満足度調査OG. 上位 M. メトリクス 顧客満足度10%向上 顧客満足度調査OG. 上位 組織目標 製品の信頼性 製品の使いや S. 戦略 を改善する すさを改善するS. 戦略 不具合指摘を 20%削減 不具合データOG. 下位 M. メトリクス 20%削減 不具合データ プログラムの複雑さ OG. 下位 組織目標 テスト効率 保守性を S. 戦略 38 テスト効率 を改善する 保守性を 改善する S. 戦略 参考: Jens Heidrich, Adam Trendowicz, “測定を基にした、ソフトウェア戦略とビジネス目標の整合” IPA/SEC資料
  36. 36. 事例: 新規事業の組織目標、根拠、戦略の整合 39
  37. 37. 目次目次 • SWEBOKに見る広がり • IoT/CPS時代の課題と挑戦• IoT/CPS時代の課題と挑戦 • ソフトウェアモデ リング技術• ソフトウェアモデ リング技術 • ソフトウェア品質技術• ソフトウェア品質技術 • まとめ 40
  38. 38. IoT/CPS時代の挑戦の可能性IoT/CPS時代の挑戦の可能性 参照アーキテクチャ社会やビジネスとの接続 物理世界との接続 知識ベース、ガイドライン エコシステム バリューや物理世界 物理世界との接続 ヘテロな構成 エコシステム バリューや物理世界 を含むモデリング ヘテロな構成 予測と適応的 不確実な未来 データと機械学習によ 品質、特にセキュリティ& 適応的追跡・回復 データと機械学習によ る品質保証の改善 セーフティ&プライバシ 41 岩野和生, 高島洋典, サイバーフィジカルシステムと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. SWEBOK V3 (2014)における品質SWEBOK V3 (2014) • 「ソフトウェア品質はソフトウェアエンジニアリングのい たるところにかかわる問題」たるところにかかわる問題」 • ソフトウェア品質KA+他の全てのKA ソフトウェア品質 ソフトウェア品質 の基礎的概念 ソフトウェア品質 マネジメント 実践上の考慮 事項 ソフトウェ ア品質 の基礎的概念 マネジメント プロセス 事項 ソフトウェアエンジニ ソフトウェア品質保証 ソフトウェア品質要求 ア品質 ツール ソフトウェアエンジニ アリング文化・倫理 品質の価値・コスト ソフトウェア品質保証 検証・妥当性確認 ソフトウェア品質要求 欠陥の特徴づけ ソフトウェア品質マ 品質の価値・コスト モデル・品質特性 品質改善 レビュー・監査 ソフトウェア品質マ ネジメント技法 ソフトウェア品質計量(測定)品質改善 ソフトウェア品質計量(測定) 42 ソフトウェアセーフティー
  40. 40. SWEBOKに見る品質保証の技術SWEBOKに見る品質保証の技術 • テスティング – 基礎、テストレベル、技法、計量尺度、プロセス、– 基礎、テストレベル、技法、計量尺度、プロセス、 ツール • 品質 – 品質の基礎、品質マネジメントプロセス、実践上– 品質の基礎、品質マネジメントプロセス、実践上 の考慮事項、品質ツール • エンジニアリング基礎 – 実証手法・実験的技法、統計分析、計量(測定)、– 実証手法・実験的技法、統計分析、計量(測定)、 根本原因分析 43
  41. 41. テスト技術ロードマップ FaultFault localization 44 A. Bertolino, “Software Testing Research: Achievements, Challenges, Dreams,” FoSE, ICSE 2007.
  42. 42. Fault (Bug) Localization Testcase (a, b) P(All), F(All) : N. passed or failed tests P(s), F(s) : N. tests going through s (3,2) (4,4) (0,1) (a, b) class Max{ int max(int a, Risk(s) = %F(s) %P(s) + %F(s) P(s), F(s) : N. tests going through s (3,2) (4,4) (0,1) ✔✔ ✔ int max(int a, int b){ int max=0; P(s) F(s) %P(s) %F(s) Risk 1 2 1.0 1.0 0.5 %P(s) + %F(s) ✔ ✔ ✔ ✔ ✔ ✔ ✔ int max=0; if(b<a) max=a; 1 2 1.0 1.0 0.5 1 2 1.0 1.0 0.5 ✔ ✔ ✔ ✔ ✔ ✔ max=a; if(a<=b) max=6; 1 0 1.0 0.0 0.0 1 2 1.0 1.0 0.5✔ ✔✔ ✔ ✔return max; } 0 2 0.0 1.0 1.0 1 2 1.0 1.0 0.5 P FF } Visualization for Fault Localization. James A. Jones, Mary Jean Harrold, and John Stasko. Proceedings of the Workshop on Software Visualization, 23rd International Conference on Software Engineering, Toronto, Ontario, Canada, May 2001 45 Software Visualization, 23rd International Conference on Software Engineering, Toronto, Ontario, Canada, May 2001 http://pleuma.cc.gatech.edu/aristotle/Tools/tarantula/ Susumu Tokumoto, Kazunori Sakamoto, Kiyofumi Shimojo, Tadahiro Uehara and Hironori Washizaki, “Semi-automatic Incompatibility Localization for Re-engineered Industrial Software,” Proceedings of the 7th IEEE International Conference on Software Testing, Verification and Validation (ICST 2014)
  43. 43. Evaluation in a Company • Target: C language, Tarantula• Target: C language, Tarantula as the suspiciousness formula 89% bugs in All bugs in 25% code 67% bugs in 89% bugs in top 10% code 25% code 67% bugs in top 5% code FrequencyFrequency Frequency Code [%] Frequency Code [%] Bug [%] 46
  44. 44. ソフトウェア品質とメトリクス • 測定の方法と尺度• 測定の方法と尺度 – ソフトウェア品質: 使用時に必要性を満たす能力を決定– ソフトウェア品質: 使用時に必要性を満たす能力を決定 する属性(測定可能な特徴)全体 [ISO25000] – 成功率 31% → 定量的評価導入 46% [矢口08]– 成功率 31% → 定量的評価導入 46% [矢口08] • 落とし穴: ホーソン効果、不確実な未来 ファンクション ポイント 凝集度 結合度 複雑度 コード行数 欠陥密度 消化数 機能 仕様書 ポイント モジュール 設計 結合度 ソース コード コード行数 欠陥票 テスト ケース 要求 設計 実装 テスト 仕様書 設計 コード 欠陥票 ケース 定義 設計 実装 テスト 47 [矢口08] 矢口竜太郎, 吉田洋平: 成功率は31.1%, 日経コンピュータ12月1日号, 2008. 工数、期間
  45. 45. コツ「ゴール指向のメトリクス定義」コツ「ゴール指向のメトリクス定義」 • Goal-Question-Metric(GQM)パラダイム• Goal-Question-Metric(GQM)パラダイム I. 解釈 (評価基準) G. 目標 達成評価 (評価基準) Q. 質問 答え M. メトリクス Q. 質問 答え 測定値M. メトリクス 測定対象(データ) 測定値 測定対象(データ) 48 楠本真二, 肥後芳樹, “GQMパラダイムを用いたソフトウェアメトリクスの活用”, コンピュータソフトウェア, 2012. リンダ・M・ライルド, M・キャロル・ブレナン著, 野中誠, 鷲崎弘宜 訳 , "演習で学ぶソフトウエアメトリクスの", 日経BP社 , 2009. V. Basili, et al.: Goal, Question, Metric Paradigm, Encycloperia of Software Engineering, Vol. 1(1994)
  46. 46. コツ「横に広げて多面的に見る」コツ「横に広げて多面的に見る」 保守性保守性 G. 目標 モジュール性 再利用性 修正性 ・・・ 処理が複雑 すぎないか? 処理が構造化 されているか? ・・・Q. 質問 すぎないか? されているか? Q. 質問 コールグラフ 階層の深さ サイクロマテ ィック複雑度 関数内の 戻り点の数 ・・・ ・・・M. メトリクス 階層の深さ ィック複雑度 戻り点の数 …… … …… … …… … …… …対象 49 鷲崎弘宜,田邉浩之,小池利和,ソースコード解析による品質評価の仕組み,日経エレクトロニクス 2010/1/25 [Adqua] http://www.ogis-ri.co.jp/product/b-08-000001A6.html …… … …… …対象
  47. 47. 事例: 測定による保守性・機能性評価・改善 H. Nakai, et al. Initial Industrial Experience of GQM-based Product-Focused Project Monitoring with Trend Patterns, APSEC'14
  48. 48. 事例: 開発中の(動的な)欠陥予測 予測欠陥数の変動欠陥数と予測モデル 不確定性時間変化 K. Honda, et al., Predicting Time Range Based on Generalized Software Reliability Model , APSEC’14
  49. 49. 0.2 15 0.2 0.3 0.05 0.1 0.15 0.2 5 10 -0.1 0 0.1 0.2 0.15 0.1 0.05 0 -10 -5 0 0 0.5 1 -0.4 -0.3 -0.2 -0.1 0.25 0.2 0.15 -15 -10 -0.5 -0.4 52 K. Honda, et al., Predicting Time Range Based on Generalized Software Reliability Model , APSEC’14
  50. 50. コツ「仮定の明示とシステム改善」コツ「仮定の明示とシステム改善」 G. 変更されやすい 計画 箇所を特定できている A. するモA. あちこちと依存するモ 測定改善 A. するモ ジュールは されやすい A. あちこちと依存するモ ジュールは変更されやすい 測定改善 Q. モジュールの依存 関係はどの程度か? 評価 関係はどの程度か? 評価 M. 呼び出し先 モジュール数 M. 呼び出し元 モジュール数 53 N. Tsuda, et al. Iterative Process to Improve GQM Models with Metrics Thresholds to Detect High-risk Files, SANER'15 Doctoral
  51. 51. 事例: 機械学習によるメトリクス・システム改善事例: 機械学習によるメトリクス・システム改善 300 △ OK, ○ NG 300 実行行数 NG △ OK, ○ NG 150 M.実行行数 OK 10 25 M. 関数の数 M. OK M. 関数の数 実行行数実行行数 NG 71 M.実行行数 OK NG 54M. 関数の数 M. N. Tsuda, et al. Iterative Process to Improve GQM Models with Metrics Thresholds to Detect High-risk Files, SANER'15 Doctoral
  52. 52. SWEBOKに見る工程共通品質技術SWEBOKに見る工程共通品質技術 • モデル・手法 – モデリング、モデル種別、モデルの分析、開発手– モデリング、モデル種別、モデルの分析、開発手 法 • エンジニアリング基礎 – 統計分析、モデリング・シミュレーション・プロトタ– 統計分析、モデリング・シミュレーション・プロトタ イピング・・・ 55
  53. 53. window.onload = setEventHandler; function setEventHandler() { $(“reg_type”).onchange = calcPrice;$(“reg_type”).onchange = calcPrice; ・・・ $(“reg_addcart”).onclick = addCart; }; function calcPrice() { ・・・ }; function addCart() {function addCart() { if(isValidInput()) { reqRunTrans(); } else { alert(“Invalid user inputs”); }} }; function reqRunTrans() { new Ajax.Request(“runTrans.php”, { method: “GET”, parameters: getParams(), onSuccess: succeeded });onSuccess: succeeded }); }; function succeeded() { disableAll(); Nov. 14,56 jumpToConfirm(); }; [Maezawa13] Y. Maezawa, H. Washizaki, Y. Tanabe, S. Honiden, “Automated Verification of Pattern-Based Interaction Invariants in Ajax Applications,” IEEE/ACM ASE 2013
  54. 54. 状態のモデル化と形式検証 [Maezawa13][Maezawa13] 二重注文二重注文 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
  55. 55. window.onload = setEventHandler; function setEventHandler() { $(“reg_type”).onchange = calcPrice;$(“reg_type”).onchange = calcPrice; ・・・ $(“reg_addcart”).onclick = addCart; }; function calcPrice() { ・・・ }; function addCart() {function addCart() { if(isValidInput()) { $(“addCart”).disabled = true; reqRunTrans(); } else { alert(“Invalid user inputs”);alert(“Invalid user inputs”); $(“addCart”).disabled = false; } }; function reqRunTrans() { new Ajax.Request(“runTrans.php”, {new Ajax.Request(“runTrans.php”, { method: “GET”, parameters: getParams(), onSuccess: succeeded }); }; Nov. 14,58 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
  56. 56. SWEBOKに見る工程個別品質作り込み技SWEBOKに見る工程個別品質作り込み技 術・上流 • 要求• 要求 – 要求の基礎、要求プロセス、要求抽出、要求分– 要求の基礎、要求プロセス、要求抽出、要求分 析、要求仕様、要求妥当性確認、実践上の考慮 事項事項 • 設計 – 設計の基礎、設計の主要問題、構造とアーキテ クチャ、ユーザインタフェース設計、設計品質のクチャ、ユーザインタフェース設計、設計品質の 分析評価、設計の表記、設計戦略・手法、設計ツ ールール 59
  57. 57. リダイレクトシステム開発の例 [繁在家08]リダイレクトシステム開発の例 [繁在家08] • 要求• 要求 品質要求を明確化で きるか? リダイレクトリダイレクト きるか? – シナリオ リダイレクト システム リダイレクト システム – シナリオ – ゴール指向分析 • 設計 品質を着実に組み入品質を着実に組み入 れられるか? –– パターン – 品質駆動設計・評価– 品質駆動設計・評価 [繁在家08] 繁在家学, 鷲崎 弘宜, "品質要求駆動型のアーキテクチャ分析設計手法によるWEBシステム開発", 情報処理学会 研究報告ソフトウェア工学研究会報告 SE160, pp.33-40, 2008. 60
  58. 58. 要求: 品質シナリオ要求: 品質シナリオ 環境 成果物 環境 刺激 応答 応答測定法 刺激源 刺激 応答 A7 (環境)通常稼働時に(環境)通常稼働時に (刺激)リダイレクト情報に変更があった場合(応答)運用 を止めずに反映できる。 A1 (環境)通常稼働時に (刺激)JMeterで高負荷をかけた場合(刺激)JMeterで高負荷をかけた場合 (応答)HTTPリクエストを秒間1000トランザクション処理できる。 [繁在家08] 繁在家学, 鷲崎 弘宜, "品質要求駆動型のアーキテクチャ分析設計手法によるWEBシステム開発", 情報処理学会 研究報告ソフトウェア工学研究会報告 SE160, pp.33-40, 2008. 61
  59. 59. 要求: ゴール指向分析品質特性群品質特性群 PC/携帯 リダイレクト処理 ができる 効率性保守性 ISO9126の観点 時間資源変更性 試験性 使用性 運用性 副特性 PC/携帯 リダイレクト処理 ができる 効率性保守性 ISO9126の観点 時間資源変更性 試験性 使用性 運用性 副特性 AND 効率性効率性 試験性運用性 副特性 ゴールモデル 高いスルー プットが得ら 平均レスポンスタ イムが諸元値を CPU利用率 が諸元値以 デバッグ作業 及び試験が 容易に実施 運用状況及びリ ダイレクト情報の 変更の確認が容 A1 A2A3A5 A7 A9 AND 効率性効率性 試験性運用性 副特性 ゴールモデル 高いスルー プットが得ら 平均レスポンスタ イムが諸元値を CPU利用率 が諸元値以 デバッグ作業 及び試験が 容易に実施 運用状況及びリ ダイレクト情報の 変更の確認が容 A1 A2A3A5 A7 A9 PCと携帯を リダイレクト マイルストーン分割 れること 満たすこと下であること 容易に実施 できること 変更の確認が容 易に行えること リダイレクト情報 を容易に変更できること A6 A8 リダイレクト処理をリダイレクト情報 PCと携帯を リダイレクト マイルストーン分割 れること 満たすこと下であること 容易に実施 できること 変更の確認が容 易に行えること リダイレクト情報 を容易に変更できること A6 A8 リダイレクト処理をリダイレクト情報 PCと携帯を 判別する リダイレクト 種別を判別する AND APSの再起動なし マイルストーン リダイレクト処理を 実行する ログを リダイレクト情報 を取得する PCと携帯を 判別する リダイレクト 種別を判別する AND APSの再起動なし マイルストーン リダイレクト処理を 実行する ログを リダイレクト情報 を取得する ファイルを 読み込む APSの再起動なし にリダイレクト情報 の変更が反映され る 責任モデル キャッシュに 情報を保持する マイルストーン 分割 ログを 出力する AND 事例分割 ファイルを 読み込む APSの再起動なし にリダイレクト情報 の変更が反映され る 責任モデル キャッシュに 情報を保持する マイルストーン 分割 ログを 出力する AND 事例分割 ログの出力を 実行する ログデータを 提供する AND ログの出力を 実行する ログデータを 提供する ANDANDAND ロギング モジュール PC/携帯 判定モジュール リダイレクト情報 ファイル読込モジュール URLパラメータ 判定モジュール リダイレクト 実行モジュール ロギング モジュール PC/携帯 判定モジュール リダイレクト情報 ファイル読込モジュール URLパラメータ 判定モジュール リダイレクト 実行モジュール [繁在家08] 繁在家学, 鷲崎 弘宜, "品質要求駆動型のアーキテクチャ分析設計手法によるWEBシステム開発", 情報処理学会 研究報告ソフトウェア工学研究会報告 SE160, pp.33-40, 2008. 62
  60. 60. 設計: パターンと品質駆動設計設計: パターンと品質駆動設計 環境 成果物 環境 刺激 応答 応答測定法実現手法 刺激源 成果物 刺激 応答 アーキテクチャパターンアーキテクチャパターン 定義ファイル 動的読込み 多重化・ 負荷分散 A7. リダイレクト情報の 動的読込み 負荷分散 A7. リダイレクト情報の 変更を停止無しで反映 A1. HTTPリクエストを秒間A1. HTTPリクエストを秒間 1000トランザクション処理 [繁在家08] 繁在家学, 鷲崎 弘宜, "品質要求駆動型のアーキテクチャ分析設計手法によるWEBシステム開発", 情報処理学会 研究報告ソフトウェア工学研究会報告 SE160, pp.33-40, 2008. 63
  61. 61. ノード 負荷 分散 FW 分散 システム・基盤 クラスタ アプリケーション UI レイヤ アプリケーション レイヤ PC/携帯 判定 URLパラ メータ判定 リダイレクト 実行 リダイレクト情報 ファイル読込 ロギング アスペクト型ロギング 定義ファイル動 的読込み リダイレクト 情報ファイル 的読込み [繁在家08] 繁在家学, 鷲崎 弘宜, "品質要求駆動型のアーキテクチャ分析設計手法によるWEBシステム開発", 情報処理学会 研究報告ソフトウェア工学研究会報告 SE160, pp.33-40, 2008. 64
  62. 62. SWEBOKに見る工程個別品質作り込み技 術・下流術・下流 • 構築• 構築 – 構築の基礎、構築の管理、実践上の考慮事項、 構築技法、構築ツール構築技法、構築ツール • 保守• – 保守の基礎、保守の主要問題、保守プロセス、 保守技法、保守ツール保守技法、保守ツール • 構成管理 – SCMプロセスのマネジメント(継続的統合 CI)、構– SCMプロセスのマネジメント(継続的統合 CI)、構 成制御、・・・ • 計算基礎 – ネットワーク通信の基本(クラウド)、・・・– ネットワーク通信の基本(クラウド)、・・・ 65
  63. 63. 開発と運用にみる次の”ABCD” [青山14]開発と運用にみる次の”ABCD” [青山14] 継続的統合CI タスク・チケット駆動開発など A. アジャイル D. DevOps タスク・チケット駆動開発など A. アジャイル D. DevOps プラットフォームプラットフォーム フィードバック C. クラウドB. ビッグデータ モニタリング データ解析 [青山14] 青山幹雄,次世代ソフトウェア工学への展望: A(gile), B(ig Data), C(loud), D(evOps)が提起する機会と課 題, 情報処理学会ウィンターワークショップ2014・イン・大洗 66
  64. 64. SWEBOKに見る専門的品質特性のSWEBOKに見る専門的品質特性の 品質技術 • 設計 – ユーザインタフェース設計– ユーザインタフェース設計 • 品質• 品質 – 品質の基礎(ソフトウェアセーフティー) • 計算基礎 – セキュア開発・保守(要求セキュリティ、設計セキ– セキュア開発・保守(要求セキュリティ、設計セキ ュリティ・・・) 67
  65. 65. 例えばセキュリティパターン [Shiroma10]例えばセキュリティパターン [Shiroma10] 要求 設計 実装要求 設計 実装 脅威は? 構造は? コードは?脅威は? 対策は? 構造は? コードは? 認可パターン Subject id ProtectionObject id認可パターン 問題: 認可の構造が資源と独立・・・ 解決: 資源にアクセスしようとする・・・ Right namename * * 解決: 資源にアクセスしようとする・・・ Right accessType checkRight()checkRight() [Shiroma10] Y. Shiroma, H. Washizaki, et al., “Model-Driven Security Patterns Application and Validation,” PLoP 2010 T. Kobashi, N. Yoshioka, H. Kaiya, H. Washizaki, Y. Fukazawa, “Validating Security Design Pattern Applications Using Model Testing,” ARES2013 68
  66. 66. 目次目次 • SWEBOKに見る広がり • IoT/CPS時代の課題と挑戦• IoT/CPS時代の課題と挑戦 • ソフトウェアモデ リング技術• ソフトウェアモデ リング技術 • ソフトウェア品質技術• ソフトウェア品質技術 • まとめ 69
  67. 67. 取り上げた技術のSWEBOK上のつながり 要求 構築設計 テスティング 保守要求 構築設計 テスティング 保守 要求の基礎 要求プロセス 設計の基礎 設計の主要問題 構築の基礎 構築の管理 テストの基礎 テストレベル 保守の基礎 保守の主要問題 要求抽出 要求分析 要求仕様 要求妥当性確認 構造とアーキテクチャ ユーザインタフェース設計 設計品質の分析評価 設計の表記 実践上の考慮事項 構築技法 構築ツール テスト技法 テスト関連計量尺度 テストプロセス テストツール 保守プロセス 保守技法 保守ツール •シナリオ マネジメント プロセス構成管理 モデル・手法 要求妥当性確認 実践上の考慮事項 設計の表記 設計戦略・手法 設計ツール テストツール •シナリオ •ゴール指向分析 •品質駆動設計・評価 •パターン マネジメント プロセス構成管理 モデル・手法 品質 SCMプロセスのマネ ジメント 開始と範囲定義 プロジェクト計画 プロセス定義 ライフサイクル モデリング モデル種別 品質の基礎 品質マネジメントプジメント 構成の識別 構成制御 構成状態記録・報告 構成監査 プロジェクト計画 プロジェクト実施 レビュー・評価 終結 ライフサイクル プロセスアセス メント・改善 プロセス計量 モデル種別 モデルの分析 開発手法 品質マネジメントプ ロセス 実践上の考慮事項 品質ツール UML MDD プロフェッショナル 構成監査 リリース管理・配布 構成管理ツール 計量 マネジメントツール プロセスツール エンジニアリング MDD 形式検証 継続的統合 経済 プロフェッショナル 実践 プロフェッショナリズム 集団ダイナミクス・心理 経済の基礎 ライフサイクル経済 計算基礎 数学基礎 エンジニアリング 基礎 クラウド 70 集団ダイナミクス・心理 コミュニケーションスキ ル ライフサイクル経済 リスク・不確実性 経済分析手法 実践上の考慮事項 セキュリティ パターン クラウド
  68. 68. まとめ • 共通基盤上でより良く、早く、幸せに• 共通基盤上でより良く、早く、幸せに – 知識体系上での知識の整理、深耕、拡大 –– 知識の組み立て、パターン・プラクティス・手法化 – プロフェッショナリズム– プロフェッショナリズム • IoT/CPS時代の課題と挑戦 – 参照アーキテクチャ – モデリング技術と品質保証技術– モデリング技術と品質保証技術 – 予測と適応 71
  69. 69. 10th IEEE International Conference on Software Testing, Verification and Validation IPSJ International AI Programming Contest samuraicoding.infoMar 13-18 (due Sep 2016) aster.or.jp/conference/icst2017/aster.or.jp/conference/icst2017/ 72
  70. 70. Trace-Any (‘16-’20 under review) Trace in all directions Reliable trace by transitive andby transitive and interactive recovery Req. JavaScript Cloud ER, UML SysML, UML Java Cloud Modularize and Reuse, change managementmanagementExtractionVerification 77 SimulinkGoal models C

×