陳文楷
(江漢大學(xué)數(shù)學(xué)與計算機(jī)科學(xué)學(xué)院 湖北 武漢 430056)
近年來,隨著德國工業(yè)4.0、中國制造2025以及“一帶一路”等發(fā)展戰(zhàn)略的提出,軟件化、信息化、數(shù)字化和智能化的工程發(fā)展思想正不斷滲透到農(nóng)業(yè)、航空航天、生產(chǎn)制造等各個領(lǐng)域。軟件工程作為計算機(jī)領(lǐng)域的一個重點(diǎn)學(xué)科,在社會生產(chǎn)的各個領(lǐng)域發(fā)揮著不可替代的作用。因此,本文在深入分析軟件工程發(fā)展現(xiàn)狀的基礎(chǔ)上,提出了目前軟件工程存在的問題,并進(jìn)一步分析了軟件工程的發(fā)展趨勢。
自上世紀(jì)60年底開始,計算機(jī)科學(xué)領(lǐng)域的研究人員開始意識到“軟件危機(jī)(Software Crisis)”,并努力探究應(yīng)對的技術(shù)和方法?!败浖こ獭币辉~最早是于1968年召開的一次國際會議上提出的,目的是鼓勵相關(guān)科研人員努力探究“軟件危機(jī)”的應(yīng)對方法。軟件工程的定義,許多研究學(xué)者已經(jīng)給出,總結(jié)下來可以得出:軟件工程,就是要運(yùn)用科學(xué)的技術(shù)和方法設(shè)計并開發(fā)計算機(jī)軟件程序,并對其進(jìn)行監(jiān)測、維護(hù)和修復(fù)的一系列理論與方法的集合[1]。
20世紀(jì)70年代初期,方法學(xué)成為軟件工程研究的重點(diǎn)內(nèi)容,經(jīng)典的“瀑布模型”就是此時提出的;之后,相關(guān)學(xué)者圍繞“瀑布模型”進(jìn)行了一系列更加深入的研究與應(yīng)用[2]。然而,“瀑布模型”雖然有管理嚴(yán)格、能夠確保軟件的性能等優(yōu)點(diǎn),但仍存在一些不足,如過分依賴于軟件開發(fā)前期的需求分析,難以滿足多變的用戶需求等。見圖1。
圖1 采用瀑布模型的軟件研發(fā)過程
到70年代后期,軟件工程研究的重點(diǎn)開始轉(zhuǎn)向研究涵蓋整個軟件生命周期的軟件工程環(huán)境,典型的工程環(huán)境為計算機(jī)輔助軟件工程環(huán)境(Computer Aided Software Engineering,CASE)[3]。80年代后期開始,研究的重點(diǎn)又轉(zhuǎn)向了對軟件過程的研究,主要包括三個方面:過程模型、建模技術(shù)和過程成熟度評估。
近年來,隨著科學(xué)技術(shù)的不斷發(fā)展以及社會發(fā)展的本質(zhì)需求,軟件工程逐漸走向了智能化、信息化、集成化的道路,并出現(xiàn)了如極端編程模型(Extreme Programming Model,XP模型)[4]、基于構(gòu)件的模型等新型的軟件工程模型。這些模型通過改善模型的邏輯流程、提高代碼的重用性等途徑進(jìn)而提高軟件的研發(fā)效率和質(zhì)量。
我國軟件工程的發(fā)展起步較晚,但隨著多年的研究與發(fā)展,也取得了一定的進(jìn)步,并在短短幾十年的時間里獲取了多個屬于自己的軟件工程技術(shù)與方法,如XYZ系統(tǒng)、B-45系統(tǒng)等[5]。雖然經(jīng)過了長期的發(fā)展與沉淀,但目前軟件工程仍需要相關(guān)研究人員不斷探究與改進(jìn)。
目前計算機(jī)軟件工程的發(fā)展仍存在如下的問題,包括軟件危機(jī)依然存在、管理體制不完善、人才培養(yǎng)方式不合理等。
自軟件危機(jī)顯露至今還依然存在。軟件危機(jī)的產(chǎn)生是由于在軟件研發(fā)過程中,從用戶需求分析開始,由于對需求表達(dá)和描述的不貼切,為軟件開發(fā)過程中出現(xiàn)一些錯誤和漏洞埋下隱患;其次,軟件的研發(fā)者與用戶看待軟件的角度有所差別,對軟件的期望值也不盡相同。因此,軟件的開發(fā)人員應(yīng)該加強(qiáng)與用戶的溝通,盡可能充分理解用戶的需求,以確保高質(zhì)量完成開發(fā)任務(wù)。
計算機(jī)軟件的開發(fā)往往是一個龐大的工程,需要軟件開發(fā)團(tuán)隊(duì)擁有一套完善的管理體制。項(xiàng)目經(jīng)理一般在軟件研發(fā)過程中充當(dāng)著計劃制定、任務(wù)監(jiān)督等重要的角色。目前,大多數(shù)的軟件公司中,項(xiàng)目經(jīng)理往往是有軟件開發(fā)人員晉升的,擁有豐富的軟件開發(fā)經(jīng)驗(yàn),但在項(xiàng)目管理能力往往稍顯不足;另一方面,項(xiàng)目經(jīng)理的管理素質(zhì)和能力較強(qiáng),但專業(yè)知識和技術(shù)不夠過硬;如何做到技術(shù)和管理素質(zhì)兩者兼顧,是一個不小的難題。
目前多數(shù)高校軟件工程人才培養(yǎng)方式存在諸多不合理之處,造成了培養(yǎng)出來的學(xué)生難以滿足軟件工程的需求。主要表現(xiàn)在一下幾個方面[6]:首先,高校往往只盲目的高層次,造成了軟件工程領(lǐng)域的人才結(jié)構(gòu)分布不合理,某些層次的人才短缺;其次,高校存在軟件工程專業(yè)知識體系安排不合理、課程陳舊、不能與時俱進(jìn)等現(xiàn)象;最后,高校培養(yǎng)軟件工程這種實(shí)用性較高的專業(yè)人才的過程中,缺少對學(xué)生的開發(fā)經(jīng)驗(yàn)以及工程素質(zhì)等的培養(yǎng)。
世界經(jīng)濟(jì)的全球化發(fā)展帶動了軟件工程行業(yè)的全球化。從軟件的需求分析到概念設(shè)計,從架構(gòu)設(shè)計到詳細(xì)設(shè)計,從編碼到測試,從交付使用到售后支持,整個軟件生命周期的各個階段被分配到各個國家的不同子公司甚至外包給其他公司進(jìn)行,能夠有效劃分各個公司的職能,充分的利用不同國家的勞動資源和科學(xué)技術(shù)資源,讓專業(yè)的團(tuán)隊(duì)做專業(yè)的事,極大的提高了軟件研發(fā)的效率,進(jìn)而提升用戶的滿意度。因此,全球化已成為軟件工程發(fā)展必然趨勢。
軟件工程發(fā)展全球化的發(fā)展趨勢形成的一個必然條件就是軟件工程的開發(fā)性。所謂的開發(fā)性,包含三個方面:開發(fā)性標(biāo)準(zhǔn)、開發(fā)性框架和開源軟件。一個行業(yè)的標(biāo)準(zhǔn)是行業(yè)內(nèi)必須遵循的制度,軟件工程行業(yè)相關(guān)標(biāo)準(zhǔn)的開放,能夠有效提高不同軟件之間的交互性,方便軟件不同部分的集成;開發(fā)性框架為不同團(tuán)隊(duì)間能夠分享有效的軟件開發(fā)架構(gòu)提供了可能;開源軟件為軟件開發(fā)人員提供了一個難得的學(xué)習(xí)資源,對軟件開源事業(yè)的發(fā)展起到了一定的鼓勵作用。
模塊化的軟件工程設(shè)計思想,強(qiáng)調(diào)對功能的抽象、封裝、分解以及層次化等,軟件工程行業(yè)同時也提出了面向?qū)ο蟮木幊?、面向組件的編程以及面向服務(wù)的編程等技術(shù),這些技術(shù)有效提高了對現(xiàn)有代碼、功能模塊、組件或系統(tǒng)資源的重用性,大大提高了軟件研發(fā)的效率,并能夠借助歷史開發(fā)經(jīng)驗(yàn)避免軟件研發(fā)過程中出現(xiàn)漏洞和錯誤的幾率,從而幫助企業(yè)獲取較高的業(yè)務(wù)靈活性。
隨著軟件化、信息化、數(shù)值化和智能化的工程思想的發(fā)展,軟件工程也要與時俱進(jìn),不斷提升本行業(yè)各方面發(fā)展的科學(xué)性,朝著全球化、開發(fā)性和模塊化的方向不斷發(fā)展和完善,從而更好的滿足實(shí)際社會發(fā)展的對軟件工程的需求。
[1] 陳慧敏,張瑞.軟件工程理論及其在軟件開發(fā)中的應(yīng)用研究[J].西安石油大學(xué)學(xué)報(社會科學(xué)版),2001,10(4):57-59.
[2] 郭曉嫻.淺析瀑布模型[J].福建電腦,2011,27(7):137-138.
[3] 王國軍,陳松喬.軟件工程與CASE發(fā)展綜述[J].微型機(jī)與應(yīng)用,1999(5):4-6.
[4] 潘秋菱,劉宗田.極端編程模型——新穎的軟件工程模型[J].計算機(jī)科學(xué),2000,27(12):97-100.
[5] 王章寧.淺析軟件工程的現(xiàn)狀及發(fā)展趨勢[J].軟件,2013(10):136-137.
[6] 宋海玉,李錫祚,鄭海旭,等.軟件工程專業(yè)人才培養(yǎng)的研究與實(shí)踐[J].大連民族大學(xué)學(xué)報,2008,10(5):93-96.