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