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