第1章軟件工程學概述_第1頁
第1章軟件工程學概述_第2頁
第1章軟件工程學概述_第3頁
第1章軟件工程學概述_第4頁
第1章軟件工程學概述_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章

軟件工程導論

2本章目標掌握軟件的定義,軟件工程的定義及三要素。掌握軟件生存周期的概念和內(nèi)容,8種軟件開發(fā)模型。了解軟件危機的表現(xiàn)及解決途徑,軟件開發(fā)方法。31.1軟件的概念

計算機軟件的發(fā)展與進步,與計算機硬件的發(fā)展和計算機的普及是分不開的。同其他事物的發(fā)展規(guī)律一樣,它也經(jīng)歷了從產(chǎn)生、發(fā)展到成熟的過程。在這個過程中也經(jīng)歷了軟件的危機,為吸取歷史經(jīng)驗教訓,應該認真研究產(chǎn)生軟件危機的原因,探討消除軟件危機的途徑。阿塔納索夫-貝瑞計算機(Atanasoff-BerryComputer,簡稱ABC)是法定的世界上第一臺電子計算機。是愛荷華州立大學的約翰·文森特·阿塔納索夫(JohnVincentAtanasoff)和他的研究生克利福特·貝瑞(CliffordBerry)在1937年設計,不可編程,僅僅設計用于求解線性方程組,并在1942年成功進行了測試?!咎攸c】這臺計算機是電子與電器的結合,電路系統(tǒng)中裝有300個電子真空管執(zhí)行數(shù)字計算與邏輯運算,機器使用電容器來進行數(shù)值存儲,數(shù)據(jù)輸入采用打4世界第一臺計算機孔讀卡方法,還采用了二進位制。因此,ABC的設計中已經(jīng)包含了現(xiàn)代計算機中四個最重要的基本概念,從這個角度來說它是一臺真正現(xiàn)代意義上的電子計算機。5艾奧瓦州立大學DurhamCenter一樓的ABC6世界第二臺計算機ENIAC是第二臺(中文名:埃尼阿克)(電子數(shù)字積分計算機的簡稱,英文全稱為ElectronicNumericalIntegratorAndComputer),事實上它是世界上第一臺電子多用途計算機,它于1946年2月14日在美國宣告誕生。承擔開發(fā)任務的“莫爾小組”由四位科學家和工程師??颂?、莫克利、戈爾斯坦、博克斯組成,總工程師??颂卦诋敃r年僅24歲。7ENIAC誕生于二戰(zhàn)時期,最初是作為輔助炮兵計算炮彈軌跡的工具,在盟軍登陸西歐前一年開始制造,但直到1945年?;饡r還沒完成。在冷戰(zhàn)初期軍方就發(fā)現(xiàn)了ENIAC的大量用途,它的17468根真空管被用來測試氫彈的早期設計的可行性。這臺計算機每秒能執(zhí)行5000條指令,在當時的情況下它的運算速度比電動式計算機快1000倍。當然,現(xiàn)在iPhone6每秒能響應250億條指令。89ENIAC重達27噸,占地1800平方英尺,101815年世界上首位程序員AugustaAdaKing誕生她是英國詩人拜倫的獨生女,師從計算機數(shù)學基礎布爾代數(shù)的創(chuàng)始人之一摩根,因第一個為分析機編出了程序即“第一套計算機軟件”,被譽為“世界上第一位軟件工程師”。

11補充

軟件發(fā)展歷程

軟件的發(fā)展主要經(jīng)歷了以下3個發(fā)展階段:第一階段(20世紀50年代初期至20世紀60年代中期)特點:(1)稱為程序設計階段(2)軟件生產(chǎn)以個體化為主(3)編寫程序的工具只有低級語言(4)軟件規(guī)模小,幾乎沒有系統(tǒng)化的標準可循12(5)軟件由軟件使用者自己開發(fā)和編寫,適合個人應用(6)沒有“軟件”概念,對于程序有關的文檔的重要性認識不足,開發(fā)主要圍繞硬件進行(7)工程規(guī)模小,使用工具單一,開發(fā)者之間沒有明確分工第二階段(20世紀60年代中期至70年代末期)稱程序系統(tǒng)階段13特點:(1)大容量存儲器的出現(xiàn)(2)出現(xiàn)了高級程序設計語言(3)多道程序設計、用戶系統(tǒng)引入了人機交互的新概念(4)出現(xiàn)了實時系統(tǒng)和第一代數(shù)據(jù)庫管理系統(tǒng)(5)軟件產(chǎn)品的使用和軟件作坊的出現(xiàn)(6)軟件的應用范圍更廣14缺乏有效的工程化方法指導,很多軟件不能按計劃完成,糾正源代碼錯誤變更程序功能等軟件維護花費了人們更多的精力和資源,到了20世紀60年代中期,出現(xiàn)了所謂的軟件危機。15第三階段(20世紀70年代末至今)特點:(1)計算機硬件向巨型機和微型機兩個方向發(fā)展(2)計算機網(wǎng)絡的出現(xiàn),Internet的飛速發(fā)展(3)出現(xiàn)了軟件工程(4)分布式系統(tǒng)、高帶寬數(shù)字通信系統(tǒng)、實時數(shù)據(jù)訪問控制系統(tǒng)等應用技術的迅速發(fā)展,對計算機軟件的需求要求更高16補充之二:

軟件的定義

軟件是計算機系統(tǒng)中與硬件(hardware)相互依存的另一部分,與硬件合為一體完成系統(tǒng)功能。軟件定義包括如下幾點:(1)功能和性能的指令集(即程序);(2)程序能正常操縱信息的數(shù)據(jù)結構(即相關數(shù)據(jù));(3)與程序開發(fā)維護和使用有關的各種圖文數(shù)據(jù)(即說明文檔)。軟件=程序+數(shù)據(jù)+相關文檔(1)程序是能夠完成預定功能和性能的可執(zhí)行的指令序列(2)數(shù)據(jù)是使程序能夠適當?shù)靥幚硇畔⒌臄?shù)據(jù)結構(3)文檔是開發(fā)、使用和維護程序所需要的圖文資料17【注意】【1】軟件開發(fā)不是某種個體勞動的神秘技巧,而是一種組織良好、管理嚴密、各類人員協(xié)同配合、共同完成的工程項目。【2】應推廣使用在實踐中總結出來的開發(fā)軟件的成功的技術和方法【3】應該開發(fā)和使用更好的軟件工具1819

軟件的特點(1)軟件是一種抽象的邏輯實體。人們無法看到其具體形態(tài),而必須通過觀察、分析、思考、判斷等方式去了解它的特性功能。(2)軟件是通過人們的智力活動,把知識與技術轉(zhuǎn)化為信息的一種產(chǎn)品,是在研制、開發(fā)中被創(chuàng)造出來的。一旦某一軟件被研制成功,只需復制即可,但其維護的工作量大。(3)軟件具有“復雜性”,開發(fā)和運行經(jīng)常受到計算機系統(tǒng)的限制。20(4)軟件成本昂貴,開發(fā)方式目前尚未擺脫手工生產(chǎn)方式。(5)在軟件的運行和使用期間,不存在硬件那樣的機器磨損、老化問題。但是軟件也存在退化問題,也需要維護。21圖1-1是硬件的失效率曲線,它是一個“U型”曲線,說明隨使用時間的增加,失效率急劇上升。圖1-2是軟件失效率曲線,表明軟件隨使用時間的增加,失效率降低;因為軟件雖然不存在磨損和老化問題,但存在退化問題。22

軟件的分類1.基于軟件的功能劃分(1)系統(tǒng)軟件系統(tǒng)軟件是與計算機硬件緊密配合居于計算機系統(tǒng)中最靠近硬件的一層。例如,設備驅(qū)動程序、操作系統(tǒng)等。(2)支撐軟件支撐軟件是協(xié)助用戶開發(fā)軟件的工具性軟件。例如,網(wǎng)絡軟件、數(shù)據(jù)庫管理程序等。23(3)應用軟件應用軟件是特定領域內(nèi)開發(fā)、為特定目的服務的軟件。例如,工程與科學計算軟件、系統(tǒng)仿真和人工智能軟件等。2.基于軟件規(guī)模劃分(1)微型軟件是指一個人在幾天內(nèi)完成、程序不超過500行語句且供個人專用的軟件。沒有嚴格的分析和完整的設計與測試。24

軟件的分類(2)小型軟件是指由一個人在半年內(nèi)完成的2000行語句以內(nèi)的程序。具有一定的標準化技術、正規(guī)的數(shù)據(jù)書寫以及定期的系統(tǒng)審查,但沒有大型軟件那樣嚴格。(3)中型軟件是指由5個人以內(nèi)在一年多的時間里完成的5000-50000行語句的程序。開始出現(xiàn)軟件人員之間、軟件人員與用戶之間的協(xié)調(diào)、聯(lián)系的配合方面的問題。25(4)大型軟件是指由5-10個人在兩年多的時間里完成的50000-100000行語句的程序。在大型軟件中采用軟件工程方法進行規(guī)劃可以有效解決和避免突發(fā)事件,減少危害性。(5)甚大型軟件是指由100-1000個人在4-5年里完成的100萬行語句規(guī)模的程序的軟件項目。26(6)極大型軟件是指由2000-5000人在10年里完成的1000萬行語句以內(nèi)規(guī)模的程序的軟件項目。這類軟件一般用于軍事指揮、彈道防御系統(tǒng)等項目。3.基于軟件工作方式劃分(1)實時處理軟件是指在事件或數(shù)據(jù)產(chǎn)生時,立即處理,并及時反饋信號,以控制需要檢測的部分和控制過程的軟件。27軟件的分類(2)分時軟件允許多個聯(lián)機用戶同事使用計算機的軟件,系統(tǒng)把處理事件輪流分配給聯(lián)機用戶,但用戶感覺是只有自己在使用計算機。(3)交互式軟件能實現(xiàn)人機通信的軟件,能接收用戶給出的信息,但在時間上沒有嚴格的限定。(4)批處理軟件把一組輸入作業(yè)或一批數(shù)據(jù)以批處理的方式一次運行,按順序逐個處理的軟件。281.1軟件危機1.2.1軟件危機的定義軟件危機是計算機軟件在它的開發(fā)和維護過程中所遇到的一系列嚴重問題。主要包含兩方面的問題:一方面是如何開發(fā)軟件,怎樣滿足對軟件日益增長的需求;另一方面是如何維護數(shù)量不斷膨脹的已有軟件。291.1.2產(chǎn)生軟件危機的原因(1)軟件是計算機系統(tǒng)的邏輯部件,缺乏“可見性”,且軟件產(chǎn)品往往規(guī)模龐大,給軟件的開發(fā)和維護帶來客觀的困難。(2)軟件一般要使用5~10年,在這段時間里,可能會出現(xiàn)當初沒有預料的問題。如系統(tǒng)運行的環(huán)境發(fā)生變化,軟件需求發(fā)生等,都需要及時地對軟件進行維護和更新,以延長軟件的使用壽命。(3)軟件的開發(fā)技術落后,生產(chǎn)方式和開發(fā)工具落后。(4)軟件開發(fā)人員忽視軟件需求分析的重要性,輕視軟件的維護,也是造成軟件危機的原因。30311.1.3軟件危機的表現(xiàn)形式軟件發(fā)展速度跟不上硬件的發(fā)展和用戶的實際需求對軟件開發(fā)成本和進度估計不準確使用戶不滿意軟件產(chǎn)品的質(zhì)量差軟件產(chǎn)品的可維護性差軟件文檔資料不完整321.1.4解決軟件危機的途徑(1)加強軟件開發(fā)過程的管理,創(chuàng)造良好的組織、嚴密的管理和協(xié)調(diào)工作的機制。(2)推廣使用開發(fā)軟件的成功技術與方法,探索更好的更有效的技術和方法,盡快消除在計算機系統(tǒng)早期發(fā)展階段形成的錯誤概念。(3)開發(fā)和使用好的軟件工具。在適當?shù)能浖ぞ咧С窒?,開發(fā)人員可以更好的完成工作。331.2軟件工程的產(chǎn)生和發(fā)展【軟件工程】是指導計算機軟件開發(fā)和維護的一門工程學科。采用工程的概念、原理、技術和方法來開發(fā)與維護軟件,把經(jīng)過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來,以經(jīng)濟地開發(fā)出高質(zhì)量的軟件并有效地維護它,這就是軟件工程。1.2.1軟件工程的定義及特征1.著名的軟件工程專家B.W.Boedhm對軟件工程的定義“軟件工程”是開發(fā)、運行、維護和修復軟件的系統(tǒng)方法。這個定義概括了軟件工程是一種系統(tǒng)方法,而不是單獨的個人技巧的體現(xiàn)。34352.FrizeBauer在NATO(北大西洋公約組織North

Atlantic

Treaty

Organization簡稱北約組織或北約)會議上對軟件工程的定義盡力并使用完善的工程化原則,以較經(jīng)濟的手段獲得在實際機器上有效運行的可靠軟件的一系列方法。3.IEEE(電氣和電子工程師協(xié)會)在軟件工程術語匯編中的定義軟件工程是把系統(tǒng)化的、規(guī)范化的、可度量36的途徑應用于軟件開發(fā)、運行和維護的過程,即把工程化的方法應用于軟件中?!拒浖こ痰谋举|(zhì)特征】:(1)軟件工程關注于大型程序的構造(2)軟件工程的中心課題是控制復雜性軟件所解決的問題十分復雜,不能把問題作為一個整體通盤考慮,常用的方法是把問題分解,使得分解后的問題是可理解的,需要各個部分之間保持簡單的通信關系。(3)軟件經(jīng)常變化(4)開發(fā)軟件的效率非常重要(5.)和諧地合作是開發(fā)軟件的關鍵(6.)軟件必須有效地支持它的用戶開發(fā)軟件的目的就是支持用戶的工作,滿足用戶對軟件的需求(7.)在軟件工程領域中通常由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品3738

軟件工程的研究內(nèi)容391.2.2軟件工程的基本原理巴利.玻姆(B.W.Boehm)提出的7條軟件工程原理:(1)用分階段的生存周期計劃嚴格管理把軟件生存周期劃分為若干階段,并相應地制定出切實可行的計劃,然后嚴格按照計劃對軟件的開發(fā)和維護進行管理。(2)堅持進行階段評審,以確保軟件產(chǎn)品質(zhì)40量。(3)實行嚴格的產(chǎn)品控制,以適應軟件規(guī)格的變更(4)采用現(xiàn)代程序設計技術(5)結果應能清楚地審查(6)開發(fā)小組人員應該小而精(7)承認不斷改進軟件工程實踐的必要性411.3軟件生存周期

軟件生存周期(SoftwareLifeCycle):一個軟件產(chǎn)品從定義、開發(fā)、維護到廢棄的時間總和稱為軟件的生存周期。軟件生存周期的劃分:(1)軟件定義階段:該階段必須要回答的問題是“需要軟件解決的問題是什么”,通過對客戶的訪問調(diào)查,系統(tǒng)分析員扼要地寫出關于問題性質(zhì)、工程目標和工程規(guī)模的書面報告,經(jīng)過討論和必要的修改之后這份報告應該得到客戶的確認。(2)可行性研究提交“可行性研究報告”,要回答“對于上一個階段所確定的問題有行得通的解決方法嗎?”(3)軟件需求分析主要確定目標系統(tǒng)必須具備哪些功能,提交“需求規(guī)格說明書”,描述軟件的功能和性能,確定軟件設計的限制和軟件與其他系統(tǒng)元素的接口,定義軟件的其他有效性需求。42432.軟件開發(fā)階段:該階段的任務是設計實現(xiàn)已定義的并經(jīng)過需求分析的軟件系統(tǒng)。(4)總體設計(概要設計)需要解決的問題是“應該如何宏觀地解決問題”確定軟件德模塊功能,得出意義明確的功能模塊,確定每個模塊的輸入、輸出以及44相互聯(lián)系。(5)詳細設計(模塊設計)給出具體實現(xiàn)這個系統(tǒng)的步驟,但還不是編寫程序,而是設計出程序的詳細規(guī)格說明(類似于工程師的工程藍圖),它們包含必要的細節(jié),程序員可以根據(jù)它們寫出實際的程序代碼。(6)編碼和單元測試寫出正確的容易理解、容易維護的程序模塊。45程序員應該根據(jù)目標系統(tǒng)的性質(zhì)和實際環(huán)境選取一種適當?shù)母呒壋绦蛟O計語言把詳細設計的結果翻譯成用選定的語言書寫的程序,并仔細測試編寫出的每一個模塊。(7)綜合測試關鍵任務是通過各種類型的測試及相應的調(diào)試使軟件大道預定的要求。此階段最重要的測試是:集成測試、驗收測試。(1)集成測試:是根據(jù)設計的軟件結構,把經(jīng)過單元測試的模塊按照某種選定的策略裝配起來。(2)驗收測試:按照規(guī)格說明書的規(guī)定,由用戶(或在用戶積極參加下)對目標系統(tǒng)進行驗收。46(8)軟件維護運行階段的任務是保障軟件的正常運行以及對軟件進行維護。為了排除軟件系統(tǒng)中可能隱含的錯誤,適應用戶需求及系統(tǒng)操作環(huán)境的變化,需要繼續(xù)對系統(tǒng)進行修改或擴充。47481.4軟件過程1.4.1軟件過程軟件過程(SoftwareProcedure)是為了獲得高質(zhì)量軟件所需要完成的一系列任務的框架,規(guī)定了完成各項任務的工作順序,在完成開發(fā)任務時必須進行一些必要的活動。其中活動的執(zhí)行可以是順序的、重復的、并行的、嵌套的或者是有條件引發(fā)的。49軟件過程的分類:(1)基本過程類:包括獲取過程、供應過程、開發(fā)過程、運作過程、維護過程和管理過程。(2)支持過程:包括文檔過程、配置管理過程、質(zhì)量保證過程、驗證過程、確認過程、聯(lián)合評審過程以及問題解決過程。(3)組織過程類:包括基礎設施過程、改進過程以及培訓過程。50軟件過程是整個軟件生存周期中一系列的軟件生產(chǎn)活動的流程。把軟件生存周期中各項開發(fā)活動的流程用一個合理的框架-開發(fā)模型來規(guī)范描述,這就是軟件過程模型,或稱為軟件生存周期模型。1.4.1瀑布模型也稱為線性順序模型或軟件生存周期模型,是W.Royce于1970年提出的。511970年溫斯頓·羅伊斯(WinstonRoyce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被廣泛采用的軟件開發(fā)模型。瀑布模型將軟件生命周期劃分為制定計劃、需求分析、軟件設計、程序編寫、軟件測試和運行維護等六個基本活動,并且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。從本質(zhì)來講,它是一個軟件開發(fā)架構,開發(fā)過程是通過一系列階段順序展開的,從系統(tǒng)需求分析開始直到產(chǎn)品發(fā)布和維護,每個階段都會產(chǎn)生循環(huán)反饋,因此,如果有信息未被覆蓋或者發(fā)現(xiàn)了問題,那么最好“返回”上一個階段并進行適當?shù)男薷?,開發(fā)進程從一個階段“流動”到下一個階段,這也是瀑布開發(fā)名稱的由來。521.4軟件過程模型1.4.1瀑布模型傳統(tǒng)的瀑布模型過于理想化,人們在工作中不可能不犯錯誤,在設計階段可能發(fā)現(xiàn)規(guī)格說明文檔中的錯誤,設計上的缺陷或錯誤可能在實現(xiàn)過程中顯現(xiàn)出來,在綜合測試階段將發(fā)現(xiàn)需求分析、設計或編碼階段的許多錯誤,因此,實際的瀑布模型是帶“反饋環(huán)”的,如圖所示,當在后階段發(fā)現(xiàn)前面階段的錯誤時,需要沿圖中左側(cè)的反饋線返回前面的階段,修正前面階段的產(chǎn)品之后再回來繼續(xù)完成后面的任務。535455瀑布模型的優(yōu)缺點

1、瀑布模型有以下優(yōu)點:

1)為項目提供了按階段劃分的檢查點。

2)當前一階段完成后,您只需要去關注后續(xù)階段。

3)可在迭代模型中應用瀑布模型。2、瀑布模型有以下缺點:

1)在項目各個階段之間極少有反饋。

2)只有在項目生命周期的后期才能看到結果。

3)通過過多的強制完成日期和里程碑來跟蹤各個項目階段。561.4.2快速原型模型1.4.2快速原型模型是快速建立起來的可以在計算機上運行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個子集。快速原型模型又稱原型模型,它是增量模型的另一種形式;它是在開發(fā)真實系統(tǒng)之前,構造一個原型,在該原型的基礎上,逐漸完成整個系統(tǒng)的開發(fā)工作。57例如,客戶需要一個ATM機軟件,可以先設計一個僅包含刷卡、密碼檢測、數(shù)據(jù)輸入和賬單打印的原型軟件提供給客戶,此時還不包括網(wǎng)絡處理與數(shù)據(jù)庫存取以及數(shù)據(jù)應急、故障處理等服務。

快速原型模型的第一步是建造一個快速原型,實現(xiàn)客戶或未來的用戶與系統(tǒng)的交互,用戶或客戶對原型進行評價,進一步細化待開發(fā)軟件的需求。通過逐步調(diào)整原型使其滿足客戶的要求,開發(fā)人員可以確定客戶的真正需求是什么;第二步則在第一步的基礎上開發(fā)客戶滿意的軟件產(chǎn)品。58591.4.3增量模型增量模型是一種非整體開發(fā)模型。把軟件產(chǎn)品作為一系列的增量構件來設計、實現(xiàn)、集成和測試。開發(fā)時分批向用戶提交產(chǎn)品,每次提交一個滿足用戶需求子集的增量構件,直到最后一次得到滿足用戶全部需求的完整產(chǎn)品為止根據(jù)增量的方式和形式不同,分為基本瀑布模型的漸增模型和基于原型的快速原型模型。60增量模型融合了瀑布模型的基本成分(重復應用)和原型實現(xiàn)的迭代特征,該模型采用隨著日程時間的進展而交錯的線性序列,每一個線性序列產(chǎn)生軟件的一個可發(fā)布的“增量”。當使用增量模型時,第1個增量往往是核心的產(chǎn)品,即第1個增量實現(xiàn)了基本的需求,但很多補充的特征還沒有發(fā)布。客戶對每一個增量的使用和評估都作為下一個增量發(fā)布的新特征和功能,這個過程在每一個增量發(fā)布后不斷重復,直到產(chǎn)生了最終的完善產(chǎn)品。增量模型強調(diào)每一個增量均發(fā)布一個可操作的產(chǎn)品。61采用增量模型的軟件過程如圖所示

62增量模型631、增量模型的優(yōu)點采用增量模型的優(yōu)點是人員分配靈活,剛開始不用投入大量人力資源。如果核心產(chǎn)品很受歡迎,則可增加人力實現(xiàn)下一個增量。當配備的人員不能在設定的期限內(nèi)完成產(chǎn)品時,它提供了一種先推出核心產(chǎn)品的途徑。這樣即可先發(fā)布部分功能給客戶,對客戶起到鎮(zhèn)靜劑的作用。此外,增量能夠有計劃地管理技術風險。2.增量模型存在以下缺陷:

1)由于各個構件是逐漸并入已有的軟件體系結構中的,所以加入構件必須不破壞已構造好的系統(tǒng)部分,這需要軟件具備開放式的體系結構。64

2)在開發(fā)過程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應這種變化的能力大大優(yōu)于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟件過程的控制失去整體性。

3)如果增量包之間存在相交的情況且未很好處理,則必須做全盤系統(tǒng)分析,這種模型將功能細化后分別開發(fā)的方法較適應于需求經(jīng)常改變的軟件開發(fā)過程。651.4.4螺旋模型1988年,巴利·玻姆BarryBoehm正式發(fā)表了軟件系統(tǒng)開發(fā)的“螺旋模型”,它將瀑布模型和快速原型模型結合起來,強調(diào)了其他模型所忽視的風險分析,特別適合于大型復雜的系統(tǒng)。螺旋模型采用一種周期性的方法來進行系統(tǒng)開發(fā)。這會導致開發(fā)出眾多的中間版本。使用它,項目經(jīng)理在早期就能夠為客戶實證某些概念。66該模型是快速原型法,以進化的開發(fā)方式為中心,在每個項目階段使用瀑布模型法。這種模型的每一個周期都包括需求定義、風險分析、工程實現(xiàn)和評審4個階段,由這4個階段進行迭代。軟件開發(fā)過程每迭代一次,軟件開發(fā)又前進一個層次。螺旋模型基本做法是在“瀑布模型”的每一個開發(fā)階段前引入一個非常嚴格的風險識別、風險分析和風險控制,它把軟件項目分解成一個個小項目。每個小項目都標識一個或多個主要風險,直到所有的主要風險因素都被確定。簡化的螺旋模型6768完整的螺旋模型69螺旋模型強調(diào)風險分析,使得開發(fā)人員和用戶對每個演化層出現(xiàn)的風險有所了解,繼而做出應有的反應,因此特別適用于龐大、復雜并具有高風險的系統(tǒng)。對于這些系統(tǒng),風險是軟件開發(fā)不可忽視且潛在的不利因素,它可能在不同程度上損害軟件開發(fā)過程,影響軟件產(chǎn)品的質(zhì)量。減小軟件風險的目標是在造成危害之前,及時對風險進行識別及分析,決定采取何種對策,進而消除或減少風險的損害。70

1、螺旋模型的優(yōu)勢包括:

1)設計上的靈活性,可以在項目的各個階段進行變更。

2)以小的分段來構建大型系統(tǒng),使成本計算變得簡單容易。

3)客戶始終參與每個階段的開發(fā),保證了項目不偏離正確方向以及項目的可控性。

4)隨著項目推進,客戶始終掌握項目的最新信息,從而他或她能夠和管理層有效地交互。

5)客戶認可這種公司內(nèi)部的開發(fā)方式帶來的良好的溝通和高質(zhì)量的產(chǎn)品。711.4.5噴泉模型噴泉模型是一種以用戶需求為動力,以對象為驅(qū)動的模型,主要用于描述面向?qū)ο蟮能浖_發(fā)過程。該模型認為軟件開發(fā)過程自下而上周期的各階段是相互重疊和多次反復的,就像水噴上去又可以落下來,類似一個噴泉。各個開發(fā)階段沒有特定的次序要求,并且可以交互進行,可以在某個開發(fā)階段中隨時補充其他任何開發(fā)階段中的遺漏。72噴泉模型的概述噴泉模型是由B.H.Sollers和J.M.Edwards于1990年提出的一種新的開發(fā)模型。噴泉模型主要用于采用面向?qū)ο蠹夹g的軟件開發(fā)項目,噴泉一詞本身就體現(xiàn)了迭代和無間隙的特征。無間隙指在各項活動之間無明顯邊界,如分析、設計和編碼之間沒有明顯的界限。在編碼之前再進行需求分析和設計,期間添加有關功能,使系統(tǒng)得以演化。噴泉模型在系統(tǒng)某個部分常常被重復工作多次,相關對象在每次迭代中隨之加入漸進的系統(tǒng)。由于對象概念的引入,需求分析、設計、實現(xiàn)等活動只用對象類和關系來表達,從而可以較為容易地實現(xiàn)活動的迭代和無間隙,并且使得開發(fā)過程自然地包括復用。73741.4.5噴泉模型751、噴泉模型的優(yōu)點噴泉模型不像瀑布模型那樣,需要分析活動結束后才開始設計活動,設計活動結束后才開始編碼活動。該模型的各個階段沒有明顯的界限,開發(fā)人員可以同步進行開發(fā)。其優(yōu)點是可以提高軟件項目開發(fā)效率,節(jié)省開發(fā)時間,適應于面向?qū)ο蟮能浖_發(fā)過程。2、噴泉模型的缺點由于噴泉模型在各個開發(fā)階段是重疊的,因此在開發(fā)過程中需要大量的開發(fā)人員,因此不利于項目的管理。此外這種模型要求嚴格管理文檔,使得審核的難度加大,尤其是面對可能隨時加入各種信息、需求與資料的情況。761.4.6基于構件的開發(fā)模型基于構件的開發(fā)是指利用預先包裝的構件來構造應用系統(tǒng)。構件可以是組織內(nèi)部開發(fā)的或者是商品化、現(xiàn)存的軟件構件?;跇嫾拈_發(fā)模型如圖所示:領域工程的目的是構建領域模型、領域基準體系結構和可復用構件庫。應用系統(tǒng)工程的目的是使用可復用構件組裝應用系統(tǒng)。771.4.6基于構件的開發(fā)模型1.4.6Rational統(tǒng)一過程

統(tǒng)一軟件開發(fā)過程(RUP)又稱為統(tǒng)一軟件過程,是一個面向?qū)ο笄一诰W(wǎng)絡的程序開發(fā)方法論。根據(jù)Rational(RationalRose和統(tǒng)一建模語言的開發(fā)者)的說法,好

溫馨提示

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

評論

0/150

提交評論