線性程式碼順序及跳轉
線性程式碼順序及跳轉(Linear code sequence and jump)簡稱LCSAJ,是軟體測試相關的術語。其廣義的定義是一種程式分析方式,可以識別出要測試程式碼中的結構單元。其主要用途是用在中,來確認「測試到什麼程度才算是足夠?」。動態軟體分析用來衡量軟體測試資料的品質以及有效性,而其量化數據是由要測試程式碼中的結構單元數量來確認。動態分析若是用來量化測試資料中的結構單元數量,此分析也會稱為是結結構覆蓋率分析。 線性程式碼…
共 14 篇文章
線性程式碼順序及跳轉(Linear code sequence and jump)簡稱LCSAJ,是軟體測試相關的術語。其廣義的定義是一種程式分析方式,可以識別出要測試程式碼中的結構單元。其主要用途是用在中,來確認「測試到什麼程度才算是足夠?」。動態軟體分析用來衡量軟體測試資料的品質以及有效性,而其量化數據是由要測試程式碼中的結構單元數量來確認。動態分析若是用來量化測試資料中的結構單元數量,此分析也會稱為是結結構覆蓋率分析。 線性程式碼…
设计结构质量指数(design structure quality index)簡稱DSQI是軟體架構設計階段使用的軟體度量,評估軟體結構及模組效率。设计结构质量指数最早是由美國的開始使用。 若要計算设计结构质量指数,需提供7個和程式有關的數值(S1至S7),這個數值是和程式中模組的個數、模組的狀態,程式中資料庫的數量和狀態有關的。後續再計算和程式結構、模組狀態、資料庫狀態有關的度量,最後得到设计结构质量指数。 设计结构质量指数計算的結…
Black Duck Open Hub,原名Ohloh,是提供Web服务套件的一個網站以及一個网络社区平台,旨在为开源软件开发社区提供索引。它由前微软经理Jason Allen和Scott Collison于2004年创立 。截至2016年1月15日,该网站列出了669,601个开源项目、681,345个源码倉庫、3,848,524名贡献者和31,688,426,179行代码。2017年,Black Duck Software(运营Bl…
循環複雜度()也稱為條件複雜度或圈复杂度,是一種軟體度量,是由(Thomas J. McCabe, Sr.)在1976年提出,用來表示程式的複雜度,其符號為VG或是M。循環複雜度由程式的源代碼中量測線性獨立路徑的個數。此概念有些類似的量測文字複雜度的 ,不過方法不完全相同。 循環複雜度是由程式的控制流圖來計算:有向圖的節點對應程式中個別的程式碼,而若一個程式執行後會立刻執行另一程式碼,會有邊連結二程式碼對應的節點。圈複雜度可應用在程式的…
霍爾斯特德複雜度量測()是由霍爾斯特德在1977年提出的一種軟體度量方法,是有關軟體開發經驗科學的論文中的一部份。 霍爾斯特德觀察到軟體度量應該要反映在不同程式語言中演算法實現的方式,但又要獨立於使用的平台及語言。這些度量要可以由靜態代碼中計算而得。 霍爾斯特德的目標是識別軟體中可量測的性質,以及各性質之間的關係。有點類似識別物體中可量測的性質(如氣體的體積、質量及壓強),以及各性質之間的關係(如理想氣體方程式的體積、質量及壓強),因此…
代碼覆蓋()是軟體測試中的一種度量,描述程式中源代碼被測試的比例和程度,所得比例稱為代碼覆蓋率。 代碼覆蓋是由系統化軟體測試所衍生的方式。第一份出版的相關參考資料是Miller及Maloney1963年在ACM通讯上發表的論文 。 代碼覆蓋是飛行設備進行安全認證中的考量項目之一。飛行設備相關認證的指南列在美国联邦航空管理局的文件及。 功能安全標準,如IEC 61508或ISO 26262,並未定義程式碼覆蓋率之需求值,只列為軟體測試方法…
軟體度量()是一個對於軟體性質及其規格的量測。軟體度量的目的是獲得客觀、可以複製及量化的量測結果,依軟體度量性質及特性的不同,可以分別應用在軟體開發的時程及預算規劃、成本估算、品質保證測試、軟體偵錯、軟體性能最佳化或專案人員配置的最佳化等領域。 舉例 源代碼行數簡稱SLOC,是最簡單的一種軟體度量,以下以包括注釋的實體源代碼行數(LOC)為準,說明軟體度量的特性及一些限制。 以下的C程式碼只有一行,其LOC為1: for (i = 0;…
原始碼行數(Source lines of code)簡稱SLOC,也稱為程式行數(lines of code),簡稱LOC,是由計算程式源代码的行數來估計计算机程序大小的軟體度量。原始碼行數一般會用來預計開發程式需要的人力及時間,若在軟體完成後,也可以用來估計或可維護性。 計算方式 許多軟體上的比較都只和專案中原始碼行數的数量级有關。用原始碼行數來比較10,000行原始碼和100,000行原始碼的專案,會比比較20,000行和21,0…
功能點(),是呈現信息系统提供給使用者功能多寡的「量測單位」。功能點可以用來計算軟體的功能規模度量(,簡稱)。每個單位開發需要的成本(可以用小時或是金錢計算)可以由以往的專案中得知。 標準 有關依功能點度量軟體規模的方式,有幾個受大眾認可的標準或是公開規範。 FiSMA: ISO/IEC 29881:2010 : ISO/IEC 20926:2009 Mark-II: ISO/IEC 20968:2002 Nesma: ISO/IEC …
漣漪效應是在描述一個事物造成的影響漸漸擴散的情形,類似物體掉到水面上,所產生的漣漪漸漸擴大的情形,可謂「一石激起千重浪」。 在經濟學中有漣漪效應的例子,例如一個人支出的減少會造成其他人收入的減少,連帶也使得他們可支出的金額減少。 在社會學中漣漪效應是指一社會關係會影響一些間接相關的情況。在慈善活動中,資訊可以在不同社群之間傳遞,造成更大的影響。 漣漪效應也用在計算機科學中,說明由於一個模組修改,造成其他模組也需隨之修改的情形。 舉例 溫…
本質複雜度(Essential complexity)是指由於一問題的本質不適合簡單的求解方式,所有可行的求解方式都很複雜的情形。本質複雜度和附属复杂度(Accidental complexity)不同,後者的複雜度和問題本質無關,和選用求解的工具或方法有關。 本質複雜度至少在1980年代中期已被使用,圖靈獎得主佛瑞德·布魯克斯當時已開始使用本質複雜度及其反義詞附属复杂度。他也在1995年時在《人月神話》中的沒有銀彈一段中提出他的新論點…
耦合性()或稱耦合力或耦合度,是一種軟體度量,是指一程式中,模組及模組之間資訊或參數依赖的程度。 而内聚性()是一個和耦合性相對的概念,一般而言低耦合性代表高内聚性,反之亦然。耦合性和内聚性都是由提出結構化設計概念的所提出。低耦合性是結構良好程式的特性,低耦合性程式的可讀性及可維護性會比較好。 耦合性的分類 耦合性可以是低耦合性(或稱為鬆散耦合),也可以是高耦合性(或稱為緊密耦合)。以下列出一些耦合性的分類,從高到低依序排列: ;內容耦…
内聚性()也稱為内聚力,是一軟體度量,是指機能相關的程式組合成一模組的程度,或是各機能凝聚的狀態或程度。是結構化分析的重要概念之一。量測内聚性的方式很多,有些方法是由分析源代碼,得到非量化的結果,有些方法則是檢查源代碼的文本特徵,以得到内聚性的量化分數。内聚性是屬於順序式的量測量,一般會以「高内聚性」或「低内聚性」來表示。一般會希望程式的模組有高内聚性,因為高内聚性一般和許多理想的軟體特性有關,包括鲁棒性、可靠度、及易懂性(unders…
軟體缺陷指標(Software Defect Indicator)是源代码中會出現的一些模式,和程序错误有強烈的相關性,程序错误是指程式碼中有錯誤或是遺漏程式,會因此造成程式的動作異常。在檢視计算机程序時,不一定每次都可以直接識別到程式的錯誤,但因為軟體缺陷指標有固定的型式(有時也稱為反面模式或代碼異味),表示程式有可能有問題。 以下是一些軟體缺陷指標的例子: 無效不會執行的程式:已撰寫好的程式碼,而程式設計者刻意關閉程式不執行,也沒有…