日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
軟件復(fù)雜度概述
軟件復(fù)雜度概述
 更新時間:2008-8-17 20:01:50  點擊數(shù):21
【字體: 字體顏色
在硬件的可靠性設(shè)計中,有一條基本原則“簡單就是可靠”。這個原則同樣也適合軟件,與功能的增多或增強相伴的是不斷升級與補丁,F(xiàn)在已經(jīng)有若干種軟件復(fù)雜性的度量方法可供參考,其中McCabe QA是比較出色和實用的方法,它能夠計算出多種軟件復(fù)雜度,由此可對軟件進行檢查、分析和查明那些可能導(dǎo)致錯誤的代碼。

 復(fù)雜度

  70年代,軟件系統(tǒng)已經(jīng)變得極其復(fù)雜,無論是開發(fā)還是維護都是一項成本高昂的工作。人們意識到必須使軟件模塊化,以便于開發(fā)、測試和維護。為此,成立于1976的McCabe&Associates公司開發(fā)出了McCabe Cyclomatic Complexity Metric(圈復(fù)雜度)技術(shù)對軟件進行結(jié)構(gòu)測試。Metric以軟件復(fù)雜度測量的數(shù)目為基礎(chǔ),能幫助工程師識別難于測試和維護的模塊,圈復(fù)雜度已經(jīng)成為評估軟件質(zhì)量的一個重要標(biāo)準(zhǔn)。人們可以用圈復(fù)雜度對軟件的復(fù)雜度和質(zhì)量進行衡量,來安排工程進度,在成本、進度和性能之間尋求平衡。

復(fù)雜度的種類

  有模塊、類和程序三類復(fù)雜度。模塊復(fù)雜度包含了關(guān)于模塊的復(fù)雜度信息;類復(fù)雜度是針對那些使用McCabe面向?qū)ο筇匦缘某绦?它包含了關(guān)于類的復(fù)雜度信息;程序復(fù)雜度包含了關(guān)于程序的復(fù)雜度信息。

集成復(fù)雜度報告

對應(yīng)于三種復(fù)雜度的是三種復(fù)雜度報告。如果一個報告的復(fù)雜度信息不只一種,那么就把這些復(fù)雜度信息組合成新的報告。

集成復(fù)雜度信息只收集一個部件及其下級的信息。例如:如果一個程序級報告包含一個類復(fù)雜度,那么只報告組成程序的類的信息,而不包含類組成的信息。

 McCabe復(fù)雜度

  McCabe復(fù)雜度是對軟件結(jié)構(gòu)進行嚴(yán)格的算術(shù)分析得來的,實質(zhì)上是對程序拓撲結(jié)構(gòu)復(fù)雜性的度量,明確指出了任務(wù)復(fù)雜部分。McCabe復(fù)雜度包括:圈復(fù)雜度、基本復(fù)雜度、模塊設(shè)計復(fù)雜度、設(shè)計復(fù)雜度、集成復(fù)雜度、行數(shù)、規(guī)范化復(fù)雜度、全局?jǐn)?shù)據(jù)復(fù)雜度、局部數(shù)據(jù)復(fù)雜度、病態(tài)數(shù)據(jù)復(fù)雜度。

McCabe復(fù)雜度的用途

在軟件工程中,有三種使用McCabe復(fù)雜性度量的方式。

作為測試的輔助工具。McCabe復(fù)雜性度量的結(jié)果等于通過一個子程序的路徑數(shù),因而需要設(shè)計同樣多的測試案例以覆蓋所有的路徑。如果測試案例數(shù)小于復(fù)雜性數(shù),則有三種情況一是需要更多的測試;二是某些判斷點可以去掉;三是某些判斷點可用插入式代碼替換。

作為程序設(shè)計和管理指南。在軟件開發(fā)中,需要一種簡單的方式指出可能出問題的子程序。保持子程序簡單的通用方法是設(shè)置一個長度限制,例如50行或2頁,但這實際上是在缺乏測試簡明性的有效方法時無可奈何的替代方法。不少人認為McCabe度量就是這樣一種簡明性度量。但是要注意,McCabe度量數(shù)大的程序,不見得結(jié)構(gòu)化就不好。例如,Case語句是良結(jié)構(gòu)的,但可能有很大的McCabe度量數(shù)(依賴于語句中的分支數(shù)),這可能是由于問題和解決方案所固有的復(fù)雜性所決定的。使用者應(yīng)當(dāng)自己決定如何使用McCabe度量所提供的信息。

作為網(wǎng)絡(luò)復(fù)雜性度量的一種方法。Hall和Preiser提出了一種組合網(wǎng)絡(luò)復(fù)雜性度量,用于度量可能由多個程序員組按模塊化原理建立的大型軟件系統(tǒng)的復(fù)雜性。他們提出的組合度量公式為

式中 C1,...,Ck是各個模塊的復(fù)雜性;CN是網(wǎng)絡(luò)復(fù)雜性;W1和W2為權(quán)值。

McCabe復(fù)雜度即可用于度量各個模塊的復(fù)雜性,也可用于度量網(wǎng)絡(luò)復(fù)雜性。

 Cyclomatic Complexity (v(G))圈復(fù)雜度

  圈復(fù)雜度是用來衡量一個模塊判定結(jié)構(gòu)的復(fù)雜程度,數(shù)量上表現(xiàn)為獨立路徑的條數(shù),即合理的預(yù)防錯誤所需測試的最少路徑條數(shù),圈復(fù)雜度大說明程序代碼可能質(zhì)量低且難于測試和維護,經(jīng)驗表明,程序的可能錯誤和高的圈復(fù)雜度有著很大關(guān)系。

計算方法

節(jié)點是程序中代碼的最小單元,邊代表節(jié)點間的程序流。如果一個模塊流程圖有e條邊n個節(jié)點,它的圈復(fù)雜度V(G)=e-n+2,典型的V(G)max=10。圖1中示例的圈復(fù)雜度是2。

優(yōu)點

  避免軟件中的錯誤傾向;指出極復(fù)雜模塊,這樣的模塊也許可以進一步細化;度量測試計劃,確定測試重點;在開發(fā)過程中通過限制程序邏輯,指導(dǎo)測試過程;指出將要測試的區(qū)域;幫助測試人員確定測試和維護對象;與所用的高級程序設(shè)計語言類型無關(guān)。

應(yīng)用

  圈復(fù)雜度指出為了確保軟件質(zhì)量應(yīng)該檢測的最少基本路徑的數(shù)目。在實際中,測試每一條路經(jīng)是不現(xiàn)實的,測試難度隨著路徑的增加而增加。但測試基本路徑對衡量代碼復(fù)雜度的合理性是很必要的。McCabe & Associates建議圈復(fù)雜度到10,因為高的圈復(fù)雜度使測試變得更加復(fù)雜而且增大了軟件錯誤產(chǎn)生的概率。

提示:

  圈復(fù)雜度度量是測量在一個軟件模塊中的分

[1] [2] [3]  下一頁
  • 上一篇: 新一代IP寬帶接入網(wǎng)
  • 下一篇: 拓展企業(yè)解決方案的千兆以太網(wǎng)產(chǎn)品系列
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1