第3回semat勉強会 sematエッセンス解説

33
SEMAT: ソフトウェアエンジニアリ ングのエッセンス 鷲崎 弘宜 SEMAT Japan Chapter Chair Twitter: @Hiro_Washi [email protected] http://www.washi.cs.waseda.ac.jp/ 201310293SEMATカーネル勉強会 (ベース資料) 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

1.468 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: 第3回SEMAT勉強会 SEMATエッセンス解説

SEMAT: ソフトウェアエンジニアリングのエッセンス

鷲崎 弘宜 SEMAT Japan Chapter Chair

Twitter: @Hiro_Washi [email protected]

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

2013年10月29日 第3回SEMATカーネル勉強会

(ベース資料) 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: 第3回SEMAT勉強会 SEMATエッセンス解説

目次

• ソフトウェアエンジニアリングの問題

• SEMATによる解決

• SEMATエッセンス(カーネル+言語)

• SEMATエッセンスの利用

• まとめ

2

Page 3: 第3回SEMAT勉強会 SEMATエッセンス解説

組織がどのようであって欲しいか?

3

より良く、より速く、より幸せに

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

ソフトウェア

Page 4: 第3回SEMAT勉強会 SEMATエッセンス解説

知識の島々(アイランド)

4

経験、ガイド

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

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

知識の島々

UML

ユースケース

コンポーネント CMMI アジャイル

Jave, C# リーン かんばん

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

Page 5: 第3回SEMAT勉強会 SEMATエッセンス解説

共通基盤があれば

5

経験、ガイド

知識

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

知識の島々

UML

ユースケース

コンポーネント CMMI アジャイル

Jave, C# リーン かんばん

共通基盤に基づく知識

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

プロフェッショナリズム

Page 6: 第3回SEMAT勉強会 SEMATエッセンス解説

20年前 オブジェクト指向

15年前 UML、RUP

12年前 CMMI

数年前 XP

現在 Scrum, リーン、かんばん

明日は?

6

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

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

Page 7: 第3回SEMAT勉強会 SEMATエッセンス解説

共通基盤がない

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

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

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

Page 8: 第3回SEMAT勉強会 SEMATエッセンス解説

産業界の

プラクティス

産業界・学術界の間のギャップ

学術的研究

8

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

Page 9: 第3回SEMAT勉強会 SEMATエッセンス解説

目次

• ソフトウェアエンジニアリングの問題

• SEMATによる解決

• SEMATエッセンス(カーネル+言語)

• SEMATエッセンスの利用

• まとめ

9

Page 10: 第3回SEMAT勉強会 SEMATエッセンス解説

Software Engineering Methods and Theory

• 2009年9月 創設 http://semat.org/

Ivar Jacobson Bertrand Meyer Richard Soley

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

–理論的基礎の定義

–広く受け入れられた要素によるカーネル 10

Page 11: 第3回SEMAT勉強会 SEMATエッセンス解説

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

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

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

SEMATが、より具体的な理論が立脚する共通の理論基盤を与える

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

Page 12: 第3回SEMAT勉強会 SEMATエッセンス解説

目次

• ソフトウェアエンジニアリングの問題

• SEMATによる解決

• SEMATエッセンス(カーネル+言語)

• SEMATエッセンスの利用

• まとめ

12

Page 13: 第3回SEMAT勉強会 SEMATエッセンス解説

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

堅固な理論基盤に立脚

UP Agile ・・・

カーネル

言語

プラクティス

手法・プロセス

・・・

エッセンス

• エッセンス(カーネル+言語)がOMG提案承認‘13、標準化へ

• Essence – Kernel and Language for Software Engineering Methods

13

Page 14: 第3回SEMAT勉強会 SEMATエッセンス解説

カーネル(と図形言語)

14

• ソフトウェア開発・技術活動のコンテキストの表現と評価

名称 図形 説明

アルファ Aspiration Led Progress and Health Attribute

進捗と健全性の把握が必要な事柄

状態

アルファのある状態、チェックリストによる確認

活動空間

実施すべき作業

活動

作業の具体的活動

作業成果物

作業の成果物

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

Page 15: 第3回SEMAT勉強会 SEMATエッセンス解説

アルファの種類と関係

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

15

Page 16: 第3回SEMAT勉強会 SEMATエッセンス解説

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

Page 17: 第3回SEMAT勉強会 SEMATエッセンス解説

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

17

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

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

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

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

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

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

Page 18: 第3回SEMAT勉強会 SEMATエッセンス解説

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

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

5個の状態を持つ

成果物

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

アルファカード

「スプリント」

状態カード

「制御可能」

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

18

Page 19: 第3回SEMAT勉強会 SEMATエッセンス解説

他のSEMATエッセンス利用事例

•エンタープライズメソッドアーキテクチャの記述と整備 [Park13]

•レガシーアプリケーションのクラウドサービスへの移行におけるSPEMの記述 [Elvesaeter13]

•システムズエンジニアリングにおけるアーキテクチャ規格やV字モデルの記述 [INCOSE13]

19

OMG TECHNICAL MEETING SPECIAL EVENT

Essence Workshop A Paradigm Shift In Software Engineering

Thursday, 0900 - 1700, June 20, 2013

http://www.omg.org/news/meetings/tc/berlin-13/special-events/Essence_Day.htm

Page 20: 第3回SEMAT勉強会 SEMATエッセンス解説

目次

• ソフトウェアエンジニアリングの問題

• SEMATによる解決

• SEMATエッセンス(カーネル+言語)

• SEMATエッセンスの利用

• まとめ

20

Page 21: 第3回SEMAT勉強会 SEMATエッセンス解説

使い方(の例)

• 開発全体の計画 –アルファによるマイルストーンの表現

–異なる側面毎の表現

• イテレーション計画と進捗管理 –現在地の特定、行き先の決定

– イテレーションの目的の見える化、タスクをタンジブルに

• 大規模開発のガバナンスフレームワーク –全体の見える化、状況共有

21

Page 22: 第3回SEMAT勉強会 SEMATエッセンス解説

開発全体の計画 承認前

ビジネスケース構築 開発中

ソフトウェア開発

骨格システム

完成 有効システム

完成 開始の

決定

運用中 ソフトウェア運用

運用の

決定

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

Page 23: 第3回SEMAT勉強会 SEMATエッセンス解説

開発手法による計画の違い

アジャイル 従来 段階

構想

スコープ定義

一貫性・体系化

受理可能

実装

満足

アーキテクチャ決定

論証完了

使用可能

準備完了

運用

退役

承認前

開発中

構想

スコープ定義

一貫性・体系化

受理可能

実装

満足

アーキテクチャ決定

論証完了

使用可能

準備完了

運用

退役 運用中

要求 ソフトウェア 要求 ソフトウェア

開始の決定

運用の決定

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

Page 24: 第3回SEMAT勉強会 SEMATエッセンス解説

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

24

ペンディング 完了

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

Page 25: 第3回SEMAT勉強会 SEMATエッセンス解説

現在地の特定(つづき)

25

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

Page 26: 第3回SEMAT勉強会 SEMATエッセンス解説

行き先の決定

26

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

Page 27: 第3回SEMAT勉強会 SEMATエッセンス解説

行き方(タスク)の決定

27

作業項目の 優先順位づけ

新人の トレーニング

コメントの閲覧

コメントの投稿 アルバム の閲覧

これらの状態へと到達するためにどのようなタスクを実施すべきか?

これらの状態へと到達するためにどのような要求項目を開発すべきか?

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

Page 28: 第3回SEMAT勉強会 SEMATエッセンス解説

タスクかんばん

28

タスク 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 29: 第3回SEMAT勉強会 SEMATエッセンス解説

目次

• ソフトウェアエンジニアリングの問題

• SEMATによる解決

• SEMATエッセンス(カーネル+言語)

• SEMATエッセンスの利用

• まとめ

29

Page 30: 第3回SEMAT勉強会 SEMATエッセンス解説

カーネルの特徴と留意 • ソフトウェア「以外」の事柄大切、アジャイル宣言支持 • 状態指向(NOT プロセス指向) • 留意

– プラクティス・手法定義の難しさ – アルファ状態遷移の複雑さ – ソフトウェア開発以外への応用可能性

30

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 31: 第3回SEMAT勉強会 SEMATエッセンス解説

組織がどのようであって欲しいか?

31

より良く、より速く、より幸せに

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

良いソフトウェア

SEMAT-Based

Page 32: 第3回SEMAT勉強会 SEMATエッセンス解説

Moving forward - その先へ! • プラクティス

– エッセンス利用ガイド、プラクティスライブラリ

– ツール、教育

• 理論 – ソフトウェアエンジニアリングの「一般性理論」

– プラクティスに特化した研究

• コミュニティ – US 法人設立、支部拡大

– 出版(Essence本、論文誌特集号)

32

Page 33: 第3回SEMAT勉強会 SEMATエッセンス解説

• 2013年4月設立 http://www.semat.jp/

鷲崎弘宜 石川冬樹 川口恭伸 久保秋真 小林展英

高橋一貴 平鍋健児 森崎修司 吉村健太郎

• SEMATのアイディア啓蒙・検証・拡張

• コミュニティ醸成(250名超)、データ収集、プラクティス・理論

• 勉強会開催 6/20, 8/1, 10/29

• 山本修一郎先生講演「SEMATと保証ケース」 KBSE研究会 33