森恵弥佳, "JMLによる仕様記述に対するAlloy Analyzerを用いた 検証手法の提案—在庫管理プログラムに対する適用—," , 2013年2月.
ID 265
分類 学位論文
タグ alloy JML
表題 (title) JMLによる仕様記述に対するAlloy Analyzerを用いた 検証手法の提案—在庫管理プログラムに対する適用—
表題 (英文) A Method with Alloy Analyzer for Verifying Jml Annotations - an Application of a Ware-House Management Program -
著者名 (author) 森恵弥佳
英文著者名 (author) Emika Mori
キー (key) Emika Mori
刊行月 (month) 2
出版年 (year) 2013
刊行形式 (howpublished)
URL
付加情報 (note)
注釈 (annote)
内容梗概 (abstract) ソフトウェア開発の重要概念である契約による設計(Design by Contract,以下DbCとする)では,各クラス・メソッドが満たすべき仕様を表明として明確に定義することでソフトウェアの仕様理解の補助や,プログラム検証を可能にする.また表明の記述が十分であれば,メソッドの使用者が実装の詳細を考慮する必要がなくなり,情報隠蔽の度合いやモジュール性を高めることができる.DbCを実現するための具体的な言語として,Javaのソースコード中に表明を記述するためのJML(Java Modeling Language)などが存在する.また,オブジェクト指向モデリングに影響を受けた形式仕様記述言語としてAlloyが存在する.Alloyは自動解析ツールAlloy Analyzerを備えており,記述したモデルに対して表明の検証を行うことができる.

本研究では,JMLで記述された表明に関する欠陥を検出あるいは発見しやすくする手法を提案する.この手法は二つの要素からなっている.一つ目は,洗練の程度を可視化することで洗練の不十分さを使用者に発見しやすくするものである.まず,手動でJMLをAlloyに変換する.そのAlloy記述を使用して,メソッドの表明が全て満たされたときのオブジェクトの例をAlloy Analyzerを用いてグラフとして出力する.二つ目は,実装と表明との不一致を検出するものである.まず,手動でJMLとJavaで書かれたソースコードをAlloyに変換する.そのAlloy記述を使用して,メソッドの実装が表明を満たさないときのオブジェクトの例をAlloy Analyzerを用いてグラフとして出力する.

適用実験はソフトウェア開発のための古典的な共通問題である在庫管理プログラムに対して行った.このプログラムは過去に研究グループが作成したものであり,Javaで記述されている.またJMLによる表明も付与されている.実験の結果,8ヶ所の表明に関する欠陥を検出することができ,手法の有用性を確認できた.また,今回の手法では対応できなかったJMLおよびJavaの構文,Alloy Analyzerの解析の制限や記述および検証にかかるコストについても考察した.
論文電子ファイル e-mori_graduation-thesis.pdf (application/pdf) [一般閲覧可]
BiBTeXエントリ
@misc{id265,
         title = {JMLによる仕様記述に対するAlloy Analyzerを用いた 検証手法の提案—在庫管理プログラムに対する適用—},
        author = {森恵弥佳},
         month = {2},
          year = {2013},
}