アスペクト指向プログラミング(AOP)では,ロギングのような横断的関心事の存在を考慮せずにクラスを設計出来る.この性質は,obliviousnessと呼ばれる.一方で,プログラムの振る舞いは横断的関心事の織り込みによって決まるため,織り込みされているプログラムの実際の振る舞いを知ることは容易ではなく,プログラムに誤りが混入することがある.この問題を解決するため,本論文は織り込みの正しさを契約に基づき検証する手法としてWbC (Weaving by Contract)を提案する.WbCにおける契約は,織り込みに対する事前,事後,不変条件から成り,織り込みの前後でプログラムがどのような振る舞いを持つべきかが指定できる.本論文では,また,WbCの記述言語としてCOW (COntract Writing language)を提案する.COWでは,プログラムの振る舞いをプログラム内の制御フローやデータフローの特徴として表し,これを述語論理により記述出来るようにする.WbCは,織り込みがプログラマの意図通り行われるために役立つ.