精確軟件開發(fā)研討及應(yīng)用論文
簡而言之,軟件開發(fā)過程主要體現(xiàn)為軟件開發(fā)的工程化,主要是指把軟件開發(fā)視為完整的系統(tǒng)性的工程項目,將工程項目領(lǐng)域當中常用的管理方法、處理流程技術(shù)等運用到軟件開發(fā)中去!澳繕恕、“過程”與“原則”是軟件工程(SoftwareEngineering)的基本框架構(gòu)架構(gòu)成,其中的軟件開發(fā)“過程”一些列的步驟,通過這些步驟,軟件開發(fā)人員能夠最終開發(fā)出滿足預期要求的軟件產(chǎn)品。一般而言,軟件工程的過程主要包括以下幾個流程:開發(fā)→運作→維護。這三個流程基本上已經(jīng)完全涵蓋了軟件開發(fā)過程必需的需求活動、設(shè)計活動、實現(xiàn)活動、確認活動以及維護活動。其中,(1)需求活動主要兩個方面,即問題分析與需求分析,這兩者的關(guān)系是,問題分析可以得到需求定義,而需求分析則能夠產(chǎn)生功能規(guī)約。(2)設(shè)計活動通常由整體性設(shè)計與詳細設(shè)計兩個部分構(gòu)成。前者的主要目標是構(gòu)建軟件系統(tǒng)的框架結(jié)構(gòu),而后者的主要內(nèi)容是系統(tǒng)的模塊內(nèi)容(包括數(shù)據(jù)結(jié)構(gòu)說明、加工描述等等)。(3)實現(xiàn)活動的主要目標是實現(xiàn)設(shè)計結(jié)果向具有執(zhí)行能力的代碼的順利轉(zhuǎn)換。(4)確認活動需要整個軟件開發(fā)過程中進行體現(xiàn),其主要目標就是確保客戶的要求能夠得到滿足。(5)維護過程中主要是指軟件開發(fā)、使用過程當中的調(diào)整、完善以及修改等等。筆者將軟件開發(fā)過程中的若干構(gòu)成要素進行了精確化處理(即精確軟件開發(fā)過程),明確劃分了軟件開發(fā)生命周期的不同階段。下文就精確軟件開發(fā)過程的相關(guān)問題進行了分析和探討。
一、精確軟件開發(fā)過程概述
相對于精確軟件開發(fā)過程,統(tǒng)一軟件開發(fā)過程(RationalUnifiedProcess,RUP)中存在著諸多的不足與弊端。所謂的統(tǒng)一軟件開發(fā)過程(RUP)主要是指以網(wǎng)絡(luò)基礎(chǔ)、面向?qū)ο蟮某绦蜷_發(fā)方法論,它就好像一個在線的指導人員,能夠為全部層級、所有方面的軟件程序開發(fā)提供開發(fā)模板、方針建議以及案例支持等等。統(tǒng)一軟件開發(fā)過程(RUP)擁有著一個十分完整的框架結(jié)構(gòu),在該框架結(jié)構(gòu)下,技術(shù)、實踐等面向過程的方面以及代碼、模型、文檔等其它開發(fā)組件均被囊括其中。但是統(tǒng)一軟件開發(fā)過程(RUP)的不足也是顯而易見的,筆者在深入分析研究的基礎(chǔ)上,以統(tǒng)一軟件開發(fā)過程(RUP)為基礎(chǔ),給出了一種相對更加高效、更加可行的精確軟件開發(fā)過程。精確軟件開發(fā)過程的終極目標就是彌補統(tǒng)一軟件開發(fā)過程(RUP)的不足,通過科學、系統(tǒng)以及有計劃的指導,提高軟件開發(fā)的效率、可行性尤其是成功率,能夠為中小型軟件系統(tǒng)的開發(fā)提供必要的扶持和幫助。精確軟件開發(fā)過程的基本思想主要體現(xiàn)在以下幾個方面:
第一,合理簡化使其更具針對性。統(tǒng)一軟件開發(fā)過程(RUP)的主要面向?qū)ο笫悄切┏R?guī)性的絕大多數(shù)的軟件系統(tǒng)開發(fā),因此,在針對性方面顯得不足,沒有能力可以根據(jù)實際的問題給出具有很強針對性的軟件開發(fā)設(shè)計方案。尤其是那些開發(fā)數(shù)量與日俱增的中小型軟件系統(tǒng),應(yīng)用統(tǒng)一軟件開發(fā)過程(RUP)則會使得整個開發(fā)過程顯得啰嗦、累贅和臃腫,軟件設(shè)計人員除了要進行軟件設(shè)計活動之外,還需要有效處理統(tǒng)一軟件開發(fā)過程(RUP)天生的不足,增加了軟件開發(fā)人員的工作壓力。而精確軟件開發(fā)過程的基本思想則采取了與統(tǒng)一軟件開發(fā)過程(RUP)的面面俱到截然相反的理念,即“分割簡化、細致明確”。具體而言,就是將軟件開發(fā)過程的復雜性問題進行合理劃分,分析并探討相對簡單的部分,明確這些簡單部分之后進行設(shè)計活動和實現(xiàn)活動。
由于精確軟件開發(fā)過程來源于眾多的中小型軟件系統(tǒng)的設(shè)計實踐,因此,它在有效解決實際問題不僅高效,而且極具針對性和簡化性。這些特點使得不論是軟件開發(fā)人員還是軟件工程管理人員都能夠比較容易地接受精確軟件開發(fā)過程,獲得良好的執(zhí)行效果。
第二,能夠?qū)崿F(xiàn)軟件開發(fā)支持的最大化。在軟件開發(fā)的過程中,存在著諸多的不確定性因素,例如軟件設(shè)計人員對于業(yè)務(wù)理解的偏差、系統(tǒng)用戶對于業(yè)務(wù)的變更和微調(diào)等,統(tǒng)一軟件開發(fā)過程(RUP)很難進行有效地應(yīng)對,而精確軟件開發(fā)過程則能夠很好地解決軟件系統(tǒng)在開發(fā)過程中出現(xiàn)的各種不確定性因素。這主要是由于精確軟件開發(fā)過程當中,軟件系統(tǒng)開發(fā)團隊的人員構(gòu)成與統(tǒng)一軟件開發(fā)過程(RUP)團隊存在著較大的差異,前者不僅擁有軟件系統(tǒng)開發(fā)領(lǐng)域的專業(yè)技術(shù)人員,更有用戶業(yè)務(wù)領(lǐng)域的專家。因此,精確軟件開發(fā)過程的軟件系統(tǒng)設(shè)計團隊能夠在開發(fā)的整個過程中與用戶進行直接、沒有偏差的交流,及時發(fā)生客戶對于業(yè)務(wù)的新要求、新變化,相應(yīng)地,客戶也能夠在交流過程中了解軟件系統(tǒng)開發(fā)的具體進程,并根據(jù)軟件系統(tǒng)開發(fā)團隊的要求為軟件系統(tǒng)開發(fā)提供最大的支持和協(xié)助。
第三,優(yōu)化合理的軟件系統(tǒng)開發(fā)過程。對于統(tǒng)一軟件開發(fā)過程(RUP)而言,它的過程一般包括以下幾個方面:計劃過程、需求分析過程、設(shè)計過程、編碼過程、測試過程以及運行維護過程。其中,統(tǒng)一軟件開發(fā)過程(RUP)的設(shè)計過程要比精確軟件開發(fā)過程(該過程的設(shè)計過程主要包括整體性設(shè)計過程和詳細設(shè)計過程)籠統(tǒng)得多;而統(tǒng)一軟件開發(fā)過程(RUP)的測試過程中主要包括兩個方面,即開發(fā)人員的測試過程和用戶的測試過程,且開發(fā)人員的測試過程密切聯(lián)系著編碼過程;同時,測試過程之后直接進入到運行過程也缺乏合理性,這兩者之間應(yīng)該增加“試運行過程”,即保持“測試過程→試運行過程→運行過程”的順序,經(jīng)過試運行過程證明系統(tǒng)具有良好的穩(wěn)定性之后再進入到正式的運行維護過程中。有鑒于此,精確軟件開發(fā)過程對軟件系統(tǒng)開發(fā)過程進行了合理化與優(yōu)化處理,將其劃分為以下七個方面,即需求定義過程、外部設(shè)計過程、內(nèi)部設(shè)計過程、編碼測試過程、聯(lián)合測試過程、系統(tǒng)試運行過程、系統(tǒng)初運行過程。其中,“外部設(shè)計過程”和“內(nèi)部設(shè)計過程”同屬于大的設(shè)計過程,“聯(lián)合測試過程”則合并了編碼和開發(fā)人員的單體測試,單獨增加了“系統(tǒng)試運行過程”這一個重要環(huán)節(jié)。正是由于精確軟件開發(fā)過程對軟件系統(tǒng)開發(fā)過程進行了合理化與優(yōu)化處理,使得軟件工程管理人員能夠更加有效管理和控制軟件系統(tǒng)開發(fā)的進程。同時需要說明的是,精確軟件開發(fā)過程在每一個開發(fā)環(huán)節(jié)當中均有開發(fā)進度文檔,該文檔的主要作用就是用來進行階段性任務(wù)的明確、任務(wù)完成人員和完成時間的嚴格定義,借助于開發(fā)進度文檔,徹底實現(xiàn)了軟件系統(tǒng)開發(fā)進程的精確化管理和控制。
第四,基本思想概述。通常以上三個方面的論述我們知道,精確軟件開發(fā)過程是建立在統(tǒng)一軟件開發(fā)過程(RUP)的基礎(chǔ)之上的,并充分融入了CMM(CapabilityMaturityModelforSoftware,能力成熟度模型)理念,是一種具有很強針對性的軟件開發(fā)過程。所以,精確軟件開發(fā)過程中對中小型的B/S系統(tǒng)及其類似軟件系統(tǒng)的開發(fā)過程具有非常好的適應(yīng)性。精確軟件開發(fā)過程的基本思想可以概述為以下幾個方面:
(1)過程的'細化分割。精確軟件開發(fā)過程實現(xiàn)了對復雜問題的細化分割,將其劃分成為多個簡單的問題進行分析處理,不論是系統(tǒng)開發(fā)過程還是軟件工程管理均更容易;
。2)軟件開發(fā)團隊當中增加了新成員——業(yè)務(wù)領(lǐng)域?qū)<,他的階段性介入對于增強整個軟件系統(tǒng)開發(fā)團隊業(yè)務(wù)能力方面是不言而喻的,提高了發(fā)現(xiàn)不合理業(yè)務(wù)的及時性,并能夠給出專業(yè)化的解決方案,有效解決了軟件系統(tǒng)開發(fā)資源;
(3)優(yōu)化合理的軟件系統(tǒng)開發(fā)過程,包括需求定義過程、外部設(shè)計過程、內(nèi)部設(shè)計過程、編碼測試過程、聯(lián)合測試過程、系統(tǒng)試運行過程、系統(tǒng)初運行過程等七個過程,更加科學合理。精確軟件開發(fā)過程要求計劃具有非常高的細致程度,例如,以周為單位進行計劃的制定,以天為單位確定開發(fā)計劃,以小時為單位明確測試計劃,等等。總體而言,精確軟件開發(fā)過程能夠為軟件開發(fā)質(zhì)量和開發(fā)進度提供更可靠的保證,對于軟件工程水平較低的國內(nèi)現(xiàn)狀而言,其積極作用還是非常顯著的。
二、基于精確軟件開發(fā)過程的X系統(tǒng)開發(fā)實例
某企業(yè)需要開發(fā)一套物流中心倉庫管理系統(tǒng),要求對倉庫進行嚴格的控制,即對倉庫進行精確的入/出庫管理,提供在庫量的實時監(jiān)控,并且為財務(wù)用戶提供準確的入/出庫數(shù)據(jù)以及相關(guān)的財務(wù)數(shù)據(jù)。需求定義。在立項初期,首先確立系統(tǒng)開發(fā)的對應(yīng)體制,包括開發(fā)商、用戶系統(tǒng)課負責人、用戶業(yè)務(wù)負責人。在開發(fā)商方面,有項目經(jīng)理,項目組、開發(fā)人員以及技術(shù)支持人員。項目經(jīng)理主要負責項目整體進度的把握已經(jīng)項目合同的相關(guān)事宜。項目組長則全面的管理項目的開發(fā)進展,對各個開發(fā)階段進行全程的跟蹤,并且對項目中的相關(guān)技術(shù)方面的問題做出決策,還包括了與用戶系統(tǒng)負責人進行聯(lián)絡(luò)。開發(fā)人員主要負責系統(tǒng)需求的獲取,系統(tǒng)設(shè)計以及系統(tǒng)實現(xiàn)。在用戶方面,系統(tǒng)負責人主要起聯(lián)絡(luò)開發(fā)商和用戶的作用,協(xié)助開發(fā)商和用戶對業(yè)務(wù)需求進行溝通。另外,還負責向系統(tǒng)課的領(lǐng)導匯報系統(tǒng)的開發(fā)進度情況以及開發(fā)遇到的重大課題。業(yè)務(wù)負責人主要由實際工作的操作者構(gòu)成,是系統(tǒng)功能的提出者以及系統(tǒng)測試和確認的人員。外部設(shè)計。在需求定義階段,己經(jīng)對系統(tǒng)的功能需求進行了詳細的討論與確認,系統(tǒng)整體上可以分為8個大的功能模塊,主要包括系統(tǒng)管理、Maste管理、集裝箱堆場、倉庫管理、溢出倉庫管理、工廠側(cè)管理、財務(wù)用戶部分和Housekeeping。在每個人功能模塊當中又劃分了若干了個功能畫面,分別對用戶提出的需求進行實現(xiàn)。內(nèi)部設(shè)計。詳細描述了系統(tǒng)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),定義了各個數(shù)據(jù)表以及表中的數(shù)據(jù)字段的名稱、類型、長度、含義等相關(guān)信息。系統(tǒng)實現(xiàn)。開發(fā)系統(tǒng)環(huán)境:MicrosoftWindowsServer2003SP2;開發(fā)平臺:MicrosoftVisualStudio2003;開發(fā)語言:,C#,JavaScript;數(shù)據(jù)庫服務(wù):MicrosoftSQLServer2005;數(shù)據(jù)庫客戶端:Oracle9.2。
三、結(jié)束語
該系統(tǒng)的開發(fā)過程,完全按照精確軟件開發(fā)過程的要求,明確系統(tǒng)的開發(fā)目的和預期目標,嚴格對開發(fā)過程中的各個階段進行劃分,完成必需的相關(guān)文檔。與之前的項目開發(fā)相比,體現(xiàn)出較多的優(yōu)勢,例如,項目過程管理精確、階段任務(wù)完成良好,項目開發(fā)工數(shù)降低、節(jié)省開發(fā)成本,項目完成質(zhì)量較好,項目設(shè)計開發(fā)文檔齊備、維護方便,等等。