軟件工程復(fù)習(xí)重點(diǎn)_第1頁(yè)
軟件工程復(fù)習(xí)重點(diǎn)_第2頁(yè)
軟件工程復(fù)習(xí)重點(diǎn)_第3頁(yè)
軟件工程復(fù)習(xí)重點(diǎn)_第4頁(yè)
軟件工程復(fù)習(xí)重點(diǎn)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、【精品文檔】如有侵權(quán),請(qǐng)聯(lián)系網(wǎng)站刪除,僅供學(xué)習(xí)與交流軟件工程復(fù)習(xí)重點(diǎn).精品文檔.三大塊內(nèi)容:軟件危機(jī)與軟件工程傳統(tǒng)軟件開(kāi)發(fā)方法面向?qū)ο蠓椒ㄒ弧?軟件危機(jī)與軟件工程:軟件、軟件危機(jī)、軟件生存期、軟件開(kāi)發(fā)模型、軟件管理1、 軟件: 軟件是能夠完成預(yù)定功能和性能的可執(zhí)行的計(jì)算機(jī)程序 +使程序正常運(yùn)行所需要的數(shù)據(jù) +描述軟件開(kāi)發(fā)過(guò)程及其管理、程序的操作和使用的有關(guān)文檔。文檔:分開(kāi)發(fā)、管理、用戶、維護(hù)文檔,作用是記錄及解決不可視性、通信與交流、管理與維護(hù)、用戶服務(wù)2、 軟件危機(jī)a) 表現(xiàn):軟件成本高、難于控制開(kāi)發(fā)進(jìn)度、軟件工作量估計(jì)困難、軟件質(zhì)量低、軟件修改維護(hù)困難b) 原因:需求問(wèn)題(描述不精確、理解

2、不一致)、管理問(wèn)題、方法和工具問(wèn)題、軟 件本身的特點(diǎn)3、 軟件生存期:a) 三個(gè)時(shí)期: 定義時(shí)期(軟件計(jì)劃、需求分析)>開(kāi)發(fā)時(shí)期(軟件設(shè)計(jì)、編碼實(shí)現(xiàn)、測(cè)試)>使用和維護(hù)時(shí)期(維護(hù))b) 六個(gè)階段:軟件計(jì)劃à需求分析à設(shè)計(jì)à編碼à測(cè)試à使用與維護(hù)c) 生命周期方法特點(diǎn):順序性、依賴(lài)性,推遲程序的物理實(shí)現(xiàn)、質(zhì)量保證的觀點(diǎn)(利于盡早發(fā)現(xiàn)錯(cuò)誤,如階段文檔、評(píng)審)4、 軟件開(kāi)發(fā)模型a) 瀑布模型:文檔驅(qū)動(dòng) i. 階段劃分、分而治之、控制開(kāi)發(fā)過(guò)程的復(fù)雜性ii. 自頂向下、由抽象到具體,順序進(jìn)行 優(yōu)點(diǎn):規(guī)范管理開(kāi)發(fā)過(guò)程、文檔驅(qū)動(dòng) 缺點(diǎn):初期系統(tǒng)的

3、需求難以完全確定、文檔驅(qū)動(dòng)、周期長(zhǎng)b) 原型模型:i. 針對(duì):軟件開(kāi)發(fā)初期需求難以確定ii. 基本思想:快速建立原型,完善用戶需求iii. 優(yōu)點(diǎn):用戶參與、快速iv. 缺點(diǎn):快速弱功能、對(duì)開(kāi)發(fā)環(huán)境要求高c) 螺旋模型(風(fēng)險(xiǎn)驅(qū)動(dòng))d) 增量模型(模塊、功能驅(qū)動(dòng))e) 迭代模型f) 噴泉模型5、 軟件管理a) 區(qū)別于其他工業(yè)產(chǎn)品生產(chǎn)管理的特點(diǎn)b) 主要內(nèi)容:開(kāi)發(fā)計(jì)劃與進(jìn)度管理、文檔管理、人員組織管理、成本管理、質(zhì)量管理二、 傳統(tǒng)軟件工程方法:a) 軟件計(jì)劃i. 問(wèn)題定義ii. 可行性研究1. 經(jīng)濟(jì)可行性2. 技術(shù)可行性3. 法律可行性b) 需求分析i. 結(jié)構(gòu)化分析SAii. 面向數(shù)據(jù)流的分析方法1

4、. DFD四個(gè)組成部分(表示方法、命名)2. DFD作圖:需求描述àDFD3. 層次分解法(保持父圖和其子圖的平衡)4. 數(shù)據(jù)字典(符號(hào))c) 軟件設(shè)計(jì)i. 總體設(shè)計(jì)1. 模塊獨(dú)立性:高內(nèi)聚2. 作用域是控制域的子集3. 單入單出4. 規(guī)模、深度、寬度、扇入、扇出適當(dāng)ii. 傳統(tǒng)設(shè)計(jì)方法1. 面向數(shù)據(jù)流的設(shè)計(jì)方法(數(shù)據(jù)流圖)a) 結(jié)構(gòu)化設(shè)計(jì)SD-à對(duì)應(yīng)有SD結(jié)構(gòu)化需求分析、SP結(jié)構(gòu)化實(shí)現(xiàn)b) DFDà軟件結(jié)構(gòu)(層次圖)i. 變換設(shè)計(jì)ii. 事務(wù)設(shè)計(jì)c) 優(yōu)缺點(diǎn)2. 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法a) Jackson方法b) Jackson圖i. 三種元素間的邏輯關(guān)系:順序

5、、選擇、重復(fù)ii. 可描述兩種數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)結(jié)構(gòu)、程序結(jié)構(gòu)c) 思想:數(shù)據(jù)結(jié)構(gòu)與程序處理過(guò)程相互轉(zhuǎn)換d) 步驟:I/O DSà對(duì)應(yīng)關(guān)系àProgram Structureà細(xì)化求精e) 優(yōu)缺點(diǎn):i. 數(shù)據(jù)入手ii. 簡(jiǎn)化數(shù)據(jù)處理程序的設(shè)計(jì)iii. 模塊與獨(dú)立性原則沒(méi)有給予應(yīng)有的重視iv. 求提供對(duì)復(fù)雜系統(tǒng)設(shè)計(jì)過(guò)程的支持3. Parnas方法iii. 詳細(xì)設(shè)計(jì)1. 結(jié)構(gòu)化程序設(shè)計(jì)SPa) 高效率-良結(jié)構(gòu)b) 三種基本控制結(jié)構(gòu)、單入單出2. 過(guò)程設(shè)計(jì)的工具d) 實(shí)現(xiàn)/編碼i. 語(yǔ)言1. 功能等價(jià)2. 描述問(wèn)題方便性有差異a) 例如:OOPL-非OOPLii. 程序設(shè)計(jì)

6、風(fēng)格e) 軟件測(cè)試i. 目標(biāo)ii. 方法1. 正確性證明2. 靜態(tài)測(cè)試3. 動(dòng)態(tài)測(cè)試a) 黑盒(功能)測(cè)試i. 等價(jià)類(lèi)劃分ii. 邊界值分析iii. 錯(cuò)誤推測(cè)b) 白盒(結(jié)構(gòu))測(cè)試i. 語(yǔ)句覆蓋ii. 判定覆蓋iii. 條件覆蓋iv. 判定條件覆蓋v. 條件組合覆蓋iii. 步驟f) 軟件維護(hù)i. 四種類(lèi)型1. 校正性2. 適應(yīng)性3. 完善性4. 預(yù)防性ii. 提高可維護(hù)性的措施三、 面向?qū)ο蠓椒?Object-oriented Method)a) OOM與CM對(duì)比:區(qū)別優(yōu)點(diǎn)i. 思維方式 iv. 穩(wěn)定性ii. 可重用性 v. 可維護(hù)性iii. 大型軟件b) OOSE方法i. 三個(gè)階段、五個(gè)模

7、型、ii. USE CASE第二章傳統(tǒng)軟件工程方法:軟件計(jì)劃具體任務(wù):項(xiàng)目定義、可行性分析、軟件計(jì)劃其中:可行性分析:1、 可行性研究實(shí)質(zhì):可行性研究試一次大大壓縮和簡(jiǎn)化了的系統(tǒng)分析和設(shè)計(jì)過(guò)程,也就是在較高層次上以較抽象的方式進(jìn)行的系統(tǒng)分析和設(shè)計(jì)過(guò)程。2、 主要內(nèi)容: a) 經(jīng)濟(jì)可行性:資金有無(wú)落實(shí)、成本效益分析b) 技術(shù)可行性:開(kāi)發(fā)的風(fēng)險(xiǎn)、資源的有效性、技術(shù)方案c) 操作可行性:用戶組織內(nèi)的管理制度、人員素質(zhì)、操作方式等是否可行。d) 法律及社會(huì)可行性e) 開(kāi)發(fā)方案的選擇:折衷手段權(quán)衡。3、 可行性研究的主要步驟:a) 復(fù)查系統(tǒng)規(guī)模b) 研究正在使用的舊系統(tǒng)c) 導(dǎo)出高層邏輯模型d) 重新定

8、義問(wèn)題e) 導(dǎo)出多種解法f) 推薦行動(dòng)方針g) 草擬開(kāi)發(fā)計(jì)劃h) 書(shū)寫(xiě)文檔并提交審查系統(tǒng)流程圖(物理建模工具):會(huì)讀、讀懂。數(shù)據(jù)流圖:概述 描繪系統(tǒng)的邏輯模型的工具 DFD: Data Flow Diagram 描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過(guò)程中所經(jīng)受的變換數(shù)據(jù)從哪里來(lái),到哪里去,經(jīng)過(guò)怎樣的處理,保存在哪里 沒(méi)有任何具體的物理部件,只是描繪數(shù)據(jù)在軟件中流動(dòng)和被處理的邏輯過(guò)程。是系統(tǒng)邏輯功能的圖形表示。是分析員和用戶溝通的工具 是后期設(shè)計(jì)的出發(fā)點(diǎn)DFD的繪制一般采用自頂向下、逐步細(xì)化的方法,主要步驟如下:·明確系統(tǒng)界面。識(shí)別出那些不受系統(tǒng)控制但又影響系統(tǒng)運(yùn)行的外部環(huán)境。·

9、;繪制基本系統(tǒng)模型?;鞠到y(tǒng)模型由若干源點(diǎn)、終點(diǎn)和一個(gè)基本處理組成,表明系統(tǒng)對(duì)數(shù)據(jù)加工變換的基本功能。·逐層細(xì)化基本系統(tǒng)模型得到功能級(jí)DFD和詳細(xì)DFD。下面即分層數(shù)據(jù)流圖。假設(shè)一家工廠的采購(gòu)部每天需要一張定貨報(bào)表,報(bào)表按零件編號(hào)排序,表中列出所有需要再次定貨的零件。對(duì)于每個(gè)需要再次定貨的零件應(yīng)該列出下述數(shù)據(jù);零件編號(hào)零件名稱(chēng)、定貨數(shù)量、目前價(jià)格、主要供應(yīng)者和次要供應(yīng)者。 零件入庫(kù)或出庫(kù)稱(chēng)為事務(wù),通過(guò)放在倉(cāng)庫(kù)中的CRT終端把事務(wù)報(bào)告給定貨系統(tǒng)。當(dāng)某種零件的庫(kù)存數(shù)量少于庫(kù)存量臨界值時(shí)就應(yīng)該再次定貨。從問(wèn)題描述中提取數(shù)據(jù)流圖的四種成分。首先考慮數(shù)據(jù)的源點(diǎn)和終點(diǎn): “采購(gòu)部每天需要一張定貨

10、報(bào)表” “通過(guò)放在倉(cāng)庫(kù)中的CRT終端把事務(wù)報(bào)告給定貨系統(tǒng)”可知:采購(gòu)員是終點(diǎn)倉(cāng)庫(kù)管理員是源點(diǎn)接下來(lái)考慮處理: “采購(gòu)部每天需要一張定貨報(bào)表” -采購(gòu)部需要報(bào)表 “零件入庫(kù)或出庫(kù)稱(chēng)為事務(wù),通過(guò)放在倉(cāng)庫(kù)中的CRT終端把事務(wù)報(bào)告給定貨系統(tǒng)?!?-事務(wù)的后果是改變庫(kù)存量可知:產(chǎn)生報(bào)表是一個(gè)處理處理事務(wù)是另一個(gè)處理最后考慮數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ): 系統(tǒng)把定貨報(bào)表送給采購(gòu)部-定貨報(bào)表 事務(wù)需要從倉(cāng)庫(kù)送到系統(tǒng)中-事務(wù)-需把事務(wù)數(shù)據(jù)存儲(chǔ)起來(lái)產(chǎn)生報(bào)表和處理事務(wù)在時(shí)間上不匹配, 當(dāng)某種零件的庫(kù)存數(shù)量少于庫(kù)存量臨界值時(shí)就應(yīng)該再次定貨,而每天打印一次定貨報(bào)表-需把定貨信息存儲(chǔ)起來(lái)可知:定貨報(bào)表、事務(wù)是數(shù)據(jù)流(數(shù)據(jù)流如報(bào)表包

11、含零件編號(hào)零件名稱(chēng)、定貨數(shù)量、目前價(jià)格、主要供應(yīng)者和次要供應(yīng)者等信息。事務(wù)包含零件編號(hào)、事務(wù)類(lèi)型、數(shù)量等。)庫(kù)存清單、定貨信息是數(shù)據(jù)存儲(chǔ)基本系統(tǒng)模型:功能數(shù)據(jù)流圖:注意符號(hào)進(jìn)一步分解處理事務(wù):命名1)為數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))命名 名字應(yīng)代表整個(gè)數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))的內(nèi)容,而不是僅僅反映它的某些成分 不要使用空洞的、缺乏具體含義的名字(如“數(shù)據(jù)”、“信息”、“輸入”之類(lèi)) 如果在為某個(gè)數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))起名字時(shí)遇到了困難,則很可能是因?yàn)閷?duì)數(shù)據(jù)流圖分解不恰當(dāng)造成的2 )為處理命名 通常先為數(shù)據(jù)流命名,然后再為與之相關(guān)聯(lián)的處理命名,體現(xiàn)了人類(lèi)習(xí)慣的“由表及里”的思考過(guò)程 名字應(yīng)該反映整個(gè)處理的功能

12、名字最好由一個(gè)具體的及物動(dòng)詞,加上一個(gè)具體的賓語(yǔ)組成。 通常名字中僅包括一個(gè)動(dòng)詞 如果在為某個(gè)處理命名時(shí)遇到困難,則很可能是發(fā)現(xiàn)了分解不當(dāng)?shù)嫩E象,應(yīng)考慮重新分解應(yīng)注意的問(wèn)題1 )是數(shù)據(jù)流不是控制流畫(huà)數(shù)據(jù)流不是控制流;數(shù)據(jù)流圖反映系統(tǒng)“做什么”,不反映“如何做”,因此箭頭上的數(shù)據(jù)流名稱(chēng)只能是名詞或名詞短語(yǔ),整個(gè)圖中不反映加工的執(zhí)行順序。2 )一般不畫(huà)物質(zhì)流數(shù)據(jù)流反映的是能用計(jì)算機(jī)處理的數(shù)據(jù),并不是實(shí)物,因此系統(tǒng)的數(shù)據(jù)流圖上一般不要畫(huà)物質(zhì)流。3 )加工的畫(huà)法每個(gè)加工至少有一個(gè)輸入數(shù)據(jù)數(shù)據(jù)流圖的用途:1)建立新系統(tǒng)邏輯模型的工具2)作為與用戶和開(kāi)發(fā)人員交流信息的工具3)作為分析、設(shè)計(jì)乃至維護(hù)的依據(jù)數(shù)

13、據(jù)字典:概念 數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合 DD: Data Dictionary 是對(duì)DFD中包含的所有元素的定義的集合 在分析、設(shè)計(jì)和維護(hù)過(guò)程中供查閱用內(nèi)容1)數(shù)據(jù)流2)數(shù)據(jù)流分量(即數(shù)據(jù)元素)3)數(shù)據(jù)存儲(chǔ)4)處理(IPO圖或PDL更加方便)是對(duì)上述四類(lèi)元素的定義具體信息 名字?jǐn)?shù)據(jù)、控制項(xiàng)、數(shù)據(jù)存儲(chǔ)或外部實(shí)體的主要名稱(chēng) 別名該元素等價(jià)的其他名字,盡量減少 使用地點(diǎn)與方式使用數(shù)據(jù)或控制項(xiàng)的處理的列表,以及使用這些對(duì)象的方式(例如作為處理的輸入,從處理輸出, 作為數(shù)據(jù)存儲(chǔ),作為外部實(shí)體) 內(nèi)容描述描述數(shù)據(jù)或控制項(xiàng)內(nèi)容的符號(hào) 補(bǔ)充信息關(guān)于數(shù)據(jù)類(lèi)型、預(yù)置值、限制等的其他信息軟件項(xiàng)目的量化估算n

14、成本估算 & 工作量估算n 工程進(jìn)度安排行成本估算 階段成本估算甘特圖:歷史悠久、應(yīng)用廣泛的進(jìn)度計(jì)劃工具進(jìn)度安排的任務(wù)網(wǎng)絡(luò)圖優(yōu)點(diǎn):簡(jiǎn)單,能動(dòng)態(tài)地反映開(kāi)發(fā)進(jìn)展缺點(diǎn):難以反映多個(gè)任務(wù)間的邏輯關(guān)系第三章傳統(tǒng)軟件工程方法:需求分析需求分析n 1 目標(biāo)和任務(wù)n 2 需求獲取技術(shù)n 3 需求內(nèi)容n 4 需求建模方法需求分析任務(wù)n 問(wèn)題分析n 需求描述n 需求評(píng)審需求建模方法1. 面向數(shù)據(jù)流的分析方法2. 面向?qū)ο蟮姆治龇椒?. 面向數(shù)據(jù)結(jié)構(gòu)的分析方法需求工程的任務(wù)需求開(kāi)發(fā)包含四個(gè)過(guò)程:需求獲取、需求整理與分析、需求定義、需求驗(yàn)證。需求分析的具體任務(wù):需求獲取、確定和分析需求、開(kāi)發(fā)原型系統(tǒng)、編寫(xiě)SR

15、S、需求驗(yàn)證、變更管理、修正計(jì)劃軟件需求及需求的分類(lèi)軟件需求:以一種清晰、簡(jiǎn)潔、一致且無(wú)二義性的方式,描述用戶對(duì)目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望,是在開(kāi)發(fā)過(guò)程中對(duì)系統(tǒng)的約束。(表達(dá)做什么而不描述如何做。)Requirement is the Basics of Quality,軟件需求的作用:分理解現(xiàn)實(shí)中的業(yè)務(wù)問(wèn)題,并作為軟件設(shè)計(jì)的基礎(chǔ);為軟件項(xiàng)目的成本、時(shí)間、風(fēng)險(xiǎn)估計(jì)提供準(zhǔn)確的依據(jù);少開(kāi)發(fā)工作量,避免將時(shí)間與資源浪費(fèi)在設(shè)計(jì)與實(shí)現(xiàn)錯(cuò)誤的需求上;通提供需求文檔和需求基線,來(lái)有效的管理系統(tǒng)演化與變更;為顧客與開(kāi)發(fā)團(tuán)隊(duì)之間正式合同的一部分;最終的驗(yàn)收測(cè)試提供標(biāo)準(zhǔn)和依據(jù)需求的分類(lèi):

16、業(yè)務(wù)需求à業(yè)務(wù)需求指導(dǎo)需求獲取à用戶需求à轉(zhuǎn)化用戶需求為系統(tǒng)需求à系統(tǒng)需求前四個(gè)為原始問(wèn)題空間、后面系統(tǒng)需求為解決方案空間。業(yè)務(wù)需求(Business Requirements): 客戶對(duì)于系統(tǒng)的高層次目標(biāo)要求(highlevel objectives) ,定義了項(xiàng)目的遠(yuǎn)景和范疇(vision and scope)1、 業(yè)務(wù):屬于哪類(lèi)業(yè)務(wù)范疇?應(yīng)完成什么功能?為何目的?2、 客戶:軟件為誰(shuí)服務(wù)?目標(biāo)客戶是誰(shuí)?3、 特性:區(qū)別于其他競(jìng)爭(zhēng)產(chǎn)品的特性是什么?4、 價(jià)值:價(jià)值體現(xiàn)在那些方面?5、 優(yōu)先級(jí):功能特性的優(yōu)先級(jí)次序是什么?用戶需求(User Requi

17、rements): 從用戶角度描述的系統(tǒng)功能需求與非功能需求,通常只涉及系統(tǒng)的外部行為而不涉及內(nèi)部特性。系統(tǒng)需求(System Requirements, SR): 系統(tǒng)應(yīng)該提供的功能或服務(wù),通常涉及用戶或外部系統(tǒng)與該系統(tǒng)之間的交互,不考慮系統(tǒng)內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)系統(tǒng)需求的類(lèi)型分:功能性需求:描述了系統(tǒng)與其實(shí)現(xiàn)環(huán)境之間的交互。環(huán)境包括用戶和任何其他與該系統(tǒng)進(jìn)行交互的外部系統(tǒng)。功能需求可以以不同的詳細(xì)程度反復(fù)編寫(xiě)和細(xì)化功能需求描述應(yīng)該完整而且一致和準(zhǔn)確完整性意味著用戶所需的所有的服務(wù)應(yīng)該全部給出描述一致性意味著需求描述不能前后矛盾準(zhǔn)確性是指需求不能出現(xiàn)模糊和二義性的地方非功能性需求:描述了不直接關(guān)聯(lián)到

18、系統(tǒng)功能行為的系統(tǒng)的方方面面。從各個(gè)角度對(duì)系統(tǒng)的約束和限制,反映了客戶對(duì)軟件系統(tǒng)質(zhì)量和性能的額外要求,如響應(yīng)時(shí)間、數(shù)據(jù)精度、可靠性等??捎眯?Usability):是一種用戶可以學(xué)會(huì)的操作、輸入準(zhǔn)備、解釋一個(gè)系統(tǒng)或者構(gòu)件輸出的狀況。可靠性(Reliability):是系統(tǒng)或構(gòu)件在給定時(shí)間內(nèi)、指定條件下,完成其要求功能的能力。性能(Performance):需求要考慮系統(tǒng)的定量屬性,比如響應(yīng)時(shí)間,吞吐量、有效性和準(zhǔn)確性??芍С中?Supportability):需求關(guān)注于在進(jìn)行部署后系統(tǒng)的變化狀況,比如包括可適配性、可維護(hù)性、可移植性等。需求獲取技術(shù) 略需求分析:分析方法結(jié)構(gòu)化分析方法SA核心思

19、想是模塊化,自頂向下逐步求精對(duì)系統(tǒng)進(jìn)行分析。使用多個(gè)需求分析視圖,建立系統(tǒng)的數(shù)據(jù)、功能和行為模型數(shù)據(jù)流圖DFD加工說(shuō)明PSPEC數(shù)據(jù)字典DD狀態(tài)遷移圖STD關(guān)聯(lián)圖E-R圖面向?qū)ο蠓治龇椒∣OA核心思想是利用OO的概念和方法對(duì)軟件需求建造模型,以使用戶需求逐步精確化、一致化、完全化。結(jié)構(gòu)化分析建模(與SA區(qū)分),就是面向數(shù)據(jù)流的分析方法結(jié)構(gòu)化分析方法是一種傳統(tǒng)的系統(tǒng)建模技術(shù),它提出來(lái)一組提高軟件結(jié)構(gòu)合理性的準(zhǔn)則。結(jié)構(gòu)化分析:使用數(shù)據(jù)流程圖、數(shù)據(jù)字典、結(jié)構(gòu)化英語(yǔ)、判定表和判定樹(shù)等工具,來(lái)建立一種新的、稱(chēng)為結(jié)構(gòu)化說(shuō)明書(shū)的目標(biāo)文檔需求規(guī)格說(shuō)明書(shū)。結(jié)構(gòu)化分析方法的要點(diǎn)是:面對(duì)數(shù)據(jù)流的分解和抽象;把復(fù)雜問(wèn)

20、題自頂向下逐層分解其中,只要求數(shù)據(jù)流圖和數(shù)據(jù)字典。DFD是描繪系統(tǒng)邏輯模型的常用圖形工具。它描繪了信息流和數(shù)據(jù)從輸入端移動(dòng)到輸出端的過(guò)程中所經(jīng)受的變換。在DFD中沒(méi)有具體的物理元素,只是描述信息在系統(tǒng)中的流動(dòng)、處理和存儲(chǔ)的邏輯過(guò)程,表明系統(tǒng)必須完成的基本邏輯功能。DFD中只有四種元素,不包括任何有關(guān)物理實(shí)現(xiàn)的細(xì)節(jié),所以,絕大多數(shù)用戶可以理解和評(píng)價(jià)它。DFD是分析和設(shè)計(jì)的工具。實(shí)體關(guān)系圖E-R圖數(shù)據(jù)流圖-DFD圖狀態(tài)轉(zhuǎn)換圖STD圖DFD組成成分:(4)加工分解原則a) 1加工 7子加工b) 按問(wèn)題的邏輯特性分解c) 盡量少分解層次d) 分解均勻模型中還需要描述數(shù)據(jù)是如何被加工處理的:1、結(jié)構(gòu)化語(yǔ)

21、言 2、判定表 3、判定樹(shù)判定表:第四傳統(tǒng)軟件工程方法:軟件設(shè)計(jì)中的總體設(shè)計(jì)。軟件設(shè)計(jì)兩個(gè)階段:概要設(shè)計(jì) 詳細(xì)設(shè)計(jì)作用:SE核心過(guò)程軟件設(shè)計(jì)階段的任務(wù)從工程管理的角度,分為總體設(shè)計(jì)階段和詳細(xì)設(shè)計(jì)階段; 技術(shù)的角度,分體系結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)設(shè)計(jì)、接口設(shè)計(jì)和過(guò)程設(shè)計(jì)總體設(shè)計(jì)分兩個(gè)階段: 系統(tǒng)設(shè)計(jì)階段確定系統(tǒng)的具體實(shí)現(xiàn)方案。 結(jié)構(gòu)設(shè)計(jì)階段確定軟件結(jié)構(gòu)確定系統(tǒng)中每個(gè)程序是由哪些模塊組成的,以及這些模塊相互間的關(guān)系??傮w設(shè)計(jì)的重要性:總體設(shè)計(jì)是軟件開(kāi)發(fā)過(guò)程中一個(gè)非常重要的階段??梢钥隙ǎ绻浖到y(tǒng)沒(méi)有經(jīng)過(guò)認(rèn)真細(xì)致的總體設(shè)計(jì),就直接考慮它的算法或直接編寫(xiě)源程序,這個(gè)系統(tǒng)的質(zhì)量就很難保證。許多軟件就是因?yàn)榻Y(jié)構(gòu)

22、上的問(wèn)題,使得它經(jīng)常發(fā)生故障,而且很難維護(hù)什么是好的軟件設(shè)計(jì)軟件質(zhì)量評(píng)價(jià)標(biāo)準(zhǔn):定性評(píng)價(jià):q 用戶角度:達(dá)到需求、界面友好、簡(jiǎn)單易學(xué)q 開(kāi)發(fā)人員角度:良結(jié)構(gòu)、易測(cè)試、易維護(hù)、可移植 定量評(píng)價(jià):軟件度量宏觀標(biāo)準(zhǔn):可靠性 良軟件結(jié)構(gòu) 文檔齊全軟件結(jié)構(gòu)軟件的各個(gè)組成部分之間的關(guān)系的表示,決定了整個(gè)系統(tǒng)的結(jié)構(gòu)和質(zhì)量扇出:直接由一個(gè)塊所控制的塊數(shù)扇入:直接調(diào)用它的上級(jí)塊數(shù)目深度:控制的總層數(shù)寬度:跨度最寬層的跨度數(shù)模塊化依據(jù):復(fù)雜程度 工作量模塊重要特征:1.抽象:忽略細(xì)節(jié),分層理解問(wèn)題,自頂向下層層細(xì)化。2. 信息隱藏F 細(xì)節(jié)隱藏F 可理解性F 修改副作用小F 錯(cuò)誤副作用小模塊獨(dú)立性度量:耦合塊間聯(lián)系

23、內(nèi)聚塊內(nèi)聯(lián)系耦合零耦合:塊間無(wú)任何連接數(shù)據(jù)耦合:兩模塊通過(guò)參數(shù)交換信息,只交換數(shù)據(jù)??刂岂詈希簜鬟f的信息有控制信息(有時(shí)以數(shù)據(jù)形式出現(xiàn))公共環(huán)境耦合:兩個(gè)多個(gè)模塊通過(guò)一個(gè)公共數(shù)據(jù)環(huán)境相互作用問(wèn)題:§ 公共部分的改動(dòng)將影響所有調(diào)用它的模塊 § 公共部分的數(shù)據(jù)存取無(wú)法控制 § 復(fù)雜程度隨耦合模塊的個(gè)數(shù)增加而增加內(nèi)容耦合:n 一個(gè)模塊訪問(wèn)另一個(gè)模塊的內(nèi)部數(shù)據(jù)n 一個(gè)模塊不通過(guò)正常入口而轉(zhuǎn)到另一個(gè)模塊的內(nèi)部n 兩個(gè)模塊有一部分程序代碼重疊(只可能出現(xiàn)在匯編程序中)n 一個(gè)模塊有多個(gè)入口耦合度與軟件結(jié)構(gòu)原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)

24、容耦合。內(nèi)聚高內(nèi)聚意味著松耦合,內(nèi)聚更重要偶然內(nèi)聚 邏輯內(nèi)聚 時(shí)間內(nèi)聚 過(guò)程內(nèi)聚 通信內(nèi)聚 順序內(nèi)聚 功能內(nèi)聚 內(nèi)聚度與軟件結(jié)構(gòu)軟件模塊分解的過(guò)程:業(yè)務(wù)域分解/問(wèn)題域分解領(lǐng)域?qū)<?,企業(yè)戰(zhàn)略;系統(tǒng)à子系統(tǒng)業(yè)務(wù)功能域分解服務(wù),資源;子系統(tǒng)拆分為多個(gè)服務(wù)技術(shù)域分解功能需求和非功能需求,當(dāng)前IT技術(shù);業(yè)務(wù)域和業(yè)務(wù)功能域分解出的元素進(jìn)行整合在模塊分解時(shí),要注意以下幾點(diǎn):n 低耦合高內(nèi)聚:“從弱耦合入手,切斷聯(lián)系”n 層次性:先業(yè)務(wù)后技術(shù),循序漸進(jìn)n 正交原則:相互獨(dú)立,職責(zé)沒(méi)有重疊n 抽象原則n 穩(wěn)定性原則n 復(fù)用性原則度量(迭代演化 面向?qū)ο?軟件度量度量 測(cè)量 估算 軟件度量n 軟件復(fù)雜性

25、度量q 規(guī)模q 文本復(fù)雜性q 控制結(jié)構(gòu)的復(fù)雜性n 軟件可靠性度量q 系統(tǒng)故障率q 軟件修復(fù)與軟件有效性q 軟件可靠性估算軟件設(shè)計(jì)的啟發(fā)規(guī)則1.提高模塊獨(dú)立性q 松耦合,高內(nèi)聚q 增加內(nèi)聚,減少耦合2.模塊規(guī)模適中3.深度/寬度/扇入/扇出適當(dāng)4.作用域在控制域內(nèi)F 控制域:模塊本身以及所有直接或間接從屬于它的模塊的集合 F 作用域:受該模塊內(nèi)一個(gè)判定影響的所有模塊的集合n 修改軟件結(jié)構(gòu)q 判斷點(diǎn)上移q 受影響塊下移5.降低接口的復(fù)雜程度q 接口復(fù)雜可能表明模塊的獨(dú)立性差q 接口復(fù)雜或不一致(看起來(lái)傳遞的數(shù)據(jù)間無(wú)聯(lián)系),是緊耦合或低內(nèi)聚的征兆6、單出單入,避免內(nèi)容耦合7、模塊功能可預(yù)測(cè)q 相同輸

26、入必產(chǎn)生相同輸出q 模塊中使用全局變量可能導(dǎo)致不可預(yù)測(cè)軟件結(jié)構(gòu)劃分方式水平劃分 n 按主要功能定義模塊結(jié)構(gòu)的各分支n 頂層控制模塊,下層輸入、處理、輸出三個(gè)分支n 優(yōu)點(diǎn):功能分離,易修改擴(kuò)充n 缺點(diǎn):模塊接口傳遞數(shù)據(jù)多,信息流的整體控制復(fù)雜化垂直劃分n 自頂向下逐層分布工作n 頂層模塊控制,低層模塊實(shí)際處理n 優(yōu)點(diǎn):對(duì)低層模塊的修改不易引起副作用n 便于將來(lái)的維護(hù)軟件系統(tǒng)設(shè)計(jì)技術(shù)面向數(shù)據(jù)流(DFD)的設(shè)計(jì)方法 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法 原型法結(jié)構(gòu)化設(shè)計(jì)(Structured Design, SD)基于模塊化、自頂向下求精、結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)基礎(chǔ)上發(fā)展起來(lái)面向數(shù)據(jù)流的設(shè)計(jì)方法數(shù)據(jù)流圖映射到軟件結(jié)構(gòu)

27、用啟發(fā)式規(guī)則對(duì)結(jié)構(gòu)進(jìn)行細(xì)化面向數(shù)據(jù)流的設(shè)計(jì)方法(結(jié)構(gòu)化設(shè)計(jì)SD)軟件結(jié)構(gòu)設(shè)計(jì)中的圖形工具Ø 層次圖(H圖)-系統(tǒng)結(jié)構(gòu)圖; -Hierarchyn 描述軟件結(jié)構(gòu),而非數(shù)據(jù)結(jié)構(gòu)n 矩形框:模塊n 連線:調(diào)用關(guān)系,而非組成關(guān)系Ø HIPO圖=H圖+IPO表n H圖 + IPO圖(Input-process-output Diagram)n 在H圖中,除最頂層方框外,在每一個(gè)方框內(nèi)加上一個(gè)編號(hào),編號(hào)次序依次為:1.0,2.0,;2.1,2.2,;3.1,3.2n 對(duì)于H圖中的每一個(gè)方框,有一張IPO圖描述這個(gè)方框所代表模塊的處理過(guò)程Ø 結(jié)構(gòu)圖-模塊聯(lián)系圖1.結(jié)構(gòu)圖是軟件結(jié)

28、構(gòu)設(shè)計(jì)的另一種工具, 與層次圖類(lèi)似。2.它在層次圖的每一個(gè)方框內(nèi)注明的是模塊的名字或主要功能。3.方框之間的直線表示模塊的調(diào)用關(guān)系。4.用帶注解的箭頭表示模塊調(diào)用過(guò)程中傳遞的信息基于數(shù)據(jù)流(SD )的設(shè)計(jì)方法又稱(chēng)為結(jié)構(gòu)化設(shè)計(jì)方法;目標(biāo):給出設(shè)計(jì)軟件結(jié)構(gòu)的一個(gè)系統(tǒng)化途徑;作用:該方法定義了一些不同的“映射”,利用這些映射可以把數(shù)據(jù)流圖變換成軟件結(jié)構(gòu)圖。另注: 通過(guò)結(jié)構(gòu)化分析來(lái)得到DFD,SA是結(jié)構(gòu)化需求分析、SD是結(jié)構(gòu)化設(shè)計(jì)、SP是結(jié)構(gòu)化實(shí)現(xiàn)數(shù)據(jù)流的類(lèi)型:變換流、事務(wù)流、混合型1.變換流:所有信息都可以歸結(jié)為變換流變換流參看圖形,信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信

29、息通過(guò)變換中心,經(jīng)過(guò)加工處理以后再沿輸出通路變換成外部形式離開(kāi)軟件系統(tǒng)。當(dāng)數(shù)據(jù)流具有這些特征時(shí),這種信息流稱(chēng)為變換流。變換型的軟件結(jié)構(gòu)圖2.事務(wù)流:當(dāng)信息流具有明顯的“事務(wù)中心”時(shí),可歸結(jié)為事務(wù)流輸入通路到達(dá)一個(gè)處理T,這個(gè)處理根據(jù)輸入數(shù)據(jù)的類(lèi)型在若干個(gè)動(dòng)作序列中選出一個(gè)來(lái)執(zhí)行。這種“以事務(wù)為中心的”的數(shù)據(jù)流,稱(chēng)為“事務(wù)流”。T稱(chēng)為事務(wù)中心n 接收輸入數(shù)據(jù);n 分析每個(gè)事務(wù)以確定它的類(lèi)型;n 根據(jù)事務(wù)類(lèi)型選取一條活動(dòng)通路事務(wù)型軟件結(jié)構(gòu)圖3.混合型,兼具兩種特征。面向數(shù)據(jù)流方法的設(shè)計(jì)過(guò)程一定要重點(diǎn)看總體設(shè)計(jì)部分后面的P140左右的例題第五傳統(tǒng)軟件工程方法:軟件設(shè)計(jì)中的詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)的任務(wù)結(jié)構(gòu)化

30、程序設(shè)計(jì)詳細(xì)設(shè)計(jì)的工具面向數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)人機(jī)界面設(shè)計(jì)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)程序復(fù)雜性的度量詳細(xì)設(shè)計(jì)的任務(wù):1. 用偽代碼、圖或表等工具描繪每個(gè)模塊的算法流程。2. 確定每個(gè)模塊的局部數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)、模塊間的接口和輸入輸出數(shù)據(jù)3. 為每個(gè)模塊設(shè)計(jì)測(cè)試用例,使得編碼階段對(duì)具體模塊的調(diào)試測(cè)試更加方便4. 編寫(xiě)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)結(jié)構(gòu)化程序設(shè)計(jì)(SP結(jié)構(gòu)化實(shí)現(xiàn),與結(jié)構(gòu)化設(shè)計(jì)SA區(qū)分)a) 高效率-良結(jié)構(gòu)b) 三種基本控制結(jié)構(gòu)、單入單出程序代碼僅使用順序、選擇和循環(huán)這三種基本的控制結(jié)構(gòu)進(jìn)行連接,且每個(gè)代碼塊只有一個(gè)入口和一個(gè)出口,只在檢測(cè)錯(cuò)誤和退出循環(huán)處使用非基本結(jié)構(gòu)技術(shù)。詳細(xì)設(shè)計(jì)的工具圖形描述程序流程圖(

31、 PFC)趨勢(shì)是使用的人越來(lái)越少。優(yōu)點(diǎn):直觀清晰、廣泛易學(xué)缺點(diǎn):不能逐步求精,不易表示數(shù)據(jù)結(jié)構(gòu),隨意轉(zhuǎn)移控制造成非結(jié)構(gòu)化盒圖( N-S)本質(zhì)上的改進(jìn)是沒(méi)有箭頭,不能隨意轉(zhuǎn)移控制。PAD圖PAD圖優(yōu)點(diǎn):本質(zhì)上的改進(jìn)是層次清晰。結(jié)構(gòu)化程序結(jié)構(gòu)清晰表現(xiàn)程序邏輯,易讀、易懂、易記描繪數(shù)據(jù)結(jié)構(gòu)支持自頂向下、逐步求精方法的使用 PAD圖à高級(jí)程序設(shè)計(jì)語(yǔ)言表格描述判定表判定樹(shù)語(yǔ)言描述過(guò)程設(shè)計(jì)語(yǔ)言PDL/偽碼優(yōu)點(diǎn):可作注釋直接插在源程序中、編輯簡(jiǎn)單、PDLàcodes缺點(diǎn):不如“圖”直觀、復(fù)雜條件 不如判定表清晰、簡(jiǎn)單面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法JSD法:將Jackson方法用于大系統(tǒng)設(shè)計(jì)時(shí)會(huì)出

32、現(xiàn)復(fù)雜的難以對(duì)付的結(jié)構(gòu)沖突。Jackson圖優(yōu)點(diǎn)便于表示層次結(jié)構(gòu),結(jié)構(gòu)的自頂向下分解,直觀,可讀性好數(shù)據(jù)入手簡(jiǎn)化數(shù)據(jù)處理程序的設(shè)計(jì)既能表示數(shù)據(jù)結(jié)構(gòu),也能表示程序結(jié)構(gòu)缺點(diǎn)沒(méi)有表示條件,不易直接把圖翻譯成程序,斜線不易打印模塊與獨(dú)立性原則沒(méi)有給予應(yīng)有的重視求提供對(duì)復(fù)雜系統(tǒng)設(shè)計(jì)過(guò)程的支持改進(jìn)的Jackson圖Jackson方法1. 畫(huà)數(shù)據(jù)結(jié)構(gòu)的Jackson圖2. 找輸入輸出數(shù)據(jù)結(jié)構(gòu)的對(duì)應(yīng)關(guān)系3. 以輸出數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ),導(dǎo)出程序結(jié)構(gòu)的Jackson圖有關(guān)系的數(shù)據(jù)單元 合畫(huà)一個(gè)處理框輸入數(shù)據(jù)結(jié)構(gòu)中余下的數(shù)據(jù)單元 各畫(huà)一個(gè)輸出數(shù)據(jù)結(jié)構(gòu)中余下的數(shù)據(jù)單元 各畫(huà)一個(gè)4. 列出所有操作、條件5. 偽碼表示程序J

33、ACKSON的偽碼表示程序(1)順序結(jié)構(gòu)A seqB CDA end(2)選擇結(jié)構(gòu)A select condition1BA or condition2CA or condition3DA end(3)重復(fù)結(jié)構(gòu)A iter until(或while)conditionBA end第六章傳統(tǒng)軟件工程方法:實(shí)現(xiàn)與測(cè)試。編碼軟件測(cè)試基礎(chǔ)測(cè)試用例設(shè)計(jì)軟件測(cè)試步驟與策略調(diào)試軟件可靠性一、編碼語(yǔ)言:1、 語(yǔ)言的元計(jì)算模型等價(jià) 功能等價(jià)2、 描述問(wèn)題的方便性有差異程序設(shè)計(jì)語(yǔ)言的特點(diǎn)及其對(duì)軟件的影響:機(jī)器求解問(wèn)題的基本工具:思維方式、解題方式、人機(jī)通信的方式、理解程序的難以程度選擇程序設(shè)計(jì)語(yǔ)言的理想標(biāo)準(zhǔn):模塊

34、化機(jī)制、語(yǔ)言特點(diǎn)、開(kāi)發(fā)工具、獨(dú)立編譯機(jī)制、標(biāo)準(zhǔn)化選擇程序設(shè)計(jì)語(yǔ)言的實(shí)用標(biāo)準(zhǔn):系統(tǒng)用戶的要求、工程規(guī)模、程序員的知識(shí)、軟件的應(yīng)用領(lǐng)域程序設(shè)計(jì)風(fēng)格:“好”程序的標(biāo)準(zhǔn)q源程序代碼的邏輯簡(jiǎn)明清晰、易讀易懂遵循原則:程序內(nèi)部的文檔、數(shù)據(jù)說(shuō)明、語(yǔ)句構(gòu)造盡量簡(jiǎn)單而直接、輸入輸出規(guī)則、效率效率:效率主要指處理機(jī)時(shí)間和存儲(chǔ)器容量?jī)蓚€(gè)方面n 關(guān)于效率的三條原則q 第一,效率是性能要求,應(yīng)該在需求分析階段確定效率方面的要求;q 第二,效率是靠好設(shè)計(jì)來(lái)提高的;q 第三,程序的效率和程序的簡(jiǎn)單度是一致的,不要犧牲程序的清晰性和可讀性來(lái)不必要地提高效率n 三個(gè)方面q 程序的運(yùn)行時(shí)間q 存儲(chǔ)器效率q 輸入輸出效率二、軟件測(cè)

35、試基礎(chǔ)測(cè)試目標(biāo): 為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程測(cè)試用例:一組用于測(cè)試的輸入數(shù)據(jù)和預(yù)期得出的正確輸出測(cè)試方案:測(cè)試用例和用例預(yù)定要檢驗(yàn)的功能、測(cè)試環(huán)境的規(guī)劃、測(cè)試工具的選擇。測(cè)試計(jì)劃:要進(jìn)行的測(cè)試的組織、資源、風(fēng)險(xiǎn)、原則和進(jìn)度安排等進(jìn)行規(guī)定和約束軟件測(cè)試方法分:靜態(tài)測(cè)試(人工檢查代碼,不在機(jī)器上運(yùn)行)和動(dòng)態(tài)測(cè)試(白盒與黑盒)。窮盡測(cè)試:(不可能,只能選少量”最有效”做到完備):包含所有可能情況的測(cè)試黑盒測(cè)試 功能測(cè)試目的:q 功能是否正常使用?q 輸入 正確輸出?q 保持外部信息的完整性?q 時(shí)機(jī):測(cè)試的后期,如:集成測(cè)試、確認(rèn)測(cè)試白盒測(cè)試關(guān)注軟件內(nèi)部邏輯結(jié)構(gòu)( control stru

36、cture)測(cè)試每條邏輯通路檢查斷點(diǎn)( break point) 狀態(tài)測(cè)試方案對(duì)程序邏輯的覆蓋程度決定測(cè)試的完全性程度時(shí)機(jī):測(cè)試的早期,例如:?jiǎn)卧獪y(cè)試成本高,通常對(duì)結(jié)構(gòu)比較復(fù)雜的模塊進(jìn)行白盒測(cè)試三、測(cè)試用例設(shè)計(jì)黑盒法依據(jù)對(duì)程序的需求和說(shuō)明等價(jià)劃分法邊界值分析法錯(cuò)誤推測(cè)法白盒法邏輯覆蓋控制結(jié)構(gòu)測(cè)試用例是為某個(gè)特殊目標(biāo)而編制的一組測(cè)試輸入、執(zhí)行條件、執(zhí)行步驟以及預(yù)期結(jié)果等等。黑盒測(cè)試技術(shù)a. 黑盒(功能)測(cè)試i. 等價(jià)類(lèi)劃分ii. 邊界值分析iii. 錯(cuò)誤推測(cè)白盒測(cè)試技術(shù)白盒測(cè)試技術(shù)是基于程序的內(nèi)部實(shí)現(xiàn)結(jié)構(gòu)和邏輯尋找軟件中的缺陷覆蓋準(zhǔn)則可以作為測(cè)試停止或/和選取測(cè)試數(shù)據(jù)的標(biāo)準(zhǔn)軟件測(cè)試的步驟與策略第

37、七章傳統(tǒng)軟件工程方法:維護(hù)。軟件維護(hù)的概念和內(nèi)容軟件維護(hù)的過(guò)程軟件的可維護(hù)性軟件再工程過(guò)程一、軟件維護(hù)的概念和內(nèi)容定義: 就是在軟件已經(jīng)交付使用之后,因?yàn)橄铝性蚨薷能浖倪^(guò)程。軟件中的bug需要修復(fù)改正性維護(hù)軟件在使用過(guò)程中,新的需求不斷出現(xiàn)完善性維護(hù)商業(yè)環(huán)境在不斷地變化、計(jì)算機(jī)硬件和軟件環(huán)境的升級(jí)需要更新現(xiàn)有的系統(tǒng)適應(yīng)性維護(hù)軟件的性能和可靠性需要進(jìn)一步改進(jìn)預(yù)防性維護(hù)類(lèi)型:n 校正性維護(hù)/糾錯(cuò)性維護(hù)(corrective maintenace)n 適應(yīng)性維護(hù)(adaptive maintenance)n 完善性維護(hù)(perfective maintenance)n 預(yù)防性維護(hù)(preven

38、tive maintenace)維護(hù)的代價(jià):n 表面上看來(lái)合理的改錯(cuò)或修改不能完全滿足用戶的要求,就會(huì)引起用戶的不滿。n 由于維護(hù)時(shí)對(duì)軟件的改動(dòng),哪怕是很小的改動(dòng),在軟件中也會(huì)引入潛在的隱患或錯(cuò)誤,使得整個(gè)軟件的質(zhì)量降低, 特別是不可再現(xiàn)錯(cuò)誤。n 在開(kāi)發(fā)工作期間,由于工作需要必須把軟件工程師調(diào)去從事維護(hù)工作,就會(huì)對(duì)開(kāi)發(fā)工作造成不良影響。 n 軟件維護(hù)會(huì)使生產(chǎn)率大幅度下降 維護(hù)中的問(wèn)題n 閱讀和理解問(wèn)題 n 人員問(wèn)題n 文檔資料 n 軟件的修改 n 軟件維護(hù)相對(duì)于軟件系統(tǒng)開(kāi)發(fā)工作來(lái)說(shuō)則毫無(wú)吸引力二、軟件維護(hù)過(guò)程軟件維護(hù)過(guò)程定義:本質(zhì)上是修改和壓縮了的軟件定義和開(kāi)發(fā)過(guò)程。n 建立維護(hù)組織n 提出維

39、護(hù)申請(qǐng)報(bào)告及評(píng)價(jià)n 維護(hù)實(shí)施n 保存維護(hù)記錄n 評(píng)價(jià)維護(hù)活動(dòng)三、可維護(hù)性軟件可維護(hù)性是指糾正軟件系統(tǒng)出現(xiàn)的錯(cuò)誤和缺陷,以及為滿足新的要求進(jìn)行修改、擴(kuò)充或壓縮的容易程度可維護(hù)性的決定因素 可理解性 可測(cè)試性可修改性 可靠性可移植性 可使用性效率。提高可維護(hù)性的措施維護(hù)的副作用F 修改軟件后導(dǎo)致新錯(cuò)誤的發(fā)生n 編碼的副作用n 數(shù)據(jù)的副作用 文檔資料的副作用完善的設(shè)計(jì)文檔資料可以減少數(shù)據(jù)的副作用。利用文檔資料對(duì)數(shù)據(jù)及其用途所作的詳細(xì)描述 ,提供了數(shù)據(jù)項(xiàng)、記錄、文件及其他結(jié)構(gòu)與軟件模塊間相關(guān)的參照表,是維護(hù)期間對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行修改的主要依據(jù)。第七章 軟件管理軟件管理內(nèi)容n 開(kāi)發(fā)計(jì)劃與進(jìn)度管理n 成本估算

40、與控制n 人員管理、組織管理n 質(zhì)量管理n 文檔管理軟件管理原則n 軟件生存期n 按階段確認(rèn)n 質(zhì)量檢查n 自頂向下SP/OOPn 職責(zé)分明n 人員少而精n 不斷充實(shí)軟件管理特點(diǎn)n 知識(shí)密集,非實(shí)物性n 單品生產(chǎn),開(kāi)發(fā)過(guò)程不確定n 開(kāi)發(fā)周期長(zhǎng)n 內(nèi)容復(fù)雜,正確性難保證n 勞動(dòng)密集,自動(dòng)化程度低n 軟件用法繁瑣,維護(hù)困難,費(fèi)用高指定軟件開(kāi)發(fā)計(jì)劃三要素:規(guī)模 人員 交付日期進(jìn)度安排與控制n 軟件開(kāi)發(fā)進(jìn)度安排,實(shí)際上就是對(duì)軟件開(kāi)發(fā)中各個(gè)階段所需要的工作量,結(jié)合項(xiàng)目的起始時(shí)間,體現(xiàn)在一張編制的進(jìn)度表里(甘特圖)。 n 軟件開(kāi)發(fā)的進(jìn)度往往與人的因素有關(guān),對(duì)人的依賴(lài)性很大。n 進(jìn)度控制是對(duì)計(jì)劃執(zhí)行情況的監(jiān)

41、督、調(diào)整和修改。成本管理與控制n 工時(shí)數(shù)成本管理n 開(kāi)發(fā)設(shè)備的購(gòu)置、使用管理人員管理、組織管理n 人員管理q 高技術(shù)、高知識(shí),個(gè)人作用突出q 多層次 合理配備各類(lèi)人員q 知識(shí)更新快q 流動(dòng)性大 保持人員相對(duì)穩(wěn)定,吸引優(yōu)秀人才n 組織管理q 集中式 易決斷、易管理,難發(fā)揮多數(shù)人的積極性q 非集中式 發(fā)揮大家主觀能動(dòng)性、難管理質(zhì)量管理n 軟件生產(chǎn)q 分階段q 規(guī)范化q 合理分工n 度量軟件質(zhì)量的標(biāo)準(zhǔn)文檔管理第八章-面向?qū)ο蠓椒▽W(xué)引論。面向?qū)ο蠓椒▽W(xué)概述面向?qū)ο蟮母拍蠲嫦驅(qū)ο蠼R弧⒚嫦驅(qū)ο蠓椒▽W(xué)概述OO和PO的本質(zhì)區(qū)別是:對(duì)象是一元的還是過(guò)程是一元OOM四要素:1對(duì)象 2類(lèi) 3繼承 4方法與消息二

42、、面向?qū)ο蟮母拍顚?duì)象:對(duì)象是一個(gè)程序模塊,該模塊由一組操作構(gòu)成的集合對(duì)象是對(duì)問(wèn)題域中某個(gè)東西的抽象,這種抽象反應(yīng)了系統(tǒng)保存有關(guān)這個(gè)東西的信息或與它交互的能力。對(duì)象是一臺(tái)自動(dòng)機(jī)對(duì)象特點(diǎn)n 數(shù)據(jù)為中心n 主動(dòng)的n 數(shù)據(jù)封裝n 并行性n 模塊獨(dú)立性好繼承的優(yōu)點(diǎn)n 共享程序代碼和數(shù)據(jù)結(jié)構(gòu)n 減少了冗余信息n 修改方便q 擴(kuò)充:調(diào)用基類(lèi)方法并增加代碼q 改變:改寫(xiě)同名方法q 新增:定義新方法n 軟件重用OOM的主要優(yōu)點(diǎn)n 與人類(lèi)習(xí)慣的思維方法一致CMn 面向過(guò)程設(shè)計(jì),以算法為核心,送數(shù)據(jù)到函數(shù)n 數(shù)據(jù)與操作分離,不易理解 OOMq 以object 為核心,強(qiáng)調(diào)對(duì)現(xiàn)實(shí)概念的模擬而不強(qiáng)調(diào)算法q “面向?qū)ο蠓?/p>

43、法學(xué)的基本原則,是按照人們習(xí)慣的思維方式建立問(wèn)題域的模型,開(kāi)發(fā)出盡可能直觀、自然地表現(xiàn)求解方法的軟件系統(tǒng)”q 數(shù)據(jù)和操作封裝成統(tǒng)一體,送消息到對(duì)象n 穩(wěn)定性好Cmq 結(jié)構(gòu)依賴(lài)于功能,不穩(wěn)定q 功能需求變,易引起軟件結(jié)構(gòu)整體修改Oomq 軟件系統(tǒng)結(jié)構(gòu)根據(jù)問(wèn)題域模型建立q 以object模擬實(shí)體,實(shí)體相對(duì)穩(wěn)定,故系統(tǒng)也相應(yīng)穩(wěn)定q 需求變化不會(huì)引起結(jié)構(gòu)的整體變化,只需局部性修改n 可重用性好CMq 過(guò)程(函數(shù))是重用層q 建立標(biāo)準(zhǔn)函數(shù)庫(kù)來(lái)重用軟構(gòu)件q 標(biāo)準(zhǔn)函數(shù)缺乏“柔性”,難以適應(yīng)不同場(chǎng)合的不同需要q 功能內(nèi)聚的模塊不是自含和獨(dú)立的OOMq 類(lèi)是重用層q object具有較強(qiáng)的自含性和獨(dú)立性q object和class提供了理想的模塊化機(jī)制和可重用的軟件成分q 繼承性為OOM提供了比CM更廣泛、更規(guī)范、更簡(jiǎn)單的重用機(jī)制n 可維護(hù)性好CMq 開(kāi)發(fā)出來(lái)的軟件難維

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論