王龍杰
【摘要】根據(jù)我國目前現(xiàn)狀,結(jié)合中小型軟件開發(fā)的特點,通過分析其成因,強調(diào)開發(fā)過程的有序管理,以期降低開發(fā)風險和成本,提高開發(fā)速度和效益,更好地符合社會實踐的需要。
【關鍵詞】軟件系統(tǒng);開發(fā);管理
一、軟件系統(tǒng)開發(fā)的社會需要
當今,全球經(jīng)濟單純地從集約化生產(chǎn)創(chuàng)造效益轉(zhuǎn)變?yōu)樾畔a(chǎn)品的交換帶來效益,現(xiàn)代技術開辟了人類思維的另一世界,支撐著人類的欲望,電腦、互聯(lián)網(wǎng)、物流等改變著人們的生活,這就是我們所定義的社會信息時代。世界范圍的電腦聯(lián)網(wǎng)將使越來越多的領域以數(shù)據(jù)流通取代產(chǎn)品流通,將生產(chǎn)演變成服務,將工業(yè)勞動演變成信息勞動。人們的生產(chǎn)與流通、交換和分配活動的規(guī)則正經(jīng)歷著徹底的變革,與傳統(tǒng)觀念不同的是信息產(chǎn)品不需要離開它的原始占有者就能夠被買賣和交換;這一產(chǎn)品能夠通過電腦網(wǎng)絡大量復制和分配而不需要額外增加費用;價值增加是通過知識而不是工作來實現(xiàn)的;知識流向產(chǎn)品的主要形式是軟件。我國由于歷史原因,與發(fā)達國家相比較,在新技術新產(chǎn)品的開發(fā)與運用中,存在軟件開發(fā)過程缺陷、項目管理問題和缺乏對企業(yè)內(nèi)部軟件開發(fā)過程的最佳實踐總結(jié)與應用等諸多問題??v觀世界以計算機信息系統(tǒng)為核心的it技術,目前已成為最活躍、最有發(fā)展?jié)摿Φ闹еa(chǎn)業(yè),絕大多數(shù)的社會業(yè)務領域都形成了非常成熟的高水平的行業(yè)應用軟件。為了避免軟件開發(fā)過程中造成的不必要的損失和浪費,我們有必要探討開發(fā)過程的合理環(huán)節(jié)和科學性。
二、軟件開發(fā)過程存在的問題和有效的控制步驟
軟件開發(fā)是基于用戶的客觀需要,建造出軟件系統(tǒng)或者系統(tǒng)中的軟件部分的過程,是一項包括需求捕捉、需求分析、設計、實現(xiàn)和測試的系統(tǒng)工程。多種風險的實際存在,影響著我們的計劃預期,如果項目風險變成現(xiàn)實,就會增加項目的成本,甚或招致軟件開發(fā)的失敗。因此有必要對軟件項目中的風險進行分析并采取相應的措施加以管理,盡可能減少風險造成的損失。統(tǒng)一過程(RUP)提出了六項最佳實踐即迭代的開發(fā)軟件、需求管理、使用基于構件的體系結(jié)構、可視化軟件建模、驗證軟件質(zhì)量和控制軟件變更。軟件開發(fā)過程以體系結(jié)構為核心、按照高級抽象宏觀指導下,通過領域建模、主題業(yè)務分解、功能任務確定和過程實現(xiàn)的層次建模方法完善最佳實踐的過程;基于體系結(jié)構為核心的、適應性和動態(tài)擴展方便的組件集成的方式,增量、迭代式軟件開發(fā)組織過程;迫切需要通過設計流程、技術、方法和人員等各個有機結(jié)合才能實現(xiàn)健壯的需求管理、項目計劃、項目跟蹤、質(zhì)量保證和業(yè)務擴展應用,通過組件集成降低軟件工程總體的代價;因此軟件開發(fā)過程的也應是為完成某項任務時最高效和有效的方式,并且是基于一段時間內(nèi)被大量人員檢驗的可重復過程。而能力成熟度模型(CMM)的核心是把軟件開發(fā)視為一個過程,并根據(jù)這一原則對軟件開發(fā)和維護過程進行監(jiān)控和研究。CMM是一種用于評價軟件承包能力以改善軟件質(zhì)量的方法,側(cè)重于軟件開發(fā)過程的管理及工程能力的提高與評估。其假設是:只要集中精力持續(xù)努力去建立有效的軟件工程過程的基礎結(jié)構,不斷進行管理的實踐和過程的改進,就可以克服軟件生產(chǎn)中的困難。綜合現(xiàn)代研究理論,考慮軟件開發(fā)過程的復雜化及因素的多變性,要使風險降為最低,結(jié)合實踐過程,我們應當關注軟件的設計目標、軟件開發(fā)的技術影響因素、軟件開發(fā)的成效性和其他與問題領域相關的目標,實行項目實施前控制,項目實施過程控制,和項目完成后的后期控制。具體的采取的步驟如下:
(一)確立軟件開發(fā)思想,并建立與目標相適應的標準,做出具體的規(guī)劃。目前國內(nèi)對軟件管理工程存在的最大問題是認識不足。做好管理,消弭隱患,協(xié)同處理,實際上是一把手工程,需要高層管理人員的足夠重視。確立了正確的指導思想,就要根據(jù)企業(yè)的環(huán)境、目標、現(xiàn)行系統(tǒng)的狀況進行初步調(diào)查,明確現(xiàn)行系統(tǒng)存在的問題,根據(jù)需要與可能,提出擬建新系統(tǒng)的備選方案,對這些方案進行可行性分析,寫出可行性項目建議書。制定出與之相適應的過程模型和標準,考慮影響開發(fā)的主客觀因素,安排好開發(fā)的每一個步驟。
(二)軟件開發(fā)過程的人員職責分工明確。在實踐中,應該基于軟件過程的人員、問題和過程,將三者基于主題業(yè)務特征、人員能力和角色職責、軟件過程任務,量化授權資源、責任和里程碑責任人。
(三)進行必要的系統(tǒng)分析和設計。在可行性研究的基礎上,對現(xiàn)行系統(tǒng)進行詳細調(diào)查和全面分析,描述現(xiàn)行系統(tǒng)的業(yè)務流程,指出現(xiàn)行系統(tǒng)的局限性和不足之處,提出修改方案,確定新系統(tǒng)的目標和邏輯功能要求。按照操作簡便、控制易行和實用性強的原則,具體設計實現(xiàn)邏輯模型的技術方案,包括概念設計、評估與選擇方案和詳細設計等。
(四)采取有效的方法,進行必要的測試。在軟件工程技術中,控制復雜性的基本手段是分解與抽象。對于復雜的問題,我們有必要將其層層分解,采用多種方法,從編寫代碼開始,根據(jù)開發(fā)進度和開發(fā)計劃等來決定什么時候進行測試。在每一個獨立的模塊完成后,可以進行單個模塊的測試,重點是測試功能點完成情況。界面問題也可以適當提出來等有時間再修改。開發(fā)完一個模塊就測一個模塊,在這個過程中不停地做集成測試,最后還要系統(tǒng)測試。
(五)系統(tǒng)的運行與維護,評價質(zhì)量與效益。系統(tǒng)投入運行后,需要經(jīng)常進行維護,記錄系統(tǒng)的運行情況,根據(jù)一定的標準對系統(tǒng)進行修改,評價系統(tǒng)的工作質(zhì)量和經(jīng)濟效益。對于系統(tǒng)開發(fā)的過程中,每個階段有其獨立的任務和結(jié)果,使用規(guī)定的方法和工具,編制出階段文檔,前一階段是后一階段的基礎和指導,只有完成了前一階段的任務,才能進入下一階段,不能超越。每個階段完成后,都要進行復查。
三、結(jié)束語
針對于我國對中小型軟件的開發(fā)與運用的現(xiàn)狀,必須從軟件開發(fā)過程組織與控制上來降低風險,節(jié)約成本,樹立科學的思想來進行規(guī)劃和指導,采取符合實際需要的客觀流程和具體的實踐步驟,保證在軟件開發(fā)過程中有符合軟件工程的原則和方法作為實踐指導。因此在開發(fā)過程中,軟件風險、決策選擇和軟件目標的建模方法等需要進一步考慮,重點解決是保證快速、高效、高質(zhì)量和低代價的目標下,依據(jù)客戶需求,選擇和運用較好的開發(fā)方法活著結(jié)合使用方法,如結(jié)構化系統(tǒng)開發(fā)方法、原型化方法、面向?qū)ο蠓ǖ龋浞掷酶鞣N開發(fā)工具,提高軟件開發(fā)的成功率。