軟體設計度量工具inFusion

2021-10-01 20:45:10 字數 1524 閱讀 3657

官網

infusion官網:

簡介

infusion工具是乙個基於對軟體**的掃瞄分析,得出子系統與子系統、模組與模組、類與類之間的關係,再根據這些關係推出是否有軟體架構設計缺陷,並指導軟體重構的工具。

工具針對每個設計缺陷(df)給出修改建議,幫助軟體重構,從而提供了從軟體設計缺陷檢測到重構的一整套完整解決方案。

商業軟體很貴的,花的是歐元。

重要的概念

下面先介紹infusion中幾個很重要的概念:metrics、design flaw、design property、quality model、qdi。

metrics:

軟體度量(mertics)是從源**中得出的軟體直接引數,比如**行數(loc)、函式的扇入扇出(fanout)、不穩定因數(if)、抽象類的個數(noac)、類的個數(noc)、函式呼叫的深度層次等各種指標。也就是說:metrics是infusion中最底層、最基本的資料,是根據我們的源**計算出來的一些很客觀的資料。

design flaw:

martin fowler的《refactoring - improving the design of existing code》和arthur j. riel的《object-oriented design heuristics》中提到了**壞味道的概念,這就是infusion中的設計缺陷。設計缺陷,體現了軟體設計中不合理的地方,意味著低的軟體質量,意味著軟體不易維護,容易產生bug。

design property:

設計屬性(design property)比質量屬性(quality model)低乙個層次,也更為具體。設計屬性(design property)分為以下6方面:**規模與複雜度(size and complexity)、封裝性(encapsulation)、耦合(coupling)、內聚性(cohesion)、繼承性(hierarchies)、測試性(testing)。

quality model:

該模型聚焦於評價軟體維護能力,把軟體質量分解為4個方面的質量屬性(quality attribute):可讀性(understandability)、可擴充套件性(changeability)、可重用性(reusability)、可測試性(testability)。

qdi:

質量缺陷指數(qualiti deficit index),是通過質量缺陷模型計算出來的,展示系統歸一化和總的質量缺陷指數。總的qdi是設計缺陷×權重的累加值,和系統的規模大小有關,不代表系統的好壞。歸一化的qdi是乙個標準值,可以對比參考。歸一化質量缺陷指數,是1000行**的缺陷指數。

下圖展示了質量模型和設計屬性:

上面幾個概念的關係如下:

自動軟體設計

在1973年,美國人peter freeman在他的文章 自動軟體設計 automating software design 中有這樣的假設 如果有這樣一台機器 當我們告訴它我們需要什麼軟體的時候,它立刻就會滿足我們的要求,自動生成我們需要的程式。這台機器我稱之為萬能機。當我們提出需求的時候,需要關...

軟體設計原則

開閉原則 ocp 軟體設計的最大原則 這個原則說的是 對擴充套件開放,對修改關閉。其實意思是說,給系統新增新的功能,但不修改原有 如果能做到呢,關鍵在於抽象化,也就是封裝變化,抽象層不變,讓具體實現依賴抽象隨需求變化。使得系統具有很強的擴充套件性和可維護性。黎克特制代換原則 任何基類可以出現的地方,...

軟體設計原則

高內聚 低耦合 乙個軟體系統要有乙個穩定的架構,不會隨需求的改變而發生巨大的變動。因此,高內聚 低耦合是乙個軟體系統設計中必須遵循的基本原則 面向抽象程式設計 在面向過程的軟體開發中,上層元件呼叫下層元件,就意味著上層元件依賴於下層元件,當下層元件發生劇烈變化時,上層元件也要跟著一起發生變動,這將導...