Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
2013年10月29日 第3回SEMATカーネル勉強会

SEMAT: ソフトウェアエンジニアリ
ングのエッセンス
鷲崎 弘宜
SEMAT Japan Chapter Chair
Twitter: @Hiro_Washi washizaki@w...
目次
•
•
•
•
•

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

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

ソフトウェ
ア

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

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

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

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

経験、ガイド
4

I. Jaco...
共通基盤があれば
知識

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

共通基盤に基
づく知識

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

経験、ガイド
5...
20年前 オブジェクト指向
15年前 UML、RUP
12年前 CMMI
数年前 XP
現在 Scrum, リーン、かんばん
明日は?
どれも優れているが、我々の求める全てではない!

6

I. Jacobson, et al.: Tutor...
共通基盤がない
誰もが自身のソフト
ウェアの作り方を知
っている。
しかし、コミュニティ
として我々は受け入
れられた共通基盤を
持っていない。
7
I. Jacobson, et al.: Tutorial: Essence - Kernel...
産業界・学術界の間のギャップ
産業界の
プラクティス

学術的
研究

8

I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineeri...
目次
•
•
•
•
•

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

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

Ivar Jacobson Bertrand Meyer Richard Soley

• 堅固な理...
理論がない「わけではない」
• Boehm: COCOMO
• Parnas: 情報隠蔽
• Constantine: 凝集度、結合度
• Conwayの法則
• Dijkstra: 構造化、Goto文撲滅
• Wirth: ステップワイズリフ...
目次
•
•
•
•
•

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

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

手法・プロ...
カーネル(と図形言語)
• ソフトウェア開発・技術活動のコンテキストの表現と評価
名称

アルファ
Aspiration Led Progress
and Health Attribute

状態

図形

説明

進捗と健全性の把握が必
要な...
アルファの種類と関係

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.

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

作業対象

作業内容

例: 要求抽出プラクティス
アルファ
成果物
・機会
・フィーチャリスト
...
プラクティスの定義例: スプリント
(EssWorkの利用)
「仕事」の下位アルファ
としての「スプリント」

5個の状態を
持つ

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

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

状態カード
「制御可能」

18
...
他のSEMATエッセンス利用事例
•エンタープライズメソッドアーキテクチャの記述と整
備 [Park13]
•レガシーアプリケーションのクラウドサービスへの
移行におけるSPEMの記述 [Elvesaeter13]
•システムズエンジニアリング...
目次
•
•
•
•
•

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

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

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

• 大規模開発...
開発全体の計画
承認前

開発中

運用中

ビジネスケース構築

ソフトウェア開発

ソフトウェア運用

開始の
決定

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

決定

22

I. Jacobson, et al.: Tutori...
開発手法による計画の違い
段階
承認前
開始の決定

開発中

アジャイル
要求

ソフトウェア

従来
要求

ソフトウェア

構想

構想

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

アーキテク
チャ決定

受理可能

論証完了

スコープ定
義...
イテレーション計画: 現在地の特定

完了

ペンディング

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

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

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

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

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

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

アルバム
の閲覧

新人の
トレーニング
...
タスクかんばん
目的

To Do

Doing

Done

タスク 1
タスク 2 テスト環境セットアップ

タスク 3 要求項目Aの完了
タスク4

要求項目Bの完了

タスク 5 要求項目Cの完了
タスク 7
タスク 8
タスク 9

...
目次
•
•
•
•
•

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

29
カーネルの特徴と留意
• ソフトウェア「以外」の事柄大切、アジャイル宣言支持
• 状態指向(NOT プロセス指向)
• 留意
– プラクティス・手法定義の難しさ
– アルファ状態遷移の複雑さ
– ソフトウェア開発以外への応用可能性
原則

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

SEMAT-Based

良いソフト
ウェア

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

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

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

• コミュニティ...
• 2013年4月設立 http://www.semat.jp/

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

久保秋真 小林展英

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

•
•
•
•

SEMATのアイディア啓蒙・検証・拡張
コミュニティ醸成(2...
Upcoming SlideShare
Loading in …5
×

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

2,602 views

Published on

  • Be the first to comment

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

  1. 1. 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
  2. 2. 目次 • • • • • ソフトウェアエンジニアリングの問題 SEMATによる解決 SEMATエッセンス(カーネル+言語) SEMATエッセンスの利用 まとめ 2
  3. 3. 組織がどのようであって欲しいか? ソフトウェ ア より良く、より速く、より幸せに 3 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  4. 4. 知識の島々(アイランド) 知識 プロフェッショナリズム ベストプラクティ スに裏打ちさ れた能力 知識の島々 ユースケース UMLアジャイル CMMI コンポーネント かんばん リーン Jave, C# 経験、ガイド 4 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  5. 5. 共通基盤があれば 知識 プロフェッショナリズム ベストプラクティ スに裏打ちさ れた能力 共通基盤に基 づく知識 知識の島々 ユースケース UMLアジャイル CMMI コンポーネント かんばん リーン Jave, C# 経験、ガイド 5 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  6. 6. 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. 7. 共通基盤がない 誰もが自身のソフト ウェアの作り方を知 っている。 しかし、コミュニティ として我々は受け入 れられた共通基盤を 持っていない。 7 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  8. 8. 産業界・学術界の間のギャップ 産業界の プラクティス 学術的 研究 8 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  9. 9. 目次 • • • • • ソフトウェアエンジニアリングの問題 SEMATによる解決 SEMATエッセンス(カーネル+言語) SEMATエッセンスの利用 まとめ 9
  10. 10. Software Engineering Methods and Theory • 2009年9月 創設 http://semat.org/ Ivar Jacobson Bertrand Meyer Richard Soley • 堅固な理論、実証原則・ベストプラクティスに基づ くソフトウェアエンジニアリング再建(共通理解) – 理論的基礎の定義 – 広く受け入れられた要素によるカーネル 10
  11. 11. 理論がない「わけではない」 • 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
  12. 12. 目次 • • • • • ソフトウェアエンジニアリングの問題 SEMATによる解決 SEMATエッセンス(カーネル+言語) SEMATエッセンスの利用 まとめ 12
  13. 13. SEMATのメソッドアーキテクチャ • エッセンス(カーネル+言語)がOMG提案承認‘13、標準化へ • Essence – Kernel and Language for Software Engineering Methods 手法・プロセス UP Agile ・・・ ・・・ プラクティス カーネル エッセンス 言語 堅固な理論基盤に立脚 13
  14. 14. カーネル(と図形言語) • ソフトウェア開発・技術活動のコンテキストの表現と評価 名称 アルファ Aspiration Led Progress and Health Attribute 状態 図形 説明 進捗と健全性の把握が必 要な事柄 活動空間 アルファのある状態、 チェックリストによる確認 実施すべき作業 活動 作業の具体的活動 作業成果物 作業の成果物 山本 修一郎, SEMATの概要, Business Communication, 2013 http://www.bcm.co.jp/site/youkyu/youkyu103.html 14
  15. 15. アルファの種類と関係 15 Ivar Jacobson, et al.著, ソフトウェアエンジニアリングのエッセンス: SEMAT カーネル, http://www.semat.jp/publications
  16. 16. 16 Ivar Jacobson, et al.著, ソフトウェアエンジニアリングのエッセンス: SEMAT カーネル, http://www.semat.jp/publications
  17. 17. プラクティスの定義 1. 2. 3. 4. アルファを選択 必要に応じて下位アルファの定義 作業生活物を追加 活動空間を定義して活動を具体化 作業対象 作業内容 例: 要求抽出プラクティス アルファ 成果物 ・機会 ・フィーチャリスト ・ステークホルダ ・要求 活動空間 活動 ・可能性探索 ・顧客価値合意 ・要求理解 ・システム操作調査 ・ステークホルダの ・顧客デモ実施 ニーズ理解 山本 修一郎, SEMATの概要, Business Communication, 2013 http://www.bcm.co.jp/site/youkyu/youkyu103.html 17
  18. 18. プラクティスの定義例: スプリント (EssWorkの利用) 「仕事」の下位アルファ としての「スプリント」 5個の状態を 持つ 成果物 「スプリントバックログ」と関連 アルファカード 「スプリント」 状態カード 「制御可能」 18 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  19. 19. 他の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
  20. 20. 目次 • • • • • ソフトウェアエンジニアリングの問題 SEMATによる解決 SEMATエッセンス(カーネル+言語) SEMATエッセンスの利用 まとめ 20
  21. 21. 使い方(の例) • 開発全体の計画 – アルファによるマイルストーンの表現 – 異なる側面毎の表現 • イテレーション計画と進捗管理 – 現在地の特定、行き先の決定 – イテレーションの目的の見える化、タスクをタンジ ブルに • 大規模開発のガバナンスフレームワーク – 全体の見える化、状況共有 21
  22. 22. 開発全体の計画 承認前 開発中 運用中 ビジネスケース構築 ソフトウェア開発 ソフトウェア運用 開始の 決定 骨格システム 有効システム 運用の 完成 完成 決定 22 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  23. 23. 開発手法による計画の違い 段階 承認前 開始の決定 開発中 アジャイル 要求 ソフトウェア 従来 要求 ソフトウェア 構想 構想 スコープ定 義 一貫性・体 系化 アーキテク チャ決定 受理可能 論証完了 スコープ定 義 一貫性・体 系化 アーキテク チャ決定 論証完了 使用可能 受理可能 使用可能 準備完了 準備完了 運用の決定 実装 運用中 運用 実装 運用 満足 退役 満足 退役 23 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  24. 24. イテレーション計画: 現在地の特定 完了 ペンディング 24 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  25. 25. 現在地の特定(つづき) 25 Ivar Jacobson, et al.著, ソフトウェアエンジニアリングのエッセンス: SEMAT カーネル, http://www.semat.jp/publications
  26. 26. 行き先の決定 26 Ivar Jacobson, et al.著, ソフトウェアエンジニアリングのエッセンス: SEMAT カーネル, http://www.semat.jp/publications
  27. 27. 行き方(タスク)の決定 これらの状態へと到達するために どのような要求項目を開発すべき か? これらの状態へと到達する ためにどのようなタスクを実 施すべきか? コメントの閲覧 コメントの投稿 アルバム の閲覧 新人の トレーニング 作業項目の 優先順位づけ 27 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  28. 28. タスクかんばん 目的 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
  29. 29. 目次 • • • • • ソフトウェアエンジニアリングの問題 SEMATによる解決 SEMATエッセンス(カーネル+言語) SEMATエッセンスの利用 まとめ 29
  30. 30. カーネルの特徴と留意 • ソフトウェア「以外」の事柄大切、アジャイル宣言支持 • 状態指向(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
  31. 31. 組織がどのようであって欲しいか? SEMAT-Based 良いソフト ウェア より良く、より速く、より幸せに 31 I. Jacobson, et al.: Tutorial: Essence - Kernel and Language for Software Engineering Practices, ICSE'13
  32. 32. Moving forward - その先へ! • プラクティス – エッセンス利用ガイド、プラクティスライブラリ – ツール、教育 • 理論 – ソフトウェアエンジニアリングの「一般性理論」 – プラクティスに特化した研究 • コミュニティ – US 法人設立、支部拡大 – 出版(Essence本、論文誌特集号) 32
  33. 33. • 2013年4月設立 http://www.semat.jp/ 鷲崎弘宜 石川冬樹 川口恭伸 久保秋真 小林展英 高橋一貴 平鍋健児 森崎修司 吉村健太郎 • • • • SEMATのアイディア啓蒙・検証・拡張 コミュニティ醸成(250名超)、データ収集、プラクティス・理論 勉強会開催 6/20, 8/1, 10/29 山本修一郎先生講演「SEMATと保証ケース」 KBSE研究会 33

×