臧影
(云南科技信息職業(yè)學(xué)院,云南 昆明 650224)
軟件開發(fā)方法經(jīng)歷了從結(jié)構(gòu)化程序設(shè)計(jì)到面向?qū)ο笤O(shè)計(jì)、分布式對象/系統(tǒng)設(shè)計(jì)等方法的演變過程,近年又產(chǎn)生了基于組件的開發(fā)方法。組件是可以插入系統(tǒng)中的對象?;诮M件的開發(fā)(CBD)是一種軟件開發(fā)方法,采用這種方法開發(fā),生命周期中的所有問題和階段,包括需求分析、體系結(jié)構(gòu)、設(shè)計(jì)、構(gòu)建、測試、部署、支持技術(shù)和項(xiàng)目管理,都是基于組件進(jìn)行的。
然而,現(xiàn)有的軟件工程體系顛倒了人與軟件開發(fā)過程的主次關(guān)系,放任軟件缺陷的引入與傳播,盲目進(jìn)行軟件的修改維護(hù),分不清軟件工程的主要和次要矛盾,導(dǎo)致軟件產(chǎn)品不完整、軟件開發(fā)效率低、軟件質(zhì)量差、開發(fā)費(fèi)用高昂。造成這些問題的根源在于,現(xiàn)有的軟件工程體系都是采用了線性增量單向迭代模型,都是線性思維和簡單科學(xué)的產(chǎn)物,而軟件是由開發(fā)團(tuán)隊(duì)和客戶這些非線性的人組成的復(fù)雜系統(tǒng)所創(chuàng)造的邏輯思維的產(chǎn)物,其本身也是一個(gè)復(fù)雜的、非線性的系統(tǒng),兩者存在根本性的矛盾,這在很大程度上削弱了基于組件開發(fā)方法帶給軟件企業(yè)的好處[1]。
因此,為了最大限度地發(fā)揮基于組件開發(fā)方法的優(yōu)點(diǎn),必須摒棄傳統(tǒng)的線性軟件工程體系,取而代之以非線性、整體性、相關(guān)性、關(guān)鍵性、層次性、目的性、開放性、動(dòng)態(tài)性、適應(yīng)性等原則和綜合設(shè)計(jì)、增量集成、雙向迭代、主動(dòng)防錯(cuò)、全程評(píng)審、協(xié)同開發(fā)、信息共享、實(shí)時(shí)溝通等擴(kuò)展原則的非線性軟件工程體系[1]。
雖然非線性軟件工程體系具有諸多優(yōu)點(diǎn),但是其實(shí)現(xiàn)需要一定的軟件開發(fā)平臺(tái)支持。現(xiàn)在,國內(nèi)外已有一些軟件企業(yè)在這個(gè)領(lǐng)域進(jìn)行了有益的探索,例如上海艾賽軟件科技有限公司所開發(fā)的艾賽銀彈Panorama++軟件開發(fā)、測試、維護(hù)支撐平臺(tái)就是其中的代表。不過,這類軟件開發(fā)平臺(tái)產(chǎn)品的價(jià)格不菲,通常一套完整的產(chǎn)品需要200~300萬元人民幣,這對于經(jīng)營規(guī)模小、資金匱乏、利潤空間狹窄、管理水平低的廣大中小型軟件公司來說,無疑并非適宜的選擇。
針對中小型軟件企業(yè)的現(xiàn)狀,作者認(rèn)為企業(yè)可以通過組織結(jié)構(gòu)再造和開發(fā)流程再造,利用現(xiàn)有的軟件工具,同樣可以在相當(dāng)高的程度實(shí)現(xiàn)非線性軟件工程體系核心思想,達(dá)到較好的效果。
針對非線性軟件工程體系多軌并行的特點(diǎn),軟件企業(yè)應(yīng)從原有的職能型組織結(jié)構(gòu)轉(zhuǎn)化為面向客戶的矩陣型組織結(jié)構(gòu)。
如圖1所示,企業(yè)將客戶的每個(gè)或每組需求各視為一個(gè)項(xiàng)目,為每個(gè)項(xiàng)目設(shè)立項(xiàng)目經(jīng)理,并與各個(gè)職能部門的特定員工組成相應(yīng)的項(xiàng)目組。為了進(jìn)一步體現(xiàn)非線性軟件工程體系的整體性和開放性原則,項(xiàng)目組必須與客戶緊密聯(lián)系,并將相應(yīng)的客戶人員納入到項(xiàng)目團(tuán)隊(duì),從而構(gòu)成面向客戶的矩陣型組織。
面向客戶的矩陣型組織結(jié)構(gòu)為在軟件工程中體現(xiàn)非線性軟件工程體系的整體性、開放性、動(dòng)態(tài)性、綜合設(shè)計(jì)、雙向迭代、全程評(píng)審、協(xié)同開發(fā)、信息共享、實(shí)時(shí)溝通等原則思想,提供了組織基礎(chǔ)和保證。
非線性軟件工程體系的核心思想是強(qiáng)調(diào)雙向迭代、增量集成、全程評(píng)審、協(xié)同開發(fā)。軟件企業(yè)應(yīng)調(diào)整原有職能型組織結(jié)構(gòu)基礎(chǔ)上的工作流程,在新的面向客戶的矩陣型組織結(jié)構(gòu)基礎(chǔ)上,構(gòu)建實(shí)現(xiàn)上述思想的基于組件的非線性軟件開發(fā)流程。
如圖2所示,基于組件的非線性軟件開發(fā)流程由軟件企業(yè)開發(fā)部門的分析構(gòu)建組、組件開發(fā)組、品質(zhì)保障組、組件管理組的相關(guān)成員及相關(guān)用戶組成。其中,根據(jù)企業(yè)軟件產(chǎn)品的構(gòu)成,可以設(shè)立針對不同組件的組件開發(fā)組。
用戶提出對軟件產(chǎn)品的需求后,組件管理組首先在企業(yè)內(nèi)、外的組件庫中尋找可用的組件。如果沒有,將由分析構(gòu)建組牽頭,協(xié)同組件n開發(fā)組和用戶共同對需求進(jìn)行必要的分析,建立相應(yīng)的模型,制訂規(guī)約,并產(chǎn)生需求說明文檔。
品質(zhì)保障組對模型和規(guī)約進(jìn)行審核。如果審核未能通過,需要完善需求分析;如果審核通過,將由分析構(gòu)建組和組件n開發(fā)組共同進(jìn)行組件n的構(gòu)架設(shè)計(jì),即總體設(shè)計(jì),并產(chǎn)生組件構(gòu)架設(shè)計(jì)文檔。
品質(zhì)保障組對組件n的構(gòu)架設(shè)計(jì)進(jìn)行審核。如果審核未能通過,需要根據(jù)未能通過的原因,追溯到組件n的架構(gòu)設(shè)計(jì),甚至需求分析階段,進(jìn)行必要的修改和完善工作;如果組件n的構(gòu)架設(shè)計(jì)審核通過,開發(fā)工作將逐步進(jìn)行組件 n詳細(xì)設(shè)計(jì)(組件 n開發(fā)組完成)、編寫程序和單元測試 (組件n開發(fā)組和品質(zhì)保障組協(xié)同完成)、組件n測試 (組件n開發(fā)組和品質(zhì)保障組協(xié)同完成)、集成測試(組件 n開發(fā)組、品質(zhì)保障組和組件管理組協(xié)同完成),并在各階段產(chǎn)生相應(yīng)的文檔[6]。在每個(gè)階段中,階段性成果都要經(jīng)過品質(zhì)保障組的審核通過,開發(fā)工作才能進(jìn)入下一階段。如果審核未能通過,開發(fā)工作都將依據(jù)造成錯(cuò)誤的原因追溯到以前的相應(yīng)階段,并進(jìn)行改進(jìn)和完善。
如果針對用戶的需求,組件管理組在企業(yè)內(nèi)、外組件庫中找到了可用的組件,軟件開發(fā)工作隨即進(jìn)入組件測試工作階段。
針對用戶需求的各個(gè)需要?jiǎng)?chuàng)建或完善的組件的開發(fā)工作并行推進(jìn)并互為獨(dú)立的開發(fā)項(xiàng)目。最后,對所有的組件一起進(jìn)行集成測試。
當(dāng)系統(tǒng)集成測試工作順利通過審核后,組件管理組將對組件及其附屬文檔進(jìn)行歸檔,以便日后復(fù)用或進(jìn)一步完善。
基于組件的非線性軟件開發(fā)過程,不僅具有基于組件開發(fā)的軟件復(fù)用、部署簡單等優(yōu)點(diǎn)[7],同時(shí)也通過企業(yè)組織結(jié)構(gòu)再造和軟件開發(fā)流程再造實(shí)現(xiàn)了非線性軟件工程體系的核心理念,提高了軟件開發(fā)質(zhì)量和效率,降低了開發(fā)成本,適用于中小型軟件企業(yè)的產(chǎn)品開發(fā)工作中。
[1]熊繼光.新一代軟件工程體系與實(shí)踐—基于現(xiàn)代系統(tǒng)科學(xué)與復(fù)雜性科學(xué)的非線性整體軟件工程體系及其應(yīng)用[M].北京:清華大學(xué)出版社,2008.
[2]Jay Xiong,Jonathan Xiong.The DP&T System:The defect prevention and traceability-driven system for software engineering[R].The 2006 International Conference on Software Engineering Research&Practice,2006.
[3]Jay Xiong,Jonathan Xiong.The DP&T model:the defect prevention and traceability-driven model for software engineering[R].The 2006 International Conference on Software Engineering Research&Practice,2006.
[4]Jay Xiong,Jonathan Xiong.The DP&T methodology:the defect prevention and traceability-driven methodology for software engineering[R].The 2006 International Conference on Software Engineering Research&Practice,2006.
[5]李偉波,劉永祥,王慶春.軟件工程[M].武漢:武漢大學(xué)出版社,2006
[6](美)PRESSMAN R S.軟件工程——實(shí)踐者的研究方法(第 5版)[M].梅宏,譯.北京:機(jī)械工業(yè)出版社,2005.
[7](美)HERZUM P,SIMS O.基于組件的企業(yè)級(jí)開發(fā)[M].韓柯,等譯.北京:機(jī)械工業(yè)出版社,2005.
網(wǎng)絡(luò)安全與數(shù)據(jù)管理2012年16期