JavaにおけるhashCodeメソッドの整合性検査手法の精度に関する調査および改善案の提案
修士論文, 大阪大学
概要: Java において,コレクションに格納されるオブジェクトはequals メソッドとhashCode メソッドをオーバーライドしている必要があり,これらのメソッドには満たすべき性質(反射性,対称性,推移性など) が存在する.この性質を満たさないオブジェクトをコレクションに格納して使用した場合,正しい振る舞いをしなくなってしまい,さらにはそれによって引き起こされる欠陥を発見することが難しくなる.
既存研究ではequals メソッドのみを対象として,性質を満たすかどうかを検査する手法が提案されていたため,当研究室ではhashCode メソッドを対象としたモデル検査器による整合性検査手法を提案した.
その手法では,モデル化の困難な性質に対してはサブセット規則を提案して検査を行った.
しかしこの規則は厳しすぎるため,もとの性質に違反していないhashCode メソッドを違反する,誤検出が生じてしまう.
そのため,本論文では多数のプロジェクトに対してサブセット規則による検査を行い,サブセット規則の精度に関する調査を行った.また,調査によって発見した,不変クラスを型に持つ再代入不可フィールドの使用などといった,サブセット規則における11つの誤検出のパターンに対して,改善方法の考察,提案を行った.
タグ: checking, consistency, hashcode, improvement, investigation, java, method, precision, proposal
@mastersthesis{藤田悠矢2015,
author = {藤田 悠矢},
title = {JavaにおけるhashCodeメソッドの整合性検査手法の精度に関する調査および改善案の提案},
school = {大阪大学},
year = {2015},
month = {feb}
}