WACATE2013冬 知識体系とSEMAT

984 views

Published on

0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
984
On SlideShare
0
From Embeds
0
Number of Embeds
51
Actions
Shares
0
Downloads
14
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

WACATE2013冬 知識体系とSEMAT

  1. 1. 2013年12月14日 WACATE冬 ソフトウェア品質の知識体系とオ ープン・クローズ化に向けて 鷲崎 弘宜 早稲田大学 / SEMAT Japan Chapter Twitter: @Hiro_Washi washizaki@waseda.jp http://www.washi.cs.waseda.ac.jp/ (参考資料) I. Jacobsonほか: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13 I. Jacobsonほか: ソフトウェアエンジニアリングのエッセンス: SEMAT カーネル, http://www.semat.jp/publications 山本 修一郎: SEMATの概要 Business Communication, 2013 http://www.bcm.co.jp/site/youkyu/youkyu103.html
  2. 2. 目次 • • • • • • • • エンジニアリング 品質の知識体系 SWEBOK SQuBOK 知識体系の活用 知識体系のオープン・クローズド化 SEMAT メソッドアーキテクチャ おわりに 2
  3. 3. エンジニアリン グとは科学に 裏打ちされた 技術活動、学 問体系 3
  4. 4. 我々のソフトウェ ア品質技術活動 は、正統なエンジ ニアリングか? 4
  5. 5. 正統なエンジニアリング 職業人が果たす判断, 行為,助言が,社会で 実質的な価値を形成 コミュニティで妥当と確 認される知識が科学的 基盤に基づく 知識・適格性の妥当 性をコミュニティで 判定できる環境 松本吉弘, “エンジニアリング基礎知識体系とISO標準”, ITSCJ Newsletter, No.88, 2010. Paul Star, “The Social Transformation of American Medicine,” Basic Books, 1982. 5
  6. 6. 知識 プロフェッショナリズム ベストプラクティ スに裏打ちさ れた能力 経験、ガイド 6 参考 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  7. 7. 知識の島々 知識 プロフェッショナリズム ベストプラクティ スに裏打ちさ れた能力 知識の島々 同値分割 UML カバレッジ インスペクション 直交表 アジャイル Java, C# 経験、ガイド 7 参考 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  8. 8. 共通基盤があれば 知識 プロフェッショナリズム ベストプラクティ スに裏打ちさ れた能力 体系上の手法 知識の体系 知識の島々 同値分割 UML カバレッジ インスペクション 直交表 アジャイル Java, C# 経験、ガイド 8 参考 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  9. 9. 50年前 同値分割、カバレッジ 40年前 ディシジョンテーブル、イ ンスペクション 30年前 直交表、探索 20年前 オブジェクト指向、ペアワ イズ、自動 10年前 テスト駆動開発、モデル ベース 現在 コンコリック、ミューテーショ ン解析、Fault Localization、欠 陥予測、規格、セキュリティ・・・ 明日は? どれも優れているが、我々の求める全てではない! 9 参考 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  10. 10. 共通基盤がない 誰もが自身のソフト ウェアの作り方を知 っている。 しかし、コミュニティ として我々は受け入 れられた共通基盤を 持っていない。 10 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  11. 11. 理論がない「わけではない」 • Boehm: COCOMO • Parnas: 情報隠蔽 • Constantine: 凝集度、結合度 • Conwayの法則 • Dijkstra: 構造化、Goto文撲滅 • Wirth: ステップワイズリファインメント • Meyer: 契約による設計 などなど しかし、いずれも共通基盤ではない Esse 11 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13 nce
  12. 12. 理論がない「わけではない」 知識体系とメソッドアーキテクチャが、具体的 な理論が立脚する共通の理論基盤を与える 12 参考 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  13. 13. To Do Doing Done 活動 SEMAT プラクティス、 パターンと手法 知識の体系 SWEBOK SQuBOK 知識の島々 13
  14. 14. 目次 • • • • • • • • エンジニアリング 品質の知識体系 SWEBOK SQuBOK 知識体系の活用 知識体系のオープン・クローズド化 SEMAT メソッドアーキテクチャ おわりに 14
  15. 15. 知識体系 Body Of Knowledge 妥当と認められ た知識群を整 理・構造化し た全体 BOK ガイド 知識体系へのガイド 知識領域の大分類 (BOKによっては無し) 知識領域 ・・・ 専門領域の定 義づけ カテゴリ ・・・ 知識の技術・プロセス 上の分類 トピック (知識項目) 最小の知識単位 (技術・プロセス知識) 文献 文献 知識の詳細記述・実体 15
  16. 16. 組織 システ ム SEBOK REBOK PMBOK BABOK ビジネ ス SQuBOK SWEBOK ソフト ウェア 16
  17. 17. 目次 • • • • • • • • エンジニアリング 品質の知識体系 SWEBOK SQuBOK 知識体系の活用 知識体系のオープン・クローズド化 SEMAT メソッドアーキテクチャ おわりに 17
  18. 18. SWEBOK 2004 知識領域(KA: Knowledge Area) 要求 設計 構築 テスティングの基礎 的概念 要求の基礎的概念 設計の基礎的概念 要求エンジニアリン グプロセス 設計における主要な 構築の基礎的概念 問題 構造とアーキテク チャ 要求の抽出 要求分析 設計品質の分析評価 構築の管理 要求仕様 要求の妥当性確認 テスティング 設計のための表記 設計戦略および手法 実践上の考慮事項 保守 保守の基礎的概念 テストレベル 保守プロセス テスト技法 テストに関した計量 尺度 保守における主要な 課題 テストプロセス 保守のための技法 実践上の考慮事項 構成管理 マネジメント プロセス SCMプロセスのマネジ 開始と範囲定義 メント プロセス実現および変 更 構成の識別 プロジェクト計画 プロセス定義 構成制御 ツールおよび手法 品質 プロジェクト実施 構成状態記録および報 レビューおよび評価 告 構成監査 リリース管理および配 布 ツール プロセスアセスメント マネジメントプロセス 開発手法 終結 プロセス計量 計量 品質の基礎的概念 実践上の考慮事項
  19. 19. SWEBOK v3 (2014) • 全体 – 新設KA: プロフェッショナル実践,経済,計算基礎, 数学基礎,一般基礎 • テストKA – 拡充: テスト目的(ユーザビリティ・インタラクションテ スティング、テスト駆動開発) – 拡充: 入力ドメインに基づく手法(ペアワイズテスティ ング) – 新設: モデルベーステスティング手法 – 新設: テスティングツール • 品質KA – 拡充: 安全性(セーフティ): セーフティハザードの分析 技法など – 拡充: 品質ツール 19
  20. 20. 目次 • • • • • • • • エンジニアリング 品質の知識体系 SWEBOK SQuBOK 知識体系の活用 知識体系のオープン・クローズド化 SEMAT メソッドアーキテクチャ おわりに 20
  21. 21. SQuBOKガイド 第2版 樹形図(予定)※ SQuBOK®ガイド ソフトウェア 品質の基本概念 ソフトウェア品質マネジメント 組織レベル プロジェクトレベル(共通)の プロジェクトレベル(個別) のソフトウェア品質マネジメント ソフトウェア品質マネジメント ソフトウェア 品質技術 1.1 品質の概念 1.2 品質の マネジメントの 概念 1.3 ソフトウェアの 品質マネジ メントの特徴 2.1 2.7 のソフトウェア品質マネジメント 2.16 ソフトウェア品質マネジメ 意思決定のマネジメント 品質計画のマネジメント ントシステムの構築と運 2.8 2.17 調達マネジメント 用 要求分析のマネジメント 2.2 2.9 2.18 ライフサイクルプロセス リスクマネジメント のマネジメント 設計のマネジメント 2.10 2.3 2.19 品質管理 プロセスアセスメント・ 2.11 実装のマネジメント プロセス改善のマネジメ トレーサビリティ管理 2.20 ント レビューのマネジメント 2.4 2.12 2.21 要求管理 監査のマネジメント テストのマネジメント 2.5 2.13 2.22 教育・育成のマネジメント 構成管理 品質分析・評価 2.6 2.14 のマネジメント 法的権利・法的責任の 情報・文書管理 マネジメント 2.23 2.15 プロジェクト マネジメント リリース可否判定 2.24 運用のマネジメント 2.25 ※変更可能性あり 保守のマネジメント 21
  22. 22. SQuBOKガイド 第2版 樹形図(予定)(つづき)※ SQuBOK®ガイド ソフトウェア 品質の基本概念 工程に共通の品質技術 ソフトウェア品質マネジメント 工程に個別な品質技術 ソフトウェア 品質技術 専門的品質特性の技術 3.1 3.4 3.13 メトリクス 品質計画の技法 ユーザビリティの技法 3.2 3.5 3.14 モデル化の技法 要求分析の技法 セーフティの技法 3.6 3.15 設計の技法 セキュリティの技法 3.3 形式手法 3.7 実装の技法 3.8 レビューの技法 3.9 テストの技法 3.10 品質分析・評価の技法 3.11 保守の技法 3.12 運用の技法 ※変更可能性あり
  23. 23. 例: アーキテクチャ方法論(トピック) (主にソフトウェアに関する)品質要求の獲得から、ア ーキテクチャを設計し、評価するまでの方法論の総称 • 【目的】 品質要求を満たしたアーキテクチャを獲得 • 【方法】 – 品質要求を明らかに: QAW(Quality Attribute Workshop) – 品質要求に基づくアーキテクチャ設計: ADD(Attribute Driven Design) – アーキテクチャの品質要求満足の分析: ATAM(Architecture Trade-off Analysis Method) – アーキテクチャの経済的評価: CBAM(Cost Benefit Analysis Method) • 【効果】 品質要求の不備を避けて・・・ • 【参考文献】 『実践ソフトウェアアーキテクチャ』 • 【関連トピック】 アーキテクチャパターン,・・・ 23
  24. 24. 例: アーキテクチャ方法論(知識の実体 ) 『実践ソフトウェアアーキテクチャ』より アプリケーションサーバ ファイルサーバ キャッシュ マスター アプリケーション 暗号化モジュール シナリオ 手法 データ記録待ち時間は 200ミリ秒以内・・・ ・・・は99.999%の確率 で安全・・・ 暗号化 キャッシュ
  25. 25. http://www.juse.or.jp/sqip/library/ 25
  26. 26. 目次 • • • • • • • • エンジニアリング 品質の知識体系 SWEBOK SQuBOK 知識体系の活用 知識体系のオープン・クローズド化 SEMAT メソッドアーキテクチャ おわりに 26
  27. 27. ポータル 辞書 文献ガイド 27
  28. 28. 例: SQuBOKの場合 マネージャ SEPG SQuBOKガイド 品質の 概念 品質保証 開発者 マネジ メント 品質技術 顧客 ユーザ 28
  29. 29. WACATE2日間の知識を整理して みよう 29
  30. 30. 目次 • • • • • • • • エンジニアリング 品質の知識体系 SWEBOK SQuBOK 知識体系の活用 知識体系のオープン・クローズド化 SEMAT メソッドアーキテクチャ おわりに 30
  31. 31. 知識項目 SWEBOK PMBOK SQuBOK 品質管理 全ソフトウェア エンジニアリン グプロセスの 品質表示など、 マネジメントに 対する一般的 な情報を提示 する プロジェクト結果 を監視し、不満足 なパフォーマンス の原因を除去す るための方法を 特定する 組織を長期的・安 定的に存続を実 現させるための必 要なモノである。 顧客の満足度を 満たす。 品質 ユーザ要求に 対する適合性 が要求を満た す度合い 本来備わってい ユーザ要求、顧 る特性がまとまっ 客満足度を満た て、要求事項を す度合い 満たす度合い 31
  32. 32. オープン・クローズド化に向けて • オープン: 知識体系の接続 • クローズド:オーナーはあくまで単一コミュニティ 現状 オープン・クローズド SWEBOK SWEBOK PMBOK SQuBOK PMBOK SQuBOK
  33. 33. ISO/IEC 24773:2008 Certification of software engineering professionals - Comparison framework 品質技術者 資格 ・・・試験 SQuBOK xBOK SWEBOK 知識領域
  34. 34. 目次 • • • • • • • • エンジニアリング 品質の知識体系 SWEBOK SQuBOK 知識体系の活用 知識体系のオープン・クローズド化 SEMAT メソッドアーキテクチャ おわりに 34
  35. 35. To Do Doing Done 活動 SEMAT プラクティス、 パターンと手法 知識の体系 SWEBOK SQuBOK 知識の島々 35
  36. 36. Software Engineering Methods and Theory 堅固な理論、実証原則・ベストプラクティスに基づくソフ トウェアエンジニアリング再建 Japan Chapter http://www.semat.jp/ 36
  37. 37. SEMAT メソッドアーキテクチャ Essence – Kernel and Language for Software Engineering Methods 手法・ プロセス UP Agile プラクティス カーネル エッセンス 言語 堅固な理論基盤に立脚
  38. 38. アルファ: Aspiration Led Progress and Health Attribute Ivar Jacobson, et al.著, ソフトウェアエンジニアリングのエッセンス: SEMAT カーネル, http://www.semat.jp/publications
  39. 39. 39 Ivar Jacobson, et al.著, ソフトウェアエンジニアリングのエッセンス: SEMAT カーネル, http://www.semat.jp/publications
  40. 40. プラクティスの定義 1. 2. 3. 4. アルファを選択 必要に応じて下位アルファの定義 作業生活物を追加 活動空間を定義して活動を具体化 作業対象 作業内容 例: 要求抽出プラクティス アルファ 成果物 ・機会 ・フィーチャリスト ・ステークホルダ ・要求 活動空間 ・可能性探索 ・要求理解 ・ステークホルダの ニーズ理解 活動 ・顧客価値合意 ・システム操作調査 ・顧客デモ実施 山本 修一郎, SEMATの概要, Business Communication, 2013 http://www.bcm.co.jp/site/youkyu/youkyu103.html 40
  41. 41. プラクティスの定義例: スプリント (EssWorkの利用) 「仕事」の下位アルファ としての「スプリント」 5個の状態を 持つ 成果物 「スプリントバックログ」と関連 アルファカード 「スプリント」 状態カード 「制御可能」 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  42. 42. プラクティスからパターンへ Scrum スプリント計画 エピソード 作業の分割 XP チーム全体 ・・・ プラクティス 実践 により 結果 へとつながる 生成的パターン パターン ランゲージ 文脈 において 顧客を引き込め 影響力 を持った ・・・ 問題 に直面していれば 根拠 に基づく 解決 により 結果 へと文脈が変わる 42
  43. 43. イテレーション計画: 現在地の特定 完了 ペンディング 43 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  44. 44. 現在地の特定(つづき) 44 Ivar Jacobson, et al.著, ソフトウェアエンジニアリングのエッセンス: SEMAT カーネル, http://www.semat.jp/publications
  45. 45. 行き方の決定、かんばん 目的 To Do Doing Done タスク 1 タスク 2 テスト環境セットアップ タスク 3 要求項目Aの完了 タスク4 要求項目Bの完了 タスク 5 要求項目Cの完了 タスク 7 タスク 8 タスク 9 より多くの要求項目 の完了 タスク 6 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  46. 46. カーネルの特徴と留意 • ソフトウェア「以外」の事柄も大切 • 状態指向(NOT プロセス指向) • 留意: プラクティス・手法定義の難しさ、状態遷 移の現実、ソフトウェア開発以外への応用 原則 SEMATカーネル 従来 アクション可能 アルファで活動の進行状態と 文書などの成果 健全性把握 物 拡張可能 アルファ追加やプラクティス 定義可、様々な開発に適用 実践的 あらゆる担当者を支援、カー プロセス・品質エ ド ンジニアの支援 方法論の総取り 替え 山本 修一郎, SEMATの概要, Business Communication, 2013 http://www.bcm.co.jp/site/youkyu/youkyu103.html Ivar Jacobson, et al.著, ソフトウェアエンジニアリングのエッセンス: SEMAT カーネル, http://www.semat.jp/publications 46
  47. 47. 目次 • • • • • • • • エンジニアリング 品質の知識体系 SWEBOK SQuBOK 知識体系の活用 知識体系のオープン・クローズド化 SEMAT メソッドアーキテクチャ おわりに 47
  48. 48. To Do Doing Done 活動 SEMAT プラクティス と手法 知識の体系 SWEBOK SQuBOK 知識の島々 48
  49. 49. 正統なエンジニアリングであるために • 共通基盤の上でより良く、早く、 幸せに – 知識体系群のオープン・クローズ ド化へ – 知識体系上のプラクティスやパタ ーン、手法へ • 取り組みの場 SEMAT http://www.semat.jp/ AsianPLoPhttp://asianplop.org/ IPSJウィンターワークショップ2014大 洗 http://oss.sys.wakayamau.ac.jp/wws2014/ 49

×