wacate2013冬 知識体系とsemat

49
ソフトウェア品質の知識体系とオ ープン・クローズ化に向けて 鷲崎 弘宜 早稲田大学 / SEMAT Japan Chapter Twitter: @Hiro_Washi [email protected] http://www.washi.cs.waseda.ac.jp/ 20131214WACATE(参考資料) 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

Upload: hironori-washizaki

Post on 10-May-2015

560 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: WACATE2013冬 知識体系とSEMAT

ソフトウェア品質の知識体系とオープン・クローズ化に向けて

鷲崎 弘宜 早稲田大学 / SEMAT Japan Chapter

Twitter: @Hiro_Washi [email protected]

http://www.washi.cs.waseda.ac.jp/

2013年12月14日 WACATE冬

(参考資料) 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

Page 2: WACATE2013冬 知識体系とSEMAT

目次

• エンジニアリング

• 品質の知識体系

• SWEBOK

• SQuBOK

• 知識体系の活用

• 知識体系のオープン・クローズド化

• SEMAT メソッドアーキテクチャ

• おわりに 2

Page 3: WACATE2013冬 知識体系とSEMAT

エンジニアリングとは科学に裏打ちされた技術活動、学問体系

3

Page 4: WACATE2013冬 知識体系とSEMAT

我々のソフトウェア品質技術活動は、正統なエンジニアリングか?

4

Page 5: WACATE2013冬 知識体系とSEMAT

正統なエンジニアリング

職業人が果たす判断,行為,助言が,社会で実質的な価値を形成

5 松本吉弘, “エンジニアリング基礎知識体系とISO標準”, ITSCJ Newsletter, No.88, 2010.

Paul Star, “The Social Transformation of American Medicine,” Basic Books, 1982.

知識・適格性の妥当性をコミュニティで判定できる環境

コミュニティで妥当と確認される知識が科学的基盤に基づく

Page 6: WACATE2013冬 知識体系とSEMAT

6

経験、ガイド

知識 プロフェッショナリズム

ベストプラクティスに裏打ちされた能力

参考 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13

Page 7: WACATE2013冬 知識体系とSEMAT

知識の島々

7

経験、ガイド

知識 プロフェッショナリズム

ベストプラクティスに裏打ちされた能力

参考 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13

知識の島々

カバレッジ

同値分割

インスペクション UML

Java, C# アジャイル 直交表

Page 8: WACATE2013冬 知識体系とSEMAT

共通基盤があれば

8

経験、ガイド

知識

ベストプラクティスに裏打ちされた能力

カバレッジ

同値分割

インスペクション UML

Java, C# アジャイル 直交表

体系上の手法

参考 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13

プロフェッショナリズム

知識の体系

知識の島々

Page 9: WACATE2013冬 知識体系とSEMAT

50年前 同値分割、カバレッジ 40年前 ディシジョンテーブル、インスペクション

30年前 直交表、探索 20年前 オブジェクト指向、ペアワイズ、自動

10年前 テスト駆動開発、モデルベース

現在 コンコリック、ミューテーション解析、Fault Localization、欠陥予測、規格、セキュリティ・・・

明日は?

9

どれも優れているが、我々の求める全てではない!

参考 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13

Page 10: WACATE2013冬 知識体系とSEMAT

共通基盤がない

誰もが自身のソフトウェアの作り方を知っている。

しかし、コミュニティとして我々は受け入れられた共通基盤を持っていない。

10 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13

Page 11: WACATE2013冬 知識体系とSEMAT

理論がない「わけではない」

• Boehm: COCOMO • Parnas: 情報隠蔽 • Constantine: 凝集度、結合度 • Conwayの法則 • Dijkstra: 構造化、Goto文撲滅 • Wirth: ステップワイズリファインメント • Meyer: 契約による設計 などなど

しかし、いずれも共通基盤ではない Esse

nce Tuto

11 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13

Page 12: WACATE2013冬 知識体系とSEMAT

理論がない「わけではない」

知識体系とメソッドアーキテクチャが、具体的な理論が立脚する共通の理論基盤を与える

12 参考 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13

Page 13: WACATE2013冬 知識体系とSEMAT

13

プラクティス、

パターンと手法

知識の体系

知識の島々

活動

To Do Doing Done

SWEBOK

SQuBOK

SEMAT

Page 14: WACATE2013冬 知識体系とSEMAT

目次

• エンジニアリング

• 品質の知識体系

• SWEBOK

• SQuBOK

• 知識体系の活用

• 知識体系のオープン・クローズド化

• SEMAT メソッドアーキテクチャ

• おわりに 14

Page 15: WACATE2013冬 知識体系とSEMAT

知識体系 Body Of Knowledge

妥当と認められた知識群を整理・構造化した全体

専門領域の定義づけ

15

文献文献

・・・

・・・

BOK ガイド

カテゴリ

知識領域

トピック(知識項目)

知識体系へのガイド

知識領域の大分類(BOKによっては無し)

知識の技術・プロセス上の分類

最小の知識単位(技術・プロセス知識)

知識の詳細記述・実体

Page 16: WACATE2013冬 知識体系とSEMAT

16

組織

ビジネス

システム

ソフトウェア

PM

BO

K

BA

BO

K REB

OK

SEBO

K

SWEB

OK

SQu

BO

K

Page 17: WACATE2013冬 知識体系とSEMAT

目次

• エンジニアリング

• 品質の知識体系

• SWEBOK

• SQuBOK

• 知識体系の活用

• 知識体系のオープン・クローズド化

• SEMAT メソッドアーキテクチャ

• おわりに 17

Page 18: WACATE2013冬 知識体系とSEMAT

18

SWEBOK 2004 知識領域(KA: Knowledge Area) 要求 設計 構築 テスティング 保守

要求の基礎的概念 設計の基礎的概念テスティングの基礎的概念

保守の基礎的概念

要求エンジニアリングプロセス

設計における主要な問題

テストレベル

要求の抽出構造とアーキテクチャ

テスト技法

要求分析 設計品質の分析評価

要求仕様 設計のための表記

要求の妥当性確認

実践上の考慮事項設計戦略および手法 実践上の考慮事項 保守のための技法テストプロセス

保守プロセス

テストに関した計量尺度

構築の管理

構築の基礎的概念

保守における主要な課題

構成管理 マネジメント プロセス ツールおよび手法 品質SCMプロセスのマネジメント

開始と範囲定義プロセス実現および変更

構成の識別 プロジェクト計画 プロセス定義

構成制御 プロジェクト実施

構成状態記録および報告

レビューおよび評価

構成監査 終結

リリース管理および配布

計量

開発手法

プロセスアセスメント

プロセス計量

品質の基礎的概念

マネジメントプロセス

実践上の考慮事項

ツール

Page 19: WACATE2013冬 知識体系とSEMAT

SWEBOK v3 (2014)

• 全体 – 新設KA: プロフェッショナル実践,経済,計算基礎,数学基礎,一般基礎

• テストKA – 拡充: テスト目的(ユーザビリティ・インタラクションテスティング、テスト駆動開発)

– 拡充: 入力ドメインに基づく手法(ペアワイズテスティング)

– 新設: モデルベーステスティング手法 – 新設: テスティングツール

• 品質KA – 拡充: 安全性(セーフティ): セーフティハザードの分析技法など

– 拡充: 品質ツール 19

Page 20: WACATE2013冬 知識体系とSEMAT

目次

• エンジニアリング

• 品質の知識体系

• SWEBOK

• SQuBOK

• 知識体系の活用

• 知識体系のオープン・クローズド化

• SEMAT メソッドアーキテクチャ

• おわりに 20

Page 21: WACATE2013冬 知識体系とSEMAT

SQuBOKガイド 第2版 樹形図(予定)※

21

組織レベル のソフトウェア品質マネジメント

ソフトウェア

品質技術

ソフトウェア品質マネジメント

SQuBOK®ガイド

ソフトウェア

品質の基本概念

プロジェクトレベル(共通)の ソフトウェア品質マネジメント

プロジェクトレベル(個別) のソフトウェア品質マネジメント

品質計画のマネジメント

2.17

要求分析のマネジメント 2.18

設計のマネジメント

2.19

実装のマネジメント

レビューのマネジメント

テストのマネジメント

品質分析・評価 のマネジメント

2.16

2.20

2.21

2.22

ソフトウェア品質マネジメントシステムの構築と運用

2.1

ライフサイクルプロセスのマネジメント

2.2

プロセスアセスメント・ プロセス改善のマネジメント

2.3

監査のマネジメント 2.4

教育・育成のマネジメント

2.5

法的権利・法的責任のマネジメント

2.6

意思決定のマネジメント 2.7

調達マネジメント 2.8

構成管理 2.13

リスクマネジメント 2.9

プロジェクト

マネジメント

2.15

品質の概念 1.1

品質の

マネジメントの

概念

1.2

ソフトウェアの

品質マネジ

メントの特徴

1.3

品質管理 2.10

トレーサビリティ管理 2.11

要求管理 2.12

情報・文書管理 2.14

2.23

リリース可否判定 2.24

運用のマネジメント 2.25

保守のマネジメント ※変更可能性あり

Page 22: WACATE2013冬 知識体系とSEMAT

SQuBOKガイド 第2版 樹形図(予定)(つづき)※

ソフトウェア

品質技術

ソフトウェア品質マネジメント

SQuBOK®ガイド

ソフトウェア

品質の基本概念

メトリクス 3.1

工程に共通の品質技術 工程に個別な品質技術 専門的品質特性の技術

3.2

モデル化の技法

3.3

形式手法

3.4

品質計画の技法

3.5

要求分析の技法 3.6

設計の技法 3.7

実装の技法 3.8

レビューの技法 3.9

テストの技法 3.10

品質分析・評価の技法 3.11

保守の技法 3.12

運用の技法

3.13

ユーザビリティの技法

3.14

セーフティの技法 3.15

セキュリティの技法

※変更可能性あり

Page 23: WACATE2013冬 知識体系とSEMAT

例: アーキテクチャ方法論(トピック)

(主にソフトウェアに関する)品質要求の獲得から、アーキテクチャを設計し、評価するまでの方法論の総称

• 【目的】 品質要求を満たしたアーキテクチャを獲得

• 【方法】 – 品質要求を明らかに: QAW(Quality Attribute Workshop)

– 品質要求に基づくアーキテクチャ設計: ADD(Attribute Driven Design)

– アーキテクチャの品質要求満足の分析: ATAM(Architecture Trade-off Analysis Method)

– アーキテクチャの経済的評価: CBAM(Cost Benefit Analysis Method)

• 【効果】 品質要求の不備を避けて・・・

• 【参考文献】 『実践ソフトウェアアーキテクチャ』

• 【関連トピック】 アーキテクチャパターン,・・・

23

Page 24: WACATE2013冬 知識体系とSEMAT

例: アーキテクチャ方法論(知識の実体 ) 『実践ソフトウェアアーキテクチャ』より

マスター キャッシュ アプリケーション

ファイルサーバ アプリケーションサーバ

暗号化モジュール

データ記録待ち時間は200ミリ秒以内・・・

・・・は99.999%の確率で安全・・・

暗号化 キャッシュ シナリオ 手法

Page 25: WACATE2013冬 知識体系とSEMAT

http://www.juse.or.jp/sqip/library/ 25

Page 26: WACATE2013冬 知識体系とSEMAT

目次

• エンジニアリング

• 品質の知識体系

• SWEBOK

• SQuBOK

• 知識体系の活用

• 知識体系のオープン・クローズド化

• SEMAT メソッドアーキテクチャ

• おわりに 26

Page 27: WACATE2013冬 知識体系とSEMAT

ポータル

27

辞書

文献ガイド

Page 28: WACATE2013冬 知識体系とSEMAT

例: SQuBOKの場合

品質保証

開発者 28

SQuBOKガイド

品質の 概念

マネジ メント

品質技術

マネージャ SEPG

顧客

ユーザ

Page 29: WACATE2013冬 知識体系とSEMAT

WACATE2日間の知識を整理してみよう

29

Page 30: WACATE2013冬 知識体系とSEMAT

目次

• エンジニアリング

• 品質の知識体系

• SWEBOK

• SQuBOK

• 知識体系の活用

• 知識体系のオープン・クローズド化

• SEMAT メソッドアーキテクチャ

• おわりに 30

Page 31: WACATE2013冬 知識体系とSEMAT

31

知識項目 SWEBOK PMBOK SQuBOK

品質管理 全ソフトウェアエンジニアリングプロセスの品質表示など、マネジメントに対する一般的な情報を提示する

プロジェクト結果を監視し、不満足なパフォーマンスの原因を除去するための方法を特定する

組織を長期的・安定的に存続を実現させるための必要なモノである。

顧客の満足度を満たす。

品質 ユーザ要求に対する適合性が要求を満たす度合い

本来備わっている特性がまとまって、要求事項を満たす度合い

ユーザ要求、顧客満足度を満たす度合い

Page 32: WACATE2013冬 知識体系とSEMAT

オープン・クローズド化に向けて

SWEBOK

SQuBOK PMBOK

SWEBOK

PMBOK SQuBOK

現状 オープン・クローズド

• オープン: 知識体系の接続

• クローズド:オーナーはあくまで単一コミュニティ

Page 33: WACATE2013冬 知識体系とSEMAT

ISO/IEC 24773:2008 Certification of software engineering

professionals - Comparison framework

33

SWEBOK

SQuBOK xBOK

品質技術者 資格

・・・試験

知識領域

Page 34: WACATE2013冬 知識体系とSEMAT

目次

• エンジニアリング

• 品質の知識体系

• SWEBOK

• SQuBOK

• 知識体系の活用

• 知識体系のオープン・クローズド化

• SEMAT メソッドアーキテクチャ

• おわりに 34

Page 35: WACATE2013冬 知識体系とSEMAT

35

プラクティス、

パターンと手法

知識の体系

知識の島々

活動

To Do Doing Done

SWEBOK

SQuBOK

SEMAT

Page 36: WACATE2013冬 知識体系とSEMAT

Software Engineering Methods and Theory

堅固な理論、実証原則・ベストプラクティスに基づくソフトウェアエンジニアリング再建

36

Japan Chapter http://www.semat.jp/

Page 37: WACATE2013冬 知識体系とSEMAT

SEMAT メソッドアーキテクチャ

堅固な理論基盤に立脚

UP Agile

カーネル

言語

プラクティス

手法・ プロセス

エッセンス

Essence – Kernel and Language for Software

Engineering Methods

Page 38: WACATE2013冬 知識体系とSEMAT

アルファ: Aspiration Led Progress and Health Attribute

Ivar Jacobson, et al.著, ソフトウェアエンジニアリングのエッセンス: SEMAT カーネル, http://www.semat.jp/publications

Page 39: WACATE2013冬 知識体系とSEMAT

39 Ivar Jacobson, et al.著, ソフトウェアエンジニアリングのエッセンス: SEMAT カーネル, http://www.semat.jp/publications

Page 40: WACATE2013冬 知識体系とSEMAT

プラクティスの定義 1. アルファを選択 2. 必要に応じて下位アルファの定義 3. 作業生活物を追加 4. 活動空間を定義して活動を具体化

40

作業対象 アルファ ・機会 ・ステークホルダ ・要求

成果物 ・フィーチャリスト

作業内容 活動空間 ・可能性探索 ・要求理解 ・ステークホルダの ニーズ理解

活動 ・顧客価値合意 ・システム操作調査 ・顧客デモ実施

山本 修一郎, SEMATの概要, Business Communication, 2013 http://www.bcm.co.jp/site/youkyu/youkyu103.html

例: 要求抽出プラクティス

Page 41: WACATE2013冬 知識体系とSEMAT

プラクティスの定義例: スプリント (EssWorkの利用)

「仕事」の下位アルファとしての「スプリント」

5個の状態を持つ

成果物

「スプリントバックログ」と関連

アルファカード

「スプリント」

状態カード

「制御可能」

I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13

Page 42: WACATE2013冬 知識体系とSEMAT

プラクティスからパターンへ

42

生成的パターン ランゲージ

エピソード

XP

Scrum

・・・ 顧客を引き込め 作業の分割

パターン 文脈 において 影響力 を持った 問題 に直面していれば 根拠 に基づく 解決 により 結果 へと文脈が変わる

プラクティス 実践 により 結果 へとつながる

スプリント計画 ・・・ チーム全体

Page 43: WACATE2013冬 知識体系とSEMAT

イテレーション計画: 現在地の特定

43

ペンディング 完了

I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13

Page 44: WACATE2013冬 知識体系とSEMAT

現在地の特定(つづき)

44

Ivar Jacobson, et al.著, ソフトウェアエンジニアリングのエッセンス: SEMAT カーネル, http://www.semat.jp/publications

Page 45: WACATE2013冬 知識体系とSEMAT

行き方の決定、かんばん

45

タスク 1

タスク 2

To Do Doing Done

タスク 3

タスク4

タスク 5

タスク 6

テスト環境セットアップ

要求項目Aの完了

要求項目Bの完了

要求項目Cの完了

目的

タスク 7

タスク 8 より多くの要求項目

の完了 タスク 9

I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13

Page 46: WACATE2013冬 知識体系とSEMAT

カーネルの特徴と留意 • ソフトウェア「以外」の事柄も大切

• 状態指向(NOT プロセス指向)

• 留意: プラクティス・手法定義の難しさ、状態遷移の現実、ソフトウェア開発以外への応用

46

Ivar Jacobson, et al.著, ソフトウェアエンジニアリングのエッセンス: SEMAT カーネル, http://www.semat.jp/publications

原則 SEMATカーネル 従来

アクション可能 アルファで活動の進行状態と健全性把握

文書などの成果物

拡張可能 アルファ追加やプラクティス定義可、様々な開発に適用

方法論の総取り替え

実践的 あらゆる担当者を支援、カード

プロセス・品質エンジニアの支援

山本 修一郎, SEMATの概要, Business Communication, 2013 http://www.bcm.co.jp/site/youkyu/youkyu103.html

Page 47: WACATE2013冬 知識体系とSEMAT

目次

• エンジニアリング

• 品質の知識体系

• SWEBOK

• SQuBOK

• 知識体系の活用

• 知識体系のオープン・クローズド化

• SEMAT メソッドアーキテクチャ

• おわりに 47

Page 48: WACATE2013冬 知識体系とSEMAT

48

プラクティス

と手法

知識の体系

知識の島々

活動

To Do Doing Done

SWEBOK

SQuBOK

SEMAT

Page 49: WACATE2013冬 知識体系とSEMAT

正統なエンジニアリングであるために • 共通基盤の上でより良く、早く、幸せに

–知識体系群のオープン・クローズド化へ

–知識体系上のプラクティスやパターン、手法へ

• 取り組みの場

SEMAT http://www.semat.jp/

AsianPLoPhttp://asianplop.org/

IPSJウィンターワークショップ2014大洗 http://oss.sys.wakayama-u.ac.jp/wws2014/ 49