軟件工程的現(xiàn)狀、存在問題與發(fā)展趨勢論文_第1頁
軟件工程的現(xiàn)狀、存在問題與發(fā)展趨勢論文_第2頁
軟件工程的現(xiàn)狀、存在問題與發(fā)展趨勢論文_第3頁
軟件工程的現(xiàn)狀、存在問題與發(fā)展趨勢論文_第4頁
軟件工程的現(xiàn)狀、存在問題與發(fā)展趨勢論文_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 軟件工程的現(xiàn)狀、存在問題與發(fā)展趨勢 摘要:  軟件工程是近年來軟件領(lǐng)域出現(xiàn)的一個重要的前沿研究方向,受到了學(xué)術(shù)界和工業(yè)界的高度關(guān)注和重視,研究活躍,發(fā)展迅速。本文從軟件工程的現(xiàn)狀、存在問題與發(fā)展趨勢等方面闡述了軟件工程,同時介紹了計算模型和軟件開發(fā)本身的變化和趨勢,最后討論了自己對軟件工程的認(rèn)識。關(guān)鍵詞:軟件工程,現(xiàn)狀,發(fā)展,環(huán)境正文:軟件工程是用科學(xué)知識和技術(shù)原理來定義、開發(fā)、維護(hù)軟件的一門科學(xué),其主要思想是在軟件生產(chǎn)中用工程化的方法代替?zhèn)鹘y(tǒng)手工方法,目的是從技術(shù)和管理上采取多項(xiàng)措施,組織實(shí)施軟件工程項(xiàng)目來建造一個大型軟件系統(tǒng),并最終希望得到項(xiàng)目的成功。軟件工程涵蓋了軟

2、件生存周期的所有階段,并提供了一整套工程化的方法,來指導(dǎo)軟件人員的工作。一、軟件工程的發(fā)展現(xiàn)狀及存在問題從最早僅僅關(guān)注于軟件開發(fā)工具到現(xiàn)在,軟件行業(yè)中的巨頭們已經(jīng)在層出不窮的思想中涅槃了一回又一回。Rational 被 IBM 購并的真實(shí)原因在于 IBM 需要構(gòu)建一個完整的軟件工程體系。IBM 得到 Rational 的最大好處是在軟件工程方面, 快速地?fù)碛辛艘惶壮墒斓睦碚擉w系和實(shí)作工具。同樣,Borland 也從開發(fā)工具廠商的位置跳出來,希望構(gòu)建類似的軟件工程體系。軟件業(yè)界如今的局面,不是一些人(例如程序員或者評論家們)爭爭吵吵的結(jié)果,而是大公司們相互制衡的結(jié)果。Borland 與 IBM,

3、IBM 與 SUN,以及 SUN 與 Apple都在做著相同的事,又都有各自的算盤。他們一面打壓對手的優(yōu)勢,一面又借助對手和同盟的力量來削弱自己的劣勢或者補(bǔ)充實(shí)力。 大公司們在標(biāo)準(zhǔn)、理論、語言上的爭來奪去,未必全然出于“軟件實(shí)現(xiàn)”的考慮。對統(tǒng)一理論、統(tǒng)一工具、統(tǒng)一過程的企圖,其最終目的是在整個軟件工程體系中的全面勝出。除了軟件本質(zhì)力量的推動之外,商業(yè)因素也推動著軟件工程體系的發(fā)展。大公司們的爭奪戰(zhàn)的最終結(jié)果,已經(jīng)開始把軟件工程從原始的“自生演進(jìn)”狀態(tài),逐漸推進(jìn)到“它激發(fā)展”的狀態(tài)上了。 軟件業(yè)作為一個服務(wù)業(yè),要想得到發(fā)展,首先必須形成一個對軟件服務(wù)有迫切需要的市場。其次,這個市場中的消費(fèi)者必須

4、具備足夠的購買力。軟件的消費(fèi)群體簡單一點(diǎn),可以分為個體消費(fèi)和企業(yè)消費(fèi)。中國的企業(yè)群體,數(shù)量龐大,但是質(zhì)量不高。上規(guī)模的企業(yè)不多,因此,中國的企業(yè)對大型軟件的消費(fèi)肯定是有限的,軟件的個人消費(fèi),占了目前市場的主要一部分。因此,國內(nèi)目前能夠形成比較大規(guī)模的獨(dú)立市場的,肯定是小規(guī)模的軟件系統(tǒng)。在國外,很多中、大型企業(yè)里,軟件系統(tǒng)已經(jīng)作為企業(yè)的命脈在運(yùn)行,這些企業(yè)當(dāng)然需要長期、穩(wěn)定的軟件服務(wù)、開發(fā)體系作為保障,因此相對來說,對于軟件的功能需求就比較明確,而國內(nèi)的中小企業(yè)在運(yùn)營方面本來就把靈活多變作為生存武器,當(dāng)然不可能有比較長期的經(jīng)營計劃,更不可能運(yùn)用軟件系統(tǒng)進(jìn)行全面企業(yè)管理。這就導(dǎo)致對軟件系統(tǒng)需求的短

5、期行為,因此,他們更加希望一次性購買功能有限的軟件系統(tǒng),而不是長期連續(xù)的軟件服務(wù)。在中國,有多少人真正參與過多年以上的大型軟件開發(fā)呢?那些有多年軟件開發(fā)經(jīng)驗(yàn)的,更多的是較小的項(xiàng)目,而不是大項(xiàng)目的管理與系統(tǒng)分析。而一個好的系統(tǒng)分析師,需要的是實(shí)踐、實(shí)踐、再實(shí)踐。而在我國很少有大型的軟件項(xiàng)目,因此非常優(yōu)秀的系統(tǒng)分析師就也很少了。同時,目前我們還有的問題,就是工程師的技術(shù)水平、知識面與管理意識、管理方法同樣重要。1我們要在國外先進(jìn)的理論基礎(chǔ)上進(jìn)行實(shí)踐。我所列舉的種種事實(shí),在國內(nèi)是客觀存在的,比如說浮躁、急功近利、市場特殊性、人員素質(zhì)等等。在國外,他們搞軟件工程,應(yīng)該比國內(nèi)有好得多社會條件。因此,他們

6、的實(shí)踐方法的起點(diǎn)和目的與國內(nèi)截然不同。我不否認(rèn),國內(nèi)也有些公司具備了相當(dāng)好的軟環(huán)境,可以實(shí)施CMM、RUP等等??墒瞧毡閬碚f,絕大多數(shù)企業(yè)并不具備這樣的實(shí)力。難道這些企業(yè)就簡單的坐以待斃么? 2在企業(yè)內(nèi)實(shí)施任何長期計劃,都必須與企業(yè)的戰(zhàn)略、戰(zhàn)術(shù)高度吻合,必須能夠?yàn)槠髽I(yè)帶來利潤,才是有可能的。現(xiàn)在我們的企業(yè)面對的就是這么一個不規(guī)范的市場,急功近利的客戶,從經(jīng)營者的角度出發(fā),賺不道錢的全都沒用。因此,對于那種有現(xiàn)實(shí)利益,有效益的市場和軟件,我們應(yīng)該有一套比較科學(xué)的管理方法。 3.實(shí)施軟件工程不可能離開企業(yè)經(jīng)營管理。如果你的老板每天都答應(yīng)你明天漲工資,就是不兌現(xiàn),你還有沒有心思去RUP?,如果你每月

7、只拿1000元,然后讓你去老老實(shí)實(shí)的干活,你是不是第一想法就是炒更?第二主意就是跳槽?那時候讓你做些破解盜版謀生恐怕你都去。企業(yè)沒錢,怎么說都沒用。 4.要面對國內(nèi)市場的特殊性。一個企業(yè)要發(fā)展,首先就要學(xué)會生存,我們的企業(yè)要在不成熟的市場上,用大量不成熟的工程師做事情,這是老外不會遇到的情況。在這種環(huán)境下,我們要實(shí)現(xiàn)好的管理,好的經(jīng)營,是不是有很多特殊的地方呢? 二、軟件工程的發(fā)展?fàn)顩r和趨勢軟件工程的研究熱點(diǎn)是隨著軟件技術(shù)的發(fā)展而不斷變化的。即便在軟件工程的領(lǐng)域內(nèi),研究熱點(diǎn)也在不斷轉(zhuǎn)移。以往軟件工程一直不能像其他產(chǎn)品一樣,做到標(biāo)準(zhǔn)化,但是,隨著技術(shù)條件的不斷成熟,相應(yīng)標(biāo)準(zhǔn)的出臺,軟件人員已經(jīng)開

8、始重視這方面的工作。實(shí)際上可以將許多軟件工作分成許多部件去構(gòu)造。很有可能今后的軟件隊伍會分為兩個部分,一部分專門從事評估,另一部分專門從事集成,集成的對象是軟構(gòu)件。軟構(gòu)件的開發(fā)與運(yùn)用剛剛開始。在一些公共領(lǐng)域,例如軟件的用戶界面,通用軟構(gòu)件的使用已經(jīng)屢見不鮮。然而,對于各行各業(yè)的專業(yè)領(lǐng)域來說,領(lǐng)域構(gòu)件的開發(fā)和使用還是基本處于空白狀態(tài)。這一工作的進(jìn)行,一方面意味著各行各業(yè)對本專業(yè)領(lǐng)域內(nèi)的知識形態(tài)加以歸納整理,然后以最新的軟件形式表達(dá)出來。如果全面鋪開,就是一件規(guī)模浩大的社會工程,需要各行各業(yè)的領(lǐng)域?qū)<液蛙浖<彝献鞑拍芡瓿?。如果軟件生產(chǎn)的“構(gòu)件-集成”格局的趨勢成為現(xiàn)實(shí),各種應(yīng)用領(lǐng)域里的構(gòu)件的

9、設(shè)計與生產(chǎn)將開辟出一個十分廣闊的新天地,產(chǎn)生出巨大的市場需求,而且軟構(gòu)件的使用可以滲透到符合軟構(gòu)件標(biāo)準(zhǔn)規(guī)范的所有系統(tǒng)中,在軟件開發(fā)過程中人們開始研制和使用軟件工具,用以輔助進(jìn)行軟件項(xiàng)目管理與技術(shù)生產(chǎn),人們還將軟件生命周期各階段使用的軟件工具有機(jī)地集合成為一個整體,形成能夠連續(xù)支持軟件開發(fā)與維護(hù)全過程的集成化軟件支援環(huán)境,以期從管理和技術(shù)兩方面解決軟件危機(jī)問題。此外,人工智能與軟件工程的結(jié)合成為80年代末期活躍的研究領(lǐng)域。基于程序變換、自動生成和可重用軟件等軟件新技術(shù)研究也已取得一定的進(jìn)展,把程序設(shè)計自動化的進(jìn)程向前推進(jìn)一步。在軟件工程理論的指導(dǎo)下,發(fā)達(dá)國家已經(jīng)建立起較為完備的軟件工業(yè)化生產(chǎn)體系

10、,形成了強(qiáng)大的軟件生產(chǎn)能力 。軟件標(biāo)準(zhǔn)化與可重用性得到了工業(yè)界的高度重視,在避免重用勞動,緩解軟件危機(jī)方面起到了重要作用。 從計算模型而言,應(yīng)該來講,傳統(tǒng)的馮·諾依曼仍然被沿用;但從計算能力上來講,我們注意到了三個變化:1.CPU的運(yùn)算能力按摩爾定律快速提升;但提升單顆CPU的計算能力已經(jīng)越來越困難;2.并行運(yùn)算技術(shù)以及多核多線程技術(shù)使服務(wù)器的處理能力飛速提升;服務(wù)器的處理能力不再是瓶頸,從而造成計算能力大量向服務(wù)器端遷移,C/S結(jié)構(gòu)被無情拋棄,B/S結(jié)構(gòu)成為大勢所趨;3.互聯(lián)網(wǎng)的快速普及使得互聯(lián)計算成為可能,通過互聯(lián)網(wǎng)相連的服務(wù)器集群在服務(wù)器端提供了更強(qiáng)大的計算能力;基于

11、上述計算能力的變化,從軟件開發(fā)模式而言,我們注意到以下六個相關(guān)的趨勢:(1)由于計算能力向服務(wù)器端的快速集中,提供高并行計算能力和可用性的中間件技術(shù)被廣泛采用,甚至已經(jīng)成為構(gòu)建大型軟件系統(tǒng)的必選項(xiàng);(2)因?yàn)椴捎昧酥虚g件技術(shù),軟件開發(fā)團(tuán)隊可以更集中關(guān)注于業(yè)務(wù)邏輯,而可以將許多細(xì)節(jié)交給中間件來管理,從而大大減少了需要編寫的代碼行數(shù),也直接導(dǎo)致了軟件開發(fā)團(tuán)隊的規(guī)模變得越來越小,但角色變得越來越專業(yè)化(如了解行業(yè)的需求分析員,了解中間件技術(shù)和領(lǐng)域構(gòu)架的架構(gòu)師等);(3)計算能力的增強(qiáng),使軟件越來越易用,從而使軟件變得無處不在,需要的軟件開發(fā)人員數(shù)量急劇增長(組織形態(tài)是大量的小規(guī)模開發(fā)團(tuán)隊);在這一因

12、素以及降低成本的壓力下,開發(fā)外包變得非常普及;(4)為了使分布在互聯(lián)網(wǎng)上系統(tǒng)能夠互相協(xié)作,SOA成為一個熱點(diǎn);(5)互聯(lián)網(wǎng)的普及,將原來分散開發(fā)人員聚合在一起,只要有一個合適的基礎(chǔ)和好的框架,他們就可以開發(fā)出產(chǎn)品級的工具軟件(以Eclipse,JBoss,MySQL,Subversion為例),從而開源成為了一種趨勢;(6)B/S結(jié)構(gòu)的系統(tǒng)非常容易升級,這使得軟件交付和升級的速度大大加快了(從以年月為單位,到以周天為單位);那么在這些大的趨勢的作用下,軟件工程會如何發(fā)展呢?我覺得在未來幾年我們會看到如下的趨勢:1.需求工程,漸成熱點(diǎn):專業(yè)化的角色,日益復(fù)雜的業(yè)務(wù)創(chuàng)新,全球分布的團(tuán)隊以及互聯(lián)網(wǎng)級

13、的交付速度,這些都對需求獲取的正確性和有效性提出了更高的要求;我預(yù)計需求工程的研究和實(shí)施會成為近期的熱點(diǎn),其中Use Case技術(shù)會被更廣泛而正確的應(yīng)用,而相關(guān)工具的研發(fā)也會成為熱點(diǎn)(如IBM Rational Requirements Composer,,Ravenflow等)。用例的優(yōu)勢在于它天生是黑盒的,它用自然語言抽象了用戶和目標(biāo)系統(tǒng)的交互,避免了混入分析、設(shè)計和實(shí)現(xiàn)細(xì)節(jié),以保證用例可以被不懂具體技術(shù)的業(yè)務(wù)及測試人員所真正理解。同時,需求分析員又可以方便地通過用例分析(use case analysis)(即用分析類來試圖在理想方式下實(shí)現(xiàn)用例),將需求體系精華成分析模型。在這一過程中,

14、需求分析員可以更進(jìn)一步地完善基于用例的需求體系,而不必?fù)?dān)心分析模型會污染需求,從而實(shí)現(xiàn)需求與分析的分離及有效互動。2.DSSA和MDD,老樹新花(基于領(lǐng)域的構(gòu)架(DSSA)與模型驅(qū)動的開發(fā)(MDD):隨著軟件應(yīng)用的日益普及,軟件已經(jīng)超出了將手動流程自動化的范疇,而開始成為業(yè)務(wù)創(chuàng)新的主要推動力。因此,引入捕獲特定領(lǐng)域內(nèi)最先進(jìn)需求及其實(shí)現(xiàn)架構(gòu)的DSSA成為行業(yè)客戶的熱點(diǎn)之一。而且,DSSA的引入將MDD門檻大大降低了,也使基于DSSA的MDD支撐工具成為可能,從而可以極大地提高開發(fā)效率并保證軟件質(zhì)量(例如,Telelogic的Rhapsody就是一個成功的基于實(shí)時嵌入式系統(tǒng)構(gòu)架的MDD工具)。3.

15、迭代/敏捷,漸成標(biāo)準(zhǔn):隨著軟件交付周期的日益加快,迭代化開發(fā)已經(jīng)成為大多數(shù)軟件開發(fā)團(tuán)隊的必選項(xiàng)。但是迭代對整個團(tuán)隊的需求、架構(gòu)、協(xié)同及測試能力都提出了更高的要求,現(xiàn)在許多開發(fā)團(tuán)隊都在試圖導(dǎo)入迭代化開發(fā)的過程中,敏捷可是被看成迭代化開發(fā)的一種導(dǎo)入方式,這不過敏捷的范圍其實(shí)比迭代化開發(fā)更大一些。敏捷的三個要素是迭代開發(fā)、坦誠合作和自適應(yīng)性。坦誠合作其實(shí)才是敏捷的精髓,如Ivar所說,敏捷其實(shí)是有關(guān)Social Engineering的。敏捷的主要貢獻(xiàn)在于他更多地思考了如何去激發(fā)開發(fā)人員的工作熱情,這是在軟件工程幾十年的發(fā)展過程中相對被忽略的領(lǐng)域。4.持續(xù)集成,蓄勢待發(fā):持續(xù)集成是保證迭代化開發(fā)質(zhì)量

16、的主要方式,通過持續(xù)集成可以利用自動化的方式來盡量自動地、盡早保證代碼質(zhì)量。隨著迭代和敏捷的流行,持續(xù)集成相關(guān)的工具成為現(xiàn)在市場上的新熱點(diǎn)(如持續(xù)集成框架IBM Rational BuildForge, 開源軟件CruiseControl,代碼靜態(tài)分析工具Klocwork Insight,IBM Rational Software Analyzer等)。持續(xù)集成是一個復(fù)雜的系統(tǒng)工程,組織需要首先將現(xiàn)有的配置管理/變更管理工具與Build環(huán)境緊密集成并完成自動化Build過程,在根據(jù)企業(yè)/項(xiàng)目/產(chǎn)品的現(xiàn)狀,定義如何自動化地檢測軟件質(zhì)量(代碼靜態(tài)分析、單元測試或冒煙測試),并定義需要自動化生成的管

17、理報表。5.基于實(shí)踐的過程框架,方興未艾:開發(fā)角色的專業(yè)化的和分布的全球化都要求軟件開發(fā)過程更加規(guī)范,而敏捷又要求過程必須緊密貼合項(xiàng)目的實(shí)際需要,因此傳統(tǒng)的大一統(tǒng)的過程無法符合這一需求。新一代的過程將是以實(shí)踐為核心的,項(xiàng)目可以通過組裝所需的不同實(shí)踐來獲得貼近項(xiàng)目要求的過程。IJI(Ivar Jacobson International)的EssWork和IBM Rational的RMC都是新一代的基于實(shí)踐的過程框架。依據(jù)過程專家長時間的經(jīng)驗(yàn),他們很小心、很仔細(xì)地將一個完整的開發(fā)過程組件化,從開發(fā)過程抽象出一個個可以被單獨(dú)導(dǎo)入又可以被組裝到一起的實(shí)踐,從而使逐步求精式的過程改進(jìn)成為可能。對于一個

18、軟件組織而言,如果已經(jīng)建立一個比較成熟的軟件開發(fā)流程,但覺得這一流程并不適合所有項(xiàng)目的實(shí)際需要,那么目前可以考慮的是用實(shí)踐的方式去重新梳理現(xiàn)有流程,以使項(xiàng)目組能夠以實(shí)踐為單位來組裝出切合項(xiàng)目實(shí)際的流程;另外,該組織也可以將適用于本組織的業(yè)界流行的實(shí)踐導(dǎo)入到現(xiàn)有流程當(dāng)中。三、我對軟件工程的認(rèn)識在現(xiàn)代社會中,軟件應(yīng)用于多個方面。同時,各個行業(yè)幾乎都有計算機(jī)軟件的應(yīng)用,比如工業(yè),農(nóng)業(yè),銀行,航空,政府部門等。這些應(yīng)用促進(jìn)了經(jīng)濟(jì)和社會的發(fā)展,使得人們的工作更加高效,同時提高了生活質(zhì)量。隨著現(xiàn)代信息技術(shù)的飛速發(fā)展,軟件產(chǎn)品的規(guī)模也越來越龐大,而軟件開發(fā)規(guī)模也導(dǎo)致開發(fā)隊伍的逐漸增大,如果沒有規(guī)則,每個人都

19、有自己的一套方式,甚至有的人有幾套方式。這樣,當(dāng)幾個人在一起開發(fā)軟件的時候,最終的結(jié)果就只能是一片混亂。這就意味著我們迫切地需要一種管理規(guī)范來規(guī)范每個軟件人員的工作,使每個項(xiàng)目組成員按照約定的規(guī)則準(zhǔn)時完成自己的工作。而軟件工程,就是這樣一套用于軟件的團(tuán)隊開發(fā)、以提高軟件質(zhì)量和程序員工作效率為目的的規(guī)范。21世紀(jì)信息時代的到來,軟件工程領(lǐng)域?qū)⒂龅叫碌奶魬?zhàn)。軟件自動化勢在必行,研究的內(nèi)容將涉及需求工程、軟件規(guī)格說明的形式化以及規(guī)格說明到系統(tǒng)的進(jìn)化或轉(zhuǎn)換。但是,由于形式化的軟件方法以嚴(yán)格的數(shù)學(xué)和邏輯系統(tǒng)為基礎(chǔ),至今尚遠(yuǎn)未達(dá)到工程應(yīng)用的程度,因此,近幾年內(nèi),尚會停留在實(shí)驗(yàn)室研究階段,無法向工業(yè)界推廣使用。因而,著眼于高度自動化、智能化的CASE研究,仍將成為軟件工程的一個主體。其中,將根據(jù)開發(fā)經(jīng)驗(yàn)的積累,聚合各類應(yīng)用領(lǐng)域的知識,集成各類應(yīng)用工具,在用戶面前創(chuàng)造一個良好的應(yīng)用系統(tǒng)開發(fā)平臺和環(huán)境,支持軟件群體式的“多維”開發(fā)。這樣的CASE應(yīng)具有以下一些特征:其中,將涉及面向?qū)ο蠹夹g(shù),重用技術(shù),人工智能技術(shù),圖形、圖像處理技術(shù),多媒體與可視化技術(shù),裁剪、組裝與集成技術(shù),質(zhì)量保證技術(shù),軟件過程模型、描述及控制技術(shù)等。尤其是由于軟件是知識的積累,因此,軟件重用將越來越受重視。并且,人們從現(xiàn)實(shí)實(shí)踐中,已經(jīng)注意到要獲得成功的軟件重用,僅有可重

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論