@article{oai:ipsj.ixsq.nii.ac.jp:00016611, author = {山田, 聖 and 渡部, 卓雄 and Kiyoshi, Yamada and Takuo, Watanabe}, issue = {SIG11(PRO26)}, journal = {情報処理学会論文誌プログラミング(PRO)}, month = {Aug}, note = {我々は,契約による設計(Design by Contract,DbC)に基づく,アスペクト指向振舞インタフェース仕様記述言語Moxa の設計・開発を行っている.DbC は,サービスの提供者と利用者の間で,利用者が満たすべき条件(事前条件)と提供者がもたらす結果(事後条件)を契約として取り決め,責任の切り分けやサービスの利用方法と得られる結果を明確にすることで,ソフトウェアの品質を向上させる.Java のためのDbC に基づく振舞インタフェース仕様記述言語の1 つであるJML(Java Modeling Language)は,メソッドごとに事前条件・事後条件の記述を可能にするが,メソッド数の増加や提供するサービスの高機能化がこれらの条件を複雑なものにし,表明の整合性・表明とプログラムの一貫性を維持しつつ,これらを修正・拡張することを難しくする.Moxa は,複雑なオブジェクトの振舞いをいくつかの独立した側面の合成としてとらえることができる場合に,それらを表明アスペクトと呼ばれる独立したモジュールに分割して記述することを可能にする.この,オブジェクトの振舞いのある側面は,JML による記述では複数のメソッドに対する表明を横断する形で存在していたものである.本論文では,Moxa が提供する表明記述のモジュール化機構と,その記述方式の説明を行う., In this paper, we report the design and implementation of Moxa ? a behavioral interface specification language that supports DbC (Design by Contract) based specifications. In DbC methodology, a contract arranges responsibilities between a user and a supplier of the service. This improves software quality because this makes clear who has responsibility, how to use, and what is the result of the service. With JML (Java Modeling Language), a DbC based behavioral interface specification language for Java, we can declare assertions as pre/post-conditions for each method. However, as the number of methods increases and the functionalities of services become complex, assertions for each method gets complicated. This makes it difficult to keep the consistency between assertions and methods while we are modifying them. Using Moxa, we can divide and describe assertions into several modules called assertion-aspects, when we can regard the behavior of the object(s) as the composition of some independent aspects. In JML style specification declaration, the aspects are crosscut over the assertions declared for difference methods. In this paper, we show the modularization mechanism for assertion declarations and description method provided by Moxa.}, pages = {27--44}, title = {契約による設計を支援するアスペクト指向的振舞インタフェース記述言語Moxa}, volume = {46}, year = {2005} }