軟件工程發(fā)展史及發(fā)展趨勢_第1頁
軟件工程發(fā)展史及發(fā)展趨勢_第2頁
軟件工程發(fā)展史及發(fā)展趨勢_第3頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、WORD格式軟件工程發(fā)展史及發(fā)展趨勢一:軟件工程定義軟件工程是一門研究用工程化方法構(gòu)建和維護有效的、實用的和高質(zhì)量的軟件的學(xué)科。它涉及到程序設(shè)計語言、數(shù)據(jù)庫、軟件開發(fā)工具、系統(tǒng)平臺、標(biāo)準(zhǔn)、設(shè)計模式等方面。在現(xiàn)代社會中,軟件應(yīng)用于多個方面。 典型的軟件有電子郵件、 嵌入式系統(tǒng)、 人機界面、 辦公套件、操作系統(tǒng)、 編譯器、數(shù)據(jù)庫、游戲等。 同時,各個行業(yè)幾乎都有計算機軟件的應(yīng)用, 如工業(yè)、農(nóng)業(yè)、銀行、航空、政府部門等。這些應(yīng)用促進了經(jīng)濟和社會的發(fā)展,也提高了工作和生活效率二:軟件工程的發(fā)展歷史隨著人類的發(fā)展, 計算機作為第三次科技革命的主要代表產(chǎn)品,極大的推動了人類社會發(fā)展。與此同時,軟件作為現(xiàn)代

2、計算機的重要支撐部分,伴隨著計算機的發(fā)展不斷發(fā)展。早在 20 世紀(jì) 50 年代,有關(guān)軟件的編程語言就已經(jīng)出現(xiàn),但是關(guān)于軟件工程這個概念卻要遠(yuǎn)遠(yuǎn)晚于軟件發(fā)展。 據(jù)資料顯示, 軟件工程這個概念最早出現(xiàn)在20 世紀(jì) 60年代末期。 在軟件工程發(fā)展的半個多世紀(jì)內(nèi), 軟件工程所使用的程序語言不斷發(fā)展,而且有關(guān)于軟件四六七零零四零二二號碼論文寫作工程的模型不斷發(fā)展,從最早的瀑布模型到現(xiàn)在光為人所知的云計算,軟件工程幾乎每隔5-10 年就會獲得一次突破性發(fā)展,而且有關(guān)軟件語言從最早的面向程序結(jié)構(gòu)轉(zhuǎn)向為面向?qū)ο螅瑯O大的提升了軟件編程的效率。目前,軟件工程經(jīng)過50 多年的發(fā)展, 已經(jīng)深入到社會生活的各個層面,可

3、以說, 現(xiàn)代社會生活, 幾乎在每一個方面都涉及到軟件工程。 1.軟件工程開發(fā)過程軟件是由計算機程序和程序設(shè)計的概念發(fā)展演化而來的,是在程序和程序設(shè)計發(fā)展到一定規(guī)模并且逐步商品化的過程中形成的。軟件開發(fā)經(jīng)歷了程序設(shè)計階段、軟件設(shè)計階段和軟件工程階段的演變過程。程序設(shè)計階段程序設(shè)計階段出現(xiàn)在1946 年 1955 年。此階段的特點是:尚無軟件的概念,程序設(shè)計主要圍繞硬件進行開發(fā),規(guī)模很小,工具簡單,無明確分工(開發(fā)者和用戶),程序設(shè)計追求節(jié)省空間和編程技巧,無文檔資料(除程序清單外),主要用于科學(xué)計算。軟件設(shè)計階段軟件設(shè)計階段出現(xiàn)在1956 年 1970 年。此階段的特點是:硬件環(huán)境相對穩(wěn)定,出現(xiàn)

4、了“軟件作坊”的開發(fā)組織形式。開始廣泛使用產(chǎn)品軟件(可購買),從而建立了軟件的概念。隨著計算機技術(shù)的發(fā)展和計算機應(yīng)用的日益普及,軟件系統(tǒng)的規(guī)模越來越龐大, 高級編程語言層出不窮,應(yīng)用領(lǐng)域不斷拓寬,開發(fā)者和用戶有了明確的分工,社會對軟件的需求量劇增。但軟件開發(fā)技術(shù)沒有重大突破,軟件產(chǎn)品的質(zhì)量不高,生產(chǎn)效率低下,從而導(dǎo)致了 “軟件危機”的產(chǎn)生。 軟件工程階段自 1970 年起,軟件開發(fā)進入了軟件工程階段。由于“軟件危機”的產(chǎn)生,迫使人們不得不研究、 改變軟件開發(fā)的技術(shù)手段和管理方法。從此軟件產(chǎn)生進入了軟件工程時代。此階段的特定是:硬件已向巨型化、微型化、網(wǎng)絡(luò)化和智能化四個方向發(fā)展,數(shù)據(jù)庫技術(shù)已成熟

5、并廣泛應(yīng)用,第三代、第四代語言出現(xiàn);第一代軟件技術(shù):結(jié)構(gòu)化程序設(shè)計在數(shù)值計算領(lǐng)域取得優(yōu)異成績;第二代軟件技術(shù):軟件測試技術(shù)、方法、原理用于軟件生產(chǎn)過程;第三代軟件技術(shù):處理需求定義技術(shù)用于軟件需求分析和描述。2.軟件工程的各個階段專業(yè)資料整理面向?qū)ο蟮能浖こ蹋∣OSE)自從 1985 年首次提出面向?qū)ο蟮母拍钜詠?,面向?qū)ο蠹夹g(shù)作為一種全新的軟件開發(fā)方法開始在軟件工程領(lǐng)域越來越被廣泛使用。80 年代末 90 年代初,面向?qū)ο蟮能浖こ谭椒ǔ尸F(xiàn)百花齊放、百家爭鳴的局面。其中,引人注意的是Booch、 Rumbaugh 和 Jacobson 為代表的三種面向?qū)ο蠹夹g(shù)。這三種主要的面向?qū)ο蠓椒ǜ饔袃?yōu)

6、缺點,而希望采用面向?qū)ο蠓椒ǖ挠脩舨⒉簧钪@些方法的優(yōu)缺點及相互之間的差異,因而很難根據(jù)應(yīng)用特點選擇合適的建模方法和建模語言。于是,出現(xiàn)了UML。面向?qū)ο蠹夹g(shù)在軟件工程領(lǐng)域的全面應(yīng)用即是面向?qū)ο蟮能浖こ谭椒ā?它包括面向?qū)ο蟮姆治?OOA)、面向?qū)ο蟮脑O(shè)計 (OOD)、面向?qū)ο蟮木幊?OOP)、面向?qū)ο蟮臏y試(OOT)和面向?qū)ο蟮能浖S護 (OOSM)等主要內(nèi)容。面向?qū)ο蟮姆治龊驮O(shè)計建模技術(shù)是面向?qū)ο筌浖こ谭椒ǖ闹匾M成部分。OOA 的基本任務(wù)是針對問題域和系統(tǒng)責(zé)任,運用OO 方法,建立一個反映問題域的OOA 模型,不考慮與系統(tǒng)實現(xiàn)有關(guān)的因素(包括編程語言、 圖形用戶界面、 數(shù)據(jù)庫等等 )

7、,從而使 OOA模型獨立于具體實現(xiàn)。OOD 的基本任務(wù)是根據(jù)已確立的系統(tǒng)對象模型,運用面向?qū)ο蠹夹g(shù),進行系統(tǒng)軟件設(shè)計。其中包括兩方面的工作:一是把 OOA 模型直接搬到 OOD,做為 OOD 的一個部分; 二是針對具體實現(xiàn)中的人機界面、數(shù)據(jù)存儲、 任務(wù)管理等因素補充一些與實現(xiàn)有關(guān)的部分。這些部分與 OOA 采用相同的表示法和模型結(jié)構(gòu)。從OOA 到 OOD 不存在轉(zhuǎn)換,只有很局部的修改或調(diào)整,并增加幾個與實現(xiàn)有關(guān)的獨立部分。OOA 與 OOD 的工作是連續(xù)的、無縫的,允許有一定的相交,也允許從OOD 返回到 OOA。OOP 的工作就是用同一種面向?qū)ο蟮木幊陶Z言把OOD 模型中的每個成分書寫出來。

8、OOT即是對于用 OO 技術(shù)開發(fā)的軟件, 在測試過程中繼續(xù)運用OO 的概念和原則, 進行以對象概念為中心的軟件測試。OOSM。面向?qū)ο蟮能浖こ谭椒楦倪M軟件維護提供了有效的途徑。程序與問題域一致,各個階段的表示一致,從而大大降低了理解的難度;系統(tǒng)中最容易變化的因素(功能 )作為對象的服務(wù)封裝在對象內(nèi)部,對象的封裝性使一個對象的修改對其他影響很小,從而避免了波動效應(yīng)。OOSE可較好的描述系統(tǒng)與其用戶之間的信息交換機制,即用于向軟件系統(tǒng)提出需求后,軟件系統(tǒng)完成這項需求的過程。OOSE方法遵循瀑布式的軟件開發(fā)過程,首先是描述與系統(tǒng)交互有關(guān)的用戶視圖,然后建立分析模型,最后的構(gòu)造過程則完成交互設(shè)計、

9、實現(xiàn)和測試。OOSE方法的最大特點是面向用例。用例(use case)代表某些用戶可見的功能,實現(xiàn)一個具體的用戶目標(biāo)。 用例代表一類功能而不是使用該功能的某一具體實例。用例是精確描述需求的重要工具, 貫穿于整個軟件開發(fā)過程,包括對系統(tǒng)的測試和驗證過程。基于組件的軟件工程( CBSE)如何更好地實現(xiàn)軟件重用一直是軟件工程的重要研究課題。OO 技術(shù)的出現(xiàn)是軟件開發(fā)技術(shù)的巨大進步,但怎樣實現(xiàn)大粒度的重用以提高軟件的可維護性和可擴展性仍是一個難題,CBSE的發(fā)展從根本上解決這一問題:由于COM/DCOM、 JavaBeans/EJB等組件標(biāo)準(zhǔn)的出現(xiàn),CBSE趨向?qū)嵱谩?1990 年開始在基于面向?qū)ο蠹?/p>

10、術(shù)的基礎(chǔ)上發(fā)展了組件技術(shù),它豐富了重用手段和方法,逐漸成為研究的熱點。組件(Component )是可用來構(gòu)成軟件系統(tǒng)的即插即用(plug and play) 的軟件成分,是可以獨立地制造、分發(fā)、銷售、裝配的二進制軟件單元。CBSE是指用裝配可重用軟件組件的方法來構(gòu)造應(yīng)用程序。它包含了系統(tǒng)分析、構(gòu)造、維護和擴展的各個方面,在這些方面中都是以組件方法為核心的。面向服務(wù)的軟件工程(SOSE)面對市場需求的快速變化,要求企業(yè)系統(tǒng)具有敏捷服務(wù)、快速重構(gòu)、 資源重用及自由擴充等特點。這樣就應(yīng)運而生了面向服務(wù)的架構(gòu)(Service Oriented Architecture , SOA)。它定義了構(gòu)成系統(tǒng)

11、的服務(wù), 通過描述服務(wù)之間的交互提供特定的功能特性, 并且將服務(wù)映射為具體的某種實現(xiàn)技術(shù)。 SOA的核心概念是服務(wù), 即把軟件的某些功能獨立出來, 使之能獨立運行, 并且在邏輯關(guān)系上和運行的應(yīng)用系統(tǒng)成為一個層次。 它接受來自所有授權(quán)對象的請求,使得服務(wù)可以同時為多個應(yīng)用程序提供相同的功能, 大大增大軟件復(fù)用程度, 減少開發(fā)和維護成本。一個服務(wù)是服務(wù)提供者為實現(xiàn)服務(wù)請求而執(zhí)行的一個工作單元 (應(yīng)用程序 ),是一些良定義的操作, 也就是說, 一個服務(wù)實現(xiàn)了一個應(yīng)用的功能, 它是一個粗粒度的、 可發(fā)現(xiàn)的軟件實體,通過一組松散耦合和基于消息的模型與其它的應(yīng)用或服務(wù)交互。三:軟件工程未來發(fā)展趨勢1.需求

12、工程,漸成熱點:專業(yè)化的角色,日益復(fù)雜的業(yè)務(wù)創(chuàng)新,全球分布的團隊以及互聯(lián)網(wǎng)級的交付速度, 這些都對需求獲取的正確性和有效性提出了更高的要求;我預(yù)計需求工程的研究和實施會成為近期的熱點,其中Use Case 技術(shù)會被更廣泛而正確的應(yīng)用,而相關(guān)工具的研發(fā)也會成為熱點(如 IBM Rational RequiementsComposer 、Ravenflow 等 )。用例的優(yōu)勢在于它天生是黑盒的,它用自然語言抽象了用戶和目標(biāo)系統(tǒng)的交互,避免了混入分析、設(shè)計和實現(xiàn)細(xì)節(jié), 以保證用例可以被不懂具體技術(shù)的業(yè)務(wù)及測試人員所真正理解。2. DSSA和MDD ,老樹新花 (基于領(lǐng)域的構(gòu)架DSSA與模型驅(qū)動的開發(fā)

13、MDD) :隨著軟件應(yīng)用的日益普及,軟件已經(jīng)超出了將手動流程自動化的范疇,而開始成為業(yè)務(wù)創(chuàng)新的主要推動力。因此,引入捕獲特定領(lǐng)域內(nèi)最先進需求及其實現(xiàn)架構(gòu)的 DSSA成為行業(yè)客戶的熱點之一。 而且,DSSA的引入將 MDD 門檻大大降低了, 也使基于 DSSA的 MDD 支撐工具成為可能,從而可以極大地提高開發(fā)效率并保證軟件質(zhì)量 (例如,。elelogic 的 Rhapsody 就是一個成功的基于實時嵌入式系統(tǒng)構(gòu)架的 MDD 工具 )。3.迭代敏捷,漸成標(biāo)準(zhǔn):隨著軟件交付周期的日益加快,迭代化開發(fā)已經(jīng)成為大多數(shù)軟件開發(fā)團隊的必選項。但是迭代對整個團隊的需求、架構(gòu)、 協(xié)同及測試能力都提出了更高的要

14、求,現(xiàn)在許多開發(fā)團隊都在試圖導(dǎo)入迭代化開發(fā)的過程中, 敏捷可以是被看成迭代化開發(fā)的一種導(dǎo)入方式,只不過敏捷的范圍其實比迭代化開發(fā)更大一些。4.持續(xù)集成,蓄勢待發(fā):持續(xù)集成是保證迭代化開發(fā)質(zhì)量的主要方式,通過持續(xù)集成可以利用自動化的方式來盡量自動地、盡早保證代碼質(zhì)量。隨著迭代和敏捷的流行,持續(xù)集成相關(guān)的工具成為現(xiàn)在市場上的新熱點( 如持續(xù)集成框架IBM Rational BuildForge,開源軟件CruiseControl ,代碼靜態(tài)分析工具Klocwork Insigtlt , IBM Rational Software Analyzer 等 )。5.基于實踐的過程框架,方興未艾:開發(fā)角色

15、的專業(yè)化的和分布的全球化都要求軟件開發(fā)過程更加規(guī)范, 而敏捷又要求過程必須緊密貼合項目的實際需要,因此傳統(tǒng)的大一統(tǒng)的過程無法符合這一需求。新一代的過程將是以實踐為核心的,項目可以通過組裝所需的不同實踐來獲得貼近項目要求的過程。lJI(Ivar Jacobson International) 的 EssWork 框架和 IBMRational的 RMC 都是新一代的基于實踐的過程框架。6.配置管理,昨日黃花:隨著開發(fā)團隊規(guī)模的日益減小,配置管理的復(fù)雜性大大降低了,我 們注 意 到 越 來 越 多的 用 戶 轉(zhuǎn) 向 使 用 開 源 的 配 置 管 理 工 具 ( 如Subeverison , JIRA,hosted-proiects等等 );未

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論