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

下載本文檔

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

文檔簡介

軟件工程許靜

E-Mail:xjhelen@163.com1軟件工程(SoftwareEngineering,簡稱為SE)是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科。它涉及到程序設計語言,數(shù)據(jù)庫,軟件開發(fā)工具,系統(tǒng)平臺,標準,設計模式等方面。在現(xiàn)代社會中,軟件應用于多個方面。典型的軟件比如有電子郵件,嵌入式系統(tǒng),人機界面,辦公套件,操作系統(tǒng),編譯器,數(shù)據(jù)庫,游戲等。同時,各個行業(yè)幾乎都有計算機軟件的應用,比如工業(yè),農業(yè),銀行,航空,政府部門等。這些應用促進了經(jīng)濟和社會的發(fā)展,使得人們的工作更加高效,同時提高了生活質量。2教材軟件工程導論(第5版)張海藩清華大學出版社(2008)3各章節(jié)主要內容第1章軟件與軟件工程第2章可行性研究第3章需求分析第4章總體設計第5章詳細設計第6章實現(xiàn)第7章軟件維護第8章面向對象的分析設計方法第9章軟件項目管理4考試理論考試:平時成績30%(考勤、書面作業(yè)、課堂測驗、論文等)期末考試70%(閉卷)5第1章軟件工程學概述內容提要:軟件和軟件危機軟件工程軟件生命周期軟件過程6§1.1軟件和軟件危機1、軟件軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關文檔的完整集合程序是按事先設計的功能和性能要求執(zhí)行的指令序列數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結構文檔是與程序開發(fā),維護和使用有關的圖文材料72、軟件的特點抽象性:軟件是邏輯實體,而不是具體的物理實體嚴密性:軟件是邏輯產品,它的生產與物理產品不同,在它的開發(fā)過程中沒有明顯的制造過程智力性:軟件的開發(fā)是技術人員從無到有寫出程序的過程持久性:軟件沒有時間磨損一次性:軟件的開發(fā)和運行常受到計算機系統(tǒng)的限制,對計算機系統(tǒng)有不同程度的依賴難以度量:難定量變量必須維護:糾錯和變更83、軟件的發(fā)展軟件的發(fā)展是與計算機硬件系統(tǒng)的發(fā)展密切相關的軟件發(fā)展經(jīng)歷了三個階段試驗階段:1940—1960

特點:(1)先硬后軟

(2)完全是手工編寫程序,手工操作

(3)工作效率極低

(4)無文檔資料、只有程序文本9軟件的發(fā)展理論抽象階段:1960—1970

特點:(1)軟件急劇發(fā)展

a.高級語言涌現(xiàn)(公布1000多種,常用20多種)

b.操作系統(tǒng)(批處理、分時、實時)、數(shù)據(jù)庫的出現(xiàn)(2)出現(xiàn)軟件作坊(3)出現(xiàn)了軟件危機

a.質量差

b.成本難以控制

c.進度難控

d.維護困難

10美國IBM公司在1963年至1966年開發(fā)的IBM360機的操作系統(tǒng),這一項目花了5000人一年的工作量,最多時有1000人投入開發(fā)工作,寫出了近100萬行源程序……據(jù)統(tǒng)計,這個操作系統(tǒng)每次發(fā)行的新版本都是從前一版本中找出1000個程序錯誤而修正的結果。這個項目的負責人F.D.Brooks事后總結了他在組織開發(fā)過程中的沉痛教訓時說:“……正像一只逃亡的野獸落到泥潭中做垂死的掙扎,越是掙扎,陷得越深,最后無法逃脫滅頂?shù)臑碾y……程序設計正像這樣一個泥潭,……一批批程序員被迫在泥潭中拼命掙扎,……誰也沒有料到問題竟會陷入這樣的困境……?!?1軟件的發(fā)展(4)提出“軟件工程”術語1968年10月,北大西洋公約組織召開討論軟件可靠性會議上提出“軟件工程”12軟件的發(fā)展技術發(fā)展階段:1970—今特點:(1)軟件的成批生產:不是copy,出現(xiàn)軟件工廠(2)微機急劇發(fā)展,普遍應用(3)“軟件工程”被正式承認1973年,國際軟件可靠性會議決定,軟件錯誤來自設計上的錯誤1975年,召開第一次軟件工程國際會議,軟件工程被正式承認,出版了軟件工程雜志SoftwareEngineering13軟件的發(fā)展軟件產品在不同時期關注的問題不同:

70年代:規(guī)模問題規(guī)模大

80年代:量的問題人員缺乏的量

90年代:質的問題可靠性和易操作

90年代后:接口問題數(shù)據(jù)和程序的互換和連接性開放式系統(tǒng)

144、軟件危機(1)軟件危機定義軟件的開發(fā)和維護過程中所遇到的一系列問題(2)軟件危機的典型表現(xiàn)對軟件開發(fā)的成本和進度估計不準確用戶對已完成的軟件產品往往不滿意軟件產品的質量不可靠可維護性差文檔不完整或無文檔軟件成本上升(軟件+硬件比例成本)軟件開發(fā)生產率提高的速度,遠遠跟不上計算機應用迅速普及深入的趨勢。15軟硬件成本在計算機系統(tǒng)總成本中所占的比例16軟件危機(3)軟件危機產生的原因與軟件本身特點有關。開發(fā)與維護的方法有關a.對需求分析的理解不明就匆忙著手編寫程序b.重程序,輕配置c.輕視軟件維護17軟件危機(4)消除軟件危機的途徑正確認識計算機軟件軟件開發(fā)過程的工程化開發(fā)工具的高性能化開發(fā)人員的高素質化18§1.2軟件工程1、軟件工程定義用科學知識和技術原理來定義、開發(fā)、維護軟件的一門工程學科。2、軟件工程的基本原理用分階段的生命周期計劃嚴格管理堅持進行階段評審實行嚴格的產品控制采用現(xiàn)代程序設計技術結果應能清楚地審查開發(fā)小組的人員應該少而精承認不斷改進軟件工程實踐的必要性19軟件工程3、軟件工程方法學軟件工程包括技術和管理兩方面的內容軟件工程的管理就是通過計劃、組織和控制等一系列活動,合理地配置和使用各種資源,以達到既定目標的過程。軟件工程方法學:在軟件生命周期全過程中使用的一整套技術方法的集合稱為方法學。20軟件工程軟件工程方法學包括3個要素:方法、工具和過程方法:為軟件開發(fā)提供了如何做的技術工具:為軟件工程方法提供了自動化或半自動化的軟件支撐環(huán)境過程:軟件工程過程定義了①方法使用的順序;②要求交付的文檔資料;③為保證質量和適應變化所需要的管理;④軟件開發(fā)各個階段完成的里程碑。21軟件工程目前最廣泛的軟件工程方法學:(1)傳統(tǒng)方法學:也叫做生命周期方法學,采用結構化技術完成軟件開發(fā)的各項任務,并使用適當?shù)能浖ぞ呋蜍浖こ汰h(huán)境來支持結構化得運用。(2)面向對象方法學軟件項目實踐WordVisioPowerDesignerSourcesafeRoseMicrosoftproject22§1.3

軟件生命周期軟件生命周期軟件生命周期(SoftwareLifeCycle)是指一個軟件產品從被提出開始研制到軟件最終被廢棄不再使用為止的全過程。軟件生命周期由軟件定義、軟件開發(fā)和運行維護3個時期組成,每個時期又被劃分成若干個階段23軟件生命周期階段基本任務軟件定義軟件開發(fā)運行維護問題定義可行性研究需求分析總體設計詳細設計編碼和單元測試綜合測試確定要解決的問題是什么確定項目的可行性確定目標系統(tǒng)必須具備哪些功能概括的說,應該怎樣實現(xiàn)目標系統(tǒng)應該怎樣具體地實現(xiàn)這個系統(tǒng)寫出正確的容易理解、容易維護的程序模塊通過各種類型的測試使軟件達到預定的要求通過各種必要的維護活動使系統(tǒng)持久的滿足用戶的需要24§1.4

軟件過程軟件過程描述了為達到某個確定的目標,需要什么人在什么時間以何種方式做何種工作用軟件生命周期模型描述軟件過程生命周期模型規(guī)定了把生命周期劃分成哪些階段及各個階段的執(zhí)行順序,生命周期模型也稱過程模型25軟件過程說明:軟件生命周期被劃分成的階段需求分析(包括問題定義、可行性研究)規(guī)格說明:用正確的文檔準確的記錄目標系統(tǒng)的要求設計(包括總體設計、詳細設計)編碼、測試(單元測試)綜合測試維護26瀑布模型(文檔驅動的模型)傳統(tǒng)的瀑布模型實際的瀑布模型27瀑布模型的特點①階段間具有順序性:前一階段的工作完成之后,才能開始后一階段的工作;階段間具有依賴性:每一階段結束都需要有交付的文檔,前一階段的輸出文檔是后一階段的輸入文檔。②清楚地區(qū)分邏輯設計與物理設計,盡可能推遲程序的物理實現(xiàn)。③保證質量每個階段必須完成規(guī)定的文檔;每個階段結束前必須對所完成的文檔進行評審,以便盡早發(fā)現(xiàn)問題,改正錯誤。28瀑布模型當有一個穩(wěn)定的產品定義和很容易被理解的技術解決方案時,瀑布模型特別合適當你對一個定義得很好的版本進行維護或將一個產品移植到一個新的平臺上,瀑布模型也特別合適。瀑布模型能夠降低管理費用,因為你可以預先完成所有計劃。對于那些容易理解但很復雜的項目,采用瀑布模型比較合適,因為可以用順序方法處理問題。在質量需求高于成本需求和進度需求的時候,它尤為出色。當開發(fā)隊伍的技術力量比較弱或者缺乏經(jīng)驗時,瀑布模型更為適合。29瀑布模型的優(yōu)點和缺點優(yōu)點:可強迫開發(fā)人員采用規(guī)范的方法。嚴格的規(guī)定了每個階段必須提交的文檔。要求每個階段交出的所有產品都必須經(jīng)過質量保證小組的仔細驗證。缺點:瀑布模型幾乎完全依賴于書面的規(guī)格說明,很可能導致最終開發(fā)出的軟件產品不能真正滿足用戶的需要。30快速原型模型快速原型模型31快速原型模型原型的好處從實踐中學習(Learningbydoing)改善的通信改善的用戶參與使部分已知的需求清晰化展示描述的一致性和完整性可能可以減少文檔減少了維護成本特征約束(利用工具構造原型可以將某些特性落到實處,而非在紙上寫的那樣容易失誤)32快速原型模型原型法的缺點用戶有時誤解了原型的角色,例如他們可能誤解原形應該和真實系統(tǒng)一樣可靠缺少項目標準,原型法有點像編碼修正額外的花費:研究結果表明構造一個原型可能需要10%額外花費原型法要求開發(fā)者與用戶密切接觸,有時這是不可能的。例如外包軟件。33

溫馨提示

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

評論

0/150

提交評論