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