《中科院研究生院軟件工程》由會員分享,可在線閱讀,更多相關(guān)《中科院研究生院軟件工程(22頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、1 第一章 軟件工程概念 軟件由計算機 程序 、 數(shù)據(jù) 及 文檔 組成。 軟件的特點 抽象性 軟件生產(chǎn)無明顯制造過程 無磨損性 對計算機硬件依賴性 軟件的手工開發(fā)方式 軟件本身復(fù)雜性 軟件的高成本 2 軟件 與 硬件 、 數(shù)據(jù)庫 、 人 、 過程 等共同構(gòu) 成計算機系統(tǒng)。 軟件種類可以從六個方面進行劃分 : 按功能分類 應(yīng)用軟件 系統(tǒng)軟件 支撐軟件 軟件的概念 3 按規(guī)模分類 微型 小型 中型 大型 甚大型 極大型 按工作方式分類 分時軟件 實時軟件 交互式軟件 批處理式軟件 4 按服務(wù)對象分類 項目軟件 產(chǎn)品軟件 按使用頻度分類 一次性使用軟件 頻繁使用軟件 按失效影響分類 高可靠性軟件 一
2、般可靠性軟件 每一類軟件在管理方面要求程度不同。 5 軟件的發(fā)展經(jīng)歷了三個階段 程序設(shè)計 階段 50至 60年代 程序系統(tǒng) 階段 60至 70年代 軟件工程 階段 70年代以后 軟件工程概念的出現(xiàn)源自軟件危機。 軟件的發(fā)展 6 軟件工程定義為“ 運用現(xiàn)代科學(xué)技術(shù)知識 來設(shè)計并構(gòu)造計算機程序及為開發(fā)、運行 和維護這些程序所必須的相關(guān)文檔資料。 ” 軟件工程學(xué)定義為 “ 建立并使用完善的 工程化原則 , 以較經(jīng)濟的手段獲得能在實 際機器上有效運行的可靠軟件的一系列方 法。 ” 軟件工程包括三個要素: 方法 、 工具 和 過 程 。 軟件工程定義 7 軟件工程需要解決的問題主要有: 軟件成本 、 軟
3、件可靠性 、 軟件維護 、 軟件生產(chǎn)率 和 軟件 復(fù)用 。 軟件工程需要達到的基本目標(biāo): 付出較低的開發(fā)成本 達到要求的軟件功能 取得較好的軟件性能 開發(fā)的軟件易于移植 需要較低的維護費用 能按時完成開發(fā),及時交付使用 軟件工程的目標(biāo) 8 ISO 9000定義:軟件過程是 把輸入轉(zhuǎn)化 為輸出的一組彼此相關(guān)的資源和活動 。 從軟件開發(fā)的觀點看,它就是 使用適當(dāng) 的資源 (包括人員、硬軟件工具、時間 等),為開發(fā)軟件進行的一 組開發(fā)活動 , 在過程結(jié)束時 將輸入 (用戶要求) 轉(zhuǎn)化 為輸出 (軟件產(chǎn)品) 。 軟件工程過程 9 軟件工程過程定義了 : 方法使用的順序、 要求交付的文檔資料、為保證質(zhì)量
4、和適 應(yīng)變化所需要的管理、軟件開發(fā)各個階 段完成的里程碑 軟件工程過程包含四種基本的過程活動: Plan 軟件規(guī)格說明 Do 軟件開發(fā) Check 軟件確認(rèn) Action 軟件演進 10 軟件有一個孕育、誕生、成長、成熟、 衰亡的生存過程。這個過程即為軟件的 生存期 軟件生存期包含三個階段: 軟件定義 、 軟件開發(fā) 及 軟件運行維護 。 軟件生存期模型是軟件工程思想的具體 化,是跨越軟件生存期的系統(tǒng)開發(fā)、運 行、維護所實施的 全部活動 和 任務(wù) 的 過 程框架 。 軟件生存期 11 常用的軟件生存期模型有 瀑布模型 演化模型 螺旋模型 增量模型 噴泉模型 智能模型 軟件生存期模型 12 瀑布模
5、型 需求定義 系統(tǒng)與軟件設(shè)計 集成與系統(tǒng)測試 實現(xiàn)與單元測試 運行與維護 各項活動按自上而下 , 相互銜接的固定次序 , 如同瀑布逐級下落 。 每項活動均處于一個質(zhì)量 環(huán) ( 輸入 -處理 -輸出 -評審 ) 中 。 13 演化模型 需求的采集 與細(xì)化 客戶評價原型 快速設(shè)計 建造原型 加工原型 產(chǎn)生樣品 停止 開始 先開發(fā)一個“原型”軟件,完成部分主要功能, 展示給用戶并征求意見,然后逐步完善,最終 獲得滿意的軟件產(chǎn)品。 14 螺 旋 模 型 決定目標(biāo) 、 方案和限制 評價方案 、 識別風(fēng)險 、 弱化風(fēng)險 開發(fā) 、 驗證 、 下一級產(chǎn)品 計劃下一階段 集成 測試 15 螺旋模型 螺旋模型將瀑
6、布模型與演化模型結(jié)合起來, 并且加入兩種模型均忽略了的風(fēng)險分析。 螺旋模型沿著螺線旋轉(zhuǎn),自內(nèi)向外每旋轉(zhuǎn) 一圈便開發(fā)出更完善的一個新版本。 制定計劃 確定軟件目標(biāo),選定實施方 案,弄清項目開發(fā)的限制條件; 風(fēng)險分析 分析所選方案,考慮如何識 別和消除風(fēng)險; 實施工程 實施軟件開發(fā) 客戶評估 評價開發(fā),提出修正建議。 16 增量模型 把軟件產(chǎn)品分解成一系列的增量構(gòu)件,在增量 開發(fā)迭代中逐步加入。 每個構(gòu)件由多個相互作用的模塊構(gòu)成,并且能 夠完成特定的功能。 增量開發(fā)方法的新演進版本叫做 “極限程序設(shè) 計( eXtreme Programming)”。 定義 基本需求 將需求賦予 增量構(gòu)件 設(shè)計系統(tǒng)
7、 體系結(jié)構(gòu) 開發(fā) 增量構(gòu)件 確認(rèn) 增量構(gòu)件 集成 增量構(gòu)件 確認(rèn)系統(tǒng) 17 噴泉模型 體現(xiàn)了迭代和無間隙的特性。 系統(tǒng)某個部分常常重復(fù)工作多次,相關(guān) 對象在每次迭代中隨之加入演進的軟件 成分。 無間隙是指在各項開發(fā)活動,即分析、 設(shè)計和編碼之間不存在明顯的邊界。 噴泉模型是對象驅(qū)動的過程。 18 需求階段 分析階段 設(shè)計階段 編程階段 集成與測試階段 維護與演進階段 19 智能模型 智能模型是基于知識的軟件開發(fā)模型, 它把 瀑布模型 和 專家系統(tǒng) 綜合在一起。 該模型在各個開發(fā)階段都利用了相應(yīng)的 專家系統(tǒng)來幫助軟件人員完成開發(fā)工作。 為此,建立了 各個階段的知識庫 ,將模 型、相應(yīng)領(lǐng)域知識和軟
8、件工程知識分別 存入數(shù)據(jù)庫。以軟件工程知識為基礎(chǔ)的 生成規(guī)則構(gòu)成的專家系統(tǒng)與包含應(yīng)用領(lǐng) 域知識規(guī)則的其他專家系統(tǒng)相結(jié)合,構(gòu) 成該應(yīng)用領(lǐng)域的開發(fā)系統(tǒng)。 20 用戶要求 需求分析 概要設(shè)計 詳細(xì)設(shè)計 程序編碼 測試 維護 支持需求 分析的 專家系統(tǒng) 支持軟件 設(shè)計的 專家系統(tǒng) 支持測試 的專家系統(tǒng) 支持維護 的專家系統(tǒng) 21 在軟件開發(fā)過程中必須遵循的軟件工 程原則有: 抽象與自頂向下、逐層細(xì)化 信息隱蔽和數(shù)據(jù)封裝 模塊化 局部化 確定性 一致性和標(biāo)準(zhǔn)化 完備性和可驗證性 軟件工程原則 22 軟件工程的基本原理有: 按軟件生存期分階段制定計劃并認(rèn)真 實施; 堅持進行階段評審; 堅持嚴(yán)格的產(chǎn)品控制; 使用現(xiàn)代程序設(shè)計技術(shù); 明確責(zé)任,使得工作結(jié)果能夠得到清 楚的審查; 用人少而精;不斷改進開發(fā)過程。 軟件工程的基本原理