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

下載本文檔

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

文檔簡介

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

評論

0/150

提交評論