ユースケースポイント計測支援ツールの 実装とその適用 松川 文一† 楠本 真二† 井上 克郎† 英 繁雄‡ 前川 祐介‡ †大阪大学大学院情報科学研究科 ‡株式会社 日立システムアンドサービス Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science.

Download Report

Transcript ユースケースポイント計測支援ツールの 実装とその適用 松川 文一† 楠本 真二† 井上 克郎† 英 繁雄‡ 前川 祐介‡ †大阪大学大学院情報科学研究科 ‡株式会社 日立システムアンドサービス Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science.

ユースケースポイント計測支援ツールの
実装とその適用
松川 文一† 楠本 真二† 井上 克郎†
英 繁雄‡ 前川 祐介‡
†大阪大学大学院情報科学研究科
‡株式会社
日立システムアンドサービス
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
発表内容
研究の背景と目的
ユースケースポイント法
ユースケースモデル
実装のキーアイデア
アクタ・ユースケースの分類
過去情報の利用
試作ツールとその評価
まとめ・今後の課題
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2
研究の背景
ソフトウェア開発における開発規模,開発工数の早期
見積りの重要性
ファンクションポイント法
設計段階まで進める必要
開発期間の短いもの(Webアプリケーション等)には適用し難い
開発プロセスのより早期(要求分析段階)における見
積り手法の確立
ユースケースポイント法の提案
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
3
ユースケースポイント法(UCP法)
G.Karnerによって提案[1](1993)
プロジェクトの開発工数(人時)を見積る一手法
ユースケースモデルに基づく
オブジェクト指向開発での要求分析段階で作成
アクタ,ユースケースの重み付け
3種類(単純・平均的・複雑)に分類,重み付け
プロジェクトの技術的複雑さ,開発環境を考慮した調整
実際の適用には・・・
熟練度の要求
既存の計測ツール
複雑さ分類はユーザが行う
[1]G. Karner, “Use Case Points – Resource Estimation for Objectory Projects”, Objective
Systems SF AB, 1993.
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
4
研究の目的
ユースケースポイント法に基づいて自動計測を行う
ツールの試作
アクタ,ユースケース分類(重み付け)の自動化
過去の情報の利用(ユーザ支援)
実際のWebアプリケーションのユースケースモデルへ
の適用および評価
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
5
ユースケースモデル
システムの動作・機能要求をユーザ視点で表現
注文を出す:
構成
注文処理システム
システム
・関連するアクタ:
ユースケース図:UMLによる視覚化
注文を出す
注文を出す
・事前条件,事後条件:
アクタ:システムを使用する人間,関連する別システム
顧客
・イベントフロー:
ユースケース:ユーザが望むシステムの動作
1.顧客が「注文を出す」ボタンを押す。
2.システムは情報入力画面を表示する。
ユースケース記述:ユースケースの機能を実現するために
顧客
商品を返品する
3.顧客は商品コードを入力する。
必要な詳細情報を記述
4.システムは入力された商品コードから商品を検索する。
・
・
・
・
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
6
実装のキーアイデア
分類の自動化
アクタの分類
ユースケースの分類
過去情報の利用
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
7
アクタの分類
タイプ
単純
平均的
複雑
説明
重み
定義済みAPIを備える(外部システム)
1
プロトコル駆動のインタフェース(外部システム)
テキストベースのインタフェース(人間)
2
GUIを介する(人間)
3
問題点
アクタとシステム間のインタフェースに関する情報をどこから得るか
分類手法
アクタ名に関するキーワード(ユーザ設定可)により,外部システムと人間とを分
類(Step1)
関連するユースケースのイベントに対する,キーワードマッチング(Step2)
そのアクタが主体となるイベントを抽出
インタフェースに関連するようなキーワード群の設定(複雑:「ボタン」「押す」など)
マッチングの割合の高い複雑さを採用
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
8
アクタの分類イメージ
名前キーワード
(ユーザ設定可)に
よる分類(Step1)
システム
システム,サーバ・・・
キーワード(ユーザ設定可)
単純
「リクエスト」「要求」・・・
平均的
「メール」「コマンド」・・・
複雑
「ボタン」「押す」・・・
注文を出す
顧客
平均的
複雑
アクタ主体のイベントに対して
キーワードマッチングを行い、
マッチの割合が高いものを採用
(Step2)
1.顧客が「注文を出す」ボタンを押す。
2.システムは情報入力画面を表示する。
3.顧客は商品コードを入力する。
4.システムは入力された商品コードから商品を検索する。
・
・
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
9
ユースケースの分類
タイプ
ユースケースのトランザクション数
重み
単純 3個以下
注文を出す:
5
平均的 4~7個
・関連するアクタ:
複雑 8個以上
・事前条件,事後条件:
・イベントフロー:
10
15
システム
注文を出す
顧客
1.顧客が「注文を出す」ボタンを押す。
問題点
2.システムは情報入力画面を表示する。
自然言語で書かれたイベントからトランザクションを識別
3.顧客は商品コードを入力する。
4.システムは入力された商品コードから商品を検索する。
イベントの書き方は明確に定められているわけではない
・
・
分類手法
・
形態素解析と係受け解析によるトランザクション識別
・
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
10
トランザクションの識別
CaboCha[2]を用いた解析
形態素解析と日本語での係受け
の解析
統計的な日本語係受け解析ツー
ルとしては最も高精度
システムは、データを登録する。
トランザクション識別基準
主語(名詞+「は」,「が」)+述語
(動詞)のペアを抽出
アクタ,及びシステムの動作(主語
がアクタ,システムを指すもの)であ
ればトランザクションとしてカウント
[2]CaboCha: Yet Another Japanese Dependency Structure Analyzer, http://cl.aist-nara.ac.jp/~taku-ku/software/cabocha/
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
11
過去の情報の利用
手法が適用できない場合
アクタ:マッチングが取れない等
ユースケース:イベント記述がない等
過去情報から類似した要素を探し,過去に決定さ
れた複雑さをユーザに提示
→ ユーザが複雑さを手動で設定
過去の情報がなければ,デフォルト値
アクタ(外部システム):平均的
アクタ(人間):複雑
ユースケース:平均的
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
12
試作ツール
詳細
開発言語:Java
サイズ:約4500行, 45クラス
ライブラリ:JDK1.4.2, Xerces2 Java Parser
入力モデル:UMLモデリングツール「Describe」[3]で記
述されたユースケースモデル
XMI(XML Metadata Interchange)形式
– XMLの構文仕様によるUML記述方式
独自のDTD定義を使用
[3] Describe: http://www.jsys-products.com/product/describe/
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
13
ツール評価(1/3)
アクタ,ユースケースの複雑さ分類の正確性を評価
5つのWebシステム開発プロジェクトに対する適用
経験者による手動での分類結果との比較
プロジェクト
開発言語
アクタ数
ユースケース数
A
Java
5
15
B
Java
5
14
C
Java, VB.NET
2
20
D
Java
5
28
E
Java
8
13
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
14
ツール評価(2/3)
アクタの分類
ツールによる分類(自動)
手動での分類
単純
平均的
複雑
単純
平均的
複雑
複雑さの
一致した割合
A
0
1
4
1
0
4
0.80
B
0
3
2
3
0
2
0.40
C
0
0
2
0
0
2
1.0
D
0
1
4
1
0
4
0.80
E
0
0
8
0
0
8
1.0
プロジェクト
考察
複雑さの異なったアクタは全て外部システム
外部システムが主体となるイベント記述の欠如
システム主体のイベントに外部システムが関連(データの移動,取得)
再分類後も結果は変わらず
キーワードからのインタフェース判別は困難
→ モデル以外からの情報入手(アーキテクチャ図など)
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
15
システム
ユースケースA
人間A
外部システムA
1.人間Aは、番号を入力する。
2.システムは、番号をキーに外部システムAに問い合わせ、データを取得
し、表示する。
3.人間Aは、登録する物の種別を選択する。
4.システムは、選択された種別をキーにデータを問い合わせ、データを取
得し表示する。
・
・
・
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
16
ツール評価(3/3)
ユースケースの分類
ツールによる分類(自動)
手動での分類
単純
平均的
複雑
単純
平均的
複雑
複雑さの
一致した割合
A
13
2
0
13
2
0
1.0
B
6
7
1
10
4
0
0.64
C
11
9
0
14
6
0
0.85
D
23
4
1
27
1
0
0.82
E
2
8
3
2
8
3
1.0
プロジェクト
考察
システムによる情報表示処理に対する扱いの違い
イベント表示画面におけるユーザによる修正
再分類後は全てのプロジェクトで完全に一致
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
17
1.アクタは、プロジェクト一覧の中からプロジェクトをひ
とつ選択する。
2.システムは、選択されたプロジェクト情報を表示する。
・
・
情報表示処理をトランザクションとしない
(ツールでは識別)
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
18
まとめと今後の課題
ユースケースポイント法に基づいて計測を行うツール
の試作
ツールの評価
5つのプロジェクトに対する適用
今後の課題
外部システムのインタフェースに関する情報の探索
過去情報利用機能の評価
多くのケーススタディ
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
19
補足
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
20
UCP計測手順(1/4)
アクタの重み付け
アクタそれぞれを3タイプに分類
タイプ
単純
平均的
複雑
説明
重み係数
定義済みAPIを備えた別システム
1
プロトコル駆動のインタフェース(別システム)
テキストベースのインタフェース(人間)
2
GUIを介する人間
3
それぞれのタイプのアクタの数に係数を掛け、合計したも
の → アクタの重み
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
21
UCP計測手順(2/4)
ユースケースの重み付け
ユースケースそれぞれについて同様に分類
ユースケース内のトランザクション数に基づく
タイプ
単純
平均的
複雑
トランザクション数
3個以下
4~7個
8個以上
重み係数
5
10
15
それぞれのタイプのユースケースの数に係数を掛け、合計したもの
→ ユースケースの重み
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
22
UCP計測手順(3/4)
未調整ユースケースポイント(UUCP)
UUCP = アクタの重み + ユースケースの重み
この値に以下の要因を反映して補正
技術要因(TCF)
– プロジェクトの複雑さに関する要因
– 13の項目について0~5の6段階で評価
» 分散システム,移植可能,特別なセキュリティ, etc…
環境要因(EF)
– プロジェクトに携わるチームの経験や,開発環境に関する要因
– 8の項目について0~5の6段階で評価
» 開発経験,モチベーション,要求の安定性,etc…
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
23
UCP計測の方法(4/4)
ユースケースポイントの算出
UCP = UUCP × TCF × EF
調整係数による補正
TCF : 約±30%
EF : 約±60%
工数の算出
Karnerの提案:20人時 / 1UCP
20~30が適当か
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
24
UCP計測手順(4/6)
技術要因の重み付け
技術的複雑さ要因
(TCF : Technical Complexity Factor)
1. 13項目の要因について0~5の6段階で評価
2. 各評価値に、項目ごとに設定されている重みを掛け
てその和を算出(TFactor)
TFactor = Σ(各要因の評価点) × (重み係数)
3. TCFを以下の公式を用いて算出
TCF = 0.6 + (0.01 × TFactor)
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
25
技術要因
システムの技術要因とその重み
要因番号
要因の説明
重み
T1
分散システムである
2
T2
レスポンスまたはスループットのパフォーマンス目標が設定されている
1
T3
エンドユーザの効率(オンライン時)を重視
1
T4
内部処理が複雑
1
T5
コードが再利用可能でなければならない
1
T6
インストールしやすい
0.5
T7
使いやすい
0.5
T8
移植可能
2
T9
変更しやすい
1
T10
並行性が必要
1
T11
特別なセキュリティ機能が必要
1
T12
第三者に直接アクセスを提供している
1
T13
特別なユーザトレーニングが必要
1
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
26
UCP計測手順(5/6)
環境要因(EF : Environmental Factor)
1. 8項目の要因について0~5の6段階で評価
2. 各評価値に、項目ごとに設定されている重みを掛け
てその和を算出(EFactor)
EFactor = Σ(各要因の評価点) × (重み係数)
3. EFを以下の公式を用いて算出
EF = 1.4 + (- 0.03 × EFactor)
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
27
環境要因
チームの環境要因とその重み
要因番号
要因の説明
F1
採用するプロセスに精通している
F2
その分野での開発経験がある
F3
採用する方法論についての経験
F4
主任アナリスト(リーダー)の能力
F5
プロジェクトに対するモチベーション
F6
要求仕様の安定性
F7
F8
2015/11/7
兼任スタッフの存在
プログラミング言語の難しさ
重み
1.5
0.5
1
0.5
1
2
-1
-1
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
28
アクタ分類におけるキーワード
キーワード
命名規則
「~システム」「~サーバ」
単純
「リクエスト」「要求」「通知」
平均的 外部システム
「メッセージ」「メール」「送信」
人間
複雑
2015/11/7
「コマンド」「テキスト」「入力」
「ボタン」「押す」「選択」
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
29
効果的なイベント記述方針
単純な文法で記述
主語,述語,修飾語,目的語・・・
動作の主語を明確に
意味のあるアクションの集合
主アクタがシステムに要求とデータを送る
システムが要求とデータを確認する
システムがその内部状態を変更する
システムがアクタに結果を返す
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
30
過去の情報の利用(支援手法)
以下の情報を蓄積
プロジェクト情報(業種,言語,期間等)
アクタ情報(名前,業種,決定された複雑さ等)
ユースケース情報(名前,業種,決定された複雑さ等)
イベント情報(使用されたユースケース,イベント本体)
過去に計測された類似した要素の複雑さを表示することで
分類を支援
自動化の手法では決定しにくい要素
キーワードにヒットしないアクタ
イベント記述のないユースケース
自動化の手法が適用された場合も見つかれば表示
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
31
SVM(Support Vector Machine)
統計的学習理論に基づく学習モデル
パターン認識の能力において最も優秀な学習モデルの1
つ
従来モデルに比べ汎化能力が高く,過学習しにくい
手書き文字の認識や3次元画像認識など多くの分
野で応用
自然言語処理分野における文書分類
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
32
「南瓜」使用例
入力文章
簡易Tree表示
計算機処理用
フォーマット
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
33
試作ツール(システム構成)
ユースケースポイント計測システム
モデリング
Describe
モデルファイル
(XMI形式)
XMI解析部
各情報
(アクタ、ユースケース、イベント)
イベント解析
複雑度測定部
未調整ユースケースポイント
(UUCP)
GUI
結果表示
部
技術要因(TCF)
UCP測定部
ユーザ
環境要因(EF)
要因評価部
計測結果
過去のプロジェクト情報
過去計測DB
データの流れ
データベース蓄積
2015/11/7
制御の流れ
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
34
ツール評価
ユースケースの再分類結果
プロジェクト
ツール計測
手動計測
一致率
単純
平均的
複雑
単純
平均的
複雑
A
13
2
0
13
2
0
1.0
B
10
4
0
10
4
0
1.0
C
14
6
0
14
6
0
1.0
D
27
1
0
27
1
0
1.0
E
2
8
3
0
10
3
0.85
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
35
ツール評価
工数比較
プロジェクト
ツール見積工数 手動見積工数
実工数
A
20.8(人時)
20.6
18.6
B
13.1
10.2
4.5
C
29.8
26.8
16.0
D
23.9
20.5
21.2
考察
プロジェクトB:自動生成部分の割合高→実工数低下
誤差の範囲:3.1%~67.8%
要求仕様段階での誤差は60%以内に抑えるべき(Bohem)
2015/11/7
第144回ソフトウェア工学研究会
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
36