版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
軟件工程王濤華東交通大學軟件學院E-mial:wthdjd@163.com第一章概論如何理解“軟件工程”?軟件工程
(SoftwareEngineering,簡稱SE)是一門研究用工程化方法構(gòu)建和維護有效的、實用的和高質(zhì)量的軟件的學科。軟件工程采用系統(tǒng)工程學和管理學相結(jié)合的原理、方法和技術(shù)來指導、管理和實施軟件的各種活動,包括軟件開發(fā)、運行、維護和服務等。1.1.1軟件工程的概念傳統(tǒng)工業(yè),如道路橋梁工程、民用建筑工程和化學工程等“軟件工程”有代表性的定義:軟件工程是一種工程形式,它運用計算機科學和數(shù)學原理,針對軟件問題獲得一種經(jīng)濟有效的解決方案。用系統(tǒng)的、規(guī)范的、可度量的方法,開發(fā)、運行和維護軟件。}軟件工程的基本目標高質(zhì)量高生產(chǎn)力1.滿足客戶需求2.獲得最好收益1.1.2軟件工程的發(fā)展20世紀六七十年代,計算機硬件技術(shù)有了很大的發(fā)展,為計算機的廣泛應用創(chuàng)造了條件,并要求軟件與之相適應。然而當時的軟件開發(fā)與維護技術(shù)無法滿足日益增長的軟件產(chǎn)品需求?。。”憩F(xiàn)如下:1.開發(fā)工具落后2.程序設計語言功能差3.軟件可維護性差“軟件危機”1968年的NATO(北大西洋公約組織)會議需要將工程技術(shù)的思想引入軟件開發(fā)領域。會議上第一次提出了“軟件工程”這個名詞。1.軟件工程的成型與發(fā)展歷程軟件工程的初步成型首先是從軟件工程過程開始的。為獲得高質(zhì)量的軟件產(chǎn)品,軟件工程過程必須科學、合理。這就涉及到軟件生命周期的描述采用何種模型的問題。螺旋模型漸增模型噴泉模型快速應用開發(fā)模型快速原型模型瀑布模型智能模型軟件生命周期軟件生命周期方法學把軟件開發(fā)和維護分成軟件定義、軟件開發(fā)和軟件維護三個時期,每個時期又分成若干個階段。軟件定義時期:確定軟件開發(fā)必須完成的任務;論證軟件的可行性;確定用戶需求的詳細功能和性能。這個時期可以劃分為三個階段:問題定義、可行性研究和需求分析。(2)軟件開發(fā)時期:設計和實現(xiàn)軟件的定義。軟件開發(fā)時期包
括四個階段:總體設計、詳細設計、編碼及單元測試、綜合測試。(3)軟件維護時期:軟件維護是對投入使用的軟件的修改,實
際上是對軟件的一次重新定義和開發(fā)過程。1.問題定義:在問題定義階段,軟件開發(fā)人員應該清楚:“要解決什么問題”。2.可行性研究:知道了要解決的問題,在這個階段應該清楚“用什么辦法解決這個問題”,保證在技術(shù)上、實效上、法律上都是行得通的。3.需求分析:確定軟件的功能和性能。4.總體設計:設計軟件的總體結(jié)構(gòu),將一個大系統(tǒng)按照功能設計成小模塊,每個模塊完成一個相對獨立的小功能??傮w設計有時也稱概要設計。
5.詳細設計:這個階段還不是編寫程序,是對每個模塊設計具體的算法和數(shù)據(jù)結(jié)構(gòu),可以包括具體細節(jié),類似于工程設計中的施工圖紙。詳細設計有時也稱模塊設計。6.編碼和單元測試:這個階段的主要任務是根據(jù)詳細設計的結(jié)果,用一種程序設計語言,編寫正確的源程序,并且對每段程序進行嚴格測試。要求源程序容易理解、容易維護。7.綜合測試:通過測試使軟件系統(tǒng)達到用戶的要求。最基本的測試集成測試和驗收測試。8.軟件維護:軟件投入運行后的維護活動。面向過程(Procedure-oriented,簡稱PO)面向?qū)ο?Object-oriented,簡稱OO)統(tǒng)一建模語言(UnifiedModelingLanguage,UML)基于凈室技術(shù)、敏捷技術(shù)、重構(gòu)技術(shù)、人工智能技術(shù)互聯(lián)網(wǎng)和圖像化接口技術(shù)基于面向?qū)ο蠡A的構(gòu)件技術(shù)計算機輔助軟件工程(ComputerAidedSoftwareEngineering,簡稱CASE)
21世紀軟件發(fā)展的趨勢軟件即服務人機交互應用模式資源共享與管理應用模式中間件技術(shù)、對等計算、語義網(wǎng)、自治計算隨需即取等2.軟件工程學科的基本確立1983年,IEEE給軟件工程下了定義,即“軟件工程是開發(fā)、運行、維護和修復軟件的系統(tǒng)方法”。B.W.Boelim提出關于軟件工程的7條基本原理:用分階段的生命周期計劃嚴格管理堅持進行階段評審實行嚴格的產(chǎn)品控制采用現(xiàn)代程序設計技術(shù)結(jié)果應能清楚地審查開發(fā)小組的人員應該少而精承認不斷改進的軟件工程實踐的必要性原則、方法與技術(shù)軟件工程在軟件開發(fā)、管理、維護中所作的研究
軟件工程學就是研究“如何借助科學的理論和現(xiàn)代工程技術(shù)來指導軟件的開發(fā),從而達到用較少的投資獲得高質(zhì)量的、可靠的軟件的目的”
。程序設計時期軟件時期軟件工程時期后軟件工程時期軟件工程學4個發(fā)展時期我們現(xiàn)在處于該時期!3.軟件工程管理的規(guī)范化和標準化軟件工程管理,就是從工程學角度出發(fā),對軟件工程的項目范圍、項目周期、產(chǎn)品質(zhì)量、知識資源、人力資源和項目成本等六大要素進行管理,克服軟件危機,規(guī)避軟件風險,提高軟件開發(fā)效益和質(zhì)量,降低軟件開發(fā)成本。方法與技術(shù)工具與環(huán)境標準與規(guī)范組織與管理完整意義上的軟件工程4.啟示與總結(jié)縱觀軟件工程的發(fā)展歷史,我們可以得到以下啟示:(1)研究工程理論和實踐需要有系統(tǒng)科學的思想(2)軟件工程管理任重道遠(3)軟件工程的新技術(shù)新方法將不斷涌現(xiàn)1.2軟件開發(fā)技術(shù)軟件開發(fā)技術(shù),它包括軟件生存期模型、軟件開發(fā)方法、軟件開發(fā)工具和環(huán)境以及軟件管理技術(shù)。1.2.1軟件生存期模型軟件生存期模型(也稱軟件生命周期模型)——是描述軟件開發(fā)過程中各種活動如何執(zhí)行的模型。
目前典型的軟件開發(fā)模型有:
瀑布模型、增量模型、螺旋模型、噴泉模型和變換模型等。不同的開發(fā)方法有不同的軟件過程模型。瀑布模型瀑布模型的優(yōu)點它提供了一個模版,模版使得分析、設計、編碼、測試和維護的方法可以在該模版下有一個共同的指導。雖然有不少缺陷,但比在軟件開發(fā)中隨意的狀態(tài)要好得多。瀑布模型的缺點實際的項目大部分情況難以按照該模型給出的順序進行,而且這種模型的迭代是間接的,這很容易有微小的變化而造成大的混亂。經(jīng)常情況下用戶難以表達真正的需求,而這種模式卻要求如此,這種模型是不歡迎具有二義性問題存在的。瀑布模型的缺點用戶要等到開發(fā)周期的晚期才能看到程序運行的測試版本,而在這時若發(fā)現(xiàn)大的錯誤,可能引起用戶的驚慌,而后果也可能是災難性的。采用這種線性模型,經(jīng)常在過程的開始和結(jié)束時,要等待其他成員完成后,才能進行下去,有可能花在等待的時間比開發(fā)的時間有長。我們稱之為“堵塞狀態(tài)”。用戶試用原型系統(tǒng)之后會提出許多修改意見,開發(fā)人員按照用戶的意見快速地修改原型系統(tǒng),然后再次請用戶試用……一旦用戶認為這個原型系統(tǒng)確實能做他們所需要的工作,開發(fā)人員便可據(jù)此書寫規(guī)格說明文檔,根據(jù)這份文檔開發(fā)出的軟件可以滿足用戶的真實需求??焖僭湍P驮隽磕P驮隽磕P偷膬?yōu)點人員分配靈活,剛開始不用投入大量人力資源,當核心產(chǎn)品很受歡迎時,可增加人力實現(xiàn)下一個增量先發(fā)布部分功能給用戶,對用戶起到鎮(zhèn)靜劑的作。具有一定的市場。螺旋模型螺旋模型的優(yōu)點對于大型系統(tǒng)及軟件的開發(fā),這種模型是一個很好的方法。開發(fā)者和客戶能夠較好地對待和理解每一個演化級別上的風險。螺旋模型的缺點需要相當?shù)娘L險分析評估的技術(shù),且成功就依賴于這種技術(shù)。顯然,若存在一個沒有被發(fā)現(xiàn)的大風險,將會出現(xiàn)問題,甚至可能導致演化過程失去控制。噴泉模型優(yōu)點:噴泉模型不像瀑布模型那樣,需要分析活動結(jié)束后才開始設計活動,設計活動結(jié)束后才開始編碼活動。該模型的各個階段沒有明顯的界限,開發(fā)人員可以同步進行開發(fā)。其優(yōu)點是可以提高軟件項目開發(fā)效率,節(jié)省開發(fā)時間,適應于面向?qū)ο蟮能浖_發(fā)過程。噴泉模型的缺點由于噴泉模型在各個開發(fā)階段是重疊的,因此在開發(fā)過程中需要大量的開發(fā)人員,因此不利于項目的管理。此外這種模型要求嚴格管理文檔,使得審核的難度加大,尤其是面對可能隨時加入各種信息、需求與資料的情況。變換模型變換模型的優(yōu)點形式化規(guī)約可直接作為程序驗證的基礎,可以盡早地發(fā)現(xiàn)和糾正錯誤(包括那些在其他情況下不能發(fā)現(xiàn)的錯誤)。開發(fā)出來的軟件具有很高的安全性和健壯性,特別適合安全部門或者軟件錯誤會造成經(jīng)濟損失的開發(fā)項目。變換模型的缺點開發(fā)費用高,而且需要的時間長。不能將該模型作為對客戶通信的機制,因為客戶對這些數(shù)學語言一無所知。具有開發(fā)無缺陷軟件的承諾1.2.2軟件開發(fā)方法軟件開發(fā)方法主要包括:面向過程的開發(fā)方法面向?qū)ο蟮拈_發(fā)方法基于構(gòu)件的開發(fā)方法傳統(tǒng)的軟件開發(fā)方法:結(jié)構(gòu)化開發(fā)方法(StructuredDeveloping)、Jackson方法、原型化方法(PrototypingMethod)、HIPO法等。面向?qū)ο蟮能浖_發(fā)方法OOSD(Object-OrientedSoftwareDevelopment)基于構(gòu)件的開發(fā)(Component-BasedDevelopment,簡稱CBD)或基于構(gòu)件的軟件工程(Component-BasedSoftwareEngineering,簡稱CBSE)基于構(gòu)件的開發(fā)(Component-BasedDevelopment,簡稱CBD)是在一定構(gòu)件模型的支持下,復用構(gòu)件庫中的一個或多個軟件構(gòu)件,通過組合手段高效率、高質(zhì)量地構(gòu)造應用軟件系統(tǒng)的過程。已經(jīng)成為現(xiàn)今軟件復用實踐的研究熱點,被認為是最具潛力的軟件工程發(fā)展方向之一。接口和契約構(gòu)件
CBD開發(fā)模式構(gòu)件技術(shù)和對象技術(shù)的關系構(gòu)件框架基于構(gòu)件開發(fā)的相關概念:1.構(gòu)件軟件構(gòu)件是一個僅帶特定契約接口和顯式語境依賴的結(jié)構(gòu)單元,軟件構(gòu)件可以獨立部署,易于第三方整合。2.接口和契約接口(Interface)是用戶與構(gòu)件發(fā)生交互的連接渠道,第三方只能通過構(gòu)件接口的規(guī)格說明理解和復用構(gòu)件,接口規(guī)格說明也是一種“契約”(Contract),它足夠精確地描述構(gòu)件實現(xiàn)的功能,同時又不把構(gòu)件限定于唯一的實現(xiàn)方法,3.構(gòu)件框架構(gòu)件框架(Framework)是構(gòu)件實例“即插即用”的支撐結(jié)構(gòu)。通過一定的環(huán)境條件和交互規(guī)則,構(gòu)件框架允許一組構(gòu)件形成一個“孤島”,獨立地與外部構(gòu)件或其他框架交互和協(xié)作,因此構(gòu)件框架及其內(nèi)含的構(gòu)件也可以視為一個構(gòu)件。4.CBD開發(fā)模式開發(fā)任務創(chuàng)建檢索和評價適配(adaptation)組裝測試和驗證配置和部署維護和演進……不同于傳統(tǒng)的軟件生命周期開發(fā)方法5.構(gòu)件技術(shù)和對象技術(shù)的關系構(gòu)件技術(shù)與面向?qū)ο蠹夹g(shù)緊密相關。構(gòu)件和對象都是對現(xiàn)實世界的抽象描述,通過接口封裝了可復用的代碼實現(xiàn)。然而兩者在以下三方面不同:概念層面復用策略技術(shù)手段當今,構(gòu)件技術(shù)已經(jīng)成為計算環(huán)境的基本組成之一,眾多中間件產(chǎn)品和開發(fā)工具提供了對不同構(gòu)件模型的實現(xiàn)支持,然而有關CBD開發(fā)方法學,至今仍有一些問題尚未解決!1.3軟件開發(fā)環(huán)境軟件開發(fā)環(huán)境(SoftwareDevelopmentEnvironment,SDE)一般以對象庫為基礎來組織環(huán)境,支持封裝性、實例化、類屬和繼承,達到了較高的集成度和開放性的統(tǒng)一。1.3.1軟件開發(fā)環(huán)境簡介人機界面軟件工具算法語言如C、C#、C++和Java等1.3.2軟件開發(fā)環(huán)境的分類軟件開發(fā)環(huán)境可按以下幾種角度分類:1.按軟件開發(fā)模型及開發(fā)方法分類,有支持瀑布模型、演化模型、螺旋模型、噴泉模型以及結(jié)構(gòu)化方法、信息模型方法、面向?qū)ο蠓椒ǖ炔煌P图胺椒ǖ能浖_發(fā)環(huán)境。2.按功能及結(jié)構(gòu)特點分類,有單體型、協(xié)同型、分散型和并發(fā)型等多種類型的軟件開發(fā)環(huán)境。3.按應用范圍分類,有通用型和專用型軟件開發(fā)環(huán)境。其中專用型軟件開發(fā)環(huán)境與應用領域有關,故又軟件開發(fā)方法(SoftwareDevelopmentMethod)是指軟件開發(fā)過程所遵循
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度木方模板產(chǎn)業(yè)鏈上下游整合服務合同4篇
- 2025年度航空航天器研發(fā)與制造合同12篇
- 2025年度長途物流車輛定點清洗保養(yǎng)合同4篇
- 2025年度環(huán)保設備安裝與污染物減排服務協(xié)議3篇
- 2025年度木地板原材采購與倉儲管理合同4篇
- 2025年度勞動合同解除補償協(xié)議及離職員工子女教育資助協(xié)議
- 2025年度足療店線上線下整合營銷轉(zhuǎn)讓合同
- 2025年度影視演員經(jīng)紀服務與勞動合同
- 二零二五版木工行業(yè)綠色生產(chǎn)標準合同4篇
- 二零二五年度運輸合同延誤糾紛處理范本
- 《大學生職業(yè)發(fā)展與就業(yè)指導》課程標準
- 第23課《出師表》課件(共56張)
- GB/T 3953-2024電工圓銅線
- 發(fā)電機停電故障應急預案
- 接電的施工方案
- 常用藥物作用及副作用課件
- 幼兒阿拉伯數(shù)字描紅(0-100)打印版
- 社會組織等級評估報告模板
- GB/T 12173-2008礦用一般型電氣設備
- 新媒體研究方法教學ppt課件(完整版)
- 2020新版?zhèn)€人征信報告模板
評論
0/150
提交評論