**:
面向功能的軟體度量是對軟體和軟體開發過程的間接度量。面向功能度量的注意力集中於程式的「功能性」和「實用性」,而不是對loc計數。該度量是由albrecht首先提出來的。他提出了一種叫做功能點方法的生產率度量法,該方法利用有關軟體資料域的一些計數度量和軟體複雜性估計的經驗關係式,匯出功能點fps(function points)。
功能點通過填寫圖**來計算。首先要確定五個資料域的特徵,並在**中相應位置給出計數。資料域的值以如下方式定義:
(1)使用者輸入數:每個使用者輸入應是面向不同應用的輸入資料,對它們都要進行計數。輸入資料應區別於查詢資料,它們應分別汁數。
(2)使用者輸出數:各個使用者輸出是為使用者提供的面向應用的輸出資訊,它們均應計數。在這裡的「輸出」是指報告、螢幕資訊、錯誤資訊等,在報告中的各個資料項不應再分別計數。
(3)使用者查詢數:查詢是一種聯機輸入,它引發軟體以聯機方式產生某種即時響應。每乙個不同的查詢都要計數。
(4)檔案數:每乙個邏輯主檔案都應計數。這裡的邏輯主檔案,是指邏輯上的一組資料,它們可以是乙個大的資料庫的一部分,也可以是乙個單獨的檔案。
(5)外部介面數:對所有使用來將資訊傳送到另乙個系統中的介面(即磁帶、磁碟和可讀寫光碟上的資料檔案)均應計數。
一旦收集到上述資料,就可以計算出與每乙個計數相關的加權複雜性值。使用功能點方法的單位要自行擬定一些準則,用以確定乙個特定項是簡單的、平均的還是複雜的。儘管如此,複雜性的確定多少還是帶點主觀因素的。計算功能點,使用如下的關係式:
fp=總計數×(0.65+o.01×sum(fi)) (13.1)
其中,總計數是所有加權複雜性值的和;fi(i=1到14)是複雜性校正值,它們應通過逐一回答所提問題來確定。sum(fi)是求和函式。上述等式中的常數和應用於資料域計數的加權因數可經驗地確定。
一旦計算出功能點,就可以仿照loc的方式度量軟體的生產率、質量和其他屬性:
生產率=fp/pm(人月)
質量=錯誤數/fp
成本=元/fp
文件=文件頁數/fp
功能點度量的擴充稱為特徵點fps(feature points)度量 。它適合於演算法複雜性高的應用。而實時處理、過程控制、嵌入式軟體應用的演算法複雜性都偏高,因此適合特種點度量。
為了計算特徵點,可對資料域值進行如上所述的計數和加權。此外,特徵點度量還要對乙個新的軟體特徵「演算法」進行計數。可定義演算法為「在乙個特定電腦程式內所包含的乙個有界的計算問題」。例如,矩陣求逆、二進位串轉換為十進位制數、處理乙個中斷等都是演算法。
計算特徵點可使用**。對於每乙個度量引數只使用乙個權值,並且使用等式(13.1)來計算總的特徵點值。
必須注意,特徵點與功能點表示的是同一件事:由軟體得到的「功能性,,或「實用性」。事實上,對於傳統的工程計算或資訊系統應用,兩種度量會得出相同的fp值。在較複雜的實時系統中,特徵點計數常常比只用功能點確定的計數高出20%到35%。
與loc一樣,對功能點(或特徵點)度量也是有爭議的。支持者認為fp與程式語言無關,對於使用傳統語言和非過程語言的應用來說,它是比較理想的;而且它所依據的是在專案評估早期就可能知道的資料,因此作為一種估算方法,fp是比較有吸引力的。反對者認為這種方法在其計算中依賴的是主觀因素而不是客觀實際。資料域的資料事後很難收集,而且fp沒有直接的物理意義,它只不過是乙個數字。
距離的度量
長度時什麼東西,仔細想起來我也不清楚了。百科說的是 一維空間中點到點的距離。不過距離又是什麼?又得依靠長度來進行表示,然後就是死迴圈了。所以,長度就是描述一維空間中兩個點遠近的量,這樣比較容易理解。正如資訊量一樣,評判資訊含量的問題。長度也只是乙個基本的平台。重要的永遠不是平台,而是運用這個平台能夠...
資訊的度量
比如寫 時搜尋資料,從乙個大方向逐步細化為明確的研究再到具體的原理 數學公式等,這個過程就是不確定性的降低。一開始需要閱覽大量相關 明確後就變成了對某個具體的知識內容的精確搜尋,資訊量也在降低。因此 資訊量就等於不確定性的多少。對已知的的資訊進行排序分組能有效降低不確定性,即資訊量。用h表示資訊熵,...
軟體專案度量中主要的度量指標
軟體度量是軟體過程改進的基礎,如果沒有對目前的狀態作出度量,那麼就談不上作改進,當然如果沒有對改進後的過程作度量比較,也無法知道過程改進的效果。那麼,在軟體專案的度量中應該主要度量哪些指標呢?對於乙個組織,要對組織內的所有專案進行度量,則可以從幾個主要指標入手,如 軟體專案規模 size 工作量 e...