著者
大森 隆行 丸山 勝久 林 晋平 沢田 篤史
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.29, no.3, pp.3_3-3_28, 2012-07-25 (Released:2012-09-25)

ソフトウェアは,利用者を満足させ続けるために絶えず進化しなければならない.本論文では,このようなソフトウェア進化に関連する研究を,手法,対象,目的という三つの視点から分類する基準を示す.その上で,それぞれの分類に基づき文献調査を行った結果を示す.この分類と調査の結果は,ソフトウェア進化分野の研究動向や研究の方向性を考察する足掛かりとなる.
著者
丸山 勝久
雑誌
情報処理
巻号頁・発行日
vol.54, no.9, pp.886-889, 2013-08-15

1984年に登場した「酒屋問題」は,さまざまなプログラム設計技法に関する情報共有や議論の場を提供してきた.しかしながら,ソフトウェア工学の進展や拡大に伴い,プログラム設計に焦点を当てた共通問題では対処できない場面が数多く発生している.そこで,現在のソフトウェア工学研究の評価という視点で当時の酒屋問題を眺めて,新たな共通問題を作成する際に考慮すべき点を議論する.本稿では,(1)開発工程の視点,(2)意思決定の視点,(3)開発活動の視点,(4)成果表現という4つの視点を提案する.
著者
丸山 勝久 小野 康一 門倉 敏夫 深澤 良彰
雑誌
全国大会講演論文集
巻号頁・発行日
vol.44, pp.293-294, 1992-02-24

既に開発されて稼働中のソフトウェアが、保守要求等によって変更される場合を考える。これをシステム変更と呼ぶことにする。いま、システム変更において検証を行うとき、以下のことを仮定する。・変更前のプログラムは、検証によって変更前の仕様に対する正当性が保証されている。また、この検証の結果(履歴)は残っている。・保守要求によって変更された仕様は、仕様定義者の意図を正確に表現している。また、仕様は誤りを含まない。保守要求によって、仕様とプログラムが個々に変更されると、変更後においてはこれらの間で正当性が満たされる保証はない。したがって、変更後の仕様とプログラムに対して再度検証を行う必要がある。本稿では、このようなシステム変更に対する検証技法の適用について述べる。
著者
丸山 勝久 島 健一
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.41, no.6, pp.1777-1790, 2000-06-15
参考文献数
24

オブジェクト指向ソフトウェア開発において,フレームワークを再構成することは,その再利用性をより高くする効果を持つ.しかしながら,再構成操作は手動で行うには複雑である.本論文では,過去のアプリケーション開発時のメソッドの変更履歴に基づく重み付き依存グラフを用いて,フレームワークを自動的に再構成する手法を提案する.本再構成手法では,継承によりクラスを再利用した際,メソッド内部に存在する依存関係が保存あるいは破壊されるかどうかに応じて,依存関係の強さを指す重みを変動させる.重み付き依存グラフの矢印に蓄積された重み値に基づき,もとのフレームワークにおいて,そのまま再利用可能な固定部分と要求に応じて柔軟に変更する可変部分を分離することで,個々の開発者に特化したフレームワークの成熟化を実現する.適切に分離された固定部分と可変部分を含むフレームワークを用いることで,アプリケーション開発における実装の繰返しを軽減できる.本論文における評価実験では,開発者の記述コード量に関して,最大22%(従来手法に比べて約2倍)の減少率を確認した.While refactoring makes application frameworks more reusable,it is complex to do by hand.This paper presents a mechanism that automatically refactors methodsin object-oriented frameworks by using weighted dependence graphs,whose edges are weighted based on the modification histories of the methods.To find the appropriate boundarybetween frozen spots and hot spots in the methods,the value of the weight varies based on whether the dependencein the original methods has been repeatedly preserved or destroyedin the methods of applications created by programmers.The mechanism constructs both template methods that containthe invariant dependence and hook methods that are separatedby eliminating the variant dependence.The new template methods and hook methods tailored toeach programmer save him/her from writing superfluous codewhen reusing a framework.Experimental results show a reduction rate of up to 22%in the number of statements a programmer has to writewhen creating several applications;this percentage is double that achievableby a conventional refactoring technique.
著者
西村 雄一 紙名 哲生 丸山 勝久
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.59, no.4, pp.1120-1136, 2018-04-15

ソフトウェアの並行開発において,異なる開発者が同一のソースコードを独立に変更した場合,それらの変更のマージが競合を引き起こすことがある.このような競合を解決するためには,版管理システムに残された過去の変更を細かく調査し,競合の原因やその解決策を見つけ出す必要があるが,これは面倒で時間のかかる作業である.本論文では,開発者がどのようにJavaソースコードを編集してきたかという情報を表現した細粒度の編集操作の履歴を用いて,競合解決を支援するツールを提案する.このツールは,競合するクラスメンバに関係する編集操作だけを抽出し,それらを再演することで,競合がどのように発生したのかの理解を助ける.また,過去の編集において競合を発生させずにマージ可能な時点を検出し,自動的にマージを適用した結果を開発者に提示する.簡単な被験者実験を通して,提案ツールが開発者の競合原因の把握や競合解決作業の支援に有用であることを確認した.
著者
大森 隆行 桑原 寛明 丸山 勝久
出版者
日本ソフトウェア科学会
雑誌
コンピュータ ソフトウェア (ISSN:02896540)
巻号頁・発行日
vol.32, no.1, pp.1_120-1_135, 2015-01-26 (Released:2015-02-11)

Although code completion is inevitable for effective code editing on integrated development environments, existing code completion tools can be improved. A previous study noted that developers sometimes perform ineffective repetitions of the same code completion operations. Hence, this paper introduces a statement, “A more recently inserted code completion candidate should be given a higher rank among previously inserted items in the candidate list.” To confirm this statement, this paper examines the following three points. First, an experiment using operation histories is presented to reconfirm that developers more frequently repeat recent code completion operations. Second, a tool called RCC Candidate Sorter is presented. It alters the sorting algorithm of the default Eclipse code completion tool to prioritize candidates inserted by recent code completion. Finally, an experiment is conducted to evaluate the performance of the tool. The experimental result shows that it outperforms an existing method.