日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
我們?nèi)绾卧u(píng)價(jià)軟件寫得好還是壞?

  軟件自身是一種固化的思維,因此從本質(zhì)上來(lái)看,軟件是不可度量的。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到鑲黃網(wǎng)站設(shè)計(jì)與鑲黃網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請(qǐng)域名虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋鑲黃地區(qū)。

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

  應(yīng)用各種度量數(shù)據(jù)的時(shí)候一旦跨過(guò)這種限度,結(jié)果就會(huì)適得其反。

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

  可能不全面,不足的地方歡迎大家進(jìn)行補(bǔ)充。

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

  這里主要關(guān)注的是軟件的內(nèi)在的,不直觀可見的質(zhì)量屬性。

  圈復(fù)雜度

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

  關(guān)于圈復(fù)雜度:Tom McCabe曾經(jīng)建議使用下面的方法來(lái)度量復(fù)雜度。在這一方法中為了計(jì)算復(fù)雜度首先要計(jì)算子程序中的決策點(diǎn)(decision points),規(guī)則如下:

  從函數(shù)***行一致往下通過(guò)程序

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

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

  很多靜態(tài)分析工具都直接提供對(duì)圈復(fù)雜度的度量,而圈復(fù)雜度本身歧義性很小,是非常難得的指標(biāo),高于15的代碼基本很難看懂。

  但圈復(fù)雜度更適合用于度量編碼的結(jié)果,對(duì)高層設(shè)計(jì)則不太適用。

  響應(yīng)集

  響應(yīng)集是指類的各個(gè)方法直接調(diào)用的函數(shù)數(shù)目。響應(yīng)集無(wú)疑的應(yīng)該盡可能的小,根據(jù)得墨忒耳法則:某個(gè)對(duì)象的任何方法都應(yīng)該只調(diào)用屬于以下情形的方法。

 
 
 
  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(); //<----傳入?yún)?shù)的方法,當(dāng)然參數(shù)本身也可能是函數(shù)  
  14.   a = newA();  
  15.   a->setActive();//<---創(chuàng)建的對(duì)象所擁有的方法  
  16.   c.print(); //<---創(chuàng)建的,并歸自己所有的對(duì)象的方法  
  17.   }  
  18.   }; 

 

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

  關(guān)系內(nèi)聚性(H)

  在度量包時(shí)可以用包內(nèi)部類的數(shù)目除以包內(nèi)類的總數(shù),其比值用來(lái)表示包得內(nèi)聚性。如果用R表示包內(nèi)部得類關(guān)系數(shù)目,用N表示包內(nèi)類總數(shù)。那么:

  H = (R+1)/N

  不穩(wěn)定性(I)

  不穩(wěn)定性由輸入耦合度(Ca)與輸出耦合度(Ce)計(jì)算而來(lái)。

  包得輸入耦合度是指處于包外部,但依賴于包內(nèi)類的數(shù)目。

  包得輸出耦合度是指包內(nèi)部的依賴于包外部類的類數(shù)目。

  這樣I = Ce / (Ca+ Ce)

  抽象性(A)

  包的抽象性用抽象類的數(shù)目和包中所有類的數(shù)目進(jìn)行計(jì)算。

  假如說(shuō)包中類的總數(shù)是Nc, 抽象類的數(shù)目是Na ,那么抽象度A = Na/Nc

  關(guān)系內(nèi)聚性(H),不穩(wěn)定性(H),抽象性(H)的進(jìn)一步說(shuō)明,請(qǐng)參見《敏捷軟件開發(fā):原則,模式與實(shí)踐》一書。

  這些度量指標(biāo)無(wú)疑是有意義的,都可以用來(lái)評(píng)價(jià)軟件寫的好還是壞,但卻不解決這樣一個(gè)問(wèn)題:

  如果一個(gè)方案在關(guān)系內(nèi)聚性(H),不穩(wěn)定性(H),抽象性(H)上都有好的表現(xiàn),復(fù)雜度有沒有提高?如果說(shuō)復(fù)雜度因此而提高了,那么這種額外支出的復(fù)雜度值不值得?

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

  這是一個(gè)需要進(jìn)一步展開的話題,我完善后會(huì)進(jìn)一步和大家分享。


當(dāng)前文章:我們?nèi)绾卧u(píng)價(jià)軟件寫得好還是壞?
瀏覽路徑:http://m.5511xx.com/article/cosohed.html