軟件工程概論課件_第1頁
軟件工程概論課件_第2頁
軟件工程概論課件_第3頁
軟件工程概論課件_第4頁
軟件工程概論課件_第5頁
已閱讀5頁,還剩28頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

軟件工程楊振參考文獻《SoftwareEngineering,APractitioner’sApproach,FourthEdition》RogerS.Pressman,機械工業出版社(影印),McGraw-Hill《Reuse-BasedSoftwareEngineering》,HafedhMill等,電子工業出版社(影印)《軟件工程,6thEdition》,IanSommerville,機械工業出版社(影印)《面向對象軟件工程》,TimothyC.Lethbridge,機械出版社

什么是軟件

軟件的發展軟件危機

軟件工程軟件生存期及開發模型軟件工程軟件是計算機系統中與硬件相互依存的另一部分,它是包括程序,數據及其相關文檔的完整集合。程序是按事先設計的功能和性能要求執行的指令序列數據是使程序能正常操縱信息的數據結構文檔是與程序開發,維護和使用有關的圖文材料什么是軟件?軟件的特點軟件是一種邏輯實體,而不是具體的物理實體。因而它具有抽象性軟件的生產與硬件不同,在它的開發過程中沒有明顯的制造過程在軟件的運行和使用期間,沒有硬件那樣的機械磨損,老化問題軟件的開發和運行常受到計算機系統的限制,對計算機系統有著不同程度的依賴性軟件的開發至今尚未完全擺脫手工藝的開發方式軟件本身是復雜的實際問題的復雜性程序邏輯結構的復雜性軟件成本相當昂貴相當多的軟件工作涉及到社會因素軟件的發展第一階段是20世紀50年代初期至20世紀60年代初期的十余年是計算機系統開發的初期階段。編寫者和使用者往往是同一個或同一組人。隱含過程,最后除了程序清單外,沒有其他文檔資料保存下來。第二階段跨越了從60年代中期到70年代末期的十余年,在這個時期,出現了軟件產品和“軟件作坊”的概念,設計人員開發軟件不再像早期階段那樣只為自己的研究工作需要,而是為了用戶更好地使用計算機,但“軟件作坊”仍然沿用早期形成的個體式的軟件開發方法。軟件的維護工作以驚人的比例耗費資源,更嚴重的是,程序設計的個體化和作坊化特性使軟件最終成為不可維護的,從而出現了早期的軟件危機。人們隨之也就開始尋求采用軟件工程的方法來解決軟件危機問題。第三階段是20世紀70年代中期至20世紀80年代末期,分布式系統、網絡的發展對軟件開發提出了更高的要求,硬件的發展速度已經超過了人們對軟件的需求速度,因此使得硬件價格下降,軟件的價格急劇上升,導致了軟件危機的加劇,致使更多的科學家著手研究軟件工程學的科學理論、方法和時限等一系列問題。軟件開發技術的度量問題受到重視,最著名的有軟件工作量估計COCOMO模型、軟件過程改進模型CMM等。第四階段是從20世紀80年代末期開始的。這個階段是強大的桌面系統和計算機網絡迅速發展的時期計算機體系結構由中央主機控制方式變為客戶機/服務器方式,專家系統和人工智能軟件終于走出實驗室進入了實際應用,虛擬現實和多媒體系統改變了與最終用戶的通信方式,出現了并行計算和網絡計算的研究,面向對象技術在許多領域迅速取代了傳統軟件開發方法。軟件發展現狀(1)已經存在大量正在運行的軟件。金融、電信、航空航天等(2)軟件的應用范圍不斷擴大。商務、交通、家電等,軟件無處不在。(3)軟件的規模與復雜性持續增加

非常大規模系統:從50萬行增加到1000萬行,擴大了20倍;復雜性:a.子系統數目越來越多;b.計算機應用從數值計算開始發展到幾百萬條指令的大型企業業務應用,再發展到幾千萬終端用戶直接交互工作的網絡應用。(4)出現了大量與軟件相關的標準。CORBA、UML、XML、TMN、CWM等。(5)軟件危機仍然存在(軟件脫節)

1968-2000:軟件效率、質量、進度、預算無法控制。軟件危機IBM/360布魯克斯2019年阿麗亞娜火箭爆炸70年代穿梭號飛船工業控制軟件危機指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。這類問題絕不僅僅是“不能正常運行的軟件”才具有的,實際上幾乎所有軟件都不同程度地存在這類問題。概括來說,軟件危機包含兩方面問題:其一是如何開發軟件,以滿足不斷增長、日趨復雜的需求;其二是如何維護數量不斷膨脹的軟件產品。軟件危機主要有下列表現

對軟件開發成本和進度的估計常常不準確。開發成本超出預算,實際進度比預定計劃一再拖延的現象并不罕見。用戶對“已完成”系統不滿意的現象經常發生。軟件產品的質量往往靠不住。“缺陷”一大堆,“補丁”一個接一個。軟件的可維護程度非常之低。軟件通常沒有適當的文檔資料。軟件的成本不斷提高。軟件開發生產率的提高趕不上硬件的發展和人們需求的增長。軟件工程是一門研究如何用系統化、規范化、數量化等工程原則和方法去進行軟件的開發和維護的學科。可以定義為:軟件工程是一類設計軟件的工程。軟件工程應用計算機科學、數學及管理科學等原理,借鑒傳統工程的原則、方法,創建軟件以達到提高質量、降低成本的目的。計算機科學、數學用于構建模型與算法;工程科學用于制定規范、設計規范、評估成本及確定權衡;管理科學用于計劃、資源、質量、成本等管理。軟件工程學是一門指導計算機軟件開發和維護的科學。軟件工程包括的內容軟件開發技術:包括軟件開發方法學、軟件工具和軟件工程環境軟件項目管理:包括軟件度量、項目估算、進度控制、人員組織、配置管理、項目計劃等。軟件工程的研究對象

軟件方法軟件語言

軟件工具

軟件過程軟件工程的基本原理

用分階段的生命周期計劃嚴格管理堅持進行階段評審實行嚴格的產品控制采納現代程序設計技術結果應能清楚地審查開發小組的人員應少而精承認不斷改進軟件工程實踐的必要性軟件的生存期

定義階段(1)系統分析(2)制定軟件項目計劃(3)需求分析開發階段(1)軟件設計(2)編碼(3)軟件測試維護階段常用的軟件開發模型

瀑布模型、原型模型、演化模型、螺旋模型、噴泉模型、第四代技術過程模型瀑布模型瀑布模型1970年,W.Royce提出瀑布模型。特征:活動的輸入來自上一活動的輸出;完成該項活動的內容;活動的輸出傳給下一活動;對活動的實施工作進行評審。適合:需求明確的任務。優點:以項目的階段評審和文檔控制為手段有效地對整個開發過程進行指導,從而保證了軟件產品及時交付,并達到預期的質量要求。缺點:成品時間長;缺乏靈活性。原型法模型(prototypemodel)

基本思想:從用戶需求出發,快速建立一個原型,使用戶通過這個原型初步表達出自己的要求,并通過反復修改、完善,逐步靠近用戶的全部需求,最終形成一個完全滿足用戶要求的新系統

演化模型項目開發初始階段對需求的認識不夠清晰,使得開發工作出現再開發在所難免。經驗告訴我們:開發“兩次”后的軟件能較好地滿足用戶的要求。第一次:試驗開發,目的是探索可行性,弄清楚項目的需求。第二次:在第一次的原型基礎上進行開發,從而獲得較為滿意的軟件產品。演化模型適合:事先不能清晰和完整定義需求的軟件開發。需求分析軟件設計程序編碼軟件測試軟件集成軟件評審需求分析軟件設計程序編碼軟件測試軟件集成軟件評審反饋“第一次”“第二次”螺旋模型對于大型項目而言,事先不能完整清晰地定義需求是常事,而且開發一個原型是遠遠不能解決問題的,需要開發內容逐步豐富的多個原型。大型項目的規模和復雜性增加,軟件開發過程中必然存在著許多風險問題,風險分析是保證項目成功的必要手段。2.4螺旋模型螺旋模型螺旋模型沿著螺線旋轉,在四個象限上分別表達了四個方面的活動,即:制定計劃──確定軟件目標,選定實施方案,弄清項目開發的限制條件風險分析──分析所選方案,考慮如何識別和消除風險實施工程──實施軟件開發客戶評

溫馨提示

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

評論

0/150

提交評論