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

下載本文檔

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

文檔簡(jiǎn)介

軟件工程與技術(shù) 北京聯(lián)合大學(xué)信息學(xué)院廖禮萍E Mail xxtlliping lipingliao 本課程學(xué)習(xí)的目的本課程的主要內(nèi)容本課程的特點(diǎn)本課程的教 學(xué)及考核方式主要參考書目實(shí)驗(yàn)安排 課程簡(jiǎn)介 消除錯(cuò)誤地認(rèn)識(shí)學(xué)習(xí)軟件工程基本理論學(xué)習(xí)主流的軟件開發(fā)方法熟悉軟件開發(fā)過程掌握軟件開發(fā)全過程中的各重要階段的任務(wù)及相關(guān)描述方法 如何分析問題并設(shè)計(jì)出合理的解決方案如何保證軟件質(zhì)量培養(yǎng)軟件工程師的基本素質(zhì) 一 本課程學(xué)習(xí)目的 1 軟件工程的基本概念及軟件危機(jī)2 軟件生存周期及軟件開發(fā)模型3 軟件計(jì)劃4 軟件分析 需求分析 5 軟件系統(tǒng)設(shè)計(jì)6 軟件測(cè)試7 軟件維護(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ì)算機(jī)系統(tǒng)操作有關(guān)的程序 數(shù)據(jù)以及任何與之相關(guān)的文檔的集合 程序 1軟件的定義 什么是程序 1 2 程序 由程序設(shè)計(jì)語(yǔ)言所描述的 能為計(jì)算機(jī)所識(shí)別 理解和處理的語(yǔ)句序列程序例子Main inti j 變量定義charStr 10 i i j 語(yǔ)句說明 一 軟件的定義 特點(diǎn) 1軟件的定義 什么是程序 2 2 程序設(shè)計(jì)語(yǔ)言具有良好 嚴(yán)格語(yǔ)法和語(yǔ)義目前程序設(shè)計(jì)語(yǔ)言主要有以下幾種類型面向機(jī)器 如匯編語(yǔ)言 機(jī)器語(yǔ)言等面向過程 如Fortran Pascal C等等面向?qū)ο?如Java等等面向問題 如結(jié)構(gòu)化查詢語(yǔ)言SQL等等 一 軟件的定義 特點(diǎn) 1軟件的定義 什么是文檔 文檔 記錄軟件開發(fā)活動(dòng)和階段性成果 理解軟件所必需的闡述性資料需求分析文檔 軟件設(shè)計(jì)文擋 用戶文檔等編寫文檔目的促進(jìn)對(duì)軟件的開發(fā) 管理和維護(hù) 便于各種人員 用戶 開發(fā)人員 的交流 一 軟件的定義 特點(diǎn) 一 軟件的定義 特點(diǎn) 2軟件的特點(diǎn)不會(huì)老化邏輯產(chǎn)品 智力 無(wú)形 維護(hù)困難和復(fù)雜 完善 糾錯(cuò) 生產(chǎn)只需復(fù)制軟件開發(fā)性質(zhì)如成本 進(jìn)度等難以估計(jì)軟件的開發(fā)更加依賴于開發(fā)人員的業(yè)務(wù)素質(zhì) 智力 人員的合作 組織和管理 二 軟件的發(fā)展過程1 20世紀(jì)50年代 60年代初 程序設(shè)計(jì)階段特點(diǎn) 個(gè)體化 只有程序清單 以硬件發(fā)展為主2 20世紀(jì)60年代初 70年代初 程序系統(tǒng)階段特點(diǎn) 作坊式 軟件數(shù)量劇增 軟件維護(hù)費(fèi)用驚人 提出 軟件工廠 概念 出現(xiàn)軟件危機(jī)3 70年代 90年代 軟件工程階段軟件成本劇增 硬件技術(shù) 微電子學(xué) 日趨成熟 軟件工程時(shí)代4 90年代至今 現(xiàn)代信息技術(shù)飛速發(fā)展 并行計(jì)算機(jī)處理 三層處理模式 數(shù)據(jù)倉(cāng)庫(kù) 多媒體技術(shù) 網(wǎng)絡(luò)技術(shù) 電子商務(wù)等 稱為 網(wǎng)絡(luò)時(shí)代 三 軟件危機(jī) 1 軟件危機(jī)定義 軟件在開發(fā)和維護(hù)過程中遇到的一系列問題困擾學(xué)術(shù)界和工業(yè)界用戶對(duì)軟件開發(fā)缺乏信心軟件開發(fā)的高投入和高風(fēng)險(xiǎn) Crisis 三 軟件危機(jī) 2 軟件危機(jī)的表現(xiàn) 1of3 成本高IBM360OS 5000多人年 耗時(shí)4年 1963 1966 花費(fèi)2億多美元美國(guó)空軍 1955年軟件占總費(fèi)用 計(jì)算機(jī)系統(tǒng) 的18 70年60 85年達(dá)到85 美國(guó)全球軍事指揮控制系統(tǒng) 硬件1億美元 軟件高達(dá)7 2億美元計(jì)算機(jī)軟件和硬件費(fèi)用比 三 軟件危機(jī) 2 軟件危機(jī)的表現(xiàn) 2of3 軟件質(zhì)量得不到保證軟件應(yīng)用面的擴(kuò)大 科學(xué)計(jì)算 軍事 航空航天 工業(yè)控制 企業(yè)管理 辦公 家庭軟件越來越多的應(yīng)用于安全猶關(guān) safetycritical 的系統(tǒng) 對(duì)軟件質(zhì)量提出更高的要求80年代歐洲亞麗安娜火箭的發(fā)射失敗 原因是軟件錯(cuò)誤美國(guó)阿托拉斯火箭的發(fā)射失敗 原因是軟件故障英國(guó)1986年開發(fā)的辦公室信息系統(tǒng)Folios經(jīng)4年 因性能達(dá)不到要求 1989年取消日本第5代機(jī)因?yàn)檐浖栴}在投入50億美元后于1993年下馬由于軟件質(zhì)量問題導(dǎo)致失敗的軟件項(xiàng)目非常多 三 軟件危機(jī) 2 軟件危機(jī)的表現(xiàn) 3of3 進(jìn)度難以控制項(xiàng)目延期比比皆是由于進(jìn)度問題而取消的軟件項(xiàng)目較常見只有一小部分的項(xiàng)目能夠按期完成維護(hù)非常困難軟件維護(hù)的多樣性軟件維護(hù)的復(fù)雜性軟件維護(hù)的副作用 三 軟件危機(jī) 3 軟件危機(jī)包含兩方面問題一 如何開發(fā)軟件 以滿足不斷增長(zhǎng) 日趨復(fù)雜的需求 二 如何維護(hù)數(shù)量不斷膨脹的軟件產(chǎn)品 4 軟件危機(jī)產(chǎn)生的原因邏輯產(chǎn)品 不同于物理產(chǎn)品復(fù)雜性高邏輯產(chǎn)品 邏輯復(fù)雜性 遠(yuǎn)高于硬件復(fù)雜性軟件的復(fù)雜性隨規(guī)模呈指數(shù)級(jí)上升規(guī)模大應(yīng)用擴(kuò)大 代碼量 1000萬(wàn)行 仍在不斷膨脹影響軟件生產(chǎn)率和質(zhì)量的因素比較復(fù)雜人員的能力和水平團(tuán)隊(duì)合作缺乏有效 系統(tǒng)原理 原則 方法和工具的指導(dǎo)和輔助 5 對(duì)軟件開發(fā)的深層次認(rèn)識(shí) 開發(fā)一個(gè)具有一定規(guī)模和復(fù)雜性的軟件系統(tǒng)與編寫一個(gè)簡(jiǎn)單的程序不一樣正如建設(shè)一個(gè)平房和高樓大廈建造房屋的過程確定和分析需求房子的總體設(shè)計(jì) 建筑平面圖和建筑透視圖 房子的詳細(xì)設(shè)計(jì) 建筑平面圖的細(xì)化以及規(guī)格說明 識(shí)別并設(shè)計(jì)房子的組成部分建造房子的每一個(gè)組成部分測(cè)試房子的每一個(gè)組成部分把房子的各個(gè)部分集成在一起 在住戶搬進(jìn)來之前作最后的修改大型 復(fù)雜軟件系統(tǒng)的開發(fā)是一項(xiàng)工程 必須按照工程化的方法組織軟件的生產(chǎn)和管理 必須經(jīng)過分析 設(shè)計(jì) 實(shí)現(xiàn) 測(cè)試 維護(hù)等一系列軟件過程和活動(dòng) 三 軟件危機(jī) 6 解決危機(jī)的技術(shù)途徑20世紀(jì)60年代爆發(fā) 然而實(shí)際上軟件危機(jī)隨著計(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 VisualStudio WebLogic 三 軟件危機(jī) 7 技術(shù)手段不能完全解決軟件危機(jī)到了20世紀(jì)90年代 軟件危機(jī)依然存在 甚至更為嚴(yán)重應(yīng)用變得越來越大和復(fù)雜 技術(shù)變得更加力不從心錯(cuò)誤的觀念 只要有好的軟件開發(fā)方法和工具就能高效率地開發(fā)出高質(zhì)量的軟件 三 軟件危機(jī) 8 解決危機(jī)的管理途徑問題出在哪里 20世紀(jì)80年代末 美國(guó)工業(yè)界開始認(rèn)識(shí)到管理的重要性美國(guó)的一項(xiàng)研究表明 70 的項(xiàng)目由于管理不善導(dǎo)致難以控制進(jìn)步 成本和質(zhì)量 進(jìn)一步的研究發(fā)現(xiàn) 管理是影響軟件項(xiàng)目成功開發(fā)的全局性因素 而技術(shù)只影響局部如果軟件開發(fā)組織不能對(duì)軟件項(xiàng)目進(jìn)行有效管理 就不能充分發(fā)揮軟件開發(fā)方法和工具的潛力 也就不能高效率地開發(fā)出高質(zhì)量的軟件產(chǎn)品 三 軟件危機(jī) 四 軟件工程的提出 解決軟件危機(jī) 硬件發(fā)展 開發(fā)人員增加 軟件開發(fā)工具的發(fā)展 軟件工程 由于認(rèn)識(shí)到軟件的設(shè)計(jì) 實(shí)現(xiàn) 維護(hù)和傳統(tǒng)的工程規(guī)則有相同的基礎(chǔ) 1967年NATO的研究組織首次提出 軟件工程 1968年NATO軟件工程會(huì)議正式提出 軟件工程 概念1968 至今 40余年 四 軟件工程的提出 2 軟件工程定義1968年NATO 北大西洋公約組織 會(huì)議上首次提出軟件工程 給出了軟件工程的早期定義 軟件工程是為了經(jīng)濟(jì)地獲得可靠的和能在實(shí)際機(jī)器上高效運(yùn)行的軟件而建立和使用的好的工程原則 強(qiáng)調(diào)軟件工程的目標(biāo) IEEE 軟件工程是 1 將系統(tǒng)化的 規(guī)范的 可度量的方法應(yīng)用于軟件的開發(fā) 運(yùn)行和維護(hù)的過程 即將工程化應(yīng)用于軟件中 2 1 中所述方法的研究 計(jì)算機(jī)科學(xué)技術(shù)百科全書 所謂軟件工程就是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科 采用工程的概念 原理 技術(shù)和方法來開發(fā)與維護(hù)軟件 把經(jīng)過時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最先進(jìn)的技術(shù)方法結(jié)合起來 思考 其它更準(zhǔn)確的定義 五 軟件工程的發(fā)展1 傳統(tǒng)軟件工程管理 希望實(shí)現(xiàn)軟件開發(fā)過程的工程化 這方面最為著名的成果就是提出了大家都很熟悉的 瀑布式 生命周期模型 它是在60年代末 軟件危機(jī) 后出現(xiàn)的第一個(gè)生命周期模型 如下所示 分析 設(shè)計(jì) 編碼 測(cè)試 維護(hù)后來 又有人針對(duì)該模型的不足 提出了快速原型法 螺旋模型 噴泉模型等對(duì) 瀑布式 生命周期模型進(jìn)行補(bǔ)充 現(xiàn)在 它們?cè)谲浖_發(fā)的實(shí)踐中被廣泛采用 認(rèn)識(shí)到了文檔的標(biāo)準(zhǔn)以及開發(fā)者之間 開發(fā)者與用戶之間的交流方式的重要性 方法 側(cè)重與對(duì)軟件開發(fā)過程中分析 設(shè)計(jì)的方法的研究 這方面的重要成果就是在70年代風(fēng)靡一時(shí)的結(jié)構(gòu)化開發(fā)方法 即PO 面向過程的開發(fā)或結(jié)構(gòu)化方法 以及結(jié)構(gòu)化的分析 設(shè)計(jì)和相應(yīng)的測(cè)試方法 六 軟件工程的發(fā)展2 現(xiàn)代軟件工程方法 面向?qū)ο蟮姆治?設(shè)計(jì)方法 OOA和OOD 的出現(xiàn)使傳統(tǒng)的開發(fā)方法發(fā)生了翻天覆地的變化 隨之而來的是面向?qū)ο蠼UZ(yǔ)言 以UML為代表 軟件復(fù)用 基于組件的軟件開發(fā)等新的方法和領(lǐng)域 管理 從企業(yè)管理的角度提出的軟件過程管理 即關(guān)注于軟件生存周期中所實(shí)施的一系列活動(dòng)并通過過程度量 過程評(píng)價(jià)和過程改進(jìn)等涉及對(duì)所建立的軟件過程及其實(shí)例進(jìn)行不斷優(yōu)化的活動(dòng)使得軟件過程循環(huán)往復(fù) 螺旋上升式地發(fā)展 其中最著名的軟件過程成熟度模型是美國(guó)卡內(nèi)基梅隆大學(xué)軟件工程研究所 SEI 建立的CMM CapabilityMaturityModel 即能力成熟度模型 3 軟件工程三要素軟件程是一種層次化的技術(shù) 包含了一個(gè)觀點(diǎn) 和三要素 如下圖 工具 方法 過程 軟件工程包括兩方面內(nèi)容 軟件開發(fā)技術(shù)包括軟件開發(fā)方法學(xué) 軟件工具和軟件工程環(huán)境 軟件項(xiàng)目管理包括軟件度量 項(xiàng)目估算 進(jìn)度控制 人員組織 配置管理 項(xiàng)目計(jì)劃等 軟件工程技術(shù)有兩個(gè)明顯的特點(diǎn) 第一 強(qiáng)調(diào)規(guī)范化 第二 強(qiáng)調(diào)文檔化 六 克服軟件危機(jī)的途徑 消除錯(cuò)誤的概念和做法推廣使用成功的開發(fā)技術(shù)和方法使用軟件工具和軟件工程支持環(huán)境加強(qiáng)軟件管理 七 軟件工程的基本原理嚴(yán)格按照軟件生命周期各階段

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論