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

SEMAT: ソフトウェアエンジニアリ
ングのエッセンス
鷲崎 弘宜
SEMAT Japan Chapter Chair
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
目次
•
•
•
•
•

ソフトウェアエンジニアリングの問題
SEMATによる解決
SEMATエッセンス(カーネル+言語)
SEMATエッセンスの利用
まとめ

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

ソフトウェ
ア

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

3
I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
知識の島々(アイランド)
知識

プロフェッショナリズム
ベストプラクティ
スに裏打ちさ
れた能力

知識の島々
ユースケース
UMLアジャイル CMMI
コンポーネント
かんばん
リーン
Jave, C#

経験、ガイド
4

I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
共通基盤があれば
知識

プロフェッショナリズム
ベストプラクティ
スに裏打ちさ
れた能力

共通基盤に基
づく知識

知識の島々
ユースケース
UMLアジャイル CMMI
コンポーネント
かんばん
リーン
Jave, C#

経験、ガイド
5

I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
20年前 オブジェクト指向
15年前 UML、RUP
12年前 CMMI
数年前 XP
現在 Scrum, リーン、かんばん
明日は?
どれも優れているが、我々の求める全てではない!

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
産業界・学術界の間のギャップ
産業界の
プラクティス

学術的
研究

8

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

ソフトウェアエンジニアリングの問題
SEMATによる解決
SEMATエッセンス(カーネル+言語)
SEMATエッセンスの利用
まとめ

9
Software Engineering
Methods and Theory
• 2009年9月 創設 http://semat.org/

Ivar Jacobson Bertrand Meyer Richard Soley

• 堅固な理論、実証原則・ベストプラクティスに基づ
くソフトウェアエンジニアリング再建(共通理解)
– 理論的基礎の定義
– 広く受け入れられた要素によるカーネル

10
理論がない「わけではない」
• 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
目次
•
•
•
•
•

ソフトウェアエンジニアリングの問題
SEMATによる解決
SEMATエッセンス(カーネル+言語)
SEMATエッセンスの利用
まとめ

12
SEMATのメソッドアーキテクチャ
• エッセンス(カーネル+言語)がOMG提案承認‘13、標準化へ
• Essence – Kernel and Language for Software Engineering Methods

手法・プロセス
UP

Agile

・・・

・・・

プラクティス
カーネル
エッセンス
言語
堅固な理論基盤に立脚
13
カーネル(と図形言語)
• ソフトウェア開発・技術活動のコンテキストの表現と評価
名称

アルファ
Aspiration Led Progress
and Health Attribute

状態

図形

説明

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

活動空間

アルファのある状態、
チェックリストによる確認
実施すべき作業

活動

作業の具体的活動

作業成果物

作業の成果物

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

14
アルファの種類と関係

15
Ivar Jacobson, et al.著, ソフトウェアエンジニアリングのエッセンス: SEMAT カーネル, http://www.semat.jp/publications
16
Ivar Jacobson, et al.著, ソフトウェアエンジニアリングのエッセンス: SEMAT カーネル, http://www.semat.jp/publications
プラクティスの定義
1.
2.
3.
4.

アルファを選択
必要に応じて下位アルファの定義
作業生活物を追加
活動空間を定義して活動を具体化

作業対象

作業内容

例: 要求抽出プラクティス
アルファ
成果物
・機会
・フィーチャリスト
・ステークホルダ
・要求
活動空間
活動
・可能性探索
・顧客価値合意
・要求理解
・システム操作調査
・ステークホルダの
・顧客デモ実施
ニーズ理解

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

17
プラクティスの定義例: スプリント
(EssWorkの利用)
「仕事」の下位アルファ
としての「スプリント」

5個の状態を
持つ

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

アルファカード
「スプリント」

状態カード
「制御可能」

18

I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
他のSEMATエッセンス利用事例
•エンタープライズメソッドアーキテクチャの記述と整
備 [Park13]
•レガシーアプリケーションのクラウドサービスへの
移行におけるSPEMの記述 [Elvesaeter13]
•システムズエンジニアリングにおけるアーキテクチ
ャ規格やV字モデルの記述 [INCOSE13]

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

19
目次
•
•
•
•
•

ソフトウェアエンジニアリングの問題
SEMATによる解決
SEMATエッセンス(カーネル+言語)
SEMATエッセンスの利用
まとめ

20
使い方(の例)
• 開発全体の計画
– アルファによるマイルストーンの表現
– 異なる側面毎の表現

• イテレーション計画と進捗管理
– 現在地の特定、行き先の決定
– イテレーションの目的の見える化、タスクをタンジ
ブルに

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

開発中

運用中

ビジネスケース構築

ソフトウェア開発

ソフトウェア運用

開始の
決定

骨格システム 有効システム
運用の
完成
完成

決定

22

I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
開発手法による計画の違い
段階
承認前
開始の決定

開発中

アジャイル
要求

ソフトウェア

従来
要求

ソフトウェア

構想

構想

スコープ定
義
一貫性・体
系化

アーキテク
チャ決定

受理可能

論証完了

スコープ定
義
一貫性・体
系化

アーキテク
チャ決定
論証完了

使用可能

受理可能

使用可能

準備完了

準備完了

運用の決定
実装

運用中

運用

実装

運用

満足

退役

満足

退役
23

I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
イテレーション計画: 現在地の特定

完了

ペンディング

24
I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
現在地の特定(つづき)

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

26
Ivar Jacobson, et al.著, ソフトウェアエンジニアリングのエッセンス: SEMAT カーネル, http://www.semat.jp/publications
行き方(タスク)の決定

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

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

コメントの閲覧
コメントの投稿

アルバム
の閲覧

新人の
トレーニング

作業項目の
優先順位づけ

27

I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
タスクかんばん
目的

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
目次
•
•
•
•
•

ソフトウェアエンジニアリングの問題
SEMATによる解決
SEMATエッセンス(カーネル+言語)
SEMATエッセンスの利用
まとめ

29
カーネルの特徴と留意
• ソフトウェア「以外」の事柄大切、アジャイル宣言支持
• 状態指向(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

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

SEMAT-Based

良いソフト
ウェア

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

31
I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
Moving forward - その先へ!
• プラクティス
– エッセンス利用ガイド、プラクティスライブラリ
– ツール、教育

• 理論
– ソフトウェアエンジニアリングの「一般性理論」
– プラクティスに特化した研究

• コミュニティ
– US 法人設立、支部拡大
– 出版(Essence本、論文誌特集号)

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

鷲崎弘宜 石川冬樹 川口恭伸

久保秋真 小林展英

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

•
•
•
•

SEMATのアイディア啓蒙・検証・拡張
コミュニティ醸成(250名超)、データ収集、プラクティス・理論
勉強会開催 6/20, 8/1, 10/29
山本修一郎先生講演「SEMATと保証ケース」 KBSE研究会
33

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