WACATE2013冬 知識体系とSEMAT

Post on 10-May-2015

565 views 2 download

Transcript of WACATE2013冬 知識体系とSEMAT

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

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

Twitter: @Hiro_Washi washizaki@waseda.jp

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

目次

• エンジニアリング

• 品質の知識体系

• SWEBOK

• SQuBOK

• 知識体系の活用

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

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

• おわりに 2

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

3

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

4

正統なエンジニアリング

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

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

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

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

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

6

経験、ガイド

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

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

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

知識の島々

7

経験、ガイド

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

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

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

知識の島々

カバレッジ

同値分割

インスペクション UML

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

共通基盤があれば

8

経験、ガイド

知識

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

カバレッジ

同値分割

インスペクション UML

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

体系上の手法

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

プロフェッショナリズム

知識の体系

知識の島々

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

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

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

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

明日は?

9

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

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

共通基盤がない

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

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

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

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

• 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

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

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

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

13

プラクティス、

パターンと手法

知識の体系

知識の島々

活動

To Do Doing Done

SWEBOK

SQuBOK

SEMAT

目次

• エンジニアリング

• 品質の知識体系

• SWEBOK

• SQuBOK

• 知識体系の活用

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

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

• おわりに 14

知識体系 Body Of Knowledge

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

専門領域の定義づけ

15

文献文献

・・・

・・・

BOK ガイド

カテゴリ

知識領域

トピック(知識項目)

知識体系へのガイド

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

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

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

知識の詳細記述・実体

16

組織

ビジネス

システム

ソフトウェア

PM

BO

K

BA

BO

K REB

OK

SEBO

K

SWEB

OK

SQu

BO

K

目次

• エンジニアリング

• 品質の知識体系

• SWEBOK

• SQuBOK

• 知識体系の活用

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

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

• おわりに 17

18

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

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

保守の基礎的概念

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

設計における主要な問題

テストレベル

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

テスト技法

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

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

要求の妥当性確認

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

保守プロセス

テストに関した計量尺度

構築の管理

構築の基礎的概念

保守における主要な課題

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

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

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

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

構成状態記録および報告

レビューおよび評価

構成監査 終結

リリース管理および配布

計量

開発手法

プロセスアセスメント

プロセス計量

品質の基礎的概念

マネジメントプロセス

実践上の考慮事項

ツール

SWEBOK v3 (2014)

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

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

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

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

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

– 拡充: 品質ツール 19

目次

• エンジニアリング

• 品質の知識体系

• SWEBOK

• SQuBOK

• 知識体系の活用

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

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

• おわりに 20

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

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

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

セキュリティの技法

※変更可能性あり

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

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

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

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

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

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

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

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

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

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

23

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

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

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

暗号化モジュール

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

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

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

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

目次

• エンジニアリング

• 品質の知識体系

• SWEBOK

• SQuBOK

• 知識体系の活用

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

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

• おわりに 26

ポータル

27

辞書

文献ガイド

例: SQuBOKの場合

品質保証

開発者 28

SQuBOKガイド

品質の 概念

マネジ メント

品質技術

マネージャ SEPG

顧客

ユーザ

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

29

目次

• エンジニアリング

• 品質の知識体系

• SWEBOK

• SQuBOK

• 知識体系の活用

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

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

• おわりに 30

31

知識項目 SWEBOK PMBOK SQuBOK

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

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

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

顧客の満足度を満たす。

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

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

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

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

SWEBOK

SQuBOK PMBOK

SWEBOK

PMBOK SQuBOK

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

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

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

ISO/IEC 24773:2008 Certification of software engineering

professionals - Comparison framework

33

SWEBOK

SQuBOK xBOK

品質技術者 資格

・・・試験

知識領域

目次

• エンジニアリング

• 品質の知識体系

• SWEBOK

• SQuBOK

• 知識体系の活用

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

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

• おわりに 34

35

プラクティス、

パターンと手法

知識の体系

知識の島々

活動

To Do Doing Done

SWEBOK

SQuBOK

SEMAT

Software Engineering Methods and Theory

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

36

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

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

堅固な理論基盤に立脚

UP Agile

カーネル

言語

プラクティス

手法・ プロセス

エッセンス

Essence – Kernel and Language for Software

Engineering Methods

アルファ: Aspiration Led Progress and Health Attribute

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

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

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

40

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

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

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

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

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

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

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

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

5個の状態を持つ

成果物

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

アルファカード

「スプリント」

状態カード

「制御可能」

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

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

42

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

エピソード

XP

Scrum

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

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

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

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

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

43

ペンディング 完了

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

現在地の特定(つづき)

44

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

行き方の決定、かんばん

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

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

• 状態指向(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

目次

• エンジニアリング

• 品質の知識体系

• SWEBOK

• SQuBOK

• 知識体系の活用

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

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

• おわりに 47

48

プラクティス

と手法

知識の体系

知識の島々

活動

To Do Doing Done

SWEBOK

SQuBOK

SEMAT

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

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

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

• 取り組みの場

SEMAT http://www.semat.jp/

AsianPLoPhttp://asianplop.org/

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