著者
山中 裕樹 崔 恩瀞 吉田 則裕 井上 克郎 佐野 建樹
雑誌
ソフトウェアエンジニアリングシンポジウム2012論文集
巻号頁・発行日
vol.2012, pp.1-8, 2012-08-21

ソフトウェア保守における大きな問題の一つとしてコードクローンが指摘されている.コードクローンとは,ソースコード中に,互いに一致または類似した部分を持つコード片のことである.コードクローンに対する主な保守作業として,クローンセット(互いにコードクローンとなっているコード片の集合)に含まれる全てのコード片を一貫して編集する同時修正と,クローンセットを1つのサブルーチンにまとめる集約が挙げられる.本研究では,コードクローンに対する保守作業を支援することを目的としたコードクローン変更管理システムの開発を行った.そして,企業で行われているソフトウェア開発に適用することによって,本システムの有用性を確かめることができた.
著者
山本 雅基 小林 隆志 宮地 充子 奥野 拓 粂野 文洋 櫻井 浩子 海上 智昭 春名 修介 井上 克郎
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.32, no.1, pp.1_213-1_219, 2015-01-26 (Released:2015-02-11)

本論文では,協働教育の教育効果を測定するための新しい手法について提案して,実証評価する.分野・地域を越えた実践的情報教育協働ネットワークenPiTでは,全国の大学院生に対して,情報技術の実践力を高める教育を実施している.実践力の育成を目的とする教育協働における教育効果の測定には,2つの課題が挙げられる.第一に,実践力は専門知識の定着を問うテストでは測定困難である.第二に,履修カリキュラムが異なる受講生を共通の指標で評価することも困難である.本論文では,学習経験を問う質問紙と行動特性を計測するテストを併用することにより,履修カリキュラムが異なる受講生の実践力を統一の基準で評価する手法を提案し,enPiTで実証評価した.
著者
瀬村 雄一 吉田 則裕 崔 恩瀞 井上 克郎
出版者
The Institute of Electronics, Information and Communication Engineers
雑誌
電子情報通信学会論文誌 D (ISSN:18804535)
巻号頁・発行日
vol.J103-D, no.4, pp.215-227, 2020-04-01

近年実務に使用されるプログラミング言語は多様化し,ある一つのプログラミング言語においてもその文法はバージョンごとに差異をもつ.字句単位のコードクローン検出ツールCCFinderXは,多様な言語に対応するためのシンプルな仕組みをもたない.提案ツールとして,構文解析器生成系の一つであるANTLRの構文定義記述を入力として与えることで,新たな言語の字句解析が可能になるコードクローン検出ツールCCFinderSWを開発した.評価実験では,42言語の構文定義記述からコメントや予約語,文字列リテラルの情報を抽出し,81%の言語でこれら3種類の情報が抽出可能であることを示した.また,C++で記述されたソースコードに対するコードクローン検出においてCCFinderXと出力を比較し,ほぼ同等の検出能力をもつことを示した.
著者
大和正武 神代 知範 門田 暁人 松本 健一 井上 克郎
出版者
一般社団法人情報処理学会
雑誌
情報処理学会研究報告
巻号頁・発行日
pp.73-78, 1999
被引用文献数
1

本研究では,視線とマウスを併用することでより効率のよい入力インタフェースの実現を目指す.その第一歩として,GUI上でのボタン選択操作を「ボタン上にカーソルを移動する操作(移動操作)」と「ボタンを押す操作(確定操作)」に分け,移動操作を視線で,確定操作をマウスで行う方式について検討した.適用実験の結果,視線によるカーソル移動は高速で,マウスのみによる選択操作よりも効率の良いことが分った.但し,操作対象となるボタンの大きさが1cm四方程度に小さい場合,視線のみでボタン上にカーソルを移動することは困難であり,視線による移動操作を補助する必要のあることも分った.
著者
野村 研仁 仲田 恭典 井上 克郎 鳥居 宏次 木村 陽一 米山 寛二 ノムラ ケンジ ナカタ ヤスノリ イノウエ カツロウ トリイ コウジ キムラ ヨウイチ ヨネヤマ カンジ Nomura Kenji Nakata Yasunori Inoue Katsuro Torii Koji Kimura Yoichi Yoneyama Kanji
出版者
情報処理学会
雑誌
情報処理学会研究報告ソフトウェア工学(SE) (ISSN:09196072)
巻号頁・発行日
vol.1987, no.38, pp.1-8, 1987-06-24

プログラムの実行時エラーの原因を効率よく発見するためには,デバッグに関する多くの経験的知識が必要である.熟練したプログラマーは,処理系が発生する実行時エラーメッセージを見ると,過去の経験に照らし合わせていくつかのエラー原因を推測し,ソースプログラムや実行結果を詳しく調べることによりエラー原因を特定する.実行時エラーメッセージを認識してからエラー原因を推定するまでの間に熟練したプログラマーが行う推論に用いる知識は,実行時エラーの原因診断システムには,ほとんど用いられていないのが現状である.本稿では,熟練プログラマーがデバッグの際に用いる知識の整理,これらの知識および推論方法を用いるPL/Iプログラムの実行時エラー原因診断エキスパートシステムの試作について報告する.When 'expert' programmer debugs programs, he uses many heuristic knowledges to find out the causes of errors. He at first infers the candidates for the causes of the errors from error messages and next verifies each candidate. Using these domain knowledges, we designed an expert system for diagnosing run-time errors in PL/I programs. We had devoloped a prototype of this system on the XEROX 1108 using the KEE. This prototype infers the cause of "data exception error", which practically happens frequently, in such a way that at first generating the hypothesis from error messages and then verifying these hypothesis.
著者
植田 泰士 神谷 年洋 楠本 真二 井上 克郎
出版者
一般社団法人電子情報通信学会
雑誌
電子情報通信学会論文誌. D-I, 情報・システム, I-情報処理 (ISSN:09151915)
巻号頁・発行日
vol.86, no.12, pp.863-871, 2003-12-01
被引用文献数
14 20

ソフトウェアの保守作業を難しくしている要因の一つとしてコードクローンがある.コードクローンとは,ソースコード中の同一,または類似した部分を指す.あるコード片にバグが含まれていた場合には,そのコード片のコードクローンすべてについて修正の是非を検討する必要がある.しかし,大規模なソフトウェアの場合,それらすべての箇所を手作業で発見し,修正の是非を検討することは非常に困難である.本研究では,コードクローン検出ツールCCFinderの検出結果を利用したコードクローン分析環境Geminiの構築を行う.本システムは,開発保守におけるコードクローンの利用を支援するため,コードクローンの位置情報の視覚化,コードクローンに関するメトリックス値の算出,及び対応したソースコードを参照する機能を備える.本システムを実際のプログラムに適用することで,特徴的なコードクローンなどを抽出できることを確認した.
著者
会沢 実 練 林 飯田 元 井上 克郎 鳥居 宏次
雑誌
全国大会講演論文集
巻号頁・発行日
vol.48, pp.111-112, 1994-03-07
被引用文献数
1

大規模なソフトウェアのソースプログラムは,開発,保守のそれぞれの過程を通じて頻繁に変更を加えられる.変更されたプログラムの履歴からバグの作り込まれた時間の特定などの解析を行なう際,バージョン間の差分を求めるツールは非常に有用なものである.開発者は,プログラムテキスト間の差分を基にどの部分に変更が加えられたかを知ることができる.このようなプログラムの差分を求めるツールとしては,UNIXのdiffなどが広く用いられている.diffでは行単位のストリング比較を基にして差分を求めている.しかし,Cのプログラムのようにブロック構造を持つテキストの差分を求める場合,ネストの深さの変化や制御の流れの違いなども開発者にとっては重要な情報である.diffの差分の計算方法では,このようなプログラムの構造に関わる変化の有無をとらえることは困難である.本研究では,構文木の比較を基にしたプログラムテキスト比較ツール(progdiff)の試作を行なった.progdiffでは,ユーザがプログラムの階層構造の変化を容易に把握できるよう,表示方法についても工夫している.progdiffの入力は,C言語で記述されたプログラムテキストであるprogdiffは主に次の3つの部分から構成される.(1)入力された2つのCプログラムからそれぞれに対応する構文木を生成する.(2)木の比較アルゴリズムを利用して2つの構文木の各頂点の最大の対応を求める.(3)対応のとれていない頂点を両者の差分として,プログラムテキストの形で表示を行なう.次章以降において,ツールを構成するそれぞれの部分について説明する.
著者
ブャンネメフオドフー 眞鍋雄貴 伊達浩典 石尾隆 井上克郎
雑誌
研究報告組込みシステム(EMB)
巻号頁・発行日
vol.2013-EMB-29, no.2, pp.1-8, 2013-05-20

ソフトウェアの保守を困難にする要因の一つとしてコードクローンが挙げられる.コードクローンとは,ソースコード中に,互いに類似または一致した部分を持つコード片のことである.各コードクローンは,たとえ記述が同一であってもそれらの周辺のコードに依存して異なる動作をする可能性がある.しかしながら,実際にどの程度コードクローンが周辺コードに依存しているかはわかっていない.本研究では,コードクローンと周辺のコードとの依存関係を明らかにするため,コードクローンの周辺コードの量と,周辺コード間の違いについて調査を行った.その結果,多くのコードクローンに周辺コードが存在し,多くのコードクローン間で周辺コードが異なることを確認した.
著者
石居達也 小堀一雄 松下誠 井上克郎
雑誌
研究報告組込みシステム(EMB)
巻号頁・発行日
vol.2013-EMB-29, no.1, pp.1-8, 2013-05-20

Java では,フィールドおよびメソッドに対してアクセス修飾子を宣言することで,外部からアクセス可能な範囲を制限することができる.しかし,既存ソフトウェアには実際の利用範囲に対して過剰に広く設定されているアクセス修飾子が多数存在することが知られている.一方で,それらのアクセス修飾子の修正状況については,過去に分析が行われていない.そこで本研究では,ソフトウェア開発の履歴を対象として,過剰なアクセス修飾子に対する修正作業の実行頻度について分析した.分析対象とするデータは,既存のアクセス修飾子過剰性検出ツールを拡張して既存の 7 つの Java プロジェクトから取得した.分析を行うに当たり,宣言されているアクセス修飾子と実際の利用範囲に基づき,フィールドおよびメソッドを 3 状態へ分類した.さらに,バージョン間における状態遷移を,性質ごとに 6 つのグループへと分類した.その結果,過剰なアクセス修飾子の大半は,修正されずそのまま放置されていることを確認した.一方,一部の種類の過剰なアクセス修飾子については,分析対象の全プロジェクトにおいて修正が行われていることを確認した.
著者
島田 隆次 市井 誠 早瀬 康裕 松下 誠 井上 克郎
出版者
情報処理学会
雑誌
情報処理学会研究報告ソフトウェア工学(SE) (ISSN:09196072)
巻号頁・発行日
vol.2008, no.112, pp.31-38, 2008-11-12

クラスやメソッドなどソフトウェアの構成要素であるソフトウェア部品を再利用することで,ソフトウェアの品質や生産性が向上するといわれている.開発者はソフトウェア部品検索システムを用いたキーワード検索により再利用可能なソフトウェア部品を得ることができる.しかしキーワード検索を用いた再利用には,開発者が意識しないと検索が行われないなどの問題点がある.それに対して,開発者の指示なしに自動的にソフトウェア部品を検索する手法が提案されているが,その手法では入出力仕様が完全に一致するものを検索するため,入出力仕様に変更を加えれば再利用できるような部品は発見できない.そこで本稿では,そのようなソフトウェア部品も検索できるソフトウェア部品の自動推薦手法を提案する.提案手法では,ソースコード中に数多く現れるコメントや識別子を利用し,自然言語に対する検索手法である LSI を応用して暖昧さを許容する検索を行うことで,多少の変更を加えれば再利用できるようなソフトウェア部品も推薦することができる.また,提案手法を実装したソフトウェア部品の自動推薦システムを作成した.Reusing software components like classes and modules improves software quality and productivity. Software developers often retrieve available components by keyword search using software component retrieval system. However the developers who will not search for components can not retrieve reusable components. To address this issue, software component retrieval technique without developer's instruction was proposed. However developers can not discover available components that need change using the technique because it searches components having same input and output specification to requested one. In this paper, we propose the automatic software component recommendation technique that can retrieve such software component. Proposed technique vaguely retrieves reusable components including the ones that requires small modification to reuse based on the LSI technique using comments and identifiers in source code. In addition, we have developed the automatic software component recommendation system that implements the proposed technique.
著者
神谷 芳樹 バーカー マイク 松本 健一 鳥居 宏次 井上 克郎 鶴保 征城
出版者
特定非営利活動法人 産学連携学会
雑誌
産学連携学 (ISSN:13496913)
巻号頁・発行日
vol.2, no.2, pp.2_26-2_37, 2006 (Released:2007-09-20)
参考文献数
29

ソフトウェア工学の分野で計測に基づいて生産性や品質への貢献を目指すのがエンピリカルソフトウェア工学の立場である.そこでは研究対象としてのソフト開発現場の獲得が鍵となるがその実現は容易ではない.筆者らはこの立場から課題の解決を狙い,2003年からソフトウェア産業力強化を命題とする国の施策をトリガに新しい産学官連携の枠組みを構築した.本論ではこの試みの考え方と構成を示し,2年半余経過時の到達点,実現した産学での現場データ共有状況,明らかになった課題を報告する.そしてこの経験を一般化し,テクノロジー・アービトラージとマーケットメイクという金融界の概念に示唆を受けた産学の仲介者の役割に関する考察を示す.
著者
市井 誠 松下 誠 井上 克郎
出版者
一般社団法人電子情報通信学会
雑誌
電子情報通信学会論文誌. D, 情報・システム = The IEICE transactions on information and systems (Japanese edition) (ISSN:18804535)
巻号頁・発行日
vol.90, no.7, pp.1733-1743, 2007-07-01
参考文献数
19
被引用文献数
2

ソフトウェア部品とはモジュールや関数,クラス等のソフトウェアの構成単位であり,参照や呼出しなどの形で互いに利用関係をもつ.ソフトウェア部品を頂点,利用関係を有向辺としたグラフはソフトウェア部品グラフ(部品グラフ)と呼ばれ,ソフトウェアの解析手法に広く用いられている.グラフを特徴づける要素として頂点の次数分布がある.近年,WWW上のページのリンク関係やソーシャルネットワーク等,様々な分野のグラフで次数分布がべき乗則に従うことが明らかになり,活発に研究されている.本論文では,Javaソフトウェアに含まれるクラス間の静的な利用関係に基づく部品グラフの次数分布にべき乗則が成り立つかどうかを調査した.その結果,一つのソフトウェア及び大規模なソフトウェアの集合に関し,入次数の分布がべき乗則に従い,出次数の分布は次数の大きな範囲でのみべき乗則に従うことが明らかになった.また,一部の部分集合においても同様の性質が成り立ち,特に,単語に基づく部分集合は非常に少ない部品数でも全体集合と同様の性質をもつことが明らかになった.
著者
秦野 智臣 石尾 隆 井上 克郎
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.33, no.4, pp.4_4-4_15, 2016-10-25 (Released:2017-01-14)

ソフトウェア工学において,Javaを対象としたプログラム解析を行う場合,制御フローグラフやデータ依存関係,制御依存関係,メソッドの呼び出し関係がしばしば必要になる.これらの情報を得る手段として,既存のプログラム解析ツールを用いることが考えられるが,利用者が解析アルゴリズムについて十分理解していないと,その利用が困難である. SOBA(Simple Objects for Bytecode Analysis)は,プログラム解析に関する詳細な知識なしで容易に利用できるように設計された Javaバイトコード解析ライブラリである.本論文では,SOBAの主要な機能や設計方針,プログラム例を紹介する.
著者
荻原 剛志 飯田 元 新田 稔 井上 克郎 鳥居 宏次 Ogihara Takeshi Iida Hajimu Nitta Minoru Inoue Katsuro Torii Koji オギハラ タケシ イイダ ハジム ニッタ ミノル イノウエ カツロウ トリイ コウジ
出版者
情報処理学会
雑誌
情報処理学会研究報告プログラミング(PRO) (ISSN:09196072)
巻号頁・発行日
vol.1988, no.94, pp.89-98, 1988-12-09

我々はソフトウェアの開発過程を形式的に記述し,実行するための関数型言語PDL(Process Description Language)およびそのインタプリタを作成した.PDLでは開発過程をツールの起動やウィンドウ操作の系列として記述する.PDLはこれらの操作のための関数や複数の操作を並列実行するための関数を持つ.また,さまざまなマクロ機能があり,定義の記述を容易に行うことができる.PDLインタプリタは,実行中に検出した未定義関数をそのつどユーザに定義させる機能などを持ち,十分詳細化されていない記述も実行可能である.また,デバッグ機能やヒストリ機能,関数定義の画面編集機能などの機能も備えている.我々はすてにJSD(ジャクソンシステム開発法)など,いくつかの開発技法をPDLて記述し,実行している.PDLインタプリタは現在,いくつかのUNIXワークステーション上で稼働中である.
著者
櫻井 浩子 山本 雅基 海上 智昭 小林 隆志 宮地 充子 奥野 拓 粂野 文洋 春名 修介 井上 克郎
出版者
公益社団法人 日本工学教育協会
雑誌
工学教育 (ISSN:13412167)
巻号頁・発行日
vol.65, no.1, pp.1_52-1_57, 2017 (Released:2017-02-04)
参考文献数
13

The education project, Educational Network for Practical Information Technologies, called enPiT, consists of four different important field in information technologies of information security, cloud, embedding system, business application, covers 100 universities, and more than 1,300 students have joined in enPiT. The difficulties and challenging points in enPiT exist in rich diversities of students, who are originally educated in different universities with different curriculums. This is why it is important to develop a measure of effectiveness of our education systems. In enPiT, we evaluate effectiveness by two ways of each practical skills and PROG test. In this paper, we report how to evaluate the effectiveness of practical education developed in the education project enPiT.
著者
西松 顯 楠本 真二 井上 克郎
出版者
電子情報通信学会
雑誌
電子情報通信学会技術研究報告. 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.
著者
門田 暁人 井上 克郎 松本 健一 岡原 聖 真鍋 雄貴 山内 寛己 Yamauchi Hiroki Okahara Satoshi Inoue Katsuro Monden Akito Manabe Yuki Matsumoto Kenichi マツモト ケンイチ モンデン アキト ヤマウチ ヒロキ オカハラ サトシ マナベ ユウキ イノウエ カツロウ
出版者
電子情報通信学会
雑誌
電子情報通信学会技術研究報告. SS, ソフトウェアサイエンス (ISSN:09135685)
巻号頁・発行日
vol.108, no.362, pp.7-11, 2008-12-11

Generally, if a piece of code clone was found between two different programs, a plagiarism or a code reuse (program piracy) might be made. On the other hand, code clone also occurs accidentally or by code idioms. This paper experimentally derives the probability of program piracy based on length of code clone. In the experiment, we identified code clones among many different programs which we confirmed that program piracy has not been made, and formulated by power approximation the relation between the length of code clone and its derivation probability. By using this formula, we can compute the probability of program piracy from the maximum length of code clone derived from given two programs.一般に, プログラム間で一致するコード列(コードクローン)が見つかった場合, コードの盗用もしくは流用の疑いがある. 一方で, 独立に開発されたプログラム間で偶然(もしくは定型処理など)によりコードクローンが生じることもある. 本稿では, どの程度の長さのクローンであれば, 偶然に生じたものではないと言えるか, その判断基準を実験的に導出する.実験では, 独立に開発された(流用のない)多数のプログラム間で検出されるコードクローンの長さと個数を調査し, 最大クローン長とクローン検出確率の関係を算出した. そして, 偶然に生じうるコードクローンの検出確率を累乗近似により定式化した. 導出した式により, 2つのプログラム間の最大クローン長を計測することにより, 偶然や定型処理ではない, すなわち, 盗用や流用が行われた確率を求めることが可能となった.
著者
伊達 浩典 石尾 隆 松下 誠 井上 克郎
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.32, no.1, pp.1_220-1_226, 2015-01-26 (Released:2015-02-11)

A coding pattern is a sequence of method calls and control structures, which appears repeatedly in source code. In this paper, we have extracted coding patterns of each version of ten Java programs, and then explored the number of versions in which the coding patterns appear. This paper reports the characteristics of coding patterns over versions. While learning from coding patterns is expected to help developers to perform appropriate modifications and enhancements for the software, many coding patterns are unstable as similar to the result of clone genealogy research.
著者
山本 哲男 松下 誠 井上 克郎
出版者
一般社団法人日本ソフトウェア科学会
雑誌
コンピュータソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.18, no.3, pp.250-260, 2001-05-15
被引用文献数
1

近年,ハードディスクの容量は飛躍的に大きくなり,その値段は急速に低下してきている.ディスク容量が十分に大きければ,不要なファイルを消す必要がなく,変化する全てのバージョンを保存できると考えられる.本論分では,まず自動的に全てのファイルの変更を保存する堆積型ファイルシステムMoraineを提案する.Moraineでは常に最新のバージョンが透過的に操作可能であり,記録されたバージョンを容易に取り出すことが可能である,また,Moraineを用いたソフトウェアメトリクス環境であるMAME(Moraine As a Metrics Environment)を提案する.MAMEはソフトウェア開発に用いることにより,開発の途中あるいは終了時にさまざまなメトリクスデータを収集し分析することを可能にする.