機能実現期間の測定による プログラマ能力の実験的評価

Slides:



Advertisements
Similar presentations
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 ソフトウェア部品推薦のための.
Advertisements

CMU2005 海外エンジニアリングワークショップ参加報告書 1 「真の要求を見極めろ!」: teamB 要求定義をどう捉えるか ● 要求定義とは何か? 製品には、顧客の望むことを正しく反映させる必要がある。 そのために必要なものが要求仕様である。 すなわち、要求仕様とは、顧客と製品を結ぶものであり、これを作ることが要求定義である。
平成26年度「浪江町 タブレットを利用したきずな再生・強化事業(システム設計・開発)」 ( 様式6 ) 提案書雛型 (提案者名を記載) ○○○○ 受付番号 平成 26 年度「浪江町 タブレットを利用したきずな再生・強化事業(システム設計・開 発)」 企画提案書.
システム開発におけるユーザ要求の 明示的表現に関する一検討
背景 ソフトウェアの大規模化・複雑化 生産性と品質の向上 ↓ オブジェクト指向分析設計の適用 開発ツールの投入.
学生のシステム提案における 見積もり法提案 湯浦研究室4年 飯田真矢.
OJT研修 「テスト実施、テスト設計の技術習得」 日時: 8月22日(月)  場所: 本社5階.
データ構造と アルゴリズム 理工学部 情報システム工学科 新田直也.
ビジネスパターンに基づく クラウドシステムのサービスレベル設計
C言語 配列 2016年 吉田研究室.
IT入門B2 (木曜日1限) 第一回 講義概要 2004年月9日30日.
プログラムの動作を理解するための技術として
EMアルゴリズム クラスタリングへの応用と最近の発展
データ構造と アルゴリズム 知能情報学部 新田直也.
変数のスコープの設計判断能力 を育成するプログラミング教育
メソッド名とその周辺の識別子の 相関ルールに基づくメソッド名変更支援手法
アスペクト指向プログラミングを用いたIDSオフロード
Java ソフトウェア部品検索システム SPARS-J のための リポジトリ自動更新機能の実現
オントロジーを使用した プログラム開発支援システムの提案
情報工学総合演習 D-I 近似アルゴリズム 埼玉大学 理工学研究科 山田 敏規、 橋口 博樹、 堀山 貴史
プログラム実行時情報を用いたトランザクションファンクション抽出手法
ソフトウェア工学 第五回 知能情報学部 新田直也.
ソースコードの変更履歴における メトリクス値の変化を用いた ソフトウェアの特性分析
オブジェクト指向プログラムのための 動的結合メトリクスの評価
第4日目第3時限の学習目標 検査の信頼性(続き)を学ぶ。 妥当性について学ぶ。 (1)構成概念妥当性とは? (2)内容妥当性とは?
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
識別子の命名支援を目的とした動詞-目的語関係の辞書構築
関数の変更履歴と呼出し関係に基づいた開発履歴理解支援システムの実現
第10回関数 Ⅱ (ローカル変数とスコープ).
動的スライスを用いたバグ修正前後の実行系列の差分検出手法
ソフトウェアを取り巻く環境の変化がメトリクスに及ぼす影響について
実行時情報に基づく OSカーネルのコンフィグ最小化
技術参照モデルとシステム要件定義 に関する学習システム
UMLで記述された設計仕様書を対象とした レビュー手法CBRとPBRの比較評価実験
構造情報に基づく特徴量を用いた グラフマッチングによる物体識別 情報工学科 藤吉研究室  EP02086 永橋知行.
巡回冗長検査CRC32の ハード/ソフト最適分割の検討
コードクローン検出ツールを用いた ソースコード分析システムの試作と プログラミング演習への適用
~新たなソフトウェア開発の手法~ 発表 土屋俊介
ソフトウェア設計検証 研究室の紹介 知能情報学部 准教授 新田直也.
オープンソース開発支援のための ソースコード及びメールの履歴対応表示システム
オープンソース開発支援のための リビジョン情報と電子メールの検索システム
AIを用いたドローンの 新たな姿勢制御方法に関する研究
バイトコードを単位とするJavaスライスシステムの試作
シナリオを用いたレビュー手法PBRの追証実験 - UMLで記述された設計仕様書を対象として -
ソフトウェア保守のための コードクローン情報検索ツール
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
プロジェクト演習 知能情報学部 新田直也.
オブジェクトの協調動作を用いた オブジェクト指向プログラム実行履歴分割手法
設計情報の再利用を目的とした UML図の自動推薦ツール
保守請負時を対象とした 労力見積のためのメトリクスの提案
アスペクト指向言語のための視点に応じた編集を可能にするツール
対象:せん断補強筋があるRCはり(約75万要素)
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
メソッドの同時更新履歴を用いたクラスの機能別分類法
GSTOS コマンド計画検証ソフトウェアの開発
開発作業の形式化に基づく プロセス評価 松下誠 大阪大学.
クラスタリングを用いた ベイズ学習モデルを動的に更新する ソフトウェア障害検知手法
データ中心システム設計方法論“DATARUN” 
UMLモデルを対象とした リファクタリング候補検出手法の提案と実現
欠陥検出を目的とした類似コード検索法 吉田則裕,石尾隆,松下誠,井上克郎 大阪大学 大学院情報科学研究科
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
複雑度メトリクスを用いた JAVAプログラム品質特性の実験的評価
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
ソフトウェア工学 知能情報学部 新田直也.
知識ベースの試作計画 ●●●研究所 ●●●技術部 稲本□□ 1997年1月.
CSP係数の識別に基づく話者の 頭部方向の推定
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
ベイジアンネットワークと クラスタリング手法を用いたWeb障害検知システムの開発
Presentation transcript:

機能実現期間の測定による プログラマ能力の実験的評価 井上研究室 三谷 幸久

研究の背景(1/2) 近年、社会の中でソフトウェアの果たす役割が大きくなっており、それに伴いソフトウェアの欠陥や故障が社会に与える影響も大きくなってきた 信頼性の高いソフトウェアが求められている ソフトウェアは、大規模化、複雑化、多様化しているのに開発期間は短縮化されている  ソフトウェア開発においてプログラマ能力は、  開発期間やコスト、信頼性に高い影響力を持つ プログラマ能力の正確な測定は、開発の見積もりを行う上で必要不可欠だが困難

研究の背景(2/2) プログラマ能力と評価法 プログラマ能力の差による作業時間の差 デバッグ作業時間が28倍[1] COCOMOモデルによると、最大で生産コストが2倍になる[2] デバッグに着目したプログラマ能力の判定モデル エラー寿命による評価 キーストロークによる評価  判定には膨大な時間とコストがかかってしまう [1] H.Sackman W.J.Erickson and E.E.Grant:”Exploratory experimental studies comparing online and offline programming performance”,Commun.ACM,11,1,pp.3-11(1968) [2]山田 茂・高橋宗雄著 ソフトウェアマネジメントモデル入門,共立出版、1999

研究の目的 プログラマ能力を簡潔に評価するための モデルを提案する プログラマ能力を簡潔に評価するための モデルを提案する 提案したモデルの評価実験を、ある企業の開発プロジェクトで収集したデータを用いて行う

モデルのキーアイディア プログラム中で実現すべき機能に対して、それぞれの機能の作業開始時間と実現した時間を用いて評価する 確認方法 チェックリストを利用して確認する方法  を提案する

具体的観測方法 確認の手順 Step1 作成するプログラムの機能を洗い出す Step2 挙げられた機能をチェックリストにする

確認の手順(Step1,Step2) Step1:プログラムの機能を洗い出す   (1)プログラムレビューのチェックリスト  プログラムの基本的な処理(タイプ1) (2)Work Breakdown Structure 仕様の機能を満たすのに必要な処理(タイプ2) (3):テスト仕様書 仕様の機能を守るのに必要な処理(タイプ3)   (不適切な入力をはじく等) Step2:これらの機能を全てまとめてチェック    リストを作成する

確認の手順(Step3) チェック項目の確認作業 ΣtCi 評価値の値は赤い期間の合計 tC1 C1 × ○ tC2 C2 × ○ 機能実現期間 tC1 C1 × ○ tC2 C2 × ○ チェック項目 tC3 C3 ○ C4 tC4 × ○ ………… ……….. tCn Cn × ○ 時刻 t ΣtCi ×:機能作成開始時刻 評価値 ○:完成時刻

評価実験概要 ある企業の新人研修で行われた、2つ の演習課題について、提示したモデル に当てはめて能力値を求めた 今回の実験では ある企業の新人研修で行われた、2つ  の演習課題について、提示したモデル  に当てはめて能力値を求めた 今回の実験では 被験者数は11人 使用言語:C言語 課題1:トークン分割プログラム プログラムの規模:約300行 チェック項目:19項目 課題作成期間:3日間 課題2:トークン識別プログラム プログラムの規模:約500行 チェック項目:32項目 課題作成期間:3日間

利用したチェック項目 チェック項目の内容の具体例 タイプ1 タイプ2 タイプ3 ファイルを開いたら閉じているか 確保した記憶領域は開放しているか タイプ2 プログラム内でのソートは機能しているか 文字判別は仕様通りに行われているか タイプ3 仕様書の設定から外れた入力をはじいているか 仕様書の不備に対して適切な対応をしているか  例:トークン識別のプログラムにおいて、トークンの種類が、 指定されていない文字が存在したが、それに対して     エラーメッセージを出力する等

計測データ 作成者 課題1 課題2 A 75 142 B 84 138 C 100 240 D 82 163 E 87 173 F 120 223 G 263 H 93 218 I 101 185 J 104 196 K 217 215

提案したモデルの妥当性の確認 プログラマ性能を決定する要素 ・プログラマとしての経験(experience) [3] ・プログラマとしての経験(experience) 学生や研修生の場合、これまでに習得したコンピューターサイエンスやプログラミングの講義の総数 ・プログラマとしての素質(aptitude) 学生や研修生の場合、これまでに習得したコンピューターサイエンスやプログラミングの講義の成績 研修生のプログラマ性能は講義の成績と関係を持っている[4] 評価値と成績の相関を取る [3]T.Moher and G.M.Schneider:”Methods for improving controlled experimentation in software engineering”,Proc.5th ICSE [4]松本健一、井上克郎、菊野亨、鳥居宏次、“エラー寿命に基づくプログラマ性能の実験的評価”電子情報尾通信学会

分析(課題1) 作成者 課題1の成績 課題1の順位 モデルの評価 モデルの順位 A 90 1 73 D 80 4 82 2 B 83 84 3 E 87 G 77 7 H 76 8 93 6 C 100 I 101 J 63 10 104 9 F 120 K 58 11 217 順位相関係数 0.70

分析(課題2) 作成者 課題2の成績 課題2の順位 モデルの評価 モデルの順位 B 95 1 138 A 88 2 142 D 84 6 163 3 E 86 173 4 I 185 J 82 7 196 K 80 9 215 H 85 5 218 8 F 79 10 223 C 240 G 51 11 263 順位相関係数 0.79

考察 機能の実現期間に対する観察は教育機関での成績評価や課題作成の計画を確認する方法に使えるのではないか 課題の規模の大きさや作業時間の長さによって、各機能のプログラムの重要度も変わってくる  プログラムの規模によっては、レベルごとに重みを付ける必要も出てくる

まとめ・今後の課題 チェック項目を利用した機能実現期間の測定によりプログラマ能力を求めるモデルを提案した 評価実験を行って、モデル評価値の妥当性を確認した 今後の課題として、チェック項目作成方法の簡略化と機能実現期間の測定の自動化を行えば、より簡潔なモデルとなる

説明資料の補足

コードレビューチェックリスト 目的 -プログラムの全ての欠陥を発見して修正する事が 必要な場合において正確な手順に従っているかを 確認する方法

コードレビューチェックリスト 具体例

WBS(Work Breakdown Structure) 定義 -必要な作業項目をトップダウン方式で、細かく 分析し、階層構造として表現したもの -プロジェクトの全体スコープを定義し、体系化 するためのプロダクト指向のツリー構造体

WBSの具体例 レベル0 0.0 システムAの開発 レベル1 1.0 2.0 3.0 4.0 5.0 6.0 要求分析 システム仕様 設計 コーディング テスト 運用 レベル2 3.1 3.2 コマンド処理 ユーザインタフェース 3.2.1 3.2.2 レベル3 入力 出力

WBS(Work Breakdown Structure) 手法 -ツリー構造体では下位レベルになるほど 詳細な内容を表示 -示されていない作業は当該プロジェクトの スコープ外の作業 -最下位レベルの作業要素をワークパッケージと   呼ぶ -ワークパッケージは、さらに作業(アクティビティ) に分解