• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    軟件開發過程的定量監理

    發布: 2007-5-26 22:09 | 作者: 未知 | 來源: 系統分析之窗 | 查看: 41次 | 進入軟件測試論壇討論

    領測軟件測試網

    軟件開發過程的定量監理 

    來自賽迪網
    作者:中國軟件評測中心 陳兵
    發文時間:2003.12.22

    信息工程監理的中心任務是對信息工程項目的進度目標、質量目標和風險防范,實施有效的監督、協調與控制。為了監督、控制軟件項目開發過程的性能等,引入定量監理十分必要。為此,本期將首先介紹進度的定量監理過程,在下一期將介紹質量和風險的定量監理。


    應用軟件系統開發過程中,不僅存在著信息不對稱的風險,還存在著各方信息處理能力不對稱引起的風險;不但有項目的特殊風險,還有項目管理風險;不但有經濟風險,還有時間風險、心理風險等。

    定量過程監理的目的是定量監督、控制軟件項目的開發過程性能,軟件開發過程性能決定了實施軟件過程所獲得的實際結果。

    應用軟件開發是非常專業的,而且是講究分工的。需求分析、總體設計、概要和詳細設計、編碼、測試、安裝及維護等,每一個過程都有自己的精深之處,涉及的專業面廣、業務和技術性強、可見性差、風險大、可預見性小。即使應用軟件承建方按規范開發模式的要求一步步進行,也會遇到許多不可預見的問題,更不用說承建方可能有不規范行為的情況。信息化系統的核心是軟件,由于難以對軟件工程的質量和進度等進行有效的監控,因此,若承建方不按規范進行設計、實施、測試,也不易察覺。

    凡此種種,造成許多信息化系統工程項目不成功,不完善,長期收不了口,“豆腐渣”工程層出不窮,嚴重地影響了信息化系統工程的質量和進度,不僅損害了合同雙方的利益,還給國家和社會造成了許多不應有的損失。因此,在軟件開發監理過程中,引入定量的方法、手段對應用軟件開發過程的某些方面進行定量計算、分析和驗證,或通過定量的方法對可能出現的故障、風險進行分析判斷,或為執行者提供數據進行核實,從而降低工程建設的風險,使投資的信息化系統發揮應有的作用是非常必要的。

    軟件開發定量監理的兩個基本“點”

    通過中國軟件評測中心大量的監理實踐,我們體會到應用軟件開發過程的定量監理可以從以下三個方面展開,即:軟件開發進度的監理、軟件開發的質量監理和軟件開發的風險監理。在進度、質量和風險的定量監理中,又分別按照度量、估算兩個步驟進行定量分析、監理。

    度量:根據一定的度量標準對軟件開發過程中所產生的數據進行收集和整理,如代碼行(LOC)和功能點(FP)的數量。它為估計不準、進度緩慢、可見性差等普遍問題提供了矯正的方法。

    軟件度量的主要作用有兩個,一是使用軟件度量建立項目基線;二是收集項目當前的生產率和質量狀態,利用基線對項目當前狀態進行評價,并確定軟件工程過程的改進目標。

    估算:通常的定義是,對未來事實非零可能性的最樂觀的預測。軟件項目估算是項目計劃活動的基礎,估算是一門科學,也是一門藝術,應當認識到,軟件評估永遠也不會是一門精確的科學。

    對進度定量監理的四步法

    軟件項目的規模、進度估算歷來是比較復雜的事,因為軟件本身的復雜性、歷史經驗的缺乏、估算工具缺乏以及一些人為錯誤,導致軟件項目的規模估算往往和實際情況相差甚遠。因此,是監理工作的重點之一。

    為了可靠地對軟件項目進行估算,我們采取如下4個步驟:第一步是對軟件規模進行估算。一般是通過計算LOC(源代碼行數)或功能點數(FP)完成的,也可以基于過程進行估算;第二步是估算軟件項目所需的工作量,以人月或人小時為單位;第三步是以自然月為單位,估算項目的進度;第四步是估算項目成本。下面來具體介紹。

    1、估算項目的規模

    對軟件項目進行有效的估算,取決于掌握多少有關項目范圍的原始資料。通常,應當根據正式的需求描述進行估算。正式的需求描述可以是需求說明書、系統規格說明書或軟件需求說明書等。如果開始時缺乏一些正式的資料,也可以采用口頭描述或草稿的方式開始估算工作。在得到項目范圍的正式資料后,必須進行再估算。估算的兩個主要方法是:

    第一種方法是根據項目特征和算法進行估算。

    例如,根據軟件系統的輸入、輸出、查詢、文件及外部接口等信息,使用功能點法估算出系統的規模;诠δ茳c估算是按照用例(Use case)來做的,而不是軟件功能來做。通過研究初始應用需求來確定各種輸入、輸出、計算和數據庫需求的數量和特性。通常的步驟是:

      A、計算輸入、輸出、查詢、主控文件和接口需求的數目。

      B、將這些數據進行加權乘。下表為一個典型的權值表。



      C、估計者根據對復雜度的判斷,總數可以用樂觀值、可能值或悲觀值調整。

      D、采用下面的方式計算功能點:

      FP=總計數值×[0.65+0.01×ΣFi]

      其中,“總計數值”是所有功能點條目的總和。

    Fi(i=1到14)是基于對表2中問題的回答而得到的“復雜度調整值”(0~5)。等式中的常數和信息域值的加權因子是根據經驗確定的。

    下面將以某個計算機輔助設計(CAD)應用為例,估算開發的軟件包的輸入、輸出、查詢、文件及外部接口。為了達到這個估算目的,我們假設復雜度加權因子都是平均的。根據對軟件范圍的敘述,對軟件功能進行分解,識別出主要的幾個功能:用戶界面和控制功能、二維幾何分析、三維幾何分析、數據庫管理、計算機圖形顯示功能、外設控制以及設計分析模塊。最后可得到如表2所示的估算表。



      由表2得到總計數值為318。


    接著,估算14個復雜度加權因子(Fi,根據問題對項目的影響取值范圍是0~5),表3給出了因子值。



     FP=總計數值×[0.65+0.01×ΣFi]=366

    第二種方法是采用類比的方法,根據歷史數據來進行估算。

    如果有一個以前做過的類似項目并且掌握它的規模,就可以把新項目的各個主要部分與原有項目的相應部分進行比較,得出一個比例關系,將各部分相對于原項目規模比例相加,計算出新項目的規模。如果估算者的經驗豐富并且新項目與老項目具有足夠的相似性,就能夠得到合理的估算值。

    但是采用類比法,往往還要解決可重用代碼的估算問題。估計可重用代碼量的最好辦法就是由程序員或系統分析員詳細地考查已存在的代碼,估算出新項目可重用的代碼中需重新設計的代碼百分比、需重新編碼或修改的代碼百分比以及需重新測試的代碼百分比。根據這三個百分比,可用下面的計算公式計算等價新代碼行:

    等價代碼行 = [(重新設計% +重新編碼% +重新測試%)/3]× 已有代碼行

    比如:有10,000行代碼,假定35%需要重新設計,55%需要重新編碼,75%需要重新測試,那么其等價的代碼行可以計算為:

    [(30% + 50% + 70%)/3]×10,000= 5,500 等價代碼行。即:重用這10000代碼相當于編寫5500代碼行的工作量。

    2、工作量估算

    估算出軟件規模并且對軟件的開發周期進行定義后,開始估算軟件項目的工作量。軟件規模的估算結果是代碼量,但是軟件項目的開發、實施過程并不是只有編碼的工作,實際上編碼的工作量在這個過程中是最小的。編寫文檔、架構設計、系統設計、測試以及實施發布等將占用大量的工作時間。因此,對軟件項目工作量的估算就是確定、估算這樣一個代碼量的項目所需的各種工作,相加得到項目的工作量。從軟件規模(代碼量)估算出項目工作量主要采用下述的兩個方法:

    (1)最好的方法是利用歷史數據,根據以前做過的類似項目規模與新項目規模的比例關系,對照以前項目的工作量求出新項目的工作量。

    采用這個方法的前提是:a.對以前項目規模和工作量的計量是正確的;b.至少有一個以前的項目的規模和新項目類似;c.新項目的開發周期、使用的開發方法、開發工具與以前項目的類似,而且開發人員的技能和經驗也不能與原來的人員相差太大。

    (2)如果沒有歷史數據可用,或者新項目與以前做過的項目差別較大,那么可以使用一個成熟的估算模型,如采用IBM模型、COCOMO模型或Putnam方法論,將軟件項目規模轉換成工作量。

    這些模型通過對大量不同類型組織已完成項目進行研究,得出的項目規模與工作量之間的關系和轉換方法。這些行業性的模型可能不如自己的歷史數據精確,但是非常有效。目前,還沒有一種估算模型能夠適用于所有的軟件類型和開發環境,在監理活動中,從這些模型得到的結果必須根據項目的實際情況慎重使用,或者采用多個模型進行估算、掌握工作量的基本范圍并與實際的工作量計劃比較。

    下面以IBM模型為例來進行計算。 為了計算,我們應當利用逆向法將功能點轉化成一個等價的SLOC數值。這一步可以使用表4的語言等價表來完成:



    所以,使用java 2完成上述項目(366功能點)時,將大約需要下列SLOC數:

    L = 366×46 = 16386行 = 16.386KLOC

    E = 5.2×L0.91 = 5.2×16.3860.91 = 66人/月

    DOC = 49×L1.01 = 49×16.3861.01 = 826頁

    3、制定計劃

    對軟件項目進行估算的第三步是根據工作量制定項目計劃,包括人員安排、工作量分解、開始和完成時間等等?梢愿鶕约旱臍v史數據或行業模型決定所需的資源并落實到項目計劃?梢圆捎蒙鲜龅腎BM模型或McConnell給出的方法粗略地給出項目持續時間(以IBM模型為例):

    項目需要的人員S=0.54×E0.6 =0.54×660.6=7人

    項目持續時間D=4.1×L0.36 =4.1×16.3860.36=11月

    4、成本估算

    項目的成本估算包括許多因素:人力成本、辦公費用、管理費用、設備和軟件等的購置費用、場地租金、旅差費等等。對項目成本的估算取決于公司所采用的成本核算方法。有的公司某些費用并沒有計入項目成本中,而是按管理費用等分攤。有的從歷史數據求出生產率度量和每行成本,即行/PM(人月)和元/行,則LOC的值與元/行相乘得到成本,用LOC 的值與行/PM相除得到工作量。具體可按公司的具體情況選擇。

    注:本文作為示例給出的針對進度等的定量監理的估算方法只是眾多方法中的一種。筆者的目的是建議監理單位在項目監理過程中根據實際情況適當采用定量的方法。更多的估算方法,可以參考有關軟件評估方面的書籍和其它資料。

    幾種估算模型的介紹

    1、IBM模型

      1977年,IBM的Walston和Felix提出了如下的估算公式:

      E = 5.2×L0.91,L是源代碼行數(以KLOC計),E是工作量(以PM計)

      D = 4.1×L0.36,D是項目持續時間(以月計)

      S = 0.54×E0.6,S是人員需要量(以人計)

      DOC = 49×L1.01。DOC是文檔數量(以頁計)

    在此模型中,一般指一條機器指令為一行源代碼。一個軟件的源代碼行數不包括程序注釋、作業命令、調試程序在內。對于非機器指令編寫的源程序,如匯編語言或高級語言程序,應轉換成機器指令源代碼行數來考慮。

    2、Putnam模型

    這是1978年Putnam提出的模型,是一種動態多變量模型。它是假定在軟件開發的整個生存期中工作量有特定的分布。這種模型是依據在一些大型項目(總工作量達到或超過30個人年)中收集到的工作量分布情況而推導出來的,但也可以應用在一些較小的軟件項目中。

    Putnam模型可以導出一個“軟件方程”,把已交付的源代碼(源語句)行數與工作量和開發時間聯系起來。其中,td是開發持續時間(以年計),K是軟件開發與維護在內的整個生存期所花費的工作量(以人年計),L是源代碼行數(以LOC計),Ck是技術狀態常數,它反映出“妨礙程序員進展的限制”,并因開發環境而異。其典型值的選取如下表所示。



    3、COCOMO模型(COnstructive COst MOdel)

    這是由TRW公司開發。Boehm提出的結構型成本估算模型,是一種精確、易于使用的成本估算方法。在該模型中使用的基本量有以下幾個:DSI(源指令條數)定義為代碼或卡片形式的源程序行數。若一行有兩個語句,則算做一條指令。它包括作業控制語句和格式語句,但不包括注釋語句。KDSI=1000DSI。MM(度量單位為人月)表示開發工作量。TDEV(度量單位為月)表示開發進度。它由工作量決定。



    (1)軟件開發項目的分類

    在COCOMO模型中,考慮開發環境,軟件開發項目的總體類型可分為三種:組織型(Organic)、嵌入型(Embedded)和介于上述兩種軟件之間的半獨立型(Semidetached)。

    (2)COCOMO模型的分類

    COCOMO模型按其詳細程度分成三級:即基本COCOMO模型、中間COCOMO模型、詳細COCOMO模型;綜OCOMO模型是一個靜態單變量模型,它用一個以已估算出來的源代碼行數(LOC)為自變量的(經驗)函數來計算軟件開發工作量。中間COCOMO模型則在用LOC為自變量的函數計算軟件開發工作量(此時稱為名義工作量)的基礎上,再用涉及產品、硬件、人員、項目等方面屬性的影響因素來調整工作量的估算。詳細COCOMO模型包括中間COCOMO模型的所有特性,但用上述各種影響因素調整工作量估算時,還要考慮對軟件工程過程中每一步驟(分析、設計等)的影響





    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>