傳統(tǒng)軟件工程概述_第1頁
傳統(tǒng)軟件工程概述_第2頁
傳統(tǒng)軟件工程概述_第3頁
傳統(tǒng)軟件工程概述_第4頁
傳統(tǒng)軟件工程概述_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

傳統(tǒng)軟件工程概述第1頁,課件共54頁,創(chuàng)作于2023年2月Question什么是軟件?為什么需要“軟件工程”?軟件工程的研究內容有哪些?第2頁,課件共54頁,創(chuàng)作于2023年2月第0章傳統(tǒng)軟件工程概述計算機系統(tǒng)的發(fā)展軟件、軟件生存周期和軟件生存周期過程軟件生存周期模型軟件工程定義第3頁,課件共54頁,創(chuàng)作于2023年2月第0章傳統(tǒng)軟件工程概述進入上個世紀60年代,人們開始逐漸認識到了確實存在著“軟件危機”

這樣一個事實。例如:軟件生產不能滿足日益增長的需要軟件開發(fā)成本和開發(fā)進度估計往往不準確軟件開發(fā)人員和用戶之間信息交流不充分,用戶對完成的軟件滿意度很低軟件價格昂貴,軟件成本在整個計算機系統(tǒng)中所占的比例急劇上升,軟件已成為許多計算機系統(tǒng)中花錢最多的項目軟件質量難以保證軟件可維護性差,程序中的錯誤很難改正,適應性或完善性維護都極其困難第4頁,課件共54頁,創(chuàng)作于2023年2月第0章傳統(tǒng)軟件工程概述導致危機問題的一個重要原因,是由于軟件研制和維護本身是工程性的任務,但軟件人員采取的方式卻未能工程化為克服軟件危機,人們開始考慮采用工程化方法和工程途徑來研制和維護軟件第5頁,課件共54頁,創(chuàng)作于2023年2月第0章傳統(tǒng)軟件工程概述上個世紀60年代末至70年代初開始,逐漸發(fā)展起一組總稱為“軟件工程”的技術這些技術把軟件作為一個工程產品來處理:它需要計劃、分析、設計、實現、測試以及維護軟件工程學主要研究軟件結構、軟件設計方法論、軟件工具、軟件工程標準和規(guī)范,以及與軟件工程有關的理論等軟件產業(yè)的逐步建立,也帶動了軟件工程這門學科的發(fā)展。同時,軟件生產的系列化、產品化、工程化和標準化形成了軟件產業(yè)的標志第6頁,課件共54頁,創(chuàng)作于2023年2月0.1計算機系統(tǒng)的發(fā)展軟件工程和硬件工程都可以看成是一門更廣義的學科——計算機系統(tǒng)工程的一部分用于計算機硬件的工程技術是由電子設計技術發(fā)展起來的,已經達到了比較成熟的水平,可靠性已是一種可以期待的現實而不再是一種愿望但是,軟件已經取代硬件成為系統(tǒng)中設計起來最困難、最不容易成功(按時完成和不超過預計的成本),而且是最不易管理的部分另一方面,隨著以計算機為基礎的系統(tǒng)在數量、復雜程度和應用范圍上的不斷增長,對軟件的需求卻仍然有增無減第7頁,課件共54頁,創(chuàng)作于2023年2月0.1.1計算機系統(tǒng)及其軟件的發(fā)展軟件發(fā)展的歷史與計算機系統(tǒng)發(fā)展緊密相關計算機系統(tǒng)發(fā)展的初期(50~60年代),程序設計時期計算機系統(tǒng)發(fā)展的第二個時期(從60年代中期到70年代中期),程序系統(tǒng)時期計算機系統(tǒng)發(fā)展的第三個時期從70年代初期開始,軟件工程時期如今,計算機系統(tǒng)的發(fā)展處于第四個時期,即從技術性應用轉向消費性市場。第8頁,課件共54頁,創(chuàng)作于2023年2月0.1.2計算機系統(tǒng)工程計算機系統(tǒng)工程的主要內容是對系統(tǒng)所要求的功能加以揭示、分析,并把它們分配給系統(tǒng)的各個部分在大多數新系統(tǒng)創(chuàng)建時,對系統(tǒng)所要求的功能往往只有模糊的概念。系統(tǒng)分析和系統(tǒng)定義的目的在于揭示擺在面前的項目的范圍要對需要進行處理的信息、所要求的功能、所期望的性能以及設計的約束和檢驗的標準等進行系統(tǒng)、詳細的分析范圍確定之后,系統(tǒng)工程師必須考慮多種能潛在地滿足項目范圍的、可供選擇的配置。在綜合考慮了各項因素之后,選擇其中的一種配置,并將系統(tǒng)的功能分配給系統(tǒng)的各個部分第9頁,課件共54頁,創(chuàng)作于2023年2月系統(tǒng)分析和定義概念綜合考慮軟件硬件硬件工程軟件工程圖0-1計算機系統(tǒng)工程第10頁,課件共54頁,創(chuàng)作于2023年2月0.2軟件和軟件生存周期《中國大百科全書》給軟件下的定義是:軟件是計算機系統(tǒng)中的程序和有關文件也就是說,“軟件”不僅僅是指程序,在軟件研制過程中按一定規(guī)格產生的各種文件也是軟件不可缺少的組成部分第11頁,課件共54頁,創(chuàng)作于2023年2月0.2軟件和軟件生存周期一個計算機軟件,從出現一個構思之日起,經過開發(fā)成功投入使用,在使用中不斷增補修訂,直到最后決定停止使用,并被另一項軟件代替之時止,被認為是該軟件的一個生存周期(或稱生命周期、生存期,lifecycle)第12頁,課件共54頁,創(chuàng)作于2023年2月0.2軟件和軟件生存周期一個軟件產品的生存周期可以劃分成若干個互相區(qū)別而又有聯系的階段,每個階段中的工作均以上一階段工作的結果為依據,并為下一階段的工作提供了前提經驗表明,失誤造成的差錯越是發(fā)生在生存周期的前期,在系統(tǒng)交付使用時造成的影響和損失就越大,要糾正它所花費的代價也越高。因而在前一階段工作沒有做好之前,決不要草率地進入下一階段第13頁,課件共54頁,創(chuàng)作于2023年2月0.2軟件和軟件生存周期國家標準

GB/T8566-2001《信息技術軟件生存周期過程》將軟件生存周期劃分為以下8個階段可行性研究與計劃需求分析概要設計詳細設計實現(包括單元測試)組裝測試(即集成測試)確認測試使用和維護第14頁,課件共54頁,創(chuàng)作于2023年2月0.2軟件和軟件生存周期GB/T8567-88《計算機軟件產品開發(fā)文件編制指南》建議在軟件的開發(fā)過程中編制下述14種文件可行性研究報告項目開發(fā)計劃軟件需求說明書數據要求說明書概要設計說明書詳細設計說明書數據庫設計說明書用戶手冊操作手冊模塊開發(fā)卷宗測試計劃測試分析報告開發(fā)進度月報項目開發(fā)總結報告第15頁,課件共54頁,創(chuàng)作于2023年2月可行性研究與計劃需求分析設計實現測試使用和維護維護階段開發(fā)階段計劃階段圖0-2軟件生存周期的瀑布模型第16頁,課件共54頁,創(chuàng)作于2023年2月0.2軟件和軟件生存周期可行性研究與計劃(策劃):對軟件進行可行性分析,估算開發(fā)費用和時間等需求分析:向用戶了解需求,解決“做什么”的問題設計:分為概要設計和詳細設計。對需要解決的問題進行分析,提出解決方案,解決“怎么做”的問題實現(編碼):按照設計的結果,采用某種編程語言加以實現測試:編碼結束后,要用大量的數據進行測試,找出其中隱藏的錯誤使用和維護:軟件交付用戶使用后,在運行過程中仍有可能出錯,而且用戶的需求也有可能改變,因此,軟件需要繼續(xù)修改第17頁,課件共54頁,創(chuàng)作于2023年2月圖0-3軟件生存周期工作量分配第18頁,課件共54頁,創(chuàng)作于2023年2月圖0-4開發(fā)期工作量分配第19頁,課件共54頁,創(chuàng)作于2023年2月0.3軟件生存周期模型在軟件工程中,重要的概念是軟件生存周期模型(又稱軟件開發(fā)模型)以及軟件生存周期過程軟件生存周期模型可以定義為:是軟件開發(fā)全部過程、活動和任務的結構框架。在整個軟件開發(fā)的發(fā)展過程中,為了要從宏觀上管理軟件的開發(fā)和維護,而對軟件的發(fā)展過程的總體認識和描述。即對軟件過程建立的模型。第20頁,課件共54頁,創(chuàng)作于2023年2月0.3軟件生存周期模型軟件生存周期模型能清晰、直觀地表達軟件開發(fā)全過程,明確規(guī)定了開發(fā)工作各階段所要完成的主要活動和任務,以作為軟件項目開發(fā)工作的基礎對于不同的軟件系統(tǒng),可以采用不同的開發(fā)方法、使用不同的程序設計語言以及各種不同技能的人員參與工作、運用不同的管理方法和手段等,以及允許采用不同的軟件工具和不同的軟件工程環(huán)境軟件生存周期模型是穩(wěn)定有效和普遍適用的第21頁,課件共54頁,創(chuàng)作于2023年2月0.3軟件生存周期模型軟件生存周期過程可分為基本生存周期過程獲取過程、供應過程、開發(fā)過程、運作過程和維護過程等支持生存周期過程組織生存周期過程第22頁,課件共54頁,創(chuàng)作于2023年2月0.3軟件生存周期模型軟件生存周期模型僅對軟件的開發(fā)、運作、維護過程有意義,在ISO12207和ISO9000-3中都提到軟件生存周期模型,它包括:瀑布模型、漸增模型、演化模型、螺旋模型、噴泉模型和智能模型等第23頁,課件共54頁,創(chuàng)作于2023年2月0.3.1瀑布模型瀑布模型是1970年W.Royce提出的最早的軟件開發(fā)模型,其開發(fā)過程依照固定順序進行。該模型嚴格規(guī)定各階段的任務,上一階段任務輸出作為下一階段工作輸入。此模型適合于用戶需求明確、開發(fā)技術比較成熟、工程管理嚴格的場合使用。其缺點是:由于任務順序固定,軟件研制周期長,前一階段工作中造成的差錯越到后期越大,而且糾正前期錯誤的代價高。

第24頁,課件共54頁,創(chuàng)作于2023年2月0.3.1瀑布模型軟件維護構成了生存周期的循環(huán)表示如果把軟件維護看作是軟件的二次開發(fā),便有了軟件生存周期的b形表示第25頁,課件共54頁,創(chuàng)作于2023年2月0.3.1瀑布模型在評價瀑布模型時,應考慮以下的相關風險需求未被充分理解系統(tǒng)太大而一次不能做完所有的事事先打算采用的技術迅速發(fā)生變化需求迅速發(fā)生變化有限的資源無法利用某一中間產品第26頁,課件共54頁,創(chuàng)作于2023年2月需求分析測試計劃運行評價設計編碼圖0-5軟件生存周期循環(huán)第27頁,課件共54頁,創(chuàng)作于2023年2月圖0-6具有維護循環(huán)的軟件生存周期測試運行計劃編碼設計編碼設計需求分析計劃需求分析評價軟件開發(fā)維護循環(huán)第28頁,課件共54頁,創(chuàng)作于2023年2月0.3.2漸增模型是指從一組給定的需求開始,通過構造一系列可執(zhí)行的中間版本來實施開發(fā)活動第一個中間版本納入一部分需求,下一個中間版本納入更多的需求,依此類推,直到系統(tǒng)完成每個中間版本都要執(zhí)行必要的過程、活動和任務,如:需求分析和體系結構設計需要執(zhí)行一次,而詳細設計、編碼和測試、軟件組裝和驗收測試在每個中間版本構造過程中都執(zhí)行第29頁,課件共54頁,創(chuàng)作于2023年2月0.3.2漸增模型在評價該模型時,需要考慮的風險因素是需求未被很好地理解突然提出一些功能事先打算采用的技術迅速發(fā)生變化需求迅速發(fā)生變化長時期內僅有有限的資源保證(工作人員/資金)第30頁,課件共54頁,創(chuàng)作于2023年2月圖0-7漸增模型示意R:需求C/T:編碼/測試D:設計I/AS:安裝和驗收支持DC/TI/AS中間版本nDC/TI/AS中間版本1中間版本2DC/TI/ASR可能的信息流第31頁,課件共54頁,創(chuàng)作于2023年2月0.3.3演化模型主要針對事先不能完整定義需求的軟件項目開發(fā)對需要開發(fā)的軟件給出基本需求,作第一次試驗開發(fā),其目標僅在于探索可行性和弄清需求,取得有效的反饋信息,以支持軟件的最終設計和實現通常把第一次試驗性開發(fā)出來的軟件稱為原型。這種開發(fā)模型可以減少由于需求不明給開發(fā)工作帶來的風險與漸增模型的區(qū)別是:演化模型承認需求不能被完全了解,且不能在初始時就確定。在該模型中,需求一部分被預先定義,然后在每個相繼的中間版本中逐步完善對所有的中間版本,開發(fā)過程中的活動和任務通常接同一順序被重復使用。維護過程和運作過程可以與開發(fā)過程平行地使用。獲取過程、供應過程、支持過程和組織過程通常與開發(fā)過程平行地使用第32頁,課件共54頁,創(chuàng)作于2023年2月圖1-8演化模型示意RnDC/TI/AS工作版本nDC/TI/AS工作版本2R2DC/TI/AS工作版本1R1信息流(細化)R:需求C/T:編碼/測試D:設計I/AS:安裝和驗收支持第33頁,課件共54頁,創(chuàng)作于2023年2月0.3.4螺旋模型該模型是B.Boehm于1988年提出的,它將瀑布模型與演化模型相結合,并增加了兩者所忽略的風險分析該模型通常用來指導大型軟件項目的開發(fā)。它將開發(fā)劃分為制訂計劃、風險分析、實施開發(fā)和客戶評估四類活動。沿著螺旋線每轉一圈,表示開發(fā)出一個更完善的新的軟件版本如果開發(fā)風險過大,開發(fā)機構和客戶無法接受,項目有可能就此終止;多數情況下,會沿著螺旋線繼續(xù)下去,自內向外逐步延伸,最終得到滿意的軟件產品沿著螺旋線旋轉,在笛卡兒坐標的四個象限上分別表達了四類活動制定計劃、風險分析、實施開發(fā)、客戶評估第34頁,課件共54頁,創(chuàng)作于2023年2月圖0-9螺旋模型原型1原型2原型3可運行原型詳細設計編碼實現單元測試集成與測試驗收測試需求確認軟件需求軟件產品設計需求計劃設計確認與驗證生存期計劃開發(fā)計劃集成與測試風險分析風險分析風險分析累計成本提交線評審制定計劃決定目標方案與限制風險分析評價方案、識別風險、消除風險客戶評估實施開發(fā)開發(fā)、驗證下一產品第35頁,課件共54頁,創(chuàng)作于2023年2月0.3.5噴泉模型是由B.H.So11ers和J.M.Edwards于1990年提出的一種開發(fā)模型,主要用于采用面向對象技術的軟件開發(fā)項目“噴泉”一詞本身就體現了迭代和無間隙的特性軟件的某個部分常常被重復工作多次,相關對象在每次迭代中隨之加入漸進的軟件成分無間隙是指在各項活動之間無明顯邊界,如分析和設計活動之間沒有明顯的界限。由于對象概念的引入,表達分析、設計、實現等活動只用對象類和關系,從而可以較為容易地實現活動的迭代和無間隙,使其開發(fā)自然地包括復用第36頁,課件共54頁,創(chuàng)作于2023年2月圖0-10噴泉模型演化分析設計實現確認維護第37頁,課件共54頁,創(chuàng)作于2023年2月0.3.6智能模型也稱為基于知識的軟件開發(fā)模型,它是知識工程與軟件工程在開發(fā)模型上結合的產物它的維護不在程序一級上進行,把問題的復雜性大為降低,從而可以把精力更加集中于具體描述的表達上,即維護在功能規(guī)約一級進行具體描述可以使用形式功能規(guī)約,也可以使用知識處理語言描述等等,因而必須將規(guī)則和推理機制應用到開發(fā)模型中,所以必須建立知識庫,將模型本身、軟件工程知識和特定領域的知識分別存入知識庫,由此構成某一領域的軟件開發(fā)系統(tǒng)第38頁,課件共54頁,創(chuàng)作于2023年2月獲取需求需求分析具體描述優(yōu)化程序驗證維護調整知識庫/專家系統(tǒng)圖0-11智能模型第39頁,課件共54頁,創(chuàng)作于2023年2月0.4軟件工程定義定義一:科學知識在設計和構造計算機程序,以及開發(fā)、運作和維護這些程序所要求的有關文檔編制中的實際應用定義二:為了經濟地獲得軟件,這個軟件是可靠的并且能在實在的計算機上工作,所需要的健全的工程原理(方法)的確立和使用定義三:1983年IEEE(國際電氣與電子工程師協會)的《軟件工程術語匯編》中,將軟件工程定義為:對軟件開發(fā)、運作、維護、退役的系統(tǒng)研究方法定義四:1990年新版的IEEE《軟件工程術語匯編》又將定義更改為:對軟件開發(fā)、運作、維護的系統(tǒng)化的、有紀律的、可定量的方法之應用,即是對軟件的工程化應用第40頁,課件共54頁,創(chuàng)作于2023年2月0.4軟件工程定義軟件工程已經是一門交叉性學科,它是解決軟件問題的工程,對它的理解不應是靜止的和孤立的軟件工程是應用計算機科學、數學及管理科學等原理,借鑒傳統(tǒng)工程的原則、方法來創(chuàng)建軟件,從而達到提高質量、降低成本的目的計算機科學和數學用于構造模型、分析算法工程科學用于制定規(guī)范、明確風格、評估成本、確定權衡管理科學用于進度、資源、質量、成本等的管理第41頁,課件共54頁,創(chuàng)作于2023年2月0.4軟件工程定義軟件工程的目標是明確的,就是研制開發(fā)與生產出具有良好的軟件質量和費用合算的產品費用合算是指軟件開發(fā)運行的整個開銷能滿足用戶要求的程度軟件質量是指該軟件能滿足明確的和隱含的需求能力的有關特征和特性的總和第42頁,課件共54頁,創(chuàng)作于2023年2月0.4軟件工程定義軟件工程的基礎是一些指導性的原則必須認識軟件需求的變動性,并采取適當措施來保證結果產品能忠實地滿足用戶要求。在軟件設計中,通常要考慮模塊化、抽象與信息隱蔽、局部化、一致性等原則穩(wěn)妥的設計方法大大地方便軟件開發(fā),為達到軟件工程的目標,軟件工具與環(huán)境對軟件設計的支持來說,頗為重要軟件工程項目的質量與經濟開銷直接取決于對它所提供的支撐的質量與效用有效的軟件工程只有在對軟件過程進行有效管理的情況下才能實現第43頁,課件共54頁,創(chuàng)作于2023年2月0.4.1軟件工程學的內容從軟件的生產管理技術來分軟件的需求定義和分析技術軟件設計技術和設計審查技術軟件設計表現技術軟件測試技術軟件可靠性的理論及其評價方法軟件擴充和維護軟件成本估算等第44頁,課件共54頁,創(chuàng)作于2023年2月0.4.1軟件工程學的內容從內容上可分為理論、結構、方法、工具等部分理論與結構是方法論與工具的基礎及前提在方法論與工具方面存在著這樣的關系:為了找出行之有效的方法就應該具備合適的工具;反之,為了制造、改進軟件工具,也應先有合適的方法要達到如何以較少的代價獲得高質量的軟件這個目的,就必須研究軟件開發(fā)方法和軟件開發(fā)工具第45頁,課件共54頁,創(chuàng)作于2023年2月0.4.1軟件工程學的內容軟件開發(fā)方法就是開發(fā)軟件的規(guī)范化方法工作步驟,即明確軟件系統(tǒng)的基本開發(fā)步驟及每一步的條件、目的、結果等軟件文件格式評價標準,即確定對各種不同的軟件開發(fā)方案的評價標準第46頁,課件共54頁,創(chuàng)作于2023年2月0.4.2軟件工程過程是指為獲得軟件產品,在軟件工具的支持下,由軟件工程師完成的一系列軟件工程活動,通常包含4種基本的過程活動P(Plan):軟件規(guī)格說明,規(guī)定軟件的功能及其運行的限制D(Do):軟件開發(fā),產生滿足規(guī)格說明的軟件C(Check):軟件確認,確認軟件能夠完成客戶提出的要求A(Action):軟件演進,為滿足客戶的變更要求,軟件必須在使用的過程中演進事實上,軟件工程過程是一個軟件開發(fā)機構針對某一類軟件產品為自己規(guī)定的工作步驟第47頁,課件共54頁,創(chuàng)作于2023年2月0.4.3軟件工程學的基本目標和原則軟件工程項目的成功,是指達到以下幾個主要目標付出較低的開發(fā)成本達到要求的軟件功能取得較好的軟件性能開發(fā)的軟件易于移植需要較低的維護費用能按時完成開發(fā)工作,及時交付使用上述目標有些很可能是互相沖突的若只顧降低開發(fā)成本,很可能同時也降低了軟件的可靠性如果過于追求提高軟件的性能,可能造成所開發(fā)軟件對硬件有較大的依賴,從而直接影響到軟件的可移植性等等第48頁,課件共54頁,創(chuàng)作于2023年2月低開發(fā)成本易于維護高可靠性高性能按時交付互斥關系互補關系圖0-12軟件工程目標之間的關系第49頁,課件共54頁,創(chuàng)作于2023年2月0.4.3軟件工程學的基本目標和原則各種軟件工

溫馨提示

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

評論

0/150

提交評論