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

下載本文檔

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

文檔簡介

1、軟件工程與技術(shù),北京聯(lián)合大學(xué)信息學(xué)院 廖禮萍 E-Mail: xxtlliping, lipingliao,本課程學(xué)習(xí)的目的 本課程的主要內(nèi)容 本課程的特點(diǎn) 本課程的教/學(xué)及考核方式 主要參考書目 實(shí)驗(yàn)安排,課程簡介,消除錯誤地認(rèn)識 學(xué)習(xí)軟件工程基本理論 學(xué)習(xí)主流的軟件開發(fā)方法 熟悉軟件開發(fā)過程 掌握軟件開發(fā)全過程中的各重要階段的任務(wù)及相關(guān)描述方法 ; 如何分析問題并設(shè)計出合理的解決方案 如何保證軟件質(zhì)量 培養(yǎng)軟件工程師的基本素質(zhì),一、本課程學(xué)習(xí)目的,1、軟件工程的基本概念及軟件危機(jī) 2、軟件生存周期及軟件開發(fā)模型 3、軟件計劃 4、軟件分析(需求分析) 5、軟件系統(tǒng)設(shè)計 6、軟件測試 7、軟

2、件維護(hù) 8、面向?qū)ο筌浖こ?返回,二、 主要內(nèi)容,1、是專業(yè)課; 2、屬“工程”學(xué)科; 3、是一門需不斷完善的、發(fā)展的、可創(chuàng)新的學(xué)科。,返回,三、課程特點(diǎn),1、主要參考書目: 軟件工程技術(shù)及應(yīng)用賈鐵軍著 機(jī)械工業(yè)出版社 2、其他參考書目: a.軟件工程 楊衛(wèi)東譯 人民郵電出版社 b.實(shí)用面向?qū)ο筌浖こ探坛?殷人昆等譯 電子工業(yè)出版社,返回,四、參考教材,第一章 軟件工程概述,本章要點(diǎn),1軟件的定義及軟件發(fā)展過程 2軟件危機(jī)及軟件工程的產(chǎn)生 3軟件工程學(xué)定義、本課程學(xué)習(xí)的目的,可執(zhí)行部分,不可執(zhí)行部分,一、軟件的定義、特點(diǎn),1軟件的定義 程序 + 數(shù)據(jù) + 文檔 與計算機(jī)系統(tǒng)操作有關(guān)的程序、

3、數(shù)據(jù)以及任何與之相關(guān)的文檔的集合。,程序,1軟件的定義: 什么是程序(1/2): 程序: 由程序設(shè)計語言所描述的、能為計算機(jī)所識別、理解和處理的語句序列 程序例子 Main( ) int i, j; / 變量定義 char Str10; i = i + j ; / 語句說明 ,一、軟件的定義、特點(diǎn),1軟件的定義: 什么是程序(2/2) 程序設(shè)計語言具有良好、嚴(yán)格語法和語義 目前程序設(shè)計語言主要有以下幾種類型 面向機(jī)器: 如匯編語言、機(jī)器語言等 面向過程: 如Fortran, Pascal, C等等 面向?qū)ο? 如Java等等 面向問題: 如結(jié)構(gòu)化查詢語言SQL等等,一、軟件的定義、特點(diǎn),1軟件

4、的定義: 什么是文檔: 文檔: 記錄軟件開發(fā)活動和階段性成果、理解軟件所必需的闡述性資料 需求分析文檔、軟件設(shè)計文擋、用戶文檔等 編寫文檔目的 促進(jìn)對軟件的開發(fā),管理和維護(hù); 便于各種人員(用戶,開發(fā)人員)的交流,一、軟件的定義、特點(diǎn),一、軟件的定義、特點(diǎn),2軟件的特點(diǎn) 不會老化 邏輯產(chǎn)品 (智力, 無形) 維護(hù)困難和復(fù)雜(完善, 糾錯,.) 生產(chǎn)只需復(fù)制 軟件開發(fā)性質(zhì)如成本、進(jìn)度等難以估計 軟件的開發(fā)更加依賴于開發(fā)人員的業(yè)務(wù)素質(zhì)、智力、人員的合作、組織和管理,二、軟件的發(fā)展過程 1、20世紀(jì)50年代60年代初:程序設(shè)計階段 特點(diǎn):個體化;只有程序清單;以硬件發(fā)展為主 2、20世紀(jì)60年代初7

5、0年代初:程序系統(tǒng)階段 特點(diǎn):作坊式;軟件數(shù)量劇增;軟件維護(hù)費(fèi)用驚人;提 出“軟件工廠”概念;出現(xiàn)軟件危機(jī) 3、 70年代 90年代:軟件工程階段 軟件成本劇增;硬件技術(shù) (微電子學(xué))日趨成熟;軟件工程時代 4、 90年代至今: 現(xiàn)代信息技術(shù)飛速發(fā)展(并行計算機(jī)處理、三層處理模式、數(shù)據(jù)倉庫、多媒體技術(shù)、網(wǎng)絡(luò)技術(shù)、電子商務(wù)等)稱為:網(wǎng)絡(luò)時代,三、軟件危機(jī),1、軟件危機(jī)定義: 軟件在開發(fā)和維護(hù)過程中遇到的一系列問題 困擾學(xué)術(shù)界和工業(yè)界 用戶對軟件開發(fā)缺乏信心 軟件開發(fā)的高投入和高風(fēng)險,Crisis!,三、軟件危機(jī),2、軟件危機(jī)的表現(xiàn)(1 of 3) 成本高 IBM 360 OS, 5000多人年,

6、耗時4年(19631966),花費(fèi)2億多美元 美國空軍:1955年軟件占總費(fèi)用(計算機(jī)系統(tǒng))的18%,70年60%,85年達(dá)到85 美國全球軍事指揮控制系統(tǒng),硬件1億美元,軟件高達(dá)7.2億美元 計算機(jī)軟件和硬件費(fèi)用比,三、軟件危機(jī),2、軟件危機(jī)的表現(xiàn)(2 of 3) 軟件質(zhì)量得不到保證 軟件應(yīng)用面的擴(kuò)大:科學(xué)計算、軍事、航空航天、工業(yè)控制、企業(yè)管理、辦公、家庭 軟件越來越多的應(yīng)用于安全猶關(guān)(safety critical)的系統(tǒng),對軟件質(zhì)量提出更高的要求 80年代歐洲亞麗安娜火箭的發(fā)射失敗,原因是軟件錯誤 美國阿托拉斯火箭的發(fā)射失敗,原因是軟件故障 英國1986年開發(fā)的辦公室信息系統(tǒng)Folio

7、s經(jīng)4年,因性能達(dá)不到要求,1989年取消 日本第5代機(jī)因?yàn)檐浖栴}在投入50億美元后于1993年下馬 由于軟件質(zhì)量問題導(dǎo)致失敗的軟件項(xiàng)目非常多,三、軟件危機(jī),2、軟件危機(jī)的表現(xiàn)(3 of 3) 進(jìn)度難以控制 項(xiàng)目延期比比皆是 由于進(jìn)度問題而取消的軟件項(xiàng)目較常見 只有一小部分的項(xiàng)目能夠按期完成 維護(hù)非常困難 軟件維護(hù)的多樣性 軟件維護(hù)的復(fù)雜性 軟件維護(hù)的副作用,三、軟件危機(jī),3、軟件危機(jī)包含兩方面問題 一、如何開發(fā)軟件,以滿足不斷增長,日趨復(fù)雜的需求; 二、如何維護(hù)數(shù)量不斷膨脹的軟件產(chǎn)品。 4、軟件危機(jī)產(chǎn)生的原因 邏輯產(chǎn)品,不同于物理產(chǎn)品 復(fù)雜性高 邏輯產(chǎn)品,邏輯復(fù)雜性,遠(yuǎn)高于硬件復(fù)雜性 軟件

8、的復(fù)雜性隨規(guī)模呈指數(shù)級上升 規(guī)模大 應(yīng)用擴(kuò)大,代碼量,1000萬行,仍在不斷膨脹 影響軟件生產(chǎn)率和質(zhì)量的因素比較復(fù)雜 人員的能力和水平 團(tuán)隊合作 缺乏有效、系統(tǒng)原理、原則、方法和工具的指導(dǎo)和輔助:,5、對軟件開發(fā)的深層次認(rèn)識: 開發(fā)一個具有一定規(guī)模和復(fù)雜性的軟件系統(tǒng)與編寫一個簡單的程序不一樣 正如建設(shè)一個平房和高樓大廈 建造房屋的過程 確定和分析需求 房子的總體設(shè)計(建筑平面圖和建筑透視圖) 房子的詳細(xì)設(shè)計(建筑平面圖的細(xì)化以及規(guī)格說明) 識別并設(shè)計房子的組成部分 建造房子的每一個組成部分 測試房子的每一個組成部分 把房子的各個部分集成在一起,在住戶搬進(jìn)來之前作最后的修改 大型、復(fù)雜軟件系統(tǒng)的

9、開發(fā)是一項(xiàng)工程,必須按照工程化的方法組織軟件的生產(chǎn)和管理,必須經(jīng)過分析、設(shè)計、實(shí)現(xiàn)、測試、維護(hù)等一系列軟件過程和活動,三、軟件危機(jī),6、解決危機(jī)的技術(shù)途徑 20世紀(jì)60年代爆發(fā),然而實(shí)際上軟件危機(jī)隨著計算機(jī)軟件的產(chǎn)生而產(chǎn)生,只是在此之前其問題的嚴(yán)重性沒有引起人們的關(guān)注和重視 提出有效的方法和工具支持軟件開發(fā) 1968年提出軟件工程概念和思想 20世紀(jì)70年代的結(jié)構(gòu)化軟件開發(fā)方法 20世紀(jì)80年代的面向?qū)ο蟮能浖_發(fā)方法 新的技術(shù): 軟件重用、快速原型、需求工程 典型技術(shù): COM, Java, C+, J2EE, .Net, . 支撐工具和環(huán)境:Jbuilder, Visual Studio,

10、 WebLogic, ,三、軟件危機(jī),7、技術(shù)手段不能完全解決軟件危機(jī) 到了20世紀(jì)90年代,軟件危機(jī)依然存在,甚至更為嚴(yán)重 應(yīng)用變得越來越大和復(fù)雜,技術(shù)變得更加力不從心 錯誤的觀念“只要有好的軟件開發(fā)方法和工具就能高效率地開發(fā)出高質(zhì)量的軟件”,三、軟件危機(jī),8、解決危機(jī)的管理途徑 問題出在哪里? 20世紀(jì)80年代末,美國工業(yè)界開始認(rèn)識到管理的重要性 美國的一項(xiàng)研究表明,70%的項(xiàng)目由于管理不善導(dǎo)致難以控制進(jìn)步、成本和質(zhì)量; 進(jìn)一步的研究發(fā)現(xiàn):管理是影響軟件項(xiàng)目成功開發(fā)的全局性因素,而技術(shù)只影響局部 如果軟件開發(fā)組織不能對軟件項(xiàng)目進(jìn)行有效管理,就不能充分發(fā)揮軟件開發(fā)方法和工具的潛力,也就不能高

11、效率地開發(fā)出高質(zhì)量的軟件產(chǎn)品,三、軟件危機(jī),四、軟件工程的提出,解決軟件危機(jī)? 硬件發(fā)展?開發(fā)人員增加?軟件開發(fā)工具的發(fā)展? 軟件工程! 由于認(rèn)識到軟件的設(shè)計、實(shí)現(xiàn)、維護(hù)和傳統(tǒng)的工程規(guī)則有相同的基礎(chǔ)。 1967年NATO的研究組織首次提出“軟件工程” 1968年NATO軟件工程會議正式提出“軟件工程”概念 1968-至今, 40余年,四、軟件工程的提出,2、軟件工程定義 1968年NATO(北大西洋公約組織)會議上首次提出軟件工程: 給出了軟件工程的早期定義: 軟件工程是為了經(jīng)濟(jì)地獲得可靠的和能在實(shí)際機(jī)器上高效運(yùn)行的軟件而建立和使用的好的工程原則。(強(qiáng)調(diào)軟件工程的目標(biāo)) IEEE: 軟件工程是

12、(1)將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)的過程,即將工程化應(yīng)用于軟件中;(2)(1)中所述方法的研究。 計算機(jī)科學(xué)技術(shù)百科全書: 所謂軟件工程就是指導(dǎo)計算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最先進(jìn)的技術(shù)方法結(jié)合起來。,思考:其它更準(zhǔn)確的定義?,五、軟件工程的發(fā)展 1、傳統(tǒng)軟件工程 管理:希望實(shí)現(xiàn)軟件開發(fā)過程的工程化。這方面最為著名的成果就是提出了大家都很熟悉的“瀑布式”生命周期模型。它是在60年代末“軟件危機(jī)”后出現(xiàn)的第一個生命周期模型。如下所示: 分析 設(shè)計 編碼 測試 維護(hù)

13、 后來,又有人針對該模型的不足,提出了快速原型法、螺旋模型、噴泉模型等對“瀑布式”生命周期模型進(jìn)行補(bǔ)充?,F(xiàn)在,它們在軟件開發(fā)的實(shí)踐中被廣泛采用。 認(rèn)識到了文檔的標(biāo)準(zhǔn)以及開發(fā)者之間、開發(fā)者與用戶之間的交流方式的重要性。 方法:側(cè)重與對軟件開發(fā)過程中分析、設(shè)計的方法的研究。這方面的重要成果就是在70年代風(fēng)靡一時的結(jié)構(gòu)化開發(fā)方法,即PO(面向過程的開發(fā)或結(jié)構(gòu)化方法)以及結(jié)構(gòu)化的分析、設(shè)計和相應(yīng)的測試方法。,六、軟件工程的發(fā)展 2、現(xiàn)代軟件工程 方法: 面向?qū)ο蟮姆治?、設(shè)計方法(OOA和OOD)的出現(xiàn)使傳統(tǒng)的開發(fā)方法發(fā)生了翻天覆地的變化。隨之而來的是面向?qū)ο蠼UZ言(以UML為代表)、軟件復(fù)用、基于組

14、件的軟件開發(fā)等新的方法和領(lǐng)域。 管理: 從企業(yè)管理的角度提出的軟件過程管理。即關(guān)注于軟件生存周期中所實(shí)施的一系列活動并通過過程度量、過程評價和過程改進(jìn)等涉及對所建立的軟件過程及其實(shí)例進(jìn)行不斷優(yōu)化的活動使得軟件過程循環(huán)往復(fù)、螺旋上升式地發(fā)展。其中最著名的軟件過程成熟度模型是美國卡內(nèi)基梅隆大學(xué)軟件工程研究所(SEI)建立的CMM(Capability Maturity Model),即能力成熟度模型。,3、軟件工程三要素 軟件程是一種層次化的技術(shù)。包含了一個觀點(diǎn),和三要素,如下圖: 工具 + 方法 + 過程,軟件工程包括兩方面內(nèi)容: 軟件開發(fā)技術(shù)包括軟件開發(fā)方法學(xué)、軟件工具和軟件工程環(huán)境。 軟件項(xiàng)目管理包括軟件度量、項(xiàng)目估算、進(jìn)度控制、人員組織、配置管理、項(xiàng)目計劃等。 軟件工程技術(shù)有兩個明顯的特點(diǎn): 第一,強(qiáng)調(diào)規(guī)范化。 第二,強(qiáng)調(diào)文檔化。,六、克服軟件危機(jī)的途徑,消除 錯誤的概念和做法 推廣使用成功的開發(fā)技術(shù)和方法 使用軟件工具和軟件工程支持環(huán)境 加強(qiáng)軟件管理,七、軟件工程的基本原理 嚴(yán)格按照軟件生命周期各

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論