ユースケースモデルを入力とした 工数見積支援ツールの構築

Slides:



Advertisements
Similar presentations
API 呼び出し列の差分を利用した Android アプリケーション比較ツールの 試作 井上研究室 神田 哲也.
Advertisements

Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 ソフトウェア部品推薦のための.
メタモデル記述を用いた成果物間の依存関係追跡手法
システム開発におけるユーザ要求の 明示的表現に関する一検討
シーケンス図の生成のための実行履歴圧縮手法
最新ファイルの提供を保証する代理FTPサーバの開発
高度情報演習1A “テーマC” 実践 画像処理プログラミング 〜画像認識とCGによる画像生成〜 第四回 演習課題 画像中からの物体抽出処理(背景情報を手がかりとして) 芝浦工業大学 工学部 情報工学科 青木 義満 2006/05/15.
JPAを利用した RESTful Webサービスの開発
国内線で新千歳空港を利用している航空会社はどこですか?
機能実現期間の測定による プログラマ能力の実験的評価
知識情報演習Ⅲ(後半第1回) 辻 慶太(水)
早稲田大学大学院理工学研究科 情報科学専攻修士2年 後藤滋樹研究室 坂本義裕
事業計画 発表者名 | 会社名.
ビジネスパターンに基づく クラウドシステムのサービスレベル設計
「データ学習アルゴリズム」 第3章 複雑な学習モデル 3.1 関数近似モデル ….. … 3層パーセプトロン
形態素解析および係り受け解析・主語を判別
セマンティクスを利用した 図書検索システム
ユースケース図2-4~ FM11012 中島拓也.
メソッド名とその周辺の識別子の 相関ルールに基づくメソッド名変更支援手法
UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日.
ユースケース オブジェクト指向の要求分析のためのモデル。 スウェーデンのイヴァー・ヤコブソンが1990年代前半に開発。
クラス動作シナリオ可視化手法の プログラム理解作業に対する有効性評価
Java ソフトウェア部品検索システム SPARS-J のための リポジトリ自動更新機能の実現
スペクトル・時系列データの前処理方法 ~平滑化 (スムージング) と微分~
プログラム実行履歴を用いたトランザクションファンクション抽出手法
プログラム実行時情報を用いたトランザクションファンクション抽出手法
ソースコードの変更履歴における メトリクス値の変化を用いた ソフトウェアの特性分析
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
識別子の命名支援を目的とした動詞-目的語関係の辞書構築
関数の変更履歴と呼出し関係に基づいた開発履歴理解支援システムの実現
資料1-6 平成26年度 第1回技術委員会資料 支援ツール群整備方針
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
オープンソース開発の履歴情報を用いたコミュニティ検索支援システム
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
音高による音色変化に着目した音源同定に関する研究
実行時情報に基づく OSカーネルのコンフィグ最小化
卒論の書き方: 参考文献について 2017年9月27日 小尻智子.
只見町 インターネット・エコミュージアムの「キーワード」検索の改善
社会シミュレーションのための モデル作成環境
コードクローン検出ツールを用いた ソースコード分析システムの試作と プログラミング演習への適用
深層学習を用いた音声認識システム 工学部 電気電子工学科 白井研究室 T213069 林健吉.
プログラム動作理解支援を目的とした オブジェクトの振舞いの同値分割手法
ソフトウェア設計検証 研究室の紹介 知能情報学部 准教授 新田直也.
数量分析 第2回 データ解析技法とソフトウェア
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
オープンソース開発支援のための リビジョン情報と電子メールの検索システム
ソースコードの静的特性を用いた Javaプログラム間類似度測定ツールの試作
言語XBRLで記述された 財務諸表の分析支援ツールの試作
All Rights Reserved, Copyright © 2004, Kobayashi
ビジネス プロジェクトの計画 発表者名 | 会社名.
シナリオを用いたレビュー手法PBRの追証実験 - UMLで記述された設計仕様書を対象として -
Firebaseを用いた 位置情報共有システム
ソフトウェア保守のための コードクローン情報検索ツール
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
UMLの概要とオブジェクト指向の基本概念
コーディングパターンの あいまい検索の提案と実装
オブジェクトの協調動作を用いた オブジェクト指向プログラム実行履歴分割手法
設計情報の再利用を目的とした UML図の自動推薦ツール
保守請負時を対象とした 労力見積のためのメトリクスの提案
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
データ中心システム設計方法論“DATARUN” 
欠陥検出を目的とした類似コード検索法 吉田則裕,石尾隆,松下誠,井上克郎 大阪大学 大学院情報科学研究科
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
複雑度メトリクスを用いた JAVAプログラム品質特性の実験的評価
コードクローン解析に基づく デザインパターン適用候補の検出手法
知識ベースの試作計画 ●●●研究所 ●●●技術部 稲本□□ 1997年1月.
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
識別子の読解を目的とした名詞辞書の作成方法の一試案
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
1.2 言語処理の諸観点 (1)言語処理の利用分野
Presentation transcript:

ユースケースモデルを入力とした 工数見積支援ツールの構築 博士前期課程2年 井上研究室 松川 文一

研究の背景 ソフトウェア開発における開発規模,開発工数の早期見積りの重要性 開発プロセスのより早期(要求分析段階)における見積り手法の確立 ファンクションポイント法  設計段階まで進める必要 開発期間の短いもの(Webアプリケーション等)には不適 開発プロセスのより早期(要求分析段階)における見積り手法の確立 ユースケースポイント法の提案 2019/2/4 平成15年度修士論文発表会

ユースケースポイント法(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年度修士論文発表会

ユースケースモデル システムの動作・機能要求をユーザ視点で表現 構成 アクタ:システムを使用する人間,関連する別システム ユースケース:ユーザが望むシステムの動作 構成 ユースケース図:UMLによる視覚化 ユースケース記述:ユースケースの機能を実現するために必要な詳細情報を記述 注文処理システム 顧客 注文を出す 商品を返品する 注文を出す: ・関連するアクタ: ・事前条件,事後条件: ・イベントフロー: 1.顧客が「注文を出す」ボタンを押す。 2.システムは情報入力画面を表示する。 3.顧客は商品コードを入力する。 4.システムは入力された商品コードから商品を検索する。 ・ システム 顧客 注文を出す 2019/2/4 平成15年度修士論文発表会

研究の目的 ユースケースポイント法に基づいて計測を自動で行うツールの試作 実際のWebアプリケーションのユースケースモデルへの適用および評価 アクタ,ユースケース分類(重み付け)の自動化 実際のWebアプリケーションのユースケースモデルへの適用および評価 2019/2/4 平成15年度修士論文発表会

アクタの分類 問題点 分類手法 アクタとシステム間のインタフェースに関する情報をどこから得るか アクタ名に関するキーワード(ユーザ設定可)により,外部システムと人間とを分類(Step1) 関連するユースケースのイベントに対する,キーワードマッチング(Step2) そのアクタが主体となるイベントを抽出 インタフェースに関連するようなキーワード群の設定(複雑:「ボタン」「押す」など) マッチングの割合の高い複雑さを採用 タイプ 説明 重み 単純 定義済みAPIを備える(外部システム) 1 平均的 プロトコル駆動のインタフェース(外部システム) テキストベースのインタフェース(人間) 2 複雑 GUIを介する(人間) 3 2019/2/4 平成15年度修士論文発表会

アクタ主体のイベントに対してキーワードマッチングを行い、マッチの割合が高いものを採用(Step2) アクタの分類イメージ 名前キーワード(ユーザ設定可)に よる分類(Step1) システム 顧客 注文を出す システム,サーバ キーワード(ユーザ設定可) 単純  「リクエスト」「要求」・・・ 平均的 複雑 平均的  「メール」「コマンド」・・・ アクタ主体のイベントに対してキーワードマッチングを行い、マッチの割合が高いものを採用(Step2) 複雑  「ボタン」「押す」・・ 1.顧客が「注文を出す」ボタンを押す。 2.システムは情報入力画面を表示する。 3.顧客は商品コードを入力する。 4.システムは入力された商品コードから商品を検索する。 ・ 2019/2/4 平成15年度修士論文発表会

ユースケースの分類 問題点 分類手法 自然言語で書かれたイベントからトランザクションを識別 イベントの書き方は明確に定められているわけではない 分類手法 係受けを考慮した形態素解析によるトランザクション識別 タイプ トランザクション(システムの基本的な処理)数 重み 単純 3個以下 5 平均的 4~7個 10 複雑 8個以上 15 注文を出す: ・関連するアクタ: ・事前条件,事後条件: ・イベントフロー: 1.顧客が「注文を出す」ボタンを押す。 2.システムは情報入力画面を表示する。 3.顧客は商品コードを入力する。 4.システムは入力された商品コードから商品を検索する。 ・ システム 顧客 注文を出す 2019/2/4 平成15年度修士論文発表会

トランザクションの識別 CaboCha[3]を用いた形態素解析 どういう基準をもって1トランザクションとするか 日本語での係り受けを考慮した形態素解析ツール 統計的な日本語係り受け解析ツールとしては最も高精度 どういう基準をもって1トランザクションとするか 主語(名詞+「は」,「が」)+述語(動詞)のペアを抽出 主語がシステムであるもの(システムが主体の動作)であればトランザクションとしてカウント システムは、データを登録する。 [3]CaboCha: Yet Another Japanese Dependency Structure Analyzer, http://cl.aist-nara.ac.jp/~taku-ku/software/cabocha/ 2019/2/4 平成15年度修士論文発表会

試作ツール 詳細 開発言語:Java サイズ:約4300行, 42クラス ライブラリ:JDK1.4.2, Xerces2 Java Parser 入力モデル:XMI形式で記述されたユースケースモデル XMI(XML Metadata Interchange) XMLの構文仕様によるUML記述方式 2019/2/4 平成15年度修士論文発表会

ツール評価(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年度修士論文発表会

ツール評価(2/3) アクタの分類 考察 複雑さの異なったアクタは全て外部システム 外部システムが主体となるイベント記述の欠如 システム主体のイベントに外部システムが関連(データの移動,取得) キーワードからのインタフェース判別は困難 → モデル以外からの情報入手 プロジェクト ツールによる分類(自動) 手動での分類 複雑さの 一致した割合 単純 平均的 複雑 A 1 4 0.80 B 3 2 0.40 C 1.0 D E 8 2019/2/4 平成15年度修士論文発表会

2.システムは、番号をキーに外部システムAに問い合わせ、データを取得し、表示する。 3.人間Aは、登録する物の種別を選択する。 4.システムは、選択された種別をキーにデータを問い合わせ、データを取得し表示する。 ・ 2019/2/4 平成15年度修士論文発表会

ツール評価(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年度修士論文発表会

情報表示処理をトランザクションとしない(ツールでは識別) 1.アクタは、プロジェクト一覧の中からプロジェクトをひとつ選択する。 2.システムは、選択されたプロジェクト情報を表示する。 ・ 情報表示処理をトランザクションとしない(ツールでは識別) 2019/2/4 平成15年度修士論文発表会

まとめと今後の課題 ユースケースモデルを入力とし,ユースケースポイント法に基づいて計測を行うツールを試作 ツールの評価 今後の課題 5つのプロジェクトに対する適用 今後の課題 外部システムのインタフェースに関する情報の探索 トランザクションとして識別すべき処理単位の議論 より多くのケーススタディ 2019/2/4 平成15年度修士論文発表会

補足 2019/2/4 平成15年度修士論文発表会

発表内容 研究の背景 研究の目的 ツール化に向けての計測手法 試作ツールについて ツール評価 まとめ・今後の課題 ユースケースポイント法 ユースケースモデル 研究の目的 ツール化に向けての計測手法 重み付けの自動化 過去情報の利用 試作ツールについて ツール評価 まとめ・今後の課題 2019/2/4 平成15年度修士論文発表会

UCP計測手順(1/6) アクタの重み付け アクタそれぞれを3タイプに分類 それぞれのタイプのアクタの数に係数を掛け、合計したもの → アクタの重み タイプ 説明 係数 単純 定義済みAPIを備えた別システム 1 平均的 プロトコル駆動のインタフェース(別システム) テキストベースのインタフェース(人間) 2 複雑 GUIを介する人間 3 2019/2/4 平成15年度修士論文発表会

UCP計測手順(2/6) ユースケースの重み付け タイプ トランザクション数 係数 単純 3個以下 5 平均的 4~7個 10 複雑 ユースケースそれぞれについて同様に分類 ユースケースシナリオ内のトランザクション数に基づく それぞれのタイプのユースケースの数に係数を掛け、合計したもの → ユースケースの重み タイプ トランザクション数 係数 単純 3個以下 5 平均的 4~7個 10 複雑 8個以上 15 2019/2/4 平成15年度修士論文発表会

UCP計測手順(3/6) 未調整ユースケースポイント(UUCP) UUCP = アクタの重み + ユースケースの重み この値に以下の要因を反映して補正 技術要因(TCF):プロジェクトの複雑さ 環境要因(EF):プロジェクトに携わるチームの経験,開発環境 2019/2/4 平成15年度修士論文発表会

UCP計測手順(4/6) 技術要因の重み付け 技術的複雑さ要因 (TCF : Technical Complexity Factor) 13項目の要因について0~5の6段階で評価 各評価値に、項目ごとに設定されている重みを掛けてその和を算出(TFactor) TFactor = Σ(各要因の評価点) × (重み係数) TCFを以下の公式を用いて算出 TCF = 0.6 + (0.01 × TFactor) 2019/2/4 平成15年度修士論文発表会

技術要因 システムの技術要因とその重み 要因番号 要因の説明 重み T1 分散システムである 2 T2 レスポンスまたはスループットのパフォーマンス目標が設定されている 1 T3 エンドユーザの効率(オンライン時)を重視 T4 内部処理が複雑 T5 コードが再利用可能でなければならない T6 インストールしやすい 0.5 T7 使いやすい T8 移植可能 T9 変更しやすい T10 並行性が必要 T11 特別なセキュリティ機能が必要 T12 第三者に直接アクセスを提供している T13 特別なユーザトレーニングが必要 ●軽く説明 ・その項目について考慮外ならば0になる。 ・評価が高ければその分手間がかかる。 2019/2/4 平成15年度修士論文発表会

UCP計測手順(5/6) 環境要因(EF : Environmental Factor) 8項目の要因について0~5の6段階で評価 各評価値に、項目ごとに設定されている重みを掛けてその和を算出(EFactor) EFactor = Σ(各要因の評価点) × (重み係数) EFを以下の公式を用いて算出 EF = 1.4 + (- 0.03 × EFactor) 2019/2/4 平成15年度修士論文発表会

環境要因 チームの環境要因とその重み 要因番号 要因の説明 重み 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年度修士論文発表会

UCP計測の方法(6/6) ユースケースポイントの算出 UCP = UUCP × TCF × EF 工数の算出 調整係数による補正 Karnerの提案:20人時 / 1UCP 20~30が適当か 2019/2/4 平成15年度修士論文発表会

アクタ分類におけるキーワード キーワード 命名規則 「~システム」「~サーバ」 単純 「リクエスト」「要求」「通知」 平均的 外部システム 「メッセージ」「メール」「送信」 人間 「コマンド」「テキスト」「入力」 複雑 「ボタン」「押す」「選択」 2019/2/4 平成15年度修士論文発表会

過去の情報の利用(支援手法) 以下の情報を蓄積 過去に計測された類似した要素の複雑さを表示することで分類を支援 プロジェクト情報(業種,言語,期間等) アクタ情報(名前,業種,決定された複雑さ等) ユースケース情報(名前,業種,決定された複雑さ等) イベント情報(使用されたユースケース,イベント本体) 過去に計測された類似した要素の複雑さを表示することで分類を支援 自動化の手法では決定しにくい要素 キーワードにヒットしないアクタ イベント記述のないユースケース 自動化の手法が適用された場合も見つかれば表示 2019/2/4 平成15年度修士論文発表会

アクタ支援手法(マッチングが取れない等) 過去情報から類似したアクタを探し,過去に決定された複雑さをユーザに提示 → ユーザによる複雑さ手動設定 過去の情報がなければ,デフォルト値(外部システム:平均的 人間:複雑) ユースケース支援手法(イベント記述がない等) 過去情報の利用 過去の情報がなければ,デフォルト値(複雑) 2019/2/4 平成15年度修士論文発表会

試作ツール(システム構成) GUI部 ユースケースポイント計測システム Describe 過去計測DB XMI解析部 シナリオ解析 モデリング Describe XMI解析部 各情報 (アクタ、ユースケース、シナリオ) モデルファイル (XMI形式) GUI部 シナリオ解析 複雑度測定部 未調整ユースケースポイント (UUCP) XMI = XML Metadata Interchange 技術要因(TCF) 結果表示 UCP測定部 ユーザ 環境要因(EF) 要因評価部 計測結果 過去計測DB 過去のプロジェクト情報 データの流れ データベース蓄積 制御の流れ 2019/2/4 平成15年度修士論文発表会

SVM(Support Vector Machine) 統計的学習理論に基づく学習モデル パターン認識の能力において最も優秀な学習モデルの1つ 従来モデルに比べ汎化能力が高く,過学習しにくい 手書き文字の認識や3次元画像認識など多くの分野で応用 自然言語処理分野における文書分類 実データからその現象がどのような関数の形に従うかを決める方法で、予め関数の形を仮定して推定を行うのがパラメトリック推定で、 ノンパラメトリックな推定とは関数の形を仮定せずに推定を行う方法である。 2019/2/4 平成15年度修士論文発表会

「南瓜」使用例 入力文章 簡易Tree表示 計算機処理用 フォーマット 2019/2/4 平成15年度修士論文発表会

ツール評価 ユースケースの再分類結果 プロジェクト ツール計測 手動計測 一致率 単純 平均的 複雑 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年度修士論文発表会

ツール評価 工数比較 考察 プロジェクト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年度修士論文発表会