2011-07-23 69 views
3

軟件產品可以測量各種類型的質量。適用性(例如最終使用),可維護性,效率。其中的一些有些主觀或特定領域(例如良好的GUI設計原則可能在不同文化中有所不同,或者取決於使用環境,認爲軍事與消費者的使用情況)。尋找軟件質量的客觀指標

我感興趣的是與類型及其相互關係的網絡(或圖表)有關的質量的更深層形式,即每種類型涉及哪些類型,是否存在明確可識別的互連性集羣涉及適當的分層架構,或者相反,有一個類型引用的巨大'球'('單片'代碼)。每種類型和/或方法的大小(例如,以Java字節代碼或.Net IL的數量來衡量)應該給出一些指示,說明大型複雜算法已經實現爲單塊代碼塊的地方,而不是分解成更易於管理/可維護塊。

基於這些想法的分析可能能夠計算至少是質量代理的度量。高質量和低質量之間的準確閾值/決策點我懷疑是主觀的,例如,因爲通過可維護性,我們指的是程序員的可維護性,因此功能分解必須與人類思維的工作方式相兼容。因此,我想知道在所有可能的情況下,是否能夠有一種數學上純粹的軟件質量定義超越所有可能的軟件。

我還想知道這是否是一個危險的想法,即如果客觀的質量代理變得流行起來,商業壓力會導致開發人員以犧牲整體質量(質量未由代理人衡量的那些方面)來追求這些指標。

附錄:另一種關於質量的思考方式是從熵的角度來看。熵是系統從有序狀態恢復到無序狀態的趨勢。任何曾經從事過現實世界,大中型軟件項目的人都會明白代碼庫的質量會隨着時間的推移而降低。業務壓力通常會導致關注新功能的變化(除非質量本身就是主要賣點,例如航空電子軟件中的變化),並且通過迴歸問題來削弱質量,以及在不適合的情況下,「鞋 - 生命力」的功能質量和維護的角度。那麼,我們可以測量軟件的熵嗎?如果是這樣,怎麼樣?

+0

我認爲這個問題(由於其徹底性)將更適合http://softwarerecs.stackexchange.com/。儘管如此,它仍然是主題。 –

+0

僅供參考這裏有一個問題的確切副本:http://programmers.stackexchange.com/questions/96934/objective-metrics-for-software-quality也許我們應該刪除這個SO Q? – redcalx

回答

3

NDepend,至少對於.NET代碼來說,將提供我們迄今爲止所獲得的最佳軟件質量指標。他們有82個不同的代碼metrics。這是你想要的?如果你是一名.NET程序員,你可能會發現這個blog post關於一個非常受歡迎/大型開源項目的NDepend分析很有意思。

+0

謝謝。在試圖檢查程序集之間的依賴關係時,我遇到過這一次。我會再看看,但我必須說,他們的網站混亂的設計不是好兆頭! – redcalx