<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 56, comments - 54, trackbacks - 0, articles - 4
       ::  ::  :: 聯(lián)系 :: 聚合  :: 管理

    軟件開發(fā)的評價標準(轉(zhuǎn)載)

    Posted on 2005-11-16 16:40 Terry的Blog 閱讀(1117) 評論(1)  編輯  收藏 所屬分類: 軟件工程
    三、注釋與文檔

    首先討論一個計算工作量的數(shù)學(xué)模型。

    1.沒有注釋的情況下:
    第一次開發(fā)工作量=代碼行數(shù)×單位代碼工作量
    維護工作量=理解代碼工作量+決定方案工作量+修改代碼行數(shù)×單位代碼工作量

    2、有注釋的情況下:
    第一次開發(fā)工作量=代碼行數(shù)×單位代碼工作量+代碼行數(shù)×注釋率×單位注釋工作量
    維護工作量=基于注釋理解代碼工作量+決定方案工作量+修改代碼行數(shù)×單位代碼工作量+修改代碼行數(shù)×注釋率×單位注釋工作量

    增加注釋之后,增機了注釋的工作量,這些增加需要通過節(jié)約理解代碼的工作量賺回來。

    3、理解代碼的工作量討論
    在沒有注釋的情況下:
    理解代碼工作量=代碼總量×理解代碼的效率
    在有注釋的情況下:
    理解代碼工作量=注釋總量×理解注釋的效率
    又因為
    注釋總量=代碼總量×注釋率

    因此,要想通過注釋減少維護工作量,就要切實降低注釋率,并且提高注釋的效率。

    4、這些數(shù)據(jù)的含義

    注釋率:軟件的注釋行數(shù)/軟件的程序行數(shù)

    有人像這樣寫代碼
    java代碼: 
    //給i賦初始值
    int i=10;
    //開始循環(huán)
    for(int j=0;j<i;j++){
    //輸出j的值
    System.out.println(j);
    }//循環(huán)結(jié)束
    這樣的一比一注釋,注釋率就是1。一般來說,注釋率大于1的程序,肯定是垃圾。因為寫這個程序的人,根本不知道該注釋哪些地方。

    但是,并不是說注釋率越低越好,因為注釋少了之后,可能會影響理解注釋的效率。

    面對一次維護需求時:
    理解注釋的效率:需要閱讀的注釋行數(shù)/注釋總數(shù)

    如果一個維護者,在閱讀了所有的注釋之后,還沒有理解程序,更不要說找到解決方案,那么他就必須去閱讀代碼。理解代碼的工作量,就是沒有注釋時的工作量再加上被垃圾注釋浪費掉的工作量。

    這時的理解注釋的效率,就是大于1的。寫出這樣的注釋的人,不配做程序員。

    切實提高理解注釋的效率,是提高維護效率的根本。可以有以下手段:
    1、結(jié)構(gòu)化文檔
    2、HTML格式的合理的超鏈接
    3、關(guān)鍵字索引(方便對于注釋全文檢索)
    4、邏輯清晰的概要介紹

    上面的這些公式都有一條:決定方案工作量。
    這個工作量其實是可以合并的。以往的理解是,必須理解了現(xiàn)有的程序,才能決定維護的方案。但是我們可以假設(shè),如果通過查詢注釋和文檔,就能找到如何維護的答案,那么這樣的維護就是最輕松的。

    我們不假設(shè)所有的維護都能通過查詢注釋和文檔,直接得到答案,但是如果有一個預(yù)先的合理的考慮,而寫下了系統(tǒng)維護指南這樣的文檔,那么這樣的文檔,將是最有價值的。

    另外一個手段,就是在每次維護之后,寫下一個維護記錄,大致格式是:
    我的維護需求,我查詢了哪些注釋和文檔,最后我在哪里找到了答案

    這樣的記錄,將會為后來者提供極大的方便。

    下面說一點題外話,因為在軟件工程中,還存在這樣的文檔:
    《功能需求描述》《概要設(shè)計》《詳細設(shè)計》《.......》
    我不理解為什么需要這樣的文檔,也不理解誰會來閱讀這樣的文檔。為了模仿建筑工程,軟件工程已經(jīng)大大的扭曲了自己的本性。

    注釋與文檔的本質(zhì),是為了便于軟件的開發(fā)和維護,而不是在一道一道的工序之間作為“交接班”的說明。

    如果一份文檔,無法回答這兩個問題,那么這份文檔就是浪費了:

    誰愿意寫這樣的文檔?

    評論

    # re: 軟件開發(fā)的評價標準(轉(zhuǎn)載)  回復(fù)  更多評論   

    2011-05-12 17:16 by 愛米
    下面說一點題外話,因為在軟件工程中,還存在這樣的文檔:
    《功能需求描述》《概要設(shè)計》《詳細設(shè)計》《.......》
    我不理解為什么需要這樣的文檔,也不理解誰會來閱讀這樣的文檔。為了模仿建筑工程,軟件工程已經(jīng)大大的扭曲了自己的本性。

    ——顯然你肯定還沒有參與大型的團隊項目,所以有這樣的疑問也不奇怪。
    文檔不僅僅是交接,而是思想的直接表達與傳承方式。

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲精品无AMM毛片| 亚洲明星合成图综合区在线| 亚洲国产成人AV在线播放| 国产精品1024永久免费视频| 中文字幕亚洲免费无线观看日本| 久久精品免费观看| 亚洲影院在线观看| 100部毛片免费全部播放完整| 亚洲AV无码专区国产乱码4SE| 久久精品视频免费| 亚洲成人午夜电影| 毛片基地免费视频a| 亚洲av永久无码精品网址| 全部免费毛片在线| 岛国岛国免费V片在线观看| 亚洲日韩精品一区二区三区 | 4480yy私人影院亚洲| 免费v片在线观看视频网站| 91亚洲性爱在线视频| 四虎影视免费在线| 野花视频在线官网免费1| 国产亚洲大尺度无码无码专线| 国产羞羞的视频在线观看免费| 亚洲视频在线免费播放| 国产精品无码免费播放| 免费无码国产V片在线观看| 国产亚洲精AA在线观看SEE| 久久青青草原国产精品免费| 亚洲精品第一国产综合精品| 成年性生交大片免费看| 一级特黄aaa大片免费看| 亚洲一区二区三区高清| 日韩高清免费观看| 日韩精品无码免费专区午夜不卡| 91情国产l精品国产亚洲区| 国产免费拔擦拔擦8x| 中文字幕无线码中文字幕免费| 久久综合亚洲色HEZYO社区| 亚洲国产成人精品91久久久| 久久青草免费91观看| 91国内免费在线视频|