基于AOP的契約式開發(fā)方法研究及其語言與工具支持
發(fā)布時間:2023-04-07 05:28
程序的正確性是軟件開發(fā)中的核心問題,也是軟件質(zhì)量的基礎(chǔ),為了能夠解決該問題,開發(fā)出無錯的軟件,人們提出了許多方法。形式化方法是其中的一種,它試圖用嚴(yán)格的數(shù)學(xué)理論來規(guī)范和指導(dǎo)程序設(shè)計,從而保證軟件的正確性。但是,形式化方法有著嚴(yán)格的數(shù)學(xué)理論,對開發(fā)者的要求比較高,因而,在實踐中的應(yīng)用并不是非常普遍。契約式開發(fā)方法(Design By Contract,DBC)[1]是一種借鑒了形式化方法優(yōu)點而又易于實踐的開發(fā)方法學(xué),它引入了形式化方法中的不變式、前置謂詞和后置謂詞等概念,來精確刻畫程序模塊的語義。契約式方法提供了方便的定義規(guī)約和檢查規(guī)約的手段,使得開發(fā)者在實際開發(fā)過程中能夠真正利用形式化方法的優(yōu)點。在面向?qū)ο箝_發(fā)領(lǐng)域中,契約式開發(fā)已經(jīng)是一種被普遍接受的用于提高軟件可靠性的系統(tǒng)化方法。但是,契約式開發(fā)也有其不利的方面,比如編寫程序時的“額外負(fù)擔(dān)”、不同關(guān)注點的代碼糾纏等等,因此,主流的面向?qū)ο笳Z言并未提供對它的支持。 面向方面編程[2](Aspect-Oriented Programming,AOP)是一種新興的編程技術(shù),近年來已逐漸成為程序設(shè)計領(lǐng)域的熱點。它強調(diào)關(guān)注點的分離和橫切關(guān)注點的...
【文章頁數(shù)】:93 頁
【學(xué)位級別】:碩士
【文章目錄】:
摘要
Abstract
第一章 引言
1.1 研究背景
1.1.1 契約式開發(fā)
1.1.2 面向方面編程
1.1.3 在契約式開發(fā)中應(yīng)用AOP技術(shù)
1.1.4 問題總結(jié)
1.2 解決方案
1.2.1 AOP-DBC對應(yīng)關(guān)系
1.2.2 ACDL語言
1.2.3 AJMaker工具
1.3 本文的主要貢獻(xiàn)
1.4 本文的組織結(jié)構(gòu)
第二章 面向方面編程
2.1 AOP產(chǎn)生背景
2.2 面向方面編程概述
2.2.1 AOP核心思想
2.2.2 什么是Aspect
2.2.3 AOP特性
2.2.4 AOP的軟件開發(fā)過程
2.2.5 AOP的傳統(tǒng)應(yīng)用領(lǐng)域
2.3 面向方面編程的實現(xiàn)技術(shù)
2.3.1 AOP語言規(guī)范
2.3.2 AOP的語言實現(xiàn)
2.3.3 AOP的織入過程
2.3.4 AspectJ-Java的AOP實現(xiàn)
2.4 面向方面編程的研究內(nèi)容
2.4.1 面向方面的軟件工程
2.4.2 面向方面的程序分析、度量與測試
2.5 小結(jié)
第三章 AOP在契約式開發(fā)中的應(yīng)用
3.1 契約式開發(fā)
3.1.1 在Observer模式中支持契約
3.1.2 契約式開發(fā)和單元測試
3.1.3 DBC和OCL
3.2 AOP增強契約式開發(fā)
3.2.1 模塊化契約
3.2.2 對應(yīng)關(guān)系
3.2.3 使用AspectJ支持契約
3.3 國內(nèi)外相關(guān)研究工作
3.3.1 DOT
3.3.2 OCLE
3.3.3 其他
3.4 小結(jié)
第四章 ACDL語言
4.1 設(shè)計目的
4.1.1 獨立描述約束
4.1.2 無副作用
4.1.3 詳細(xì)的上下文信息
4.1.4 可轉(zhuǎn)換性
4.1.5 靈活性
4.1.6 目標(biāo)用戶
4.2 ACDL語言特征
4.3 語言描述
4.3.1 contract
4.3.2 checkpoint
4.3.3 condition
4.3.3.1 before
4.3.3.2 after
4.3.3.3 beforeAndAfter
4.3.4 關(guān)于不變式檢查的一些討論
4.3.5 ACDL中的抽象機制
4.3.6 語言框架
4.3.7 集合操作
4.3.7.1 集合公共操作
4.3.7.2 Set集合的操作符
4.3.7.3 Bag集合的操作符
4.3.7.4 Sequence集合的操作符
4.3.7.5 集合操作實例
4.4 ACDL主要語法規(guī)則
4.5 目標(biāo)語言
4.6 使用ACDL集成DBC軟件開發(fā)流程
4.6.1 ACDL與上層設(shè)計
4.6.1.1 VDM
4.6.1.2 VDM-ACDL轉(zhuǎn)換的可行性分析
4.6.1.3 小結(jié)
4.6.2 ACDL與下層實現(xiàn)
4.7 小結(jié)
第五章 AJMaker工具的實現(xiàn)框架
5.1 AJMaker框架
5.2 代碼生成模塊的實現(xiàn)
5.2.1 契約描述
5.2.2 代碼生成機制
5.2.3 用戶接口
5.2.3.1 為類添加不變式條件約束
5.2.3.2 為方法添加前置/后置條件約束
5.2.3.3 代碼生成
5.3 轉(zhuǎn)換解析模塊的實現(xiàn)
5.3.1 簡單映射
5.3.2 集合操作映射
5.3.3 @pre的處理
5.4 契約的異常處理
5.5 小結(jié)
第六章 總結(jié)與展望
6.1 關(guān)于ACDL語言的一些討論和總結(jié)
6.2 對未來工作的展望
第七章 參考文獻(xiàn)
致謝
附錄 攻讀學(xué)位期間發(fā)表的學(xué)術(shù)論文目錄
本文編號:3785182
【文章頁數(shù)】:93 頁
【學(xué)位級別】:碩士
【文章目錄】:
摘要
Abstract
第一章 引言
1.1 研究背景
1.1.1 契約式開發(fā)
1.1.2 面向方面編程
1.1.3 在契約式開發(fā)中應(yīng)用AOP技術(shù)
1.1.4 問題總結(jié)
1.2 解決方案
1.2.1 AOP-DBC對應(yīng)關(guān)系
1.2.2 ACDL語言
1.2.3 AJMaker工具
1.3 本文的主要貢獻(xiàn)
1.4 本文的組織結(jié)構(gòu)
第二章 面向方面編程
2.1 AOP產(chǎn)生背景
2.2 面向方面編程概述
2.2.1 AOP核心思想
2.2.2 什么是Aspect
2.2.3 AOP特性
2.2.4 AOP的軟件開發(fā)過程
2.2.5 AOP的傳統(tǒng)應(yīng)用領(lǐng)域
2.3 面向方面編程的實現(xiàn)技術(shù)
2.3.1 AOP語言規(guī)范
2.3.2 AOP的語言實現(xiàn)
2.3.3 AOP的織入過程
2.3.4 AspectJ-Java的AOP實現(xiàn)
2.4 面向方面編程的研究內(nèi)容
2.4.1 面向方面的軟件工程
2.4.2 面向方面的程序分析、度量與測試
2.5 小結(jié)
第三章 AOP在契約式開發(fā)中的應(yīng)用
3.1 契約式開發(fā)
3.1.1 在Observer模式中支持契約
3.1.2 契約式開發(fā)和單元測試
3.1.3 DBC和OCL
3.2 AOP增強契約式開發(fā)
3.2.1 模塊化契約
3.2.2 對應(yīng)關(guān)系
3.2.3 使用AspectJ支持契約
3.3 國內(nèi)外相關(guān)研究工作
3.3.1 DOT
3.3.2 OCLE
3.3.3 其他
3.4 小結(jié)
第四章 ACDL語言
4.1 設(shè)計目的
4.1.1 獨立描述約束
4.1.2 無副作用
4.1.3 詳細(xì)的上下文信息
4.1.4 可轉(zhuǎn)換性
4.1.5 靈活性
4.1.6 目標(biāo)用戶
4.2 ACDL語言特征
4.3 語言描述
4.3.1 contract
4.3.2 checkpoint
4.3.3 condition
4.3.3.1 before
4.3.3.2 after
4.3.3.3 beforeAndAfter
4.3.4 關(guān)于不變式檢查的一些討論
4.3.5 ACDL中的抽象機制
4.3.6 語言框架
4.3.7 集合操作
4.3.7.1 集合公共操作
4.3.7.2 Set集合的操作符
4.3.7.3 Bag集合的操作符
4.3.7.4 Sequence集合的操作符
4.3.7.5 集合操作實例
4.4 ACDL主要語法規(guī)則
4.5 目標(biāo)語言
4.6 使用ACDL集成DBC軟件開發(fā)流程
4.6.1 ACDL與上層設(shè)計
4.6.1.1 VDM
4.6.1.2 VDM-ACDL轉(zhuǎn)換的可行性分析
4.6.1.3 小結(jié)
4.6.2 ACDL與下層實現(xiàn)
4.7 小結(jié)
第五章 AJMaker工具的實現(xiàn)框架
5.1 AJMaker框架
5.2 代碼生成模塊的實現(xiàn)
5.2.1 契約描述
5.2.2 代碼生成機制
5.2.3 用戶接口
5.2.3.1 為類添加不變式條件約束
5.2.3.2 為方法添加前置/后置條件約束
5.2.3.3 代碼生成
5.3 轉(zhuǎn)換解析模塊的實現(xiàn)
5.3.1 簡單映射
5.3.2 集合操作映射
5.3.3 @pre的處理
5.4 契約的異常處理
5.5 小結(jié)
第六章 總結(jié)與展望
6.1 關(guān)于ACDL語言的一些討論和總結(jié)
6.2 對未來工作的展望
第七章 參考文獻(xiàn)
致謝
附錄 攻讀學(xué)位期間發(fā)表的學(xué)術(shù)論文目錄
本文編號:3785182
本文鏈接:http://sikaile.net/falvlunwen/hetongqiyue/3785182.html
最近更新
教材專著