一個面向?qū)ο筌浖|(zhì)量缺陷輔助檢測工具的設(shè)計與實現(xiàn)ppt課件_第1頁
一個面向?qū)ο筌浖|(zhì)量缺陷輔助檢測工具的設(shè)計與實現(xiàn)ppt課件_第2頁
一個面向?qū)ο筌浖|(zhì)量缺陷輔助檢測工具的設(shè)計與實現(xiàn)ppt課件_第3頁
一個面向?qū)ο筌浖|(zhì)量缺陷輔助檢測工具的設(shè)計與實現(xiàn)ppt課件_第4頁
一個面向?qū)ο筌浖|(zhì)量缺陷輔助檢測工具的設(shè)計與實現(xiàn)ppt課件_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、爭辯報告一個面向?qū)ο筌浖|(zhì)量缺陷輔助檢測工具的設(shè)計與實現(xiàn).目錄問題提出本文的處理方案系統(tǒng)的設(shè)計與實現(xiàn)實例分析終了語2OO設(shè)計中的質(zhì)量缺陷度量良好的設(shè)計原理和原那么3預防性維護的困難現(xiàn)有軟件的維護能夠占一個開發(fā)組織一切任務量的60%以上。預防性維護是其中的重點和難點,包括碼構(gòu)造調(diào)整、代碼優(yōu)化和文檔更新。預防性維護的困難:順應性維護、完善性維護和糾正性維護都會帶來預防性維護。代碼經(jīng)過多次修正維護,復雜性高, 程序難以了解。軟件在設(shè)計時對未來的軟件修正都 沒有思索或思索不多,特別是模塊獨立性等。4設(shè)計方式和閱歷規(guī)那么設(shè)計實際中總結(jié)出了一些設(shè)計方式、閱歷規(guī)那么等實際閱歷的總結(jié)。首先是Gamma等四人在

2、95年提出了設(shè)計方式的概念,他們從一些好的設(shè)計中提煉出了好的程序需求滿足的設(shè)計方式。第二年,Riel從他多年的任務中,總結(jié)了60條面向?qū)ο笤O(shè)計中的指點原那么。1999年Fowler在對現(xiàn)有代碼進展改善的設(shè)計中,他提出了根據(jù)“代碼中的壞味道Bad Smell in Code來發(fā)現(xiàn)代碼中的問題,并針對這些問題提出了代碼重構(gòu)的方法。2003年又有人提出反方式Dudney,反方式是采用與設(shè)計方式一樣的方式來描畫不恰當?shù)膶嶋H做法。它為查找實際中的不良設(shè)計提供了更好的根據(jù)。5質(zhì)量缺陷 假設(shè)設(shè)計實體背叛了從良好設(shè)計實際中總結(jié)出的設(shè)計準那么集,那么稱這些實體存在質(zhì)量缺陷?!霸O(shè)計實體。指要所分析的軟件系統(tǒng),包括

3、軟件系統(tǒng)中的方法、類、包等,也指相互影響的多個不同類型的、相互關(guān)聯(lián)的實體,稱為設(shè)計實體“簇。“從良好設(shè)計實際中籠統(tǒng)出來的準那么集。這個界定將類似bugs這樣的錯誤排除在質(zhì)量檢測之外。 “背叛了給定的準那么集。為我們運用度量的方法來進展缺陷檢測提供根據(jù)。每個準那么都要反映在詳細的、特定范例的設(shè)計規(guī)那么和指南中;這些詳細的規(guī)那么也可以進展量化處置,用度量進展缺陷檢測。6度量工具的現(xiàn)狀有許多任務將度量運用于面向?qū)ο笙到y(tǒng)的設(shè)計質(zhì)量的改良和評價,如一些度量目的。 依然存在一些問題:度量的目的不同。面向?qū)ο蟮亩攘縎himba,Chidamber等的工具對類屬性、承繼的體系構(gòu)造、類之間的交互等屬性進展度量;

4、在逆向工程過程的初始階段了解軟件系統(tǒng)的構(gòu)造、發(fā)現(xiàn)問題CodeCrawler;僅僅提供各種面向?qū)ο蟮亩攘拷Y(jié)果Understand Java以便用戶運用;預測能夠存在的缺陷跟哪些度量屬性相關(guān),例如OODMS。度量的對象不同。OODMS針對軟件設(shè)計視圖。度量結(jié)果的解釋。度量值本身很難提高軟件產(chǎn)品的質(zhì)量,即使可以闡明程序中能夠存在問題例如,復雜性的系數(shù)過高,也不能提供直接的方法來改良。7我們的任務輔助預防性維護任務。軟件質(zhì)量缺陷跟度量結(jié)合在一同。詳細方法是,針對要檢測的詳細缺陷,制定出檢測規(guī)那么,利用度量工具,找出系統(tǒng)中能夠存在缺陷的地方,再對能夠的缺陷進展檢驗,然后對現(xiàn)有的面向?qū)ο笙到y(tǒng)進展改良。設(shè)計

5、并實現(xiàn)了質(zhì)量缺陷輔助檢測工具。根本面向?qū)ο蠖攘?。缺陷檢測。檢測規(guī)那么的調(diào)整以及用戶定義檢測規(guī)那么。8目錄問題提出本文的處理方案系統(tǒng)的設(shè)計與實現(xiàn)實例分析終了語9OO程序質(zhì)量缺陷檢測過程 抽取或預處置。 根據(jù)度量活動,從源代碼中抽取相關(guān)的數(shù)據(jù)。定義計算。根據(jù)目的,定義度量和相關(guān)的度量計算方式。解釋預測能夠存在缺陷的實體。這個解釋是基于特定度量解釋模型。質(zhì)量缺陷檢測引擎。這個是質(zhì)量檢測的一個中心,它將閱歷規(guī)那么解釋為我們的檢測規(guī)那么,下面仔細引見。結(jié)果的驗證。對于度量檢測出的能夠存在質(zhì)量缺陷的實體,必需在開場的源代碼中手工確認。10缺陷檢測引擎 如何解釋單個度量結(jié)果?不同的數(shù)據(jù)過濾方法,詳細的選擇過

6、濾的方法。 如何將多個度量結(jié)果關(guān)聯(lián)起來解釋?合成。 如何將詳細的研討目的轉(zhuǎn)化為檢測規(guī)那么,即檢測規(guī)那么的描畫?從現(xiàn)有的閱歷規(guī)那么和設(shè)計方式中總結(jié)可以量化的度量屬性并進展評價。運用自頂向下的質(zhì)量缺陷檢測引擎。它要寫出規(guī)那么的表達,根據(jù)這個規(guī)那么可以檢測出源代碼中有質(zhì)量缺陷的設(shè)計片斷。主要完成下面幾個任務: 11數(shù)據(jù)過濾數(shù)據(jù)過濾是根據(jù)特定的度量目的,從原始的度量結(jié)果集中抽取出數(shù)據(jù)子集的方法一組操作。選擇數(shù)據(jù)過濾的規(guī)那么規(guī)那么1:明確提到實現(xiàn)的閾值時,運用絕對語義過濾。規(guī)那么2:當設(shè)計規(guī)那么根據(jù)模糊的邊境值來定義時,例如“最高/最低值或者“較高/較低值時,運用相對語義過濾。規(guī)那么3:大型系統(tǒng),運用百

7、分率值來參數(shù)化相對語義過濾;小系統(tǒng),相對語義絕對參數(shù)。規(guī)那么4:在設(shè)計閱歷規(guī)那么說需求極值,而沒有闡明任何特殊的閾值時,選擇運用統(tǒng)計過濾。12合成合成:支持多個結(jié)果集之間的相關(guān)性解釋,不同的度量結(jié)合在一同的一系列操作。我們運用3個合成:and、or和butnot。例:數(shù)據(jù)類思索公共屬性和私有屬性數(shù)量 13缺陷檢測規(guī)那么的制定檢測規(guī)那么就是要對設(shè)計相關(guān)的規(guī)那么進展描畫,然后要用量化的方法進展表達,寫出可以用于檢測的規(guī)那么。 上面是萬能類的例子。根據(jù)這個方法,我們識別出其他的一些質(zhì)量缺陷。14目錄問題提出本文的處理方案系統(tǒng)的設(shè)計與實現(xiàn)實例分析終了語15面向?qū)ο筚|(zhì)量缺陷檢測工具的體系構(gòu)造度量計算 檢

8、測規(guī)那么定義 質(zhì)量缺陷檢測引擎預處置利用元模型進展信息抽取缺陷驗證、缺陷修正、度量顯示源文件相關(guān)數(shù)據(jù)數(shù)據(jù)庫度量定義度量計算度量信息庫度量分析器度量檢測確定檢測目的設(shè)計規(guī)那么分析選擇度量確定檢測機制檢驗候選項檢測目的有缺陷的實體改良措施16預處置從Java程序模型中抽取出度量活動相關(guān)的設(shè)計信息,并將這些信息存儲到數(shù)據(jù)庫中。 元模型運用關(guān)系數(shù)據(jù)庫來表示。17利用eclipse的JDT讀取程序信息工具做成eclipse上的插件,因此可以利用eclipse提供的一些功能JDT直接抽取程序信息,將任務集中在度量上。下面是利用JDT來抽取相關(guān)信息的代碼片斷,例如抽取類中導入外部包的代碼片斷18缺陷檢測模塊

9、計算統(tǒng)計根本度量屬性,轉(zhuǎn)化為數(shù)據(jù)庫查詢。缺陷檢測轉(zhuǎn)化為根本度量屬性的查詢。例如前面的對萬能類的檢測就可以轉(zhuǎn)化為查詢。剩下的任務就是數(shù)據(jù)庫的讀寫部分。19用戶交互和檢測結(jié)果的顯示系統(tǒng)功能度量選擇菜單20用戶交互和檢測結(jié)果的顯示顯示根本的度量屬性結(jié)果顯示能夠存在缺陷的實體21系統(tǒng)功能續(xù)用戶可以修正度量過濾的閾值用戶構(gòu)造缺陷檢測結(jié)果中繼續(xù)查詢22問題提出本文的處理方案系統(tǒng)的設(shè)計與實現(xiàn)實例分析終了語目 錄23實例分析針對本工具進展分析。進展了各項質(zhì)量缺陷度量。發(fā)現(xiàn)一個萬能類:JavaClass.java 能夠存在其他缺陷。24目 錄問題提出本文的處理方案系統(tǒng)的設(shè)計與實現(xiàn)實例分析終了語25終了語任務總結(jié)

10、面向?qū)ο筚|(zhì)量缺陷檢測引擎。針對每個詳細的質(zhì)量缺陷,根據(jù)閱歷規(guī)那么將它們量化為檢測目的,過濾和合成,找出能夠存在缺陷的設(shè)計片斷。并提供對質(zhì)量缺陷的解釋以及維護的方法。工具:基于eclipse平臺的插件,與平臺上的其他插件一同運用,協(xié)助檢測軟件質(zhì)量缺陷。未來任務展望這只是一個原型系統(tǒng)。閾值的設(shè)定、度量屬性研討、缺陷規(guī)那么的制定。雖然有四條參照準那么,但是還需進一步準確;類的復雜性,類中方法數(shù)量McCabe圈法;運用反方式。用戶自定義檢測的實現(xiàn)。識別更多的質(zhì)量缺陷,制定更多的缺陷檢測規(guī)那么。加強圖形化顯示。缺陷檢測工具與其他工具的集成,即與小組的其他工具結(jié)合起來,例如,類的承繼關(guān)系圖、類圖等。26謝

11、謝!27我們識別的常見質(zhì)量缺陷前往28例萬能類的缺陷識別OOD中的設(shè)計規(guī)那么:功能應該平衡地分配在頂層的類中。缺陷:某些類集中了系統(tǒng)的大部分功能,只是將一些小細節(jié)交給一些不重要的類,大量運用其他類的數(shù)據(jù)。缺陷:管理復雜性的原那么、缺乏內(nèi)聚性、對復用和了解都有極大的影響。詳細設(shè)計參考了Fowler的大類bad-smell戰(zhàn)略:讀寫了許多“輕量類直接地或者經(jīng)過accessor方法中的許多數(shù)據(jù);有許多非通訊行為。下一頁29例萬能類的缺陷識別度量外部數(shù)據(jù)的讀寫ATFD:給定類直接或者經(jīng)過accessor方法間接地讀寫外外部類的屬性,這些外部類的數(shù)量。類的ATFD值越高,類是萬能類的能夠性越高。但是Inner類和super類不能計算在內(nèi)。帶權(quán)的方法數(shù)WMC:類的一切方法的靜態(tài)復雜度總和。假設(shè)這個復雜度是1,那么WMC就是方法數(shù)NOM。引薦用McCabe圈度量來量化方法復雜

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論