成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我們如何評價軟件寫得好還是壞?

開發 項目管理
今天我們將談談如何評價軟件寫得好還是壞?軟件自身是一種固化的思維,因此從本質上來看,軟件是不可度量的。

  軟件自身是一種固化的思維,因此從本質上來看,軟件是不可度量的。

  但這并不意味著軟件不需要度量,而只是說軟件中的度量大多都有一定限度。

  應用各種度量數據的時候一旦跨過這種限度,結果就會適得其反。

  在這篇文章里,我們將考查一下現有的,對軟件進行度量的方法(注意:這篇里主要考察別人的方法,不是我自己的)。

  可能不全面,不足的地方歡迎大家進行補充。

  對軟件“直觀可見的質量屬性”的度量比較簡單,比如:Bug率,性能等,這里就不提了。

  這里主要關注的是軟件的內在的,不直觀可見的質量屬性。

  圈復雜度

  圈復雜度主要用于度量函數或方法,從《代碼大全》中可以找到圈復雜度的描述。

  關于圈復雜度:Tom McCabe曾經建議使用下面的方法來度量復雜度。在這一方法中為了計算復雜度首先要計算子程序中的決策點(decision points),規則如下:

  從函數***行一致往下通過程序

  一旦遇到以下關鍵字或者同類的詞就加1:if,while,repeat,for,and,or

  給case語句中的每一種情況加1 --Steve McConell 《代碼大全》

  很多靜態分析工具都直接提供對圈復雜度的度量,而圈復雜度本身歧義性很小,是非常難得的指標,高于15的代碼基本很難看懂。

  但圈復雜度更適合用于度量編碼的結果,對高層設計則不太適用。

  響應集

  響應集是指類的各個方法直接調用的函數數目。響應集無疑的應該盡可能的小,根據得墨忒耳法則:某個對象的任何方法都應該只調用屬于以下情形的方法。

 

  1.   classDemeter  
  2.   {  
  3.   private:  
  4.   A* a;  
  5.  intfunc();  
  6.  public:  
  7.   //...  
  8.   voidexample(B& b);  
  9.   voidDemeter::example(B& b)  
  10.   {  
  11.   C c;  
  12.   intf = func(); //<---- 類自己的方法  
  13.   b.invert(); //<----傳入參數的方法,當然參數本身也可能是函數  
  14.   a = newA();  
  15.   a->setActive();//<---創建的對象所擁有的方法  
  16.   c.print(); //<---創建的,并歸自己所有的對象的方法  
  17.   }  
  18.   }; 

 

  ---摘自《程序員修煉之道》

  關系內聚性(H)

  在度量包時可以用包內部類的數目除以包內類的總數,其比值用來表示包得內聚性。如果用R表示包內部得類關系數目,用N表示包內類總數。那么:

  H = (R+1)/N

  不穩定性(I)

  不穩定性由輸入耦合度(Ca)與輸出耦合度(Ce)計算而來。

  包得輸入耦合度是指處于包外部,但依賴于包內類的數目。

  包得輸出耦合度是指包內部的依賴于包外部類的類數目。

  這樣I = Ce / (Ca+ Ce)

  抽象性(A)

  包的抽象性用抽象類的數目和包中所有類的數目進行計算。

  假如說包中類的總數是Nc, 抽象類的數目是Na ,那么抽象度A = Na/Nc

  關系內聚性(H),不穩定性(H),抽象性(H)的進一步說明,請參見《敏捷軟件開發:原則,模式與實踐》一書。

  這些度量指標無疑是有意義的,都可以用來評價軟件寫的好還是壞,但卻不解決這樣一個問題:

  如果一個方案在關系內聚性(H),不穩定性(H),抽象性(H)上都有好的表現,復雜度有沒有提高?如果說復雜度因此而提高了,那么這種額外支出的復雜度值不值得?

  如果我們認為復雜度是軟件的根本問題,那么在滿足需求的前提下,使軟件簡單化就是最關鍵的使命(比靈活性等重要)。既如此,究竟應該如何度量軟件的復雜度呢?

  這是一個需要進一步展開的話題,我完善后會進一步和大家分享。

原文鏈接:http://www.cnblogs.com/daoshi/archive/2012/01/15/2323190.html

【編輯推薦】

  1. 代碼分享:實現系統托盤效果
  2. 代碼分享:模擬售票學習多線程
  3. 代碼分享:心算24小游戲
  4. 代碼分享:Swing外觀抗鋸齒字體設置
責任編輯:彭凡 來源: 博客園
相關推薦

2022-02-28 08:07:17

Java開發

2022-04-02 11:17:43

勒索軟件網絡安全網絡攻擊

2021-11-18 07:55:03

Reduce驗證數組

2017-12-21 10:57:09

云服務云計算碎片化

2024-07-18 08:08:06

2009-03-17 09:03:28

獎金軟件開發動漫

2012-11-28 10:11:07

軟件更新IT管理固件更新

2023-04-03 00:09:13

2022-01-10 08:41:35

Windows 11Windows微軟

2019-11-23 23:25:07

算法好壞數據

2018-05-30 15:29:56

2019-09-17 14:31:52

JSJavaScript前端

2018-06-15 22:41:06

開源軟件React軟件開發

2009-11-09 10:39:35

2018-08-24 21:25:02

編程語言代碼重構GitHub

2015-03-13 11:20:12

QQ瀏覽器朋友圈Apple Watch

2011-05-04 09:23:26

2011-05-04 10:24:58

2017-02-27 18:04:22

容器軟件交付

2014-04-30 12:18:07

軟件設計
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美xxxx色视频在线观看免费 | 欧美精品一区二区三区四区五区 | 一区二区在线不卡 | 国产精品www| 九九av| 国产黄色在线 | 亚洲福利av | 久久久久国产成人精品亚洲午夜 | 国产999精品久久久影片官网 | 在线啊v| 欧美日韩手机在线观看 | 91精品国产高清一区二区三区 | 国产精品中文字幕在线 | 亚洲欧美中文字幕在线观看 | 欧美日韩毛片 | 国产一区二区电影 | 国产一区二区 | 国产精品久久av | 国产午夜精品一区二区三区 | 久久97精品 | 国产美女永久免费无遮挡 | 久久久久国产一区二区三区四区 | 国产一区二区三区 | av性色全交蜜桃成熟时 | 日韩a级片 | 久久精品欧美一区二区三区不卡 | 一区二区三区在线电影 | 别c我啊嗯国产av一毛片 | 欧美久久一区 | 日韩伦理一区二区三区 | 成人在线一区二区 | 九九九国产 | 国产日韩精品在线 | 国产一级电影在线观看 | 久久久久亚洲精品国产 | 国产成人啪免费观看软件 | 中文字幕成人免费视频 | www.日日干| www.788.com色淫免费 | 99色综合| 亚洲一一在线 |