楠本研究室

業績一覧

ホーム業績一覧

メソッド純粋性の変化に伴う不具合に関する調査

メソッド純粋性の変化に伴う不具合に関する調査
卒業論文, 大阪大学
特別研究報告 概要: 関数型言語において関数の純粋性は重要な特性の 1 つである.関数型言語で用いられる関数の純粋性をオブジェクト指向型言語に適用し推定された,純粋性を持つメソッドを“純粋なメソッド”とよぶ.開発者にとってメソッドの純粋性は有用である.メソッドの外部の状態を変化させない純粋なメソッドは,並列実行による競合といった問題が起こらないため並列で実行されるメソッドの実装において重要である.また,equals メソッドや hashCode メソッド,getter メソッドなど呼び出しによってインスタンスのメンバ変数が変化しないと開発者が推測しているメソッドもある. 仕様として定めたメソッドの純粋性をソースコード中に記述し,実際に実装された純粋性を検証することで純粋性を保証することが,契約プログラミングの 1 つとして行われている.しかし契約プログラミングによる設計を行っているソフトウェアはほとんどなく,また仕様として定めた純粋性がその品質に影響を与えるかは不明である. 本研究では純粋であったメソッドが純粋でなくなることに起因する不具合を検証するため,2 つのオープンソースソフトウェアを対象に調査した.結果として,ソフトウェア開発において多くは純粋性の変化しないメソッドであるが,何度も純粋性の変化するメソッドがいくつかあることが分かった.また純粋性が変化する多くのメソッドのソースコードには修正が加えられていないことが分かった.これは開発者が意図せずメソッドの純粋性を変化させてしまう可能性があることを示している.メソッドが純粋でなくなった修正を対象に,その修正内容の分類を行い,機能の追加や不具合の修正が多く行われていることが分かった.一方,不具合の混入と判断された修正は 1 件のみであり,またその修正は不具合修正のために追加したデバッグ用の出力であった. タグ: , mining, repository, purity, object-oriented, static, analysis
@mastersthesis{小倉直徒2015,
  author = {小倉 直徒},
  title = {メソッド純粋性の変化に伴う不具合に関する調査},
  school = {大阪大学},
  type = {Bachelor's Thesis},
  year = {2015},
  month = {feb}
}