小倉, "メソッド純粋性の変化に伴う不具合に関する調査," , 2015年2月.
ID 414
分類 学位論文
タグ mining repository purity object-oriented static analysis
表題 (title) メソッド純粋性の変化に伴う不具合に関する調査
表題 (英文) Evaluating the Bugs with Changing the Purity of Methods
著者名 (author) 小倉 直徒
英文著者名 (author) Naoto Ogura
キー (key) Naoto Ogura
刊行月 (month) 2
出版年 (year) 2015
刊行形式 (howpublished)
URL
付加情報 (note) 特別研究報告
注釈 (annote)
内容梗概 (abstract) 関数型言語において関数の純粋性は重要な特性の 1 つである.関数型言語で用いられる関数の純粋性をオブジェクト指向型言語に適用し推定された,純粋性を持つメソッドを“純粋なメソッド”とよぶ.開発者にとってメソッドの純粋性は有用である.メソッドの外部の状態を変化させない純粋なメソッドは,並列実行による競合といった問題が起こらないため並列で実行されるメソッドの実装において重要である.また,equals メソッドや hashCode メソッド,getter メソッドなど呼び出しによってインスタンスのメンバ変数が変化しないと開発者が推測しているメソッドもある.
仕様として定めたメソッドの純粋性をソースコード中に記述し,実際に実装された純粋性を検証することで純粋性を保証することが,契約プログラミングの 1 つとして行われている.しかし契約プログラミングによる設計を行っているソフトウェアはほとんどなく,また仕様として定めた純粋性がその品質に影響を与えるかは不明である.
本研究では純粋であったメソッドが純粋でなくなることに起因する不具合を検証するため,2 つのオープンソースソフトウェアを対象に調査した.結果として,ソフトウェア開発において多くは純粋性の変化しないメソッドであるが,何度も純粋性の変化するメソッドがいくつかあることが分かった.また純粋性が変化する多くのメソッドのソースコードには修正が加えられていないことが分かった.これは開発者が意図せずメソッドの純粋性を変化させてしまう可能性があることを示している.メソッドが純粋でなくなった修正を対象に,その修正内容の分類を行い,機能の追加や不具合の修正が多く行われていることが分かった.一方,不具合の混入と判断された修正は 1 件のみであり,またその修正は不具合修正のために追加したデバッグ用の出力であった.
論文電子ファイル n-ogura_graduationthesis.pdf (application/pdf) [一般閲覧可]
BiBTeXエントリ
@misc{id414,
         title = {メソッド純粋性の変化に伴う不具合に関する調査},
        author = {小倉 直徒},
         month = {2},
          year = {2015},
          note = {特別研究報告},
}