版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第1章軟件工程概述LOADINGLOADINGDGIL
第1章軟件工程概述背景知識軟件工程軟件危機軟件生命周期軟件過程教學(xué)單位教師介紹SoftwareEngineering1.41.11.21.31.5第1章軟件工程概述1.1背景知識第1章軟件工程概述1.1.1什么是軟件程序軟件數(shù)據(jù)文檔計算機系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合。按事先設(shè)計的功能和性能要求執(zhí)行的指令序列(instructions)使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)與程序開發(fā),維護和使用有關(guān)的圖文材料第1章軟件工程概述1.1.2軟件的分類按軟件的規(guī)模進行劃分 類別參加人員數(shù) 研制期限源程序行數(shù)
微型
1 1~4周0.5k
小型
1 1~6月1k~2k
中型
2~5 1~2年5k~50k
大型
5~20 2~3年50k~100k
甚大型
100~10004~5年1M(=1000k)
極大型
2000~50005~10年1M~10M
第1章軟件工程概述1.1.2軟件的分類1系統(tǒng)軟件操作系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)設(shè)備驅(qū)動程序通信處理程序2支撐軟件文本編輯程序文件格式化程序磁盤向磁帶進行數(shù)據(jù)傳輸?shù)某绦虺绦驇煜到y(tǒng)3應(yīng)用軟件商業(yè)數(shù)據(jù)處理軟件系統(tǒng)仿真軟件計算機輔助設(shè)計系統(tǒng)仿真軟件等按軟件的功能進行劃分第1章軟件工程概述1.2軟件危機Case:美國IBM公司在1963年至1966年開發(fā)的IBM360機的操作系統(tǒng)。這一項目花了5000人一年的工作量,最多時有1000人投入開發(fā)工作,寫出了近100萬行源程序......據(jù)統(tǒng)計,這個操作系統(tǒng)每次發(fā)行的新版本都是從前一版本中找出1000個程序錯誤而修正的結(jié)果......這個項目的負責人F.D.Brooks事后總結(jié)了他在組織開發(fā)過程中的沉痛教訓(xùn)時說:“......正像一只逃亡的野獸落到泥潭中做垂死的掙扎,越是掙扎,陷得越深,最后無法逃脫滅頂?shù)臑?zāi)難。......程序設(shè)計工作正像這樣一個泥潭,......一批批程序員被迫在泥潭中拼命掙扎,......誰也沒有料到問題竟會陷入這樣的困境......”。IBM360操作系統(tǒng)的歷史教訓(xùn)成為軟件開發(fā)項目的典型事例為人們所記取。SoftwareCrisis!第1章軟件工程概述1.2.1軟件危機的概念如何維護數(shù)量不斷膨脹的已有軟件。如何開發(fā)軟件,以滿足對軟件日益增長的需求。軟件危機在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。第1章軟件工程概述1.2.1軟件危機的概念
對軟件開發(fā)成本和進度的估計常常很不準確。軟件產(chǎn)品的質(zhì)量往往靠不住。軟件常常是不可維護的。軟件通常沒有適當?shù)奈臋n資料。軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升。軟件危機主要有以下典型表現(xiàn):第1章軟件工程概述1.2.2產(chǎn)生軟件危機的原因在軟件開發(fā)和維護的過程中存在這么多嚴重問題:與軟件本身的特點有關(guān)。與軟件開發(fā)與維護的方法不正確有關(guān)。第1章軟件工程概述軟件的特點表現(xiàn)形式軟件是一種邏輯實體,而不是具體的物理實體。因而它具有抽象性生產(chǎn)方式軟件的生產(chǎn)與硬件不同,在它的開發(fā)過程中沒有明顯的制造過程,大多數(shù)軟件仍是定制的。維護在軟件的運行和使用期間,沒有硬件那樣的機械磨損,老化問題要求軟件產(chǎn)品不允許誤差第1章軟件工程概述軟件的特點軟件的開發(fā)和運行常受到計算機系統(tǒng)的限制,對計算機系統(tǒng)有著不同程度的依賴性軟件的開發(fā)至今尚未完全擺脫手工藝的開發(fā)方式軟件本身是復(fù)雜的實際問題的復(fù)雜性程序邏輯結(jié)構(gòu)的復(fù)雜性
軟件成本相當昂貴相當多的軟件工作涉及到社會因素第1章軟件工程概述軟件開發(fā)與維護的方法相當多的軟件專業(yè)人員在實踐過程中或多或少地采用了錯誤的方法和技術(shù),這可能是使軟件問題發(fā)展成軟件危機的主要原因。輕視軟件維護等。輕視維護是一個最大的錯誤。對用戶要求沒有完整準確的認識就匆忙著手編寫程序是許多軟件開發(fā)工程失敗的主要原因之一。必須認識到程序只是完整的軟件產(chǎn)品的一個組成部分。必須清除只重視程序而忽視軟件配置其余成分的觀念。忽視軟件需求分析的重要性。作好軟件定義時期的工作,是降低軟件成本提高軟件質(zhì)量的關(guān)鍵。第1章軟件工程概述1.2.3消除軟件危機的途徑徹底消除“軟件就是程序”的錯誤觀念。充分認識到軟件開發(fā)不是某種個體勞動的神秘技巧,而應(yīng)該是一種組織良好、管理嚴密、各類人員協(xié)同配合、共同完成的工程項目。推廣使用在實踐中總結(jié)出來的開發(fā)軟件的成功的技術(shù)和方法,并且研究探索更好更有效的技術(shù)和方法。開發(fā)和使用更好的軟件工具。第1章軟件工程概述1.3軟件工程第1章軟件工程概述1.3.1軟件工程定義軟件工程是一類求解軟件的工程,它應(yīng)用計算機科學(xué)、數(shù)學(xué)(用于構(gòu)造模型和算法)和管理科學(xué)(用于計劃、資源、質(zhì)量和成本等的管理)等原理,借鑒傳統(tǒng)工程(用于制定規(guī)范、設(shè)計范型、評估成本、權(quán)衡結(jié)果)的原則和方法,創(chuàng)建軟件以達到提高質(zhì)量、降低成本的目的。第1章軟件工程概述1.3.1軟件工程定義軟件工程是一門交叉學(xué)科軟件開發(fā)技術(shù):軟件開發(fā)方法學(xué)
軟件開發(fā)過程
軟件工具和軟件工程環(huán)境軟件工程管理:軟件管理學(xué)
軟件經(jīng)濟學(xué)軟件心理學(xué)軟件工程所包含的內(nèi)容不是一成不變的,隨著人們對軟件系統(tǒng)的研制開發(fā)和生產(chǎn)的理解。應(yīng)用發(fā)展的眼光看待它。第1章軟件工程概述1.3.1軟件工程定義和諧地合作是開發(fā)軟件的關(guān)鍵中心課題是控制復(fù)雜性軟件必須有效地支持它的用戶開發(fā)軟件的效率非常重要關(guān)注于大型程序的構(gòu)造軟件經(jīng)常變化軟件工程本質(zhì)特征
第1章軟件工程概述1.3.2軟件工程原理⑴用分階段的生命周期計劃嚴格管理
項目概要計劃
里程碑計劃
項目控制計劃
產(chǎn)品控制計劃
驗證計劃
運行維護計劃⑵堅持進行階段評審⑶實行嚴格的產(chǎn)品控制——基準配置管理(Baselineconfigurationmanagement)⑹開發(fā)小組的成員應(yīng)該少而精1+1<2⑷采用現(xiàn)代程序設(shè)計技術(shù)⑸結(jié)果應(yīng)能清楚地審查—setstandards⑺承認不斷改進軟件工程實踐的必要性第1章軟件工程概述1.3.3軟件工程方法學(xué)通常把在軟件生命周期全過程中使用的一整套技術(shù)方法的集合稱為方法學(xué)。方法學(xué)包含3個要素:方法、工具和過程。目前使用得最廣泛的軟件工程方法學(xué),分別是傳統(tǒng)方法學(xué)和面向?qū)ο蠓椒▽W(xué)。第1章軟件工程概述1.3.3軟件工程方法學(xué)
1.傳統(tǒng)方法學(xué)傳統(tǒng)方法學(xué)也稱為生命周期方法學(xué)。它采用結(jié)構(gòu)化技術(shù)來完成軟件開發(fā)的各項任務(wù),并使用適當?shù)能浖ぞ邅碇С纸Y(jié)構(gòu)化技術(shù)的運用。這種方法學(xué)把軟件生命周期的全過程依次劃分為若干個階段,然后順序地完成每個階段的任務(wù)。開發(fā)軟件的時候,從對問題的抽象邏輯分析開始,一個階段一個階段地進行開發(fā)。第1章軟件工程概述1.3.3軟件工程方法學(xué)
2.面向?qū)ο蠓椒▽W(xué)面向?qū)ο蠓椒▽W(xué)具有下述4個要點:把對象作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟件構(gòu)件。用對象分解取代了傳統(tǒng)方法的功能分解。把所有對象都劃分成類。每個類都定義了一組數(shù)據(jù)和一組操作。數(shù)據(jù)用于表示對象的靜態(tài)屬性,是對象的狀態(tài)信息,而施加于數(shù)據(jù)之上的操作用于實現(xiàn)對象的動態(tài)行為。第1章軟件工程概述1.3.3軟件工程方法學(xué)按照父類與子類的關(guān)系,把若干個相關(guān)類組成一個層次結(jié)構(gòu)的系統(tǒng)。對象彼此間僅能通過發(fā)送消息互相聯(lián)系。對象的所有私有信息都被封裝在該對象內(nèi),不能從外界直接訪問。第1章軟件工程概述1.4軟件生命周期由軟件定義、軟件開發(fā)和運行維護(也稱為軟件維護)3個時期組成。軟件定義(系統(tǒng)分析)時期的任務(wù)是:確定軟件開發(fā)工程必須完成的總目標;確定工程的可行性;導(dǎo)出實現(xiàn)工程目標應(yīng)該采用的策略及系統(tǒng)必須完成的功能;估計完成該項工程需要的資源和成本,并且制定工程進度表。軟件定義時期通常劃分成3個階段,即問題定義、可行性研究和需求分析。第1章軟件工程概述1.4軟件生命周期軟件開發(fā)時期通常由4個階段組成:總體設(shè)計,詳細設(shè)計,編碼和單元測試,綜合測試。其中前兩個階段又稱為系統(tǒng)設(shè)計,后兩個階段又稱為系統(tǒng)實現(xiàn)。維護時期的主要任務(wù)是使軟件持久地滿足用戶的需要。第1章軟件工程概述1.4軟件生命周期1.問題定義必須回答的關(guān)鍵問題是:“要解決的問題是什么?”
通過對客戶的訪問調(diào)查,系統(tǒng)分析員扼要地寫出關(guān)于問題性質(zhì)、工程目標和工程規(guī)模的書面報告,經(jīng)過討論和必要的修改之后這份報告應(yīng)該得到客戶的確認。第1章軟件工程概述1.4軟件生命周期2.可行性研究
要回答的關(guān)鍵問題是:“對于上一個階段所確定的問題有行得通的解決辦法嗎?”
可行性研究應(yīng)該比較簡短,但是一個壓縮和簡化了的系統(tǒng)分析和設(shè)計過程。這個階段的任務(wù)不是具體解決問題,而是研究問題的范圍,探索這個問題是否值得去解,是否有可行的解決辦法。第1章軟件工程概述1.4軟件生命周期3.需求分析
這個階段要準確地確定“為了解決這個問題,目標系統(tǒng)必須做什么?”,主要是確定目標系統(tǒng)必須具備哪些功能、性能。系統(tǒng)分析員在需求分析階段必須和用戶密切配合,充分交流信息,以得出經(jīng)過用戶確認的系統(tǒng)邏輯模型。該階段的重要任務(wù)是編寫規(guī)格說明書。第1章軟件工程概述1.4軟件生命周期4.總體設(shè)計回答的關(guān)鍵問題是:“概括地說,應(yīng)該怎樣實現(xiàn)目標系統(tǒng)?”
。設(shè)計出實現(xiàn)目標系統(tǒng)的幾種可能的方案并推薦一個最佳方案。用適當?shù)谋磉_工具描述每種方案,分析每種方案的優(yōu)缺點。制定出實現(xiàn)最佳方案的詳細計劃。設(shè)計程序的體系結(jié)構(gòu),也就是確定程序由哪些模塊組成以及模塊間的關(guān)系。第1章軟件工程概述1.4軟件生命周期5.詳細設(shè)計回答的關(guān)鍵問題是:“應(yīng)該怎樣具體地實現(xiàn)這個系統(tǒng)呢?”設(shè)計出程序的詳細規(guī)格說明。這種規(guī)格說明包含必要的細節(jié),程序員可以根據(jù)它們寫出實際的程序代碼。詳細地設(shè)計每個模塊,確定實現(xiàn)模塊功能所需要的算法和數(shù)據(jù)結(jié)構(gòu)。第1章軟件工程概述1.4軟件生命周期6.編碼和單元測試關(guān)鍵任務(wù)是寫出正確的容易理解、容易維護的程序模塊。程序員應(yīng)該根據(jù)目標系統(tǒng)的性質(zhì)和實際環(huán)境,選取一種適當?shù)某绦蛟O(shè)計語言,把詳細設(shè)計的結(jié)果翻譯成用選定的語言書寫的程序,并且仔細測試編寫出的每一個模塊。第1章軟件工程概述1.4軟件生命周期7.綜合測試關(guān)鍵任務(wù)是通過各種類型的測試使軟件達到預(yù)定的要求。最基本的測試是集成測試和驗收測試。用正式的文檔資料把測試計劃、詳細測試方案以及實際測試結(jié)果保存下來,作為軟件配置的一個組成部分。第1章軟件工程概述1.4軟件生命周期8.軟件維護關(guān)鍵任務(wù)是通過各種必要的維護活動使系統(tǒng)持久地滿足用戶的需要。通常有4類維護活動:改正性維護;適應(yīng)性維護;完善性維護;預(yù)防性維護。軟件維護實質(zhì)上是經(jīng)歷了一次壓縮和簡化了的軟件定義和開發(fā)的全過程。第1章軟件工程概述1.5軟件過程軟件過程是為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項任務(wù)的工作步驟。軟件過程定義了運用方法的順序、應(yīng)該交付的文檔資料、為保證軟件質(zhì)量和協(xié)調(diào)變化所需要采取的管理措施,以及標志軟件開發(fā)各個階段任務(wù)完成的里程碑。通常使用生命周期模型簡潔地描述軟件過程。第1章軟件工程概述1.5.1瀑布模型圖1.1傳統(tǒng)的瀑布模型第1章軟件工程概述1.5.1瀑布模型1階段間具有順序性和依賴性必須等前一階段的工作完成之后,才能開始后一階段的工作。前一階段的輸出文檔就是后一階段的輸入文檔。3質(zhì)量保證的觀點為保證軟件質(zhì)量需要做到:每個階段都必須完成規(guī)定的文檔,每個階段結(jié)束前都要對所完成的文檔進行評審。2推遲實現(xiàn)的觀點對于規(guī)模較大的軟件項目來說,往往編碼開始得越早最終完成開發(fā)工作所需要的時間反而越長。忽視認真地系統(tǒng)分析與設(shè)計,過早地考慮進行程序?qū)崿F(xiàn),往往導(dǎo)致大量返工。第1章軟件工程概述
圖1.2實際的 瀑布模型第1章軟件工程概述1.5.1瀑布模型可強迫開發(fā)人員采用規(guī)范的方法。嚴格地規(guī)定了每個階段必須提交的文檔。要求每個階段交出的所有產(chǎn)品都必須經(jīng)過質(zhì)量保證小組的仔細驗證。使用戶全面正確地認識動態(tài)的軟件產(chǎn)品。用戶最初提出的需求發(fā)生了變化。優(yōu)點缺點第1章軟件工程概述1.5.2快速原型模型快速原型是快速建立起來的可以在計算機上運行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個子集。第1章軟件工程概述圖1.3快速原型模型第1章軟件工程概述1.5.2快速原型模型快速原型模型是不帶反饋環(huán)的,這正是這種過程模型的主要優(yōu)點:軟件產(chǎn)品的開發(fā)基本上是線性順序進行的。軟件開發(fā)可以線性進行的主要原因如下:原型系統(tǒng)已經(jīng)通過與用戶交互而得到驗證,據(jù)此產(chǎn)生的規(guī)格說明文檔正確地描述了用戶需求,因此在開發(fā)過程的后續(xù)階段不會因為發(fā)現(xiàn)了規(guī)格說明文檔的錯誤而進行較大的返工。開發(fā)人員通過建立原型系統(tǒng)已經(jīng)學(xué)到了許多東西,因此在設(shè)計和編碼階段發(fā)生錯誤的可能性也比較小,這自然減少了在后續(xù)階段需要改正前面階段所犯錯誤的可能性。第1章軟件工程概述1.5.3增量模型增量模型分批地逐步向用戶提交產(chǎn)品,整個軟件產(chǎn)品被分解成許多個增量構(gòu)件,開發(fā)人員一個構(gòu)件接一個構(gòu)件地向用戶提交產(chǎn)品。使用增量模型開發(fā)軟件時,把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計、編碼、集成和測試。每個構(gòu)件由多個模塊構(gòu)成,并且能夠完成特定的功能。把軟件產(chǎn)品分解成增量構(gòu)件時,應(yīng)該使構(gòu)件的規(guī)模適中,規(guī)模過大或
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國全自動氣動式超聲波清洗機行業(yè)投資前景及策略咨詢研究報告
- 2025至2030年中國黃銅內(nèi)絲擴口式接頭數(shù)據(jù)監(jiān)測研究報告
- 二零二五年度個人汽車按揭貸款財產(chǎn)抵押擔保合同2篇
- 二零二五年度個人光伏發(fā)電設(shè)備貸款合同(含發(fā)電收益分配)4篇
- 2024年全球AI應(yīng)用趨勢年度報告
- 二零二五年度企業(yè)間供應(yīng)鏈借款服務(wù)協(xié)議4篇
- 二零二五年版心臟病患者入學(xué)康復(fù)輔導(dǎo)與免責合同3篇
- 品牌廣告宣傳合同
- 股票投資合作合同范本
- 裝修施工合同書范本
- 江蘇省蘇州市2024-2025學(xué)年高三上學(xué)期1月期末生物試題(有答案)
- 銷售與銷售目標管理制度
- 人教版(2025新版)七年級下冊英語:寒假課內(nèi)預(yù)習(xí)重點知識默寫練習(xí)
- 2024年公安部直屬事業(yè)單位招聘筆試參考題庫附帶答案詳解
- 小學(xué)畢業(yè)紀念冊教學(xué)課件
- 移動商務(wù)內(nèi)容運營(吳洪貴)任務(wù)四 圖文類內(nèi)容的打造
- 個人房屋買賣購房合同
- 航空油料計量統(tǒng)計員(初級)理論考試復(fù)習(xí)題庫大全-下(判斷題匯總)
- 2022年度上海市養(yǎng)老護理員技師考試題(含答案)
- 養(yǎng)老護理員培訓(xùn)老年人日常生活照料
- 各種抽油泵的結(jié)構(gòu)及工作原理幻燈片
評論
0/150
提交評論