999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于系統(tǒng)動力學方法的軟件過程建模與仿真

2007-04-29 00:00:00吳明暉
計算機時代 2007年9期

摘要:軟件開發(fā)質(zhì)量很大程度上取決于軟件過程。軟件過程涉及到眾多相互關(guān)聯(lián)和反饋的因素,特別是與人和組織行為有關(guān)的軟因素,但在離散型傳統(tǒng)建模方法中難以得到準確反映。文章介紹了基于系統(tǒng)動力學的連續(xù)型軟件過程建模與仿真方法,并以Brooks法則作為實例描述了該方法的基本要素和優(yōu)勢。文章還對系統(tǒng)動力學方法應(yīng)用于軟件過程不同領(lǐng)域的研究加以回顧,并給出了今后的幾個主要研究方向。

關(guān)鍵詞:軟件過程;系統(tǒng)動力學;建模;仿真

引言

如今軟件所扮演的角色越來越重要,而與此同時也伴隨著相關(guān)的許多問題:如費用超支、進度延期、質(zhì)量低下等。這迫使人們對軟件開發(fā)的關(guān)注點從軟件設(shè)計開發(fā)的技術(shù)方面過渡到對技術(shù)和管理兩方面并重。軟件過程已經(jīng)成為軟件工程學中一個研究熱點。研究表明軟件工程的兩大目標:減少費用和提高軟件質(zhì)量,都在很大程度上取決于軟件過程的質(zhì)量。

在現(xiàn)實開發(fā)中,軟件系統(tǒng)的復雜性通常有著各種形式,主要表現(xiàn)為:系統(tǒng)不確定性和隨機性、復雜的動態(tài)行為和反饋機制。過程的變更通常耗費巨大,而且后果對軟件開發(fā)組織的影響很大。因此,采用一些合適的方法和技術(shù)來輔助用戶尤為重要。軟件過程建模和仿真就是其中一種比較合適的方案。軟件建模有著多種方法,目前比較常用的是類似于工作流系統(tǒng)的針對軟件開發(fā)過程分階段進行的離散性建模方法。這種方法有其優(yōu)點,但難以表達例如開發(fā)人員的經(jīng)驗、項目進度帶來的壓力、連續(xù)加班的疲勞程度等一直變化著的因素,以及這些相互關(guān)聯(lián)的因素之間的因果關(guān)系和反饋回路對軟件開發(fā)結(jié)果的影響。例如,項目進度的落后會增加開發(fā)人員的壓力,激勵他們提高生產(chǎn)率,項目組可能會選擇加班以希望趕上進度。高壓力下的加班一般會提高單位時間內(nèi)的產(chǎn)量,但同時也會增加人員的疲勞程度,這樣很有可能增加出錯率,最終導致質(zhì)量保證工作和返工的增加,并且當疲勞程度到達一定時候?qū)⒔档蜕a(chǎn)率,最終很有可能趕不上進度。軟件開發(fā)中這些經(jīng)常被忽略的軟因素對項目的成敗有著重要影響,系統(tǒng)動力學作為一種連續(xù)性建模方法,能很好地解決這些問題。

1 軟件過程建模與仿真

軟件過程可以被定義為“針對構(gòu)思、開發(fā)、部署和維護軟件產(chǎn)品的一系列相關(guān)的政策、組織結(jié)構(gòu)、技術(shù)、程序和工件”。軟件開發(fā)過程是一個復雜的動態(tài)系統(tǒng),有著巨大的結(jié)構(gòu)復雜度和規(guī)模。這些復雜性促成了系統(tǒng)的一些違背直覺的行為,使得系統(tǒng)行為難以靠人的經(jīng)驗來精確評價。這些系統(tǒng)有一些共同特性,比如有多個相互關(guān)聯(lián)的組件構(gòu)成,表現(xiàn)出復雜的動態(tài)行為和反饋回路,組件間的非線性關(guān)系和軟數(shù)據(jù)操作。

軟件開發(fā)涉及到管理相關(guān)的(如:人力資源,預算,調(diào)度,計劃和控制等)和生產(chǎn)相關(guān)的(如:軟件設(shè)計、編碼、測試、驗證和確認等)眾多因素,比如:勞動力量,預算,項目完成成績,人員生產(chǎn)率,產(chǎn)生的錯誤數(shù),檢測到的錯誤數(shù),可供雇傭的勞動力數(shù)量等。這些變量相互影響,形成互動和反饋循環(huán)。軟件過程建模是經(jīng)常采用的一種基本手段。模型是現(xiàn)實世界或者概念化的復雜系統(tǒng)的一種抽象,通過減少或者去除不影響相關(guān)行為的細節(jié),它設(shè)用來展示實際系統(tǒng)的主要特性。結(jié)合過程模型,應(yīng)用計算機仿真技術(shù)來進行軟件過程研究有著如下優(yōu)勢:

(1)大多數(shù)復雜的、現(xiàn)實世界的系統(tǒng)都存在眾多關(guān)系復雜的元素,難以光靠一個不能運行的模型來表達并用以進行分析。而仿真是一種可行的研究方法。

(2)仿真允許研究者去估計實際系統(tǒng)在一些假設(shè)的操作環(huán)境下的性能。

(3)能夠通過仿真對多種候選方法進行對比,以決定哪種能更好地符合需求。

(4)在仿真中,研究人員能夠比真實試驗更好地控制實驗條件。

(5)仿真允許研究人員以較短的時間去研究一個現(xiàn)實中需要很長時間來完成的事情。

基于建模的目標不同,應(yīng)該根據(jù)各種建模方法的特點來采用不同的建模技術(shù)進行軟件過程研究。有時候根據(jù)建模需求并不需要關(guān)注每一個實體的每一個屬性,而是要能夠簡單清晰地觀察某些因素對系統(tǒng)層次上的影響,輔助管理者在整體層面上對項目做出決策。例如,連續(xù)型仿真建模方法就適合于策略分析、初始估算、長期趨勢、高層(全局)視角觀測。系統(tǒng)動力學就是一種典型的連續(xù)型建模方法。

2 系統(tǒng)動力學方法及其應(yīng)用實例

2.1系統(tǒng)動力學方法

系統(tǒng)動力學方法由MIT的Forrester開發(fā),是一種針對強調(diào)系統(tǒng)模型結(jié)構(gòu)特性的復雜問題解決之道。系統(tǒng)動力學主要依賴兩種技術(shù)來構(gòu)建模型:一是因果循環(huán)圖(causal loop diagram),通過原因和結(jié)果關(guān)系來概念化系統(tǒng),使得反饋回路得以顯現(xiàn)。二是流圖(now diagram),采用流(flow)、流率(flow rate)、存量(stock)、水平(Ievel)、輔助變量(auxiliary),常量(constant)和延遲(delay)等來表達系統(tǒng)。存量表示可以隨著時間累計或者消耗的元素;水平表示存量在某個給定時間點上的元素數(shù)量;流率描述存量的變化。系統(tǒng)動力學是采用連續(xù)的時間模擬方法,在模擬中,時間被劃分成預先設(shè)定好的時間間隔。模型變量在每個時間間隔的結(jié)束時計算,隨著時間調(diào)整它們的行為。例如,在軟件項目中,經(jīng)驗被認為是影響生產(chǎn)率的一個重要因素,經(jīng)驗水平值隨著項目進展不斷提高,同時,疲勞程度、進度壓力將影響到生產(chǎn)率,但可能會起反作用,系統(tǒng)動力學方法連續(xù)模擬這些變量的相互作用,進行生產(chǎn)率的動態(tài)估算。

2.2應(yīng)用實例:Brooks法則

在軟件工程領(lǐng)域,有一個著名的Brooks法則,即在進度落后的項目中雇用新手加入以希望趕上進度,結(jié)果使得項目進度更加落后。下面我們將通過系統(tǒng)動力學模型和仿真來研究增加人手對生產(chǎn)率、總?cè)嗽聰?shù)和項目持續(xù)時間的影響。

建模首先要對問題域了解清楚,找出系統(tǒng)中的主要組成和因果結(jié)構(gòu)關(guān)系。圖1是因果關(guān)系圖。一旦項目經(jīng)理發(fā)現(xiàn)項目進度落后,積壓增加,就開始招聘新員工,增加員工數(shù)量。員工數(shù)量的增加帶來的直接影響是提高生產(chǎn)率以及通信和培訓的代價,而通信和培訓的代價的增加又會直接導致生產(chǎn)率的降低。生產(chǎn)率的提高會加大進度,減少項目積壓。通過圖1的因果關(guān)系圖的分析,我們會發(fā)現(xiàn)眾多元素形成一個反饋循環(huán),增加員工對生產(chǎn)率的影響既有積極的也有消極的影響,因此難以直接通過定性分析來得出結(jié)論,結(jié)果如何還需要通過仿真的定量數(shù)據(jù)來說明。

圖2是采用系統(tǒng)動力學建模仿真工具PowerSim建立的Brooks法則的系統(tǒng)動力學模型。需求會逐步被開發(fā)成產(chǎn)品,所以隨著時間流逝,需求將減少而已經(jīng)開發(fā)的軟件數(shù)量不斷增加。在本模型中,軟件生產(chǎn)效率由多個因素共同決定,其中包括標準生產(chǎn)效率、通信損耗和開發(fā)人員的數(shù)量。開發(fā)人員的總數(shù)=新人員數(shù)量+有經(jīng)驗人員數(shù)量一負責培訓新人員的有經(jīng)驗人員數(shù)量。通訊損耗為總?cè)藬?shù)的一個非線性函數(shù),這里采用Abdel-Hamid模型中的數(shù)據(jù)(0.6*人數(shù)n的平方)。另外還假定一個有經(jīng)驗人員可以培訓4個新員工,training overhead取值為25%。Assimilation delay表示—個新員工培訓為能勝任工作的有經(jīng)驗人員的平均時間為20天。標準生產(chǎn)效率(Nominal productivity)為1,表示每把一個需求任務(wù)轉(zhuǎn)化為軟件產(chǎn)品需要1個標準化人天。在本模型中,新員工的生產(chǎn)效率為標準生產(chǎn)效率的0.8倍,而有經(jīng)驗員工的生產(chǎn)效率為標準生產(chǎn)效率的1.2倍。

在我們的仿真運行中,設(shè)定初始條件為20個有經(jīng)驗員工去開發(fā)5000個需求任務(wù)的項目,結(jié)果顯示為圖3、圖4中的reference曲線。總時間需要278天,總共耗費5500人天,生產(chǎn)效率為一條平行直線,值為18.24任務(wù)/天。

假設(shè)項目經(jīng)理在開發(fā)過程中想加快項目進度,在100天的時候開始增加10名新的開發(fā)人員,仿真結(jié)果顯示為圖3、圖4中的current曲線。總時間反而需要299天,總共耗費7870人天,平均生產(chǎn)效率曲線在100天時有個顯著下降,然后再逐步上升,最后在為16.56任務(wù)/天時達到穩(wěn)定。從結(jié)果對比中我們不難看出由于急劇增加的通訊損耗和培訓新員工而占用有經(jīng)驗員工的正常開發(fā)時間,導致生產(chǎn)效率的下降。結(jié)果是項目進度并沒有提前,而開發(fā)費用卻急劇增加了。

圖3和圖4只是顯示了模型仿真運行的某一個場景,反映了在某些情況下Brooks法則的正確性。事實上我們還可以通過調(diào)整增加人員的數(shù)量和進入時間來預測其他場景下的項目開發(fā)結(jié)果,從而選擇相對較優(yōu)的一個。比如,如果在100天的時候增加5個人,總時間能稍微較少一點,需要275天,但共耗費需要6295人天。

上面描述的Brooks法則模型只是一個經(jīng)過簡化的模型,但還是能夠比較好地說明增加新開發(fā)人員對項目的影響。更符合實際軟件開發(fā)過程的模型還需要進一步細化。例如,新人員開發(fā)出來的產(chǎn)品其缺陷率往往比有經(jīng)驗人員開發(fā)出來的要高,這樣將增加項目返工的工作量。當然還有如前面提到過的進度壓力、質(zhì)量保證手段等其他因素的影響。

3 基于系統(tǒng)動力學的軟件過程相關(guān)模型

3.1 AbdeI-Hamid模型

Abdel-Hamid模型是把系統(tǒng)動力學運用到軟件工程領(lǐng)域的第一個系統(tǒng)比較完備的模型,它的目標是研究項目管理政策和活動在軟件開發(fā)中的作用。Abdel-Hamid模型被劃分為4個主要子系統(tǒng),包括人力資源管理、軟件生產(chǎn)、項目計劃和控制。人力資源子系統(tǒng)針對軟件開發(fā)人員,其管理內(nèi)容包括人員雇傭、解雇、人員流動以及培訓。軟件生產(chǎn)子系統(tǒng)為不同的開發(fā)活動分配可用的開發(fā)人員,比如培訓、設(shè)計、編碼、測試、返工和質(zhì)量保證。該子系統(tǒng)還處理團隊動機、開發(fā)人員疲勞程度、生產(chǎn)率消耗因素,比如通信和返工等。軟件控制子系統(tǒng)測量軟件生產(chǎn)活動,描述針對這些測量的管理措施。該子系統(tǒng)控制加班時間,進度壓力和資金耗費等。軟件計劃子系統(tǒng)提供軟件項目的初始化參數(shù)值,比如項目規(guī)模、初始團隊規(guī)模、預期結(jié)束時間等。該子系統(tǒng)同樣控制著高層管理人員對雇傭新員工的意愿等。

通過對模型仿真運行結(jié)果的研究,Abdel-Hamid等人在項目花費、進度估算、質(zhì)量保證的經(jīng)濟性質(zhì),和項目人員管理等方面得出了很多有趣的結(jié)論,例如:

(1)在軟件項目估算中更精確的估算,結(jié)果不一定會更好,因為不論原始估算進度如何,進度總是趨向于超過預計的。

(2)采用類比的方法來進行軟件估算通常使得進度比本來所需要的要長。

(3)堅持過緊的進度會因勞動力的原因而增加費用。

3.2軟件過程領(lǐng)域中的其他應(yīng)用模型

基于系統(tǒng)動力學的建模和仿真已經(jīng)被成功應(yīng)用到很多領(lǐng)域,但在軟件工程領(lǐng)域還沒有得到廣泛應(yīng)用。其主要原因為相對物理系統(tǒng)來說,人和組織行為更難以精確建模,本節(jié)將從不同的應(yīng)用方向介紹相關(guān)研究。

項目管理項目估算是軟件開發(fā)管理的一個必須的環(huán)節(jié),而且估算對項目的開展有著重要影響。基于系統(tǒng)動力學的項目管理由于考慮到了過程的動態(tài)性,通常能夠比一般基于統(tǒng)計歷史數(shù)據(jù)的估算模型要更精確合理。Dynamic COCOMO就是在COCOMO模型的基礎(chǔ)上提出的結(jié)合系統(tǒng)動力學的估算模型。在項目進度控制方面,結(jié)合系統(tǒng)動力學的模型能夠更好地考慮到任務(wù)之間的相關(guān)性、有限的資源和可能的返工循環(huán)帶來的延遲,因此比傳統(tǒng)的項目管理方法更能反映現(xiàn)狀。

教育培訓由于組織系統(tǒng)中的各種因素之間存在復雜的關(guān)聯(lián),經(jīng)常會遇到一些違背直覺的現(xiàn)象。遇到問題如果只是簡單地采取一些應(yīng)對手段通常并不能取得預期效果,Brooks法則就是一個很好的例子。一般的教育方法很難說清問題本質(zhì)原因,而利用仿真模型則可以進行有效的闡明。基于系統(tǒng)動力學仿真模型的教育培訓還能使相關(guān)人員參與到仿真的軟件開發(fā)活動中,去分析深層次原因。通過更改和設(shè)置不同參數(shù),如雇傭率等來研究不同方法的結(jié)果,增強決策支持的能力。另外借助模型還能實現(xiàn)分布式培訓,增強凝聚力和培訓效果,節(jié)約費用。

風險管理項目通常會因為需求變更、人員變動、資金削減等原因而顯得很脆弱。基于系統(tǒng)動力學的仿真有助于在項目早期識別風險,通過定量的預測決策變化帶來的后果,能夠幫助設(shè)計出更客觀、低風險的策略。

過程改進在傳統(tǒng)方法中,改變或者新增一個過程主要由操作經(jīng)驗決定。這種方式通常費用很高而且風險很大。建模仿真可以在一定程度上預見一個過程的運行狀態(tài)。這種洞察力能夠幫助過程設(shè)計者評估候選方案。這種基于數(shù)據(jù)的客觀方法通常比主觀評價方法更具有說服力。

開發(fā)方法系統(tǒng)動力學仿真建模還被運用到輔助驗證新的開發(fā)方法論的有效性中。比如為極限編程Xp的開發(fā)過程建模,被用來研究采用Xp方法時需求變更帶來的費用變化。

4 結(jié)束語

軟件開發(fā)是一個復雜的過程,采用系統(tǒng)動力學方法來對軟件過程進行建模能很好地描述各個組成要素問的動態(tài)關(guān)聯(lián),尤其是對傳統(tǒng)建模方法難以精確描述的軟性因素,它以一種連續(xù)的方式從定性和定量兩個方面對軟件過程進行建模和仿真。因此系統(tǒng)動力學對軟件過程的多個領(lǐng)域都能提供有效的策略支持。但該方法還不夠成熟,在以下各方面還需要做進一步的研究。 工業(yè)數(shù)據(jù)分析與模型驗證。建模和仿真的有效性主要取決于模型的有效性。組織模型需要處理人和其他難以量化的問題;不僅收集數(shù)據(jù)困難,而且這些數(shù)據(jù)的重現(xiàn)性也難以得到保證;模型只是現(xiàn)實世界的一種簡化,因此它不可能完全和實際情況相一致。對已有工業(yè)數(shù)據(jù)進行分析,來驗證模型是一個值得關(guān)注的課題。

多建模方法結(jié)合。當今研究的一個主要方向是如何結(jié)合離散型過程模型,比如側(cè)重工件生產(chǎn)流程的基于工作流的過程建模。采用連續(xù)性建模方法為動態(tài)環(huán)境和行為建模,使用離散模型來為過程步驟、任務(wù)和資源建模。 模型的可用性和重用性。另外一個問題是如何制定容易裁減和重用的模型。顯然如果模型過于簡單,將難以反映所關(guān)注問題,但過于龐大和復雜則難以應(yīng)用和開發(fā)。單純的減小模型規(guī)模不是長久之計。

主站蜘蛛池模板: 视频国产精品丝袜第一页| 精品人妻AV区| 国产永久在线观看| 天堂av高清一区二区三区| 中文字幕在线一区二区在线| 色哟哟国产成人精品| 国产在线观看精品| 麻豆精选在线| 日韩资源站| 欧洲熟妇精品视频| 亚洲综合色区在线播放2019| 极品国产在线| 永久成人无码激情视频免费| 国产天天色| 2020国产免费久久精品99| 国产成人一区免费观看| 国产不卡一级毛片视频| 亚洲永久视频| 日韩性网站| 国产精品一区在线麻豆| 亚洲男人的天堂久久香蕉网| 日韩无码白| 国产综合亚洲欧洲区精品无码| 精品国产自| 亚洲无码高清视频在线观看| 亚洲视频在线网| 国产免费a级片| 国产在线专区| 在线免费a视频| 日韩成人在线视频| 免费高清a毛片| 亚洲国产精品日韩av专区| 国产伦精品一区二区三区视频优播| 亚洲精选高清无码| 性做久久久久久久免费看| 日韩国产欧美精品在线| 国内精品久久人妻无码大片高| 依依成人精品无v国产| 国产主播在线一区| 91精品aⅴ无码中文字字幕蜜桃 | a级免费视频| 亚洲乱亚洲乱妇24p| 九九这里只有精品视频| av在线手机播放| 亚洲精品福利视频| 自偷自拍三级全三级视频 | 激情无码字幕综合| 国产毛片不卡| 亚洲欧美自拍一区| 亚洲手机在线| 国产成人精品在线1区| 在线亚洲天堂| 成年午夜精品久久精品| 任我操在线视频| 亚洲综合片| 91久久偷偷做嫩草影院| 熟女日韩精品2区| 国产欧美性爱网| 在线亚洲小视频| 第一区免费在线观看| 亚洲欧美日韩色图| 伊人久久大香线蕉影院| 精品国产网| 欧美成人区| 亚洲精品久综合蜜| 国产区精品高清在线观看| 极品国产在线| 国产精品专区第1页| 国产美女在线观看| 欧美在线伊人| 成年免费在线观看| 久久先锋资源| 久久网欧美| 在线观看热码亚洲av每日更新| 欧美自慰一级看片免费| 香蕉色综合| 亚洲人人视频| 久久中文字幕不卡一二区| 国产成人h在线观看网站站| 国产在线视频福利资源站| 欧美激情福利| 国产欧美日韩另类|