著者
楠本 真二 肥後 芳樹
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.29, no.3, pp.3_29-3_38, 2012-07-25 (Released:2012-09-25)

本稿は,実証的アプローチに関するチュートリアルシリーズの一部として,ソフトウェアメトリクスの研究・実務における応用,特に研究成果の評価や組織におけるプロセス改善の評価での利用方法を中心に述べる.具体的には,評価目標に対してメトリクスを対応させるための枠組みの1つであるGQMパラダイム,評価対象のコンテキスト,著者等が過去に行った評価事例について紹介する.
著者
今里 文香 堀田 圭佑 肥後 芳樹 楠本 真二
出版者
The Institute of Electronics, Information and Communication Engineers
雑誌
電子情報通信学会論文誌 D (ISSN:18804535)
巻号頁・発行日
vol.J98-D, no.5, pp.847-850, 2015-05-01

本論文では,機械学習を用いてコードクローンの危険予測を行う手法を提案する.提案手法では,過去に存在したコードクローンの情報を学習し,その情報をもとに,現在ソースコード中に存在するコードクローンの危険予測を行う.
著者
倉林 利行 吉村 優 切貫 弘之 丹野 治門 富田 裕也 松本 淳之介 まつ本 真佑 肥後 芳樹 楠本 真二
雑誌
ソフトウェアエンジニアリングシンポジウム2020論文集
巻号頁・発行日
vol.2020, pp.143-152, 2020-09-03

本論文ではソフトウェア開発における実装の自動化に向けたファーストステップとして,プログラミングコンテスト AtCoder の正解プログラムを自動生成する技術の開発を目指す.自動プログラミングの既存研究としては,生成したいプログラムの入出力例からプログラム部品を合成する手法などが存在するが,プログラム部品の組み合わせ爆発により入出力例を満たすプログラムが生成できない,また生成できたとしても入出力例は満たすが正しいプログラムではないというオーバーフィッティングしたプログラムが生成されてしまうという課題が存在した.本論文では深層学習を用いて過去の問題情報から問題文と正解プログラムの関係性を学習することで上記の問題を解決する.具体的には学習済みモデルを用いて過去の問題情報から解きたい問題と類似した問題を検索して取得し,その正解プログラムを雛形としてプログラムを複数個合成し,再び学習済みモデルを用いて生成されたプログラムから最も問題文との関係性が近いプログラムを判定して出力する手法を提案した.提案手法は AtCoder の配点が 100 点の問題 92 問に対して評価を行い,24 問の正解プログラムの自動生成を確認した.
著者
植田 泰士 神谷 年洋 楠本 真二 井上 克郎
出版者
一般社団法人電子情報通信学会
雑誌
電子情報通信学会論文誌. D-I, 情報・システム, I-情報処理 (ISSN:09151915)
巻号頁・発行日
vol.86, no.12, pp.863-871, 2003-12-01
被引用文献数
14 20

ソフトウェアの保守作業を難しくしている要因の一つとしてコードクローンがある.コードクローンとは,ソースコード中の同一,または類似した部分を指す.あるコード片にバグが含まれていた場合には,そのコード片のコードクローンすべてについて修正の是非を検討する必要がある.しかし,大規模なソフトウェアの場合,それらすべての箇所を手作業で発見し,修正の是非を検討することは非常に困難である.本研究では,コードクローン検出ツールCCFinderの検出結果を利用したコードクローン分析環境Geminiの構築を行う.本システムは,開発保守におけるコードクローンの利用を支援するため,コードクローンの位置情報の視覚化,コードクローンに関するメトリックス値の算出,及び対応したソースコードを参照する機能を備える.本システムを実際のプログラムに適用することで,特徴的なコードクローンなどを抽出できることを確認した.
著者
渡辺 大登 柗本 真佑 肥後 芳樹 楠本 真二 倉林 利行 切貫 弘之 丹野 治門
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.63, no.10, pp.1564-1573, 2022-10-15

自動プログラム生成(APG)の実現を目指し,生成と検証に基づく自動プログラム修正(APR)を転用した手法が提案されている.APRはバグを含むソースコードをすべてのテストケースに通過するように全自動で改変する技術である.APRを転用したAPGでは,初期状態のソースコードを未実装,つまり複数のバグが含まれていると仮定し,ソースコードの改変,評価,選択を繰り返してソースコードを目的の状態に近づけていく.一般的なAPRでは改変ソースコードの評価指標として,テストケース通過数がよく用いられる.この指標は単一バグの修正を目的とした場合には問題にならないが,複数バグの修正時にはコード評価の表現能力不足という問題につながる.よって,初期状態に複数バグの存在を仮定するAPGにおいては,解決すべき重要な課題である.そこで,本研究ではAPGの成功率改善を目的とした多目的遺伝的アルゴリズムの適用を提案する.また,多目的遺伝的アルゴリズムによる高い個体評価の表現能力を利用した,相補的なテスト結果の2個体を選択的に交叉する手法も提案する.評価実験として,プログラミングコンテストの問題80問を題材に提案手法の効果を確かめた結果,成功率の有意な向上を確認した.
著者
西松 顯 楠本 真二 井上 克郎
出版者
電子情報通信学会
雑誌
電子情報通信学会技術研究報告. SS, ソフトウェアサイエンス
巻号頁・発行日
vol.98, no.85, pp.17-24, 1998-05-28
被引用文献数
5

これまでに我々はプログラムスライスがフォールト位置特定に有効であるかを実験的に評価した.しかし, この評価実験では, 被験者数が6人と少ないために, スライスの有効性が十分に確認できなかった.そこで, 本研究では, これまでの評価実験の問題点である被験者の数を増やし, プログラムスライスがフォールト位置特定に有効であるかどうかを実験的に評価することを目的とする.具体的には, 被験者34人をグループG1とG2に分け, G1に含まれる被験者には, スライス情報を含まないプログラムリストのフォールト位置, G2に含まれる被験者には, スライス情報を含むプログラムリストのフォールト位置を特定してもらい, それに要した時間についてG1, G2間で比較を行なった.実験の結果, スライス情報を含むプログラムリストのフォールト位置特定を行なった方が, スライス情報を含まないプログラムリストのフォールト位置特定を行なった場合より効率よくフォールト位置特定が行なえる事が確認できた.This paper aims to evaluate the usefulness of program slicing on fault localization process. In the experiments, we prepare six kinds of program(P1∿P6) that included only one fault and thirty-four subjects. The subjects are divided into two groups: G1 and G2. Next, the subjects in G1 specify any fault in six programs successively, using the slicing technique and one in G2 specify any fault in six programs successively, using the slicing technique. Finally we compare the time for fault localization between G1 and G2. The results of the experiment show that program slicing technique is effective on fault localization process.
著者
井垣 宏 齊藤 俊 井上 亮文 中村 亮太 楠本 真二
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.54, no.1, pp.330-339, 2013-01-15

我々は受講生のプログラミング演習時におけるコーディング過程を記録し,可視化して講師に提示するシステムC3PVを提案する.本システムは,ウェブ上で動作するオンラインエディタとコーディング過程ビューから構成されている.オンラインエディタは受講生のコーディングプロセスにおける,文字入力,コンパイル,実行,提出といったすべての行動を記録する.コーディング過程ビューは課題の進み具合いや受講者の相対的な進捗遅れを可視化して講師に提示する.講師はあるエラーに関して長時間悩んでいる受講生や全体の進捗と比較して遅れている受講生をC3PVによって確認し,個別指導といった支援につなげることができる.本研究では実際にC3PVを学部1年生が受講するJavaプログラミング演習に適用し,C3PVによって可視化されたコーディング過程を利用した受講生対応を行った.その結果,コーディング過程ビューに基づいて対応した45件中38件(約84%)において,実際に受講生がサポートを必要としていたことが確認できた.
著者
松尾 裕幸 柗本 真佑 楠本 真二
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.59, no.4, pp.1262-1272, 2018-04-15

近年,ソフトウェアの電力消費の削減のため,APIやアルゴリズムなどの実装手段の違いによる電力消費の比較研究がさかんに行われている.しかしながら,我々は,プログラムの実行時間とその総消費電力量との間には,強い相関があるのではないかという仮説をたてた.この仮説が正しければ,電力消費量の削減という問題は,実行時間をいかに短縮させるかという問題に帰着させることができる.本研究では,異なるソーティングアルゴリズム,およびJavaの異なるCollectionsクラスについて,その総消費電力量および実行時間の両方について調査する.実験の結果,両者の間には非常に強い正の相関が存在することが示された.また回帰分析の結果,プログラムの実行時間,単位時間あたりの消費電力量の順に,総消費電力量に与える影響が大きいことが分かった.これらの結果から,電力の計測基盤を用いずとも実行時間が短い実装手段を選ぶことが,プログラム全体の省電力化につながることが示唆された.
著者
幸 佑亮 肥後 芳樹 楠本 真二
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.59, no.4, pp.1192-1202, 2018-04-15

コードクローンはソフトウェアの保守性を低下させる原因の1つとされており,コードクローンがソフトウェア中にどの程度存在しているか,およびどこに存在しているかを理解することはソフトウェア保守の観点から重要である.そのため,これまでに多くのコードクローン検出手法が提案され,自動的にコードクローンを検出するツールが開発されている.既存のコードクローン検出手法は,ファイル単位やコード片単位など単一の粒度でコードクローンを検出する.一般的に,検出の粒度が粗いほど検出時間は短くなるが,検出可能なコードクローンは少なくなる.一方,検出対象の粒度が細かいほど検出可能なコードクローンは多くなるが,検出時間は長くなる.そこで本論文では,より多くのコードクローンをより短時間で検出することを目的として,粗粒度から細粒度へ段階的にコードクローンを検出する手法を提案する.段階的にコードクローンを検出する過程において,ある粒度でコードクローンとして検出されたコードをそれよりも細粒度なコードクローンの検出対象から除外することで,細粒度な検出手法と比較してより高速に検出できる.また,粗粒度な検出手法と比較してより多くのコードクローンを検出できる.提案手法をコードクローン検出ツールDecrescendoとして実装し,複数のオープンソースソフトウェアに適用した.そして,提案手法を粗粒度な検出手法および細粒度な検出手法と比較して評価を行った.実験の結果より,細粒度な(コード片単位の)検出手法と比較して,多粒度な検出手法が約10~20倍高速にコードクローンを検出できることを示した.また,粗粒度な(メソッド単位の)検出手法と比較して,多粒度な検出手法が約10~30倍のコードクローンを検出した.この検出数は細粒度な(コード片単位の)検出手法とほぼ同数であった.
著者
柿元健 門田暁人 亀井 靖高 〓本真佑 松本 健一 楠本 真二
出版者
情報処理学会
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.50, no.7, pp.1716-1724, 2009-07-15
被引用文献数
2

ソフトウェアの信頼性確保を目的として,faultの有無を推定するモデル(faultproneモジュール判別モデル)が数多く提案されている.しかし,どのようにテスト工数を割り当てるのかといったfault-proneモジュール判別モデルの判別結果の利用方法についての議論はほとんどされておらず,信頼性確保の効果は不明確であった.そこで,本論文では,faultの有無の判別,テスト工数の割当て,ソフトウェア信頼性の関係のモデル化を行い,TEAR(Test Effort Allocation and software Reliability)モデルを提案する.TEARモデルにより,与えられた総テスト工数の枠内で,ソフトウェア信頼性が最大となるような(モジュールごとの)テスト工数割当ての計画立案が可能となる.TEARモデルを用いてシミュレーションを行った結果,推定される判別精度が高い,もしくは,fault含有モジュールが少ない場合には,fault-proneモジュールに多くのテスト工数を割り当てた方がよく,推定される判別精度が低い,もしくは,fault含有モジュールを多く含む場合には,判別結果に基づいてテスト工数を割り当てるべきではないことが分かった.Various fault-prone detection models have been proposed to improve software reliability. However, while improvement of prediction accuracy was discussed, there was few discussion about how the models shuld be used in the field, i.e. how test effort should be allocated. Thus, improvement of software reliability by fault-prone module detection was not clear. In this paper, we proposed TEAR (Test Effort Allocation and software Reliability) model that represents the relationship among fault-prone detection, test effort allocation and software reliability. The result of simulations based on TEAR model showed that greater test effort should be allocated for fault-prone modules when prediction accuracy was high and/or when the number of faulty modules were small. On the other hand, fault-prone module detection should not be use when prediction accuracy was small or the number of faulty modules were large.
著者
高先 修平 井垣 宏 肥後 芳樹 楠本 真二
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.55, no.1, pp.199-209, 2014-01-15

高度なソフトウェア技術者や高度ICT(Information and Communication Technology)人材の育成を目的として,ソフトウェア開発をテーマとしたPBL(Project Based Learning)と呼ばれる教育・学習手法が様々な形態で行われている.PBLでは,振り返りと呼ばれるプロジェクト中にあった問題の発見,原因の分析,対策の考案といった,プロジェクトを継続的に改善することを目的とした活動が重要視されている.ここで,問題の発見や原因の定量的で客観的な分析を行うためには,プロジェクト中に誰がどのようなタスクをいつ実施したかといった正確なタスク記録が必要不可欠である.しかしながらPBLでは,タスク記録時に記述漏れや入力誤りが発生することがある.実際に過去に行われた研究では,記録された全タスクのうち約40%ものチケットに何らかの誤りが存在していた.この問題の原因としては,タスク記録時の入力コストや,作業時間の計測コストの大きさがあげられる.そこで本研究では,タスク記録時の入力コストの削減と作業時間の自動計測を目的として,タスクボードとオンラインストレージを用いたタスク記録支援システム「TixRec」を提案する.タスクボードによってより直感的なタスクの変更や記録を実現し,オンラインストレージに保存された編集履歴を用いることで,チケットに記録されたタスクに対応するファイル情報を用いて,作業時間の自動計測を実現する.TixRecを用いた4人の被験者を対象とした評価実験により,タスク記録に要する時間が76%~93%削減され,ユーザビリティ評価においても,既存のチケットシステムより優位であることが確認された.作業時間の計測においても,誤差が平均26秒,最大でも146秒に収まっていた.In order to cultivate ICT (Information and Communication Technology) human resources, teaching activities called SDPBL (Software Development Project Based Learning) are widely performed. SDPBL is the educational technique which lets students acquire knowledge and skill spontaneously through practical software development. In SDPBL, a retrospective is regarded as important. It is intended to improve the project continuously through problem finding and root cause analysis. Moreover, this kind of analysis needs an accurate history of the project. However, such kinds of development history often include input errors and omissions. In a study made in the past, fourty percent of all recorded tickets included some errors like input omissions of start time or end time and measurement errors of working time. Therefore, we propose a system "TixRec" for the purpose of recording tasks and working time at a low cost, using online storage and task board UI. TixRec enables users to record tasks more intuitively. In addition, the online storage automatically preserves change logs of files on the user's PC. By using the change logs, TixRec calculates working time automatically. We implemented TixRec as a web application and conducted experiments on four subjects. As a result, we confirmed that time to record tasks is reduced about 84% and working time could be calculated with an error of less than 146 seconds per one ticket.
著者
井垣 宏 福安 直樹 佐伯 幸郎 柗本 真佑 楠本 真二
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.56, no.2, pp.701-713, 2015-02-15

ソフトウェア開発教育の一環として,ScrumやXPといったアジャイルソフトウェア開発を採り入れたチームによるソフトウェア開発演習を実施する大学が増加しつつある.一方で,演習によるアジャイルソフトウェア開発教育には複数の課題が存在する.代表的なアジャイル開発フレームワークの1つとして知られるScrumでは,プロジェクトを検査し,自己組織的にプロジェクトの状況に適応し続けることが求められる.しかしながら,チームでの開発経験が少ない受講生には,プロジェクトの状況がどうであるかを検査すること自体が困難である.また,受講生によるチーム開発では,担当するタスクの種類や量が偏りがちである.我々はこれらの課題の解決を目指し,チケット駆動開発と呼ばれる開発手法とScrumフレームワークを組み合わせることにより,プロジェクトを定量的に評価する枠組みを構築した.実際に我々のプロジェクト定量評価の枠組みを用いてチームによるソフトウェア開発演習を実施し,複数の定量評価基準に基づいて,チームごとのプロジェクト評価を実施した.The universities which teach agile software development, such as Scrum and XP are increasing in number. On the other hand, there are some problems in agile software development exercise. The Scrum known as one of the leading agile software development framework requires inspection and adaptation of projects. However, it is difficult for students with few team software development experiences to inspect their projects. Moreover, the kind and quantity of the tasks which each student takes charge of tend to become imbalanced. In this paper, we propose a framework which combines a ticket management system and the Scrum for quantitative evaluation in team software development exercise. We conducted practical software development exercise with using our framework as a case study.
著者
井垣 宏 福安 直樹 楠本 真二
雑誌
ウィンターワークショップ2014・イン・大洗 論文集
巻号頁・発行日
vol.2014, pp.79-80, 2014-01-16

SDPBL(Software Development Project-based Learning)等の高度なソフトウェア工学教育を実施する際には,多様なサービスを導入したサーバの構築・運用を教員が実施しなければならない.本稿ではそのようなサーバ運用における課題を整理し,新しいサーバ運用手法について検討を行う.
著者
木村 秀平 肥後 芳樹 井垣 宏 楠本 真二
出版者
The Institute of Electronics, Information and Communication Engineers
雑誌
電子情報通信学会論文誌 D (ISSN:18804535)
巻号頁・発行日
vol.J96-D, no.11, pp.2864-2865, 2013-11-01

モジュールの凝集度を高め結合度を下げるために,コード片を適切な位置に移動させるリファクタリングが行われる.このようなリファクタリングの候補を特定するために,従来の手法では静的解析を用いていた.しかし,静的解析を用いる手法は実行時に定まる情報を反映することができないため,特定が困難なリファクタリング候補があると考えられる.本論文では,動的解析によって得られるフェイズ分割を用いてMove Methodリファクタリングの候補を特定する手法を提案する.
著者
堀田 圭佑 佐野 由希子 肥後 芳樹 楠本 真二
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.52, no.9, pp.2788-2798, 2011-09-15

近年,重複コードへの関心が高まっている.一般的に重複コードはソフトウェアの修正作業量を増大させるおそれがあると考えられており,重複コードの検出や集約に関する研究がさかんに行われている.しかし,重複コードと修正作業量の関係を定量的に調査した研究はあまり行われていない.そこで本論文では,重複コードが非重複コードと比較して修正されやすければ重複コードが修正作業量を増大させているという考えに基づき,ソースコードに加えられる修正の頻度を計測,比較することで,重複コードと修正作業量の関係を調査した.15のオープンソースソフトウェアに対して実験を行った結果,非重複コードと比較して重複コードは修正されにくく,重複コードがソフトウェアの修正作業量を増大させているとは必ずしもいえないという結果を得た.
著者
濱田 淳司 内山 彰 山口 弘純 楠本 真二 東野 輝夫
出版者
一般社団法人情報処理学会
雑誌
研究報告モバイルコンピューティングとユビキタス通信(MBL) (ISSN:09196072)
巻号頁・発行日
vol.2009, no.8, pp.17-24, 2009-01-22
被引用文献数
1

本稿では,無線アドホック通信を用いて,携帯情報端末を保持する歩行者や車載端末を搭載した車両 (ノード) の密度分布をリアルタイムに推定する方法を提案する.各ノードが周辺のノード密度分布を把握できれば,交通状況に応じた高度ナビゲーションや混雑するイベントでの歩行者誘導など高度交通システムにおける様々なサービスなどへの応用が期待できる.提案手法では,各ノードは GPS などで自身のおおよその位置を把握できるものとし,隣接端末が保持するノード分布情報をアドホック通信で定期的に受信することで自身が把握するノード分布情報を更新する.また各ノードがノード分布の変化予測を行うことで時間経過によるノード分布の変化にも追随する.シミュレーション実験を行い,実密度分布と推定密度分布に対して単位領域ごとの密度値の順位付けの相関を導出した結果,相関係数が 0.64 から 0.84 となり,両者の相似度が十分高いことが示された.In this study, we propose a method for mobile wireless nodes, which may be pedestrians or vehicles with information terminals, to estimate the density of mobile nodes in their surroundings. The method enables to provision intelligent services which are environment-aware with highly dynamic movement of nodes, like intellectual navigation that tells the user the best route to detour congested region. In the proposed method, each node is assumed to know its location roughly (i.e. within some error range) and to maintain a density map covering its surroundings. This map is updated when a node receives a density map from a neighboring node. Also by estimating the change of the density, taking into account the movement characteristics of nodes, it is updated in a timely fashion. The simulation experiments have been conducted and the correlation between the ranks of density values of unit cells in the real and estimated density maps has been measured. The results in two different scenarios have shown that the proposed method could attain the correlation coefficients 0.64 and 0.84, indicating the high accuracy of the estimated density maps.
著者
肥後 芳樹 宮崎 宏海 楠本 真二 井上 克郎
出版者
The Institute of Electronics, Information and Communication Engineers
雑誌
電子情報通信学会論文誌 D (ISSN:18804535)
巻号頁・発行日
vol.J93-D, no.9, pp.1727-1735, 2010-09-01

これまでに様々なコードクローン検出手法が提案されているが,ギャップ(不一致部分)を含むコードクローンを検出できる手法は少ない.本論文では,ギャップを含むコードクローンを検出できないコードクローン検出手法の出力結果に対して後処理を行うことで,ギャップを含むコードクローン情報を生成する手法を提案する.提案手法は,グラフマイニングアルゴリズムの一つであるAGMアルゴリズムを用いており,効率的にギャップを含むコードクローン情報を生成することができる.提案手法を検出ツールCCFinderのポストプロセッサとして実装し,複数のオープンソースソフトウェアに対して適用したところ,多数の興味深いコードクローン情報を得ることができた.しかし,提示する必要がないと思われるコードクローンも生成してしまうことがあった.本論文では,この実験の結果について述べ,また,上記の問題に対する解決策についても考察する.