- 相關(guān)推薦
關(guān)于軟件工程的歷史與發(fā)展趨勢(shì)
論文摘要:軟件是一種特殊的產(chǎn)品,隨著其規(guī)模和復(fù)雜性的提高、使用范圍的擴(kuò)大,需要從技術(shù)和兩方面對(duì)軟件的開(kāi)發(fā)過(guò)程進(jìn)行控制。從軟件工程這門學(xué)科和技術(shù)出現(xiàn)的背景出發(fā),回顧了軟件工程在近40年來(lái)理論、方法和實(shí)踐中的成果。最后結(jié)合Internet技術(shù)和平臺(tái)的挑戰(zhàn),初步討論了軟件工程需要面對(duì)的新挑戰(zhàn)。
論文關(guān)鍵詞:軟件危機(jī);構(gòu)件;體系結(jié)構(gòu);軟件項(xiàng)目管理;中間件
1軟件工程的出現(xiàn)
1.1軟件危機(jī)
20世紀(jì)中期,剛被從軍用領(lǐng)域轉(zhuǎn)向民用領(lǐng)域使用,那時(shí)編寫程序的工作被視同為家的創(chuàng)作。當(dāng)時(shí)的計(jì)算機(jī)硬件非常昂貴,編程人員追求的是如何在有限的處理器能力和存儲(chǔ)器空間約束下,編寫出執(zhí)行速度快、體積小的程序。程序中充滿了各種各樣讓人迷惑的技巧。這時(shí)的軟件生產(chǎn)非常依賴于開(kāi)發(fā)人員的聰明才智。
到了20世紀(jì)60年代,計(jì)算機(jī)的應(yīng)用范圍得到較大擴(kuò)展,對(duì)軟件系統(tǒng)的需求和軟件自身的復(fù)雜度急劇上升,傳統(tǒng)的開(kāi)發(fā)方法無(wú)法適應(yīng)用戶在質(zhì)量、效率等方面對(duì)軟件的需求。這就是所謂的“軟件危機(jī)”。
為解決這個(gè)問(wèn)題,1968年NATO會(huì)議上首次提出“軟件工程”(SotfwraeEngineeirng)的概念,提出把軟件開(kāi)發(fā)從“藝術(shù)”和“個(gè)體行為”向“工程”和“群體協(xié)同工作”轉(zhuǎn)化。其基本思想是應(yīng)用計(jì)算機(jī)科學(xué)理論和技術(shù)以及工程管理原則和方法,按照預(yù)算和進(jìn)度,實(shí)現(xiàn)滿用戶要求的軟件產(chǎn)品的定義、開(kāi)發(fā)、發(fā)布和維護(hù)的工程。從此也誕生了一門新的學(xué)科——軟件工程。
迄今為之,為了達(dá)到最初設(shè)定的目標(biāo),軟件工程界已經(jīng)提出了一系列的理論、方法、和工具,解決了軟件開(kāi)發(fā)過(guò)程中的若干問(wèn)題。但是,由于軟件固有的復(fù)雜性、易變性和不可見(jiàn)性,軟件開(kāi)發(fā)周期長(zhǎng)、代價(jià)高和質(zhì)量低的問(wèn)題依然存在。IEEE在2002年發(fā)表的報(bào)告指出,即使是IT產(chǎn)業(yè)最發(fā)達(dá)的美國(guó),在2001年美國(guó)本土公司開(kāi)發(fā)的軟件產(chǎn)品中平均每1000行代碼中有0.37個(gè)錯(cuò)誤,對(duì)于美國(guó)之外的其他國(guó)家,這個(gè)比例更高。
1.2軟件與其他產(chǎn)品的差異
軟件是一種特殊的產(chǎn)品,人們通?吹降氖撬妮d體,而真正具有意義的是載體上的計(jì)算機(jī)或信息。
軟件既不同于通常的精神產(chǎn)品,也不同于常見(jiàn)的物質(zhì)產(chǎn)品。作家的作品是一種精神產(chǎn)品,它沒(méi)有使用價(jià)值卻可以供人閱讀欣賞。若把軟件也看成是一種作品,卻發(fā)現(xiàn)其價(jià)值在于供人們使用,無(wú)人喜歡讀它的源代碼。
軟件也與傳統(tǒng)的產(chǎn)品不同。工業(yè)產(chǎn)品在設(shè)計(jì)好之后,主要的是原成本、生產(chǎn)過(guò)程的開(kāi)銷等,但生產(chǎn)任何軟件的主要成本是設(shè)計(jì)、實(shí)現(xiàn)軟件時(shí)的成本,以及軟件投入使用后的維護(hù)成本,在生產(chǎn)線上制造軟件的成本非常低。用戶購(gòu)買某種商品后,就擁有了該商品的所有權(quán)和使用權(quán)?墒怯脩糍I來(lái)的軟件卻只擁有它的有限“使用權(quán)”。工業(yè)產(chǎn)品會(huì)隨著使用而磨損、報(bào)廢,但軟件在使用過(guò)程不會(huì)有任何磨損,在相同的硬件條件下用戶1年前使用的軟件和5年后使用該軟件無(wú)任何差別。傳統(tǒng)的工業(yè)產(chǎn)品在車間里生產(chǎn),生產(chǎn)過(guò)程可見(jiàn)、可觸摸,也容易衡量生產(chǎn)過(guò)程中的消耗和進(jìn)展?墒擒浖拈_(kāi)發(fā)過(guò)程在人的大腦里,很難度量其進(jìn)度。
所謂的“軟件工程”就是要這種過(guò)程“可視化”、“定量化”,把看不見(jiàn)的思維活動(dòng)變成看得見(jiàn)的“文檔”或者其他看得見(jiàn)的東西。
2軟件工程方法和技術(shù)
30多年來(lái),軟件工程的研究和實(shí)踐取得了長(zhǎng)足的進(jìn)展,盡管目前離徹底解決“軟件危機(jī)”還有相當(dāng)?shù)牟罹?對(duì)是否能徹底解決目前也存在爭(zhēng)議),但軟件工程的方法對(duì)軟件產(chǎn)業(yè)的發(fā)展還是起到了很大的推動(dòng)作用。從20世紀(jì)60年代以來(lái),陸續(xù)出現(xiàn)了結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)、計(jì)算機(jī)輔助軟件工程(CASE)、面向?qū)ο笳Z(yǔ)言和方法、軟件過(guò)程及軟件過(guò)程改善研究等一系列成果,并應(yīng)用到實(shí)踐中。目前軟件工程中主要使用的方法和技術(shù)可以分成技術(shù)和管理兩類。
2.1技術(shù)的角度
主要包括:軟件開(kāi)發(fā)范型、軟件設(shè)計(jì)方法。軟件開(kāi)發(fā)范型關(guān)注軟件工程的方向,即如何才是正確的編寫滿足需求的軟件;軟件設(shè)計(jì)方法關(guān)注軟件工程的“途徑”,即研究怎樣完成從高層概念模型到低層概念模型的映射。
軟件工程理論在實(shí)踐中應(yīng)用時(shí)重點(diǎn)放在軟件復(fù)用上。參考目前成熟的工業(yè)產(chǎn)品的開(kāi)發(fā)模式,軟件復(fù)用可以在軟件開(kāi)發(fā)中避免重復(fù)勞動(dòng),它以已有的成果為基礎(chǔ),充分利用過(guò)去開(kāi)發(fā)應(yīng)用系統(tǒng)中積累的知識(shí)和經(jīng)驗(yàn),將開(kāi)發(fā)的重點(diǎn)集中于新應(yīng)用的特有構(gòu)成成分上。通過(guò)使用軟件復(fù)用技術(shù),開(kāi)發(fā)應(yīng)用系統(tǒng)時(shí)可以充分利用已有的開(kāi)發(fā)成果,消除軟件生命周期中的許多重復(fù)勞動(dòng),提高軟件開(kāi)發(fā)的效率。同時(shí),復(fù)用高質(zhì)量的已有成果,可以避免重新開(kāi)發(fā)時(shí)引入的錯(cuò)誤,從而提高軟件質(zhì)量。
實(shí)現(xiàn)軟件復(fù)用的關(guān)鍵技術(shù)包括軟件構(gòu)件技術(shù)(softwarecomponenttechnology)、領(lǐng)域工程(domainen—gineering)、軟件體系結(jié)構(gòu)(softwarearchitecture)等。
軟件構(gòu)件是指應(yīng)用系統(tǒng)中可以明確辨識(shí)的構(gòu)成成分,可復(fù)用構(gòu)件是指具有相對(duì)獨(dú)立功能和可復(fù)用價(jià)值的構(gòu)件。目前,構(gòu)件的概念即包括源代碼,也包括需求、需求規(guī)約、系統(tǒng)和軟件的體系結(jié)構(gòu)、文檔、測(cè)試計(jì)劃、測(cè)試用例和數(shù)據(jù)以及其他對(duì)開(kāi)發(fā)活動(dòng)有用的信息,這些信息都可以稱為可復(fù)用軟件構(gòu)件。軟件構(gòu)件技術(shù)是支持軟件復(fù)用的核心技術(shù),其主要研究?jī)?nèi)容包括:如何有目的的進(jìn)行構(gòu)件生產(chǎn)和從已有系統(tǒng)中挖掘提取構(gòu)件;構(gòu)件的本質(zhì)特征及構(gòu)件間的關(guān)系是什么樣的;如何描述構(gòu)件;如何對(duì)構(gòu)件進(jìn)行分類、組織及檢索等。
研究實(shí)踐表明,由于某個(gè)特定領(lǐng)域需要的軟件具有相似的需求,因此軟件復(fù)用在特定領(lǐng)域內(nèi)更容易獲得成功,由此出現(xiàn)了領(lǐng)域工程。領(lǐng)域工程是為一組相似或相近系統(tǒng)的應(yīng)用工程建立基本能力和必備基礎(chǔ)的過(guò)程,它涵蓋了建立可復(fù)用軟件構(gòu)件的所有活動(dòng)。包括美國(guó)卡內(nèi)基·梅隆大學(xué)軟件工程研究所(CMU/SEI)在內(nèi)的許多研究機(jī)構(gòu)已經(jīng)提出了一些領(lǐng)域分析方法。
如果軟件復(fù)用僅停留在代碼階段,開(kāi)發(fā)人員得到的好處是有限的。軟件體系結(jié)構(gòu)技術(shù)使軟件復(fù)用從代碼復(fù)用發(fā)展到設(shè)計(jì)復(fù)用和過(guò)程復(fù)用。在工程領(lǐng)域人們用體系結(jié)構(gòu)表達(dá)建筑的整體結(jié)構(gòu),軟件工程研究中引人體系結(jié)構(gòu)這個(gè)術(shù)語(yǔ),其核心內(nèi)容是軟件系統(tǒng)的結(jié)構(gòu),它包括如下一些實(shí)體:構(gòu)件、構(gòu)件之間的交互關(guān)系、限制、構(gòu)件和連接件構(gòu)成的拓?fù)浣Y(jié)構(gòu)、設(shè)計(jì)原則與方針。
2.2工程的角度
參考其他成熟工程領(lǐng)域中的做法,軟件工程也研究管理論在軟件工程中的應(yīng)用。軟件項(xiàng)目管理方法拋棄了以前個(gè)人的作坊式開(kāi)發(fā)方式,根據(jù)管理科學(xué)的理論,結(jié)合軟件產(chǎn)品開(kāi)發(fā)的實(shí)際,保證工程化系統(tǒng)開(kāi)發(fā)方法的順利實(shí)施。為了使軟件項(xiàng)目能夠按照預(yù)定的、進(jìn)度、質(zhì)量順利完成,軟件管理方法對(duì)成本、人員、進(jìn)度、質(zhì)量、風(fēng)險(xiǎn)、文檔等進(jìn)行分析管理和控制。進(jìn)行軟件項(xiàng)目管理有利于將開(kāi)發(fā)人員的個(gè)人開(kāi)發(fā)能力轉(zhuǎn)化成企業(yè)的開(kāi)發(fā)能力,企業(yè)的軟件開(kāi)發(fā)能力越高,表明這個(gè)企業(yè)的軟件生產(chǎn)越趨向于成熟,其開(kāi)發(fā)風(fēng)險(xiǎn)也越小。軟件項(xiàng)目管理已經(jīng)是公認(rèn)的軟件開(kāi)發(fā)企業(yè)的核心競(jìng)爭(zhēng)力之一。
根據(jù)在前面提到的軟件與其他產(chǎn)品的區(qū)別,軟件項(xiàng)目管理具有一些與其他項(xiàng)目管理不同的特性軟件項(xiàng)目管理中遵循著一些原則,例如:軟件項(xiàng)目中需要平衡需求、資源、工期、質(zhì)量這四個(gè)要素之間的關(guān)系;大規(guī)模的項(xiàng)目要拆分成幾個(gè)小項(xiàng)目,從而減小項(xiàng)目的管理風(fēng)險(xiǎn),并且使目標(biāo)具體明確;依靠一套規(guī)范的過(guò)程來(lái)實(shí)時(shí)控制項(xiàng)目進(jìn)度,并確保項(xiàng)目經(jīng)理能夠及時(shí)發(fā)現(xiàn)問(wèn)題、解決問(wèn)題,保證項(xiàng)目具有很高的可見(jiàn)度;針對(duì)不同項(xiàng)目的特點(diǎn),制訂不同的項(xiàng)目管理的方針政策;合理控制項(xiàng)目組的規(guī)模控制原則;有效的積累知識(shí),做到人員的專業(yè)化培養(yǎng)。
目前在軟件項(xiàng)目管理方面有國(guó)際標(biāo)準(zhǔn)化組織專門為軟件行業(yè)定制的ISO9003標(biāo)準(zhǔn),它給出了衡量軟件質(zhì)量的準(zhǔn)則;美國(guó)卡內(nèi)基·梅隆大學(xué)軟件工程研究所提出的CMM(CapabilityMaturityModel,能力成熟度模型)則提供了一整套較為完善的軟件研發(fā)項(xiàng)目管理的方法。
3軟件工程的新發(fā)展
20世紀(jì)末開(kāi)始流行的Internet給人們提供了一種全球范圍的信息基礎(chǔ)設(shè)施,形成了一個(gè)資源豐富的計(jì)算平臺(tái),未來(lái)如何在Internet平臺(tái)上進(jìn)一步整合資源,形成巨型的、高效的、可信的虛擬,使所有資源能夠高效、可信地為所有用戶服務(wù),成為軟件技術(shù)的研究熱點(diǎn)。
Internet平臺(tái)具有一些傳統(tǒng)軟件平臺(tái)不具備的特征:分布性、節(jié)點(diǎn)的高度自治性、開(kāi)放性、異構(gòu)性、不可預(yù)測(cè)性、連接環(huán)境的多樣性等。這對(duì)軟件工程的發(fā)展提出了新的問(wèn)題。軟件工程需要新的理論、方法和技術(shù)和平臺(tái)來(lái)應(yīng)對(duì)這個(gè)問(wèn)題。目前投入很大精力研究的中間件技術(shù)就是這方面的典型代表。
綜上所述,Internet及其上應(yīng)用的快速發(fā)展與普及,使軟件所面臨的環(huán)境開(kāi)始從靜態(tài)封閉逐步走向開(kāi)放、動(dòng)態(tài)和多變。軟件系統(tǒng)為了適應(yīng)這樣一種發(fā)展趨勢(shì),將會(huì)逐步呈現(xiàn)出柔性、多目標(biāo)、連續(xù)反應(yīng)式的網(wǎng)構(gòu)軟件系統(tǒng)的形態(tài)。面對(duì)這種新型的軟件形態(tài),傳統(tǒng)的軟件理論、方法、技術(shù)和平臺(tái)面臨了一系列挑戰(zhàn)。從宏觀上看,這種挑戰(zhàn)為我們研究軟件理論、方法和技術(shù)提供了難得的機(jī)遇,使我們有可能建立一套適合于Internet開(kāi)放、動(dòng)態(tài)和多變環(huán)境的新型軟件理論、方法和技術(shù)體系。從微觀的角度來(lái)看,Internet的發(fā)展將使系統(tǒng)軟件和支撐平臺(tái)的研究重點(diǎn)開(kāi)始從操作系統(tǒng)等轉(zhuǎn)向新型中間件平臺(tái),而網(wǎng)構(gòu)軟件的理論、方法和技術(shù)的突破必將導(dǎo)致在建立新型中間件平臺(tái)創(chuàng)新技術(shù)方面的突破。
【軟件工程的歷史與發(fā)展趨勢(shì)】相關(guān)文章:
淺析黃河下游的堆積歷史和發(fā)展趨勢(shì)03-16
汽車物流的發(fā)展趨勢(shì)03-22
淺論公允價(jià)值的發(fā)展趨勢(shì)03-18
試述汽車營(yíng)銷的發(fā)展趨勢(shì)12-07
市場(chǎng)營(yíng)銷的發(fā)展趨勢(shì)12-07