計算機軟件及應用軟件工程的發(fā)展_第1頁
計算機軟件及應用軟件工程的發(fā)展_第2頁
計算機軟件及應用軟件工程的發(fā)展_第3頁
計算機軟件及應用軟件工程的發(fā)展_第4頁
計算機軟件及應用軟件工程的發(fā)展_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機軟件及應用軟件工程的發(fā)展第1頁/共52頁第16章軟件工程的發(fā)展軟件工程的四個發(fā)展階段原型化方法面向對象的分析與設計統(tǒng)一的建模語言(UML)軟件復用和構件技術第2頁/共52頁第16章軟件工程的發(fā)展軟件作為IT技術應用的核心,其重要性日漸突出新的經濟環(huán)境使軟件開發(fā)面臨著新的挑戰(zhàn)如何快速且高質量地開發(fā)出滿足不同需求的軟件?建立更好的軟件開發(fā)環(huán)境,開發(fā)和采用可復用的軟件組件成為解決這一問題的最佳方法

第3頁/共52頁16.1軟件工程的四個發(fā)展階段自1968年以來,為了解決軟件危機,人們希望通過其他工程的技術方法和管理手段,將軟件的開發(fā)納入工程化的軌道在70年代取得大量的研究成果的基礎上,基本形成了軟件工程的概念、框架、方法和手段,成為軟件工程的第一代,稱之為傳統(tǒng)軟件工程第4頁/共52頁16.1軟件工程的四個發(fā)展階段20世紀80年代以來,面向對象的方法與技術已受到廣泛的重視,80年代出現(xiàn)的Smalltalk-80標志著面向對象程序設計進入了實用階段80年代中到90年代,研究重點轉移到面向對象的分析與設計,從而演化成一種完整的軟件開發(fā)方法和系統(tǒng)的技術體系,成為軟件工程的第二代,稱之為對象工程第5頁/共52頁16.1軟件工程的四個發(fā)展階段80年代中期,人們在研究和實踐中發(fā)現(xiàn),為了提高軟件生產率,并使軟件質量得到保證,其關鍵在于軟件開發(fā)和維護中的管理和支持能力,并認識到最關鍵的是“軟件過程”1984年開始“軟件過程運動”,從而逐步形成軟件過程工程,成為軟件工程的第三代第6頁/共52頁16.1軟件工程的四個發(fā)展階段進入90年代之后,軟件工程的一個重要進展就是基于構件的開發(fā)方法,為了提高軟件生產力,要盡可能地利用可復用的構件,隨著Internet技術的飛速發(fā)展,大量的分布式處理系統(tǒng)需要開發(fā),這種方法的重要性也日益顯露出來,從而成為軟件工程的第四代,也有不少人稱之為構件工程第7頁/共52頁16.1軟件工程的四個發(fā)展階段軟件工程還在不斷發(fā)展構件工程、過程工程以及對象工程都有不少新的進展傳統(tǒng)軟件工程中的一些基本概念、框架,隨著技術的進步也在發(fā)生不少演變軟件工程代與代之間并沒有鴻溝,它們不僅有交叉重疊,也有攜手并進軟件工程是一門處于前沿地位的重要學科,需要認真地研究和細心地學習,也需要在技術實踐中不斷創(chuàng)新和發(fā)展第8頁/共52頁實踐表明,傳統(tǒng)方法不能完全消除軟件危機生產率提高的幅度遠不能滿足需要軟件重用程度很低按照SA-SD-SP技術開發(fā)軟件時,思維成果的可重用性很差軟件仍然很難維護軟件往往不能真正滿足用戶需要開發(fā)人員不能完全獲得或不能徹底理解用戶需求,與用戶預期不符系統(tǒng)不能適應用戶需求經常變化的情況傳統(tǒng)軟件工程方法存在的問題第9頁/共52頁問題所在瀑布模型的局限某些類型系統(tǒng)需求的模糊項目參與者之間存在通信障礙預先定義的需求可能是過時的結構化技術的缺點基于過程的分解與基于功能的理解和功能的變化結構化分析對邊界的清楚定義限制了系統(tǒng)的擴充系統(tǒng)結構依不同開發(fā)人員而不同傳統(tǒng)軟件工程方法存在的問題第10頁/共52頁事實上,生命周期方法學至今仍然是應用最廣泛和最有效的軟件開發(fā)方法之一系統(tǒng)的需求比較穩(wěn)定而且能夠預先指定(預先指定的系統(tǒng))另一類系統(tǒng)的需求是模糊的或隨時間變化的,通常在安裝運行之后,還會由用戶驅動對需求進行動態(tài)修改(用戶驅動系統(tǒng))傳統(tǒng)軟件工程方法存在的問題第11頁/共52頁16.2原型化方法快速原型法用交互的、快速建立起來的原型取代形式的,不容修改的規(guī)格說明,用戶通過在計算機上實際運行和試用原型系統(tǒng)而向開發(fā)者提供真實的反饋意見(簡稱原型法)試用——反饋——修改第12頁/共52頁16.2原型化方法原型法有三個層次第一層是聯(lián)機屏幕活動,確定屏幕及報表的版式和內容、屏幕活動的順序及屏幕排版的方法第二層是第一層的擴展,引用了數(shù)據(jù)庫的交互作用及數(shù)據(jù)操作,主要論證系統(tǒng)關鍵區(qū)域的操作,用戶可以輸入成組的事務數(shù)據(jù),執(zhí)行這些數(shù)據(jù)的模擬過程,包括出錯處理第三層是系統(tǒng)工作模型,它是系統(tǒng)的一個子集,其中應用的邏輯事務及數(shù)據(jù)庫的交互作用可以用實際數(shù)據(jù)來操作,這一層的目的是開發(fā)一個模型,使其發(fā)展成為最終的系統(tǒng)規(guī)模第13頁/共52頁16.2原型化方法原型法的主要優(yōu)點在于是一種支持用戶的方法,使得用戶在系統(tǒng)生存周期的設計階段起到積極的作用能減少系統(tǒng)開發(fā)的風險原型法的概念適用于新系統(tǒng)開發(fā),也適用于對系統(tǒng)修改原型法要取得成功,要求有良好的開發(fā)環(huán)境/工具的支持原型法可以與傳統(tǒng)的生命周期方法相結合使用,這樣會擴大用戶參與需求分析、初步設計及詳細設計等階段的活動,加深對系統(tǒng)的理解第14頁/共52頁用原型法開發(fā)軟件的過程拋棄原型法演化原型法是高度迭代的動態(tài)方法,在每次迭代過程中,都要再次分析和確定需求,再次進行設計,再次實現(xiàn)系統(tǒng),以及再次進行測試和評價取決于開發(fā)者和用戶雙方是否都愿意在很長一段時間內對信息交流和修改系統(tǒng)采取開放的態(tài)度16.2原型化方法第15頁/共52頁面向對象方法盡可能模擬人類習慣的思維方式,使開發(fā)軟件的方法與過程盡可能接近人類認識世界解決問題的方法與過程也就是使描述問題的問題空間(問題域)與實現(xiàn)解法的解空間(求解域)在結構上盡可能一致16.3面向對象的分析與設計第16頁/共52頁16.3面向對象的分析與設計面向對象方法(OO)是建立在對象概念(對象、類和繼承)基礎上的方法面向對象方法出現(xiàn)后很快發(fā)展,成為90年代的主流開發(fā)方法,其原因主要在于從認知學的角度來看,面向對象方法符合人們對客觀世界的認識規(guī)律面向對象方法開發(fā)的軟件系統(tǒng)易于維護,其體系結構易于理解、擴充和修改面向對象方法中的繼承機制有力支持軟件的復用第17頁/共52頁面向對象方法的要點面向對象的軟件系統(tǒng)是由對象組成的,軟件中任何元素都是對象,復雜的軟件對象由比較簡單的對象組合而成把所有對象都劃分成各種對象類,每個對象類都定義一組數(shù)據(jù)和一組方法按照子類(派生類)和父類(基類)的關系,把若干個對象類組成一個層次結構的系統(tǒng),并實現(xiàn)繼承與屏蔽對象彼此之間僅通過傳遞消息互相聯(lián)系

16.3.1面向對象的基本概念第18頁/共52頁

16.3.1面向對象的基本概念用下列等式來認識面向對象方法面向對象=對象+分類+繼承+通過消息的通信用這四個概念開發(fā)的軟件系統(tǒng)是面向對象的第19頁/共52頁

16.3.1面向對象的基本概念對象是一組屬性以及這組屬性上的專用操作的封裝體屬性通常是一些數(shù)據(jù),也可以是另一個對象操作也稱為方法或服務,規(guī)定了對象的行為,表示對象所能提供的服務封裝是一種信息隱蔽技術,用戶只能看見對象封裝界面上的信息,對象的內部實現(xiàn)對用戶是隱蔽的一個對象通??捎蓪ο竺?、屬性和操作三部分組成第20頁/共52頁

16.3.1面向對象的基本概念類是一組具有相同屬性和相同操作的對象的集合繼承是類間的基本關系,它是基于層次關系的不同類共享數(shù)據(jù)和操作的一種機制消息傳遞是對象間通信的手段,一個對象通過向另一個對象發(fā)送消息來請求其服務第21頁/共52頁16.3.2面向對象分析面向對象分析(OOA)的目標是完成對所解問題的分析,確定待建的系統(tǒng)要做什么,并建立系統(tǒng)的模型在客戶和軟件工程師之間溝通基本的用戶需求標識類(包括定義其屬性和操作)刻畫類的層次結構表示類(對象)之間的關系為對象行為建模遞進地重復前面的任務,直至完成建模第22頁/共52頁16.3.2面向對象分析面向對象分析的一般步驟如下獲取客戶對系統(tǒng)的需求:包括標識場景和用例,以及建造需求模型用基本的需求為指南來選擇類和對象(包括屬性和操作)定義類的結構和層次建造對象-關系模型建造對象-行為模型利用用例/場景來復審分析模型第23頁/共52頁16.3.3面向對象設計面向對象設計(OOD)是將OOA所創(chuàng)建的分析模型轉化為設計模型。與傳統(tǒng)的開發(fā)方法不同,OOD和OOA采用相同的符號表示,OOD和OOA沒有明顯的分界線,它們往往反復迭代地進行在OOA時,主要考慮系統(tǒng)做什么,而不關心系統(tǒng)如何實現(xiàn)。在OOD時,主要解決系統(tǒng)如何做OOD同樣應遵循抽象、信息隱蔽、功能獨立、模塊化等設計準則第24頁/共52頁16.3.3面向對象設計面向對象設計的一般步驟如下系統(tǒng)設計將子系統(tǒng)分配到處理器選擇實現(xiàn)數(shù)據(jù)管理、界面支持和任務管理的設計策略為系統(tǒng)設計合適的控制機制復審并考慮權衡對象設計在過程級別設計每個操作定義內部類為類屬性設計內部數(shù)據(jù)結構消息設計:用對象間協(xié)作和對象-關系模型設計消息模型復審:復審設計模型,并在需要時迭代第25頁/共52頁16.4統(tǒng)一的建模語言(UML)各種面向對象方法都有自己的表示法、過程和工具,甚至各種方法所使用的術語也不盡相同UML的一個初始目標就是結束面向對象領域中的方法大戰(zhàn)第26頁/共52頁16.4.1UML概述人們在研究過程中認識到,由于在不同的公司和不同的文化之間,過程(或方法)的區(qū)別是很大的,要創(chuàng)建一個人人都能使用的標準過程(或方法)相當困難,而建立一種標準的建模語言比建立標準的過程(或方法)要簡單得多。因此,他們的工作重點放在創(chuàng)建一種標準的建模語言,并重新命名為統(tǒng)一的建模語言(UML)第27頁/共52頁16.4.1UML概述1996年6月、10月、1997年1月、11月分別推出了UML0.9、0.91、1.0、1.11996年起,一些機構把采用UML作為其商業(yè)策略,宣布支持并采用UML,并成立了UML成員協(xié)會,以完善加強和促進UML的定義1997年11月,國際對象管理組織OMG批準把UML1.1作為基于面向對象技術的標準建模語言第28頁/共52頁為了更好地理解問題,常常采用建立問題模型的方法所謂模型,就是為了理解事物而對事物作出的一種抽象,是對事物的一種無歧義的書面描述通常,模型由一組圖示符號和組織這些符號的規(guī)則組成,利用它們來定義和描述問題域中的術語和概念面向對象建模第29頁/共52頁用面向對象方法開發(fā)軟件通常要建立3種形式的模型描述系統(tǒng)數(shù)據(jù)結構的對象模型描述系統(tǒng)控制結構的動態(tài)模型描述系統(tǒng)功能的功能模型三種模型都涉及到數(shù)據(jù)、控制和操作等共同概念一個典型的軟件系統(tǒng)組合了上述三方面內容:使用數(shù)據(jù)結構(對象模型)、執(zhí)行操作(動態(tài)模型),并且完成數(shù)據(jù)值的變化(功能模型)面向對象建模第30頁/共52頁16.4.2使用UML的過程UML給出了面向對象建模的符號表示和規(guī)則,但并沒有描述如何工作,即沒有描述使用語言的過程或方法使用UML過程的基本特征是:用例驅動,以體系結構為中心,反復,漸增式UML的設計者將他們原先各自的面向對象開發(fā)過程進行合并,命名為RationalObjectoryProcess,這是一個迭代的漸增式的開發(fā)過程第31頁/共52頁初始階段細化階段細化階段構造階段……12圖16-1RationalObjectory開發(fā)過程

第32頁/共52頁初始階段主要確定項目的范圍和目標,并進行可行性分析在這一階段要考慮項目的成本,可能得到的效益初始階段的目的是明確待開發(fā)項目的意義和價值,并確定是否要開發(fā)此項目第33頁/共52頁細化階段對開發(fā)項目的問題領域和功能作詳細分析,畫出用例圖,建立系統(tǒng)的基礎結構在這階段還要進行風險分析,制定相應的對策,制定開發(fā)計劃制定計劃實際上是為構造階段制定迭代開發(fā)的序列用例分類確定每次迭代的開發(fā)周期將用例分配到各次這代中的活動第34頁/共52頁構造階段是迭代漸增地建造系統(tǒng)的過程。每次迭代可看作開發(fā)一個小項目,它應包含分析、設計、實現(xiàn)、測試全過程每次迭代都是在前次迭代的基礎上增加另一些用例的開發(fā),新的用例開發(fā)完成后要與前次迭代的結果集成,進行系統(tǒng)測試,并向用戶演示,以表明相關的用例已被正確實現(xiàn)第35頁/共52頁構造階段所用測試案例都應保存,以便在以后的迭代中進行回歸測試這種迭代漸增式的開發(fā)有助于及早發(fā)現(xiàn)錯誤,減少開發(fā)的風險第36頁/共52頁移交階段一般不再開發(fā)新的功能該階段的工作主要有β測試、產品包裝、培訓等第37頁/共52頁16.5軟件復用和構件技術根據(jù)工業(yè)產品設計生產的經驗,希望有一些軟件工廠專門生產軟組件,稱為構件,軟件人員在開發(fā)軟件時可以大量復用這些軟構件,從而降低軟件的開發(fā)和維護費用,提高軟件的生產率同時,由于這些軟構件往往已經過嚴格的測試,并經過廣泛的使用,因此它們的可靠性通常比較高,從而也提高了新軟件的質量第38頁/共52頁16.5.1軟件復用的概念軟件復用是指在兩次或多次不同的軟件開發(fā)過程中重復使用相同或相似軟件元素(如下)的過程領域知識開發(fā)經驗設計經驗體系結構需求分析文檔設計文檔程序代碼測試用例等第39頁/共52頁16.5.1軟件復用的概念按照重要活動是否跨越相似性較小的多個應用領域,軟件復用可區(qū)別為橫向和縱向復用橫向復用是指復用不同應用領域中的軟件元素,例如數(shù)據(jù)結構、分類算法、人機界面構件等。標準函數(shù)庫是一種典型的、原始的橫向復用機制縱向復用是指在一類具有較多公共性的應用領域之間進行軟構件復用??v向復用是軟件復用技術的真正所在第40頁/共52頁16.5.1軟件復用的概念早期主要是程序代碼的復用,以后逐步擴大到設計、需求規(guī)約或模型、體系結構、代碼、測試用例、文檔等的復用第41頁/共52頁16.5.2軟件復用的過程軟件復用的一般過程是抽象選取例化:對已有制品(可復用件)的修改或形成它的一個實例(例化后的復用件)集成:將例化后的復用件集成為應用系統(tǒng)第42頁/共52頁16.5.2軟件復用的過程根據(jù)軟件復用的粒度,可將其分為(按粒度從小到大):代碼和設計拷貝源代碼復用設計和軟件體系結構應用程序生成器領域特定的軟件體系結構的復用第43頁/共52頁16.5.3構件和體系結構構件是指可以被明確標識的軟件制品,它可以是需求分析和設計階段的產品、代碼、測試用例、文檔或軟件開發(fā)過程中的其他產品可復用構件是指可被其他系統(tǒng)的開發(fā)者復用以開發(fā)新軟件的構件。通常所說的構件主要是指可復用構件第44頁/共52頁16.5.3構件和體系結構軟件體系結構是指軟件總體結構框架,它由結構元集、結構形以及結構理三部分組成結構元集為一組構成該體系結構之結構元(即構件)結構形包括特性與聯(lián)系。特性用以約束結構元的選取,聯(lián)系則約束不同結構元之間的交互與組織結構理刻畫體系結構設計人員選取體系結構風格、選取結構元以及選取結構形的動因與根據(jù),闡明對系統(tǒng)約束之滿足所構成的需求與體系結構風格、結構元以及結構形之間的聯(lián)系第45頁/共52頁16.5.4構件和構件系統(tǒng)構件系統(tǒng)由若干個經良好包裝和驗證的相關的構件組成為使構件能具有較高的可復用性,應滿足條件構件的設計應具有較高的通用程度構件應易于調整構件應易于組裝構件必須具有可檢索性構件必須經過充分的測試第46頁/共52頁16.6小結軟件工程技術從傳統(tǒng)軟件工程到對象工程、過程工程和構件工程,一直是一門處于前沿地位的重要學科,在技術實踐中不斷創(chuàng)新和發(fā)展面向對象方法是一種把

溫馨提示

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

評論

0/150

提交評論