最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

軟件工程導(dǎo)論復(fù)習(xí)重點(diǎn)總結(jié)--很全

2023-07-18 23:13 作者:答案鬼  | 我要投稿

第1章 軟件工程學(xué)概述

1.1 軟件危機(jī)

1.1.1 軟件危機(jī)的介紹

軟件危機(jī)(軟件蕭條、軟件困擾):是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。

軟件危機(jī)包含下述兩方面的問(wèn)題:

如何開發(fā)軟件,滿足對(duì)軟件日益增長(zhǎng)的需求;

如何維護(hù)數(shù)量不斷膨脹的已有軟件。

軟件危機(jī)的典型表現(xiàn):

(1)對(duì)軟件開發(fā)成本和進(jìn)度的估計(jì)常常很不準(zhǔn)確;

(2)用戶對(duì)“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生;

(3)軟件產(chǎn)品的質(zhì)量往往靠不??;

(4)軟件常常是不可維護(hù)的;

(5)軟件通常沒有適當(dāng)?shù)奈臋n資料;

(6)軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升;

(7)軟件開發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢(shì) 。

1.1.2 產(chǎn)生軟件危機(jī)的原因

(1)與軟件本身的特點(diǎn)有關(guān)

(2)與軟件開發(fā)與維護(hù)的方法不正確有關(guān)

1.1.3 消除軟件危機(jī)的途徑

對(duì)計(jì)算機(jī)軟件有正確的認(rèn)識(shí)。

認(rèn)識(shí)到軟件開發(fā)是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項(xiàng)目。

應(yīng)該推廣使用在實(shí)踐中總結(jié)出來(lái)的開發(fā)軟件的成功技術(shù)和方法,并繼續(xù)研究探索。

應(yīng)該開發(fā)和使用更好的軟件工具。

總之,為了解決軟件危機(jī),既要有技術(shù)措施(方法和工具),又要有必要的組織管理措施。

1.2
1.2.1 軟件工程的介紹

軟件工程:是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的一門工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來(lái)開發(fā)與維護(hù)軟件,把經(jīng)過(guò)時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來(lái),以經(jīng)濟(jì)地開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它,這就是軟件工程。(期中考)

軟件工程的本質(zhì)特性:

軟件工程關(guān)注于大型程序的構(gòu)造

軟件工程的中心課題是控制復(fù)雜性

軟件經(jīng)常變化

開發(fā)軟件的效率非常重要

和諧地合作是開發(fā)軟件的關(guān)鍵

軟件必須有效地支持它的用戶

在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品

1.2.2 軟件工程的基本原理

用分階段的生命周期計(jì)劃嚴(yán)格管理



堅(jiān)持進(jìn)行階段評(píng)審

實(shí)行嚴(yán)格的產(chǎn)品控制

采用現(xiàn)代程序設(shè)計(jì)技術(shù)

結(jié)果應(yīng)能清楚地審查

開發(fā)小組的人員應(yīng)該少而精

承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性

1.2.3 軟件工程方法學(xué)

軟件工程包括技術(shù)和管理兩方面的內(nèi)容。

軟件工程方法學(xué)3要素:方法、工具、過(guò)程

1. 傳統(tǒng)方法學(xué)(生命周期方法學(xué)或結(jié)構(gòu)化范型)——強(qiáng)調(diào)自頂向下

2. 面向?qū)ο蠓椒▽W(xué)——強(qiáng)調(diào)主動(dòng)地多次反復(fù)迭代

面向?qū)ο蠓椒▽W(xué)4個(gè)要點(diǎn):對(duì)象、類、繼承、消息

1.3 軟件生命周期 (必考)

三個(gè)時(shí)期八個(gè)階段:軟件生命周期由軟件定義、軟件開發(fā)和運(yùn)行維護(hù)(也稱為軟件維護(hù))三個(gè)時(shí)期組成,每個(gè)時(shí)期又進(jìn)一步劃分成若干個(gè)階段。


1.4 軟件過(guò)程

1.4.1 瀑布模型

1.4.2 快速原型模型

1.4.3 增量模型

1.4.4 螺旋模型

1.4.5 噴泉模型

第2章 可行性研究

2.1 可行性研究的任務(wù)

可行性研究的目的:不是解決問(wèn)題,而是確定問(wèn)題是否值得去解決。可行性研究的實(shí)質(zhì):進(jìn)行一次大大壓縮簡(jiǎn)化了的系統(tǒng)分析和設(shè)計(jì)的過(guò)程,也就是在較高層次上以較抽象的方式進(jìn)行的系統(tǒng)分析和設(shè)計(jì)的過(guò)程。

可行性研究的內(nèi)容:首先進(jìn)一步分析和澄清問(wèn)題定義,導(dǎo)出系統(tǒng)的邏輯模型;然后從系統(tǒng)邏輯模型出發(fā),探索若干種可供選擇的主要解法(即系統(tǒng)實(shí)現(xiàn)方案);對(duì)每種解法都研究它的可行性,至少應(yīng)該從三方面研究每種解法的可行性 。

主要方面:技術(shù)可行性,經(jīng)濟(jì)可行性,操作可行性,

其他方面:運(yùn)行可行性, 法律可行性,

2.2 可行性研究過(guò)程

1. 復(fù)查系統(tǒng)規(guī)模和目標(biāo)

2. 研究目前正在使用的系統(tǒng)

3. 導(dǎo)出新系統(tǒng)的高層邏輯模型4. 進(jìn)一步定義問(wèn)題5. 導(dǎo)出和評(píng)價(jià)供選擇的解法6. 推薦行動(dòng)方針7. 草擬開發(fā)計(jì)劃8. 書寫文檔提交審查2.3 系統(tǒng)流程圖

系統(tǒng)流程圖:是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。表達(dá)的是數(shù)據(jù)在系統(tǒng)各部件之間流動(dòng)的情況,而不是對(duì)數(shù)據(jù)進(jìn)行加工處理的控制過(guò)程。

2.4 數(shù)據(jù)流圖

2.4.1 符號(hào)

基本符號(hào):

數(shù)據(jù)存儲(chǔ):數(shù)據(jù)存儲(chǔ)是處于靜止?fàn)顟B(tài)的數(shù)據(jù); 數(shù)據(jù)流:數(shù)據(jù)流是處于運(yùn)動(dòng)中的數(shù)據(jù)。

附加符號(hào):星號(hào)(*):表示“與”關(guān)系

加號(hào)(+):表示“或”關(guān)系異或(⊕):表示互斥關(guān)系

2.5 數(shù)據(jù)字典

數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型。2.5.1 數(shù)據(jù)字典的內(nèi)容數(shù)據(jù)字典的組成:數(shù)據(jù)流 數(shù)據(jù)流分量(即數(shù)據(jù)元素) 數(shù)據(jù)存儲(chǔ) 處理

2.5.2 定義數(shù)據(jù)的方法

方法:對(duì)數(shù)據(jù)自頂向下分解。 數(shù)據(jù)組成方式(三種基本類型):順序 選擇 重復(fù) 附加類型:可選

符號(hào):=意思是等價(jià)于(或定義為);+意思是和(即,連接兩個(gè)分量);[ ]意思是或(即,從方括弧內(nèi)列出的若干個(gè)分量中選擇一個(gè)),通常用“|”號(hào)隔開供選擇的分量;{ }意思是重復(fù)(即,重復(fù)花括弧內(nèi)的分量);常常使用上限和下限進(jìn)一步注釋表示重復(fù)的花括弧。( )意思是可選(即,圓括弧里的分量可有可無(wú))。

2.5.3 數(shù)據(jù)字典的實(shí)現(xiàn)

計(jì)算機(jī)實(shí)現(xiàn) 人工實(shí)現(xiàn)

2.5 成本/效益分析

2.6.1 成本估計(jì):1. 代碼行技術(shù) 2. 任務(wù)分解技術(shù) 3. 自動(dòng)估計(jì)成本技術(shù)

2.6.2 成本/效益分析的方法

成本/效益分析涉及的4個(gè)概念: 1. 貨幣的時(shí)間價(jià)值2. 投資回收期3. 純收入4. 投資回收率:P = F1/( 1 + j ) + F2/( 1 + j )2 + …+ Fn( 1 + j )n

第3章 需求分析

需求分析的任務(wù):需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個(gè)問(wèn)題。確定系統(tǒng)必須完成哪些工作,也就是對(duì)目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。系統(tǒng)分析員應(yīng)該寫出軟件需求規(guī)格說(shuō)明書,以書面形式準(zhǔn)確地描述軟件需求

3.1 需求分析的任務(wù)

確定對(duì)系統(tǒng)的綜合要求 分析系統(tǒng)的數(shù)據(jù)要求 導(dǎo)出系統(tǒng)的邏輯模型 修正系統(tǒng)開發(fā)計(jì)劃

3.1.1 確定對(duì)系統(tǒng)的綜合要求

1. 功能需求

2. 性能需求3. 可靠性和可用性需求4. 出錯(cuò)處理需求5. 接口需求6. 約束7. 逆向需求8. 將來(lái)可能提出的要求

3.1.2 分析系統(tǒng)的數(shù)據(jù)要求

建立數(shù)據(jù)模型——ER圖 描繪數(shù)據(jù)結(jié)構(gòu)——層次方框圖和Warnier圖 數(shù)據(jù)結(jié)構(gòu)規(guī)范化

3.2 與用戶溝通獲取需求的方法

訪談:1. 正式訪談 2. 非正式訪談 3. 調(diào)查表 4. 情景分析技術(shù)

面向數(shù)據(jù)流自頂向下求精簡(jiǎn)易的應(yīng)用規(guī)格說(shuō)明技術(shù) 快速建立軟件原型:(1) 第四代技術(shù)(4GL)(2) 可重用的軟件構(gòu)件 (3) 形式化規(guī)格說(shuō)明和原型環(huán)境

3.3分析建模與規(guī)格說(shuō)明

3.3.1 分析建模

需求分析過(guò)程應(yīng)該建立3種模型:數(shù)據(jù)模型 功能模型 行為模型數(shù)據(jù)字典是分析模型的核心

實(shí)體-聯(lián)系圖用于建立數(shù)據(jù)模型的圖形數(shù)據(jù)流圖是建立功能模型的基礎(chǔ)

狀態(tài)轉(zhuǎn)換圖是行為建模的基礎(chǔ)

3.4 實(shí)體-聯(lián)系圖

數(shù)據(jù)模型中包含3種相互關(guān)聯(lián)的信息:數(shù)據(jù)對(duì)象、數(shù)據(jù)對(duì)象的屬性、數(shù)據(jù)對(duì)象彼此間相互連接的關(guān)系

3.4 狀態(tài)轉(zhuǎn)換圖

3.6.1 狀態(tài)

狀態(tài)圖分類:表示系統(tǒng)循環(huán)運(yùn)行過(guò)程,通常不關(guān)心循環(huán)是怎樣啟動(dòng)的。表示系統(tǒng)單程生命期,需要標(biāo)明初始狀態(tài)和最終狀態(tài)。

3.6.2 事件

事件就是引起系統(tǒng)做動(dòng)作或(和)轉(zhuǎn)換狀態(tài)的控制信息。

3.6.3 符號(hào)

3.6 其他圖形工具

3.7.1 層次方框圖


3.7.2 Warnier圖


3.7.3 IPO圖

3.7 驗(yàn)證軟件需求(重點(diǎn))

3.8.1 從哪些方面驗(yàn)證軟件需求的正確性

一致性 完整性 現(xiàn)實(shí)性 有效性

第五章 總體設(shè)計(jì)

5.1 設(shè)計(jì)過(guò)程

由兩個(gè)主要階段組成:系統(tǒng)設(shè)計(jì)階段,確定系統(tǒng)的具體實(shí)現(xiàn)方案:設(shè)想供選擇的方案 選取合理的方案 推薦最佳方案結(jié)構(gòu)設(shè)計(jì)階段,確定軟件結(jié)構(gòu):功能分解 設(shè)計(jì)軟件結(jié)構(gòu) 設(shè)計(jì)數(shù)據(jù)庫(kù) 制定測(cè)試文檔 書寫文檔 審查和復(fù)查

5.2 設(shè)計(jì)原理

5.2.1 模塊化

模塊化的作用:采用模塊化原理可以使軟件結(jié)構(gòu)清晰,不僅容易設(shè)計(jì)也容易閱讀和理解。模塊化使軟件容易測(cè)試和調(diào)試,因而有助于提高軟件的可靠性。模塊化能夠提高軟件的可修改性。模塊化也有助于軟件開發(fā)工程的組織管理。

5.2.2 抽象

5.2.3 逐步求精

5.2.4 信息隱藏和局部化

5.2.5 模塊獨(dú)立


盡量使用數(shù)據(jù)耦合,少用控制耦合和特征耦合,限制公共環(huán)境耦合的范圍,
完全不用內(nèi)容耦合。

七種內(nèi)聚的優(yōu)劣評(píng)分結(jié)果:高內(nèi)聚:功能內(nèi)聚 順序內(nèi)聚 中內(nèi)聚:通信內(nèi)聚 過(guò)程內(nèi)聚 低內(nèi)聚:時(shí)間內(nèi)聚 邏輯內(nèi)聚 偶然內(nèi)聚

5.2 啟發(fā)規(guī)則

1. 改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性

2. 模塊規(guī)模應(yīng)該適中

3. 深度、寬度、扇出和扇入都應(yīng)適當(dāng)

4. 模塊的作用域應(yīng)該在控制域之內(nèi)

5. 力爭(zhēng)降低模塊接口的復(fù)雜程度

6. 設(shè)計(jì)單入口單出口的模塊

7. 模塊功能應(yīng)該可以預(yù)測(cè)

5.4 描繪軟件結(jié)構(gòu)的圖形工具

5.4.1 層次圖和HIPO圖

1. 層次圖(H圖)層次圖用來(lái)描繪軟件的層次結(jié)構(gòu)。很適于在自頂向下設(shè)計(jì)軟件的過(guò)程中使用。

2. HIPO圖

5.4.2 結(jié)構(gòu)圖

5.4 面向數(shù)據(jù)流的設(shè)計(jì)方法

結(jié)構(gòu)化設(shè)計(jì)方法(簡(jiǎn)稱SD方法),也就是基于數(shù)據(jù)流的設(shè)計(jì)方法。

5.5.1 概念

面向數(shù)據(jù)流的設(shè)計(jì)方法把信息流映射成軟件結(jié)構(gòu),信息流的類型決定了映射的方法。信息流有兩種類型:變換流 事務(wù)流

第6章 詳細(xì)設(shè)計(jì)

6.1 結(jié)構(gòu)程序設(shè)計(jì)

經(jīng)典的結(jié)構(gòu)程序設(shè)計(jì):

只允許使用順序、IF-THEN-ELSE型分支和DO-WHILE型循環(huán)這3種基本控制結(jié)構(gòu);擴(kuò)展的結(jié)構(gòu)程序設(shè)計(jì):

如果除了上述3種基本控制結(jié)構(gòu)之外,還允許使用DO-CASE型多分支結(jié)構(gòu)和DO-UNTIL型循環(huán)結(jié)構(gòu);修正的結(jié)構(gòu)程序設(shè)計(jì):

再加上允許使用LEAVE(或BREAK)結(jié)構(gòu)。

6.2 人機(jī)界面設(shè)計(jì)

6.2.1 設(shè)計(jì)問(wèn)題

設(shè)計(jì)人機(jī)界面過(guò)程中會(huì)遇到的4個(gè)問(wèn)題:系統(tǒng)響應(yīng)時(shí)間:長(zhǎng)度 易變性 用戶幫助設(shè)施:集成的幫助設(shè)施附加的幫助設(shè)施出錯(cuò)信息處理命令交互 6.2.3 人機(jī)界面設(shè)計(jì)指南

一般交互指南信息顯示指南數(shù)據(jù)輸入指南6.3過(guò)程設(shè)計(jì)的工具

6.3.1 程序流程圖(程序框圖)

程序流程圖的主要缺點(diǎn):程序流程圖本質(zhì)上不是逐步求精的好工具,它誘使程序員過(guò)早地考慮程序的控制流程,而不去考慮程序的全局結(jié)構(gòu)。程序流程圖中用箭頭代表控制流,因此程序員不受任何約束,可以完全不顧結(jié)構(gòu)程序設(shè)計(jì)的精神,隨意轉(zhuǎn)移控制。程序流程圖不易表示數(shù)據(jù)結(jié)構(gòu)。

6.3.2 盒圖(N-S圖)

盒圖具有下述特點(diǎn):功能域明確。不可能任意轉(zhuǎn)移控制。很容易確定局部和全程數(shù)據(jù)的作用域。很容易表現(xiàn)嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。6.3.3 PAD圖

它用二維樹形結(jié)構(gòu)的圖來(lái)表示程序的控制流,將這種圖翻譯成程序代碼比較容易。

PAD圖的主要優(yōu)點(diǎn)如下:使用表示結(jié)構(gòu)化控制結(jié)構(gòu)的PAD符號(hào)設(shè)計(jì)出來(lái)的程序必然是結(jié)構(gòu)化程序。PAD圖所描繪的程序結(jié)構(gòu)十分清晰。PAD圖表現(xiàn)程序邏輯易讀、易懂、易記?!∪菀讓AD圖轉(zhuǎn)換成高級(jí)語(yǔ)言源程序,這種轉(zhuǎn)換可用軟件工具自動(dòng)完成。即可表示程序邏輯,也可描繪數(shù)據(jù)結(jié)構(gòu)。PAD圖的符號(hào)支持自頂向下、逐步求精方法的使用。6.3.4 判定表

判定表卻能夠清晰地表示復(fù)雜的條件組合與應(yīng)做的動(dòng)作之間的對(duì)應(yīng)關(guān)系。



所有條件

條件組合矩陣



所有動(dòng)作

條件組合
對(duì)應(yīng)的動(dòng)作



判定表的缺點(diǎn):

判定表的含義不是一眼就能看出來(lái)的,初次接觸這種工具的人理解它需要有一個(gè)簡(jiǎn)短的學(xué)習(xí)過(guò)程。

當(dāng)數(shù)據(jù)元素的值多于兩個(gè)時(shí),判定表的簡(jiǎn)潔程度也將下降。

6.3.5 判定樹

判定樹的優(yōu)點(diǎn):

它的形式簡(jiǎn)單,一眼就可以看出其含義,因此易于掌握和使用。

判定樹的缺點(diǎn):

簡(jiǎn)潔性不如判定表,數(shù)據(jù)元素的同一個(gè)值往往要重復(fù)寫多遍,而且越接近樹的葉端重復(fù)次數(shù)越多。

畫判定樹時(shí)分枝的次序可能對(duì)最終畫出的判定樹的簡(jiǎn)潔程度有較大影響。

6.3.6 過(guò)程設(shè)計(jì)語(yǔ)言(偽碼)


偽代碼的基本控制結(jié)構(gòu):

簡(jiǎn)單陳述句結(jié)構(gòu):避免復(fù)合語(yǔ)句。

判定結(jié)構(gòu):IF_THEN_ELSE或CASE_OF結(jié)構(gòu)。

選擇結(jié)構(gòu):WHILE_DO或REPEAT_UNTIL結(jié)構(gòu)。


PDL的優(yōu)點(diǎn):

可以作為注釋直接插在源程序中間。有助于保持文檔和程序的一致性,提高了文檔的質(zhì)量。

可以使用普通的正文編輯程序或文字處理系統(tǒng),很方便地完成PDL的書寫和編輯工作。

已經(jīng)有自動(dòng)處理程序存在,而且可以自動(dòng)由PDL生成程序代碼。

PDL的缺點(diǎn):

不如圖形工具形象直觀,描述復(fù)雜的條件組合與動(dòng)作間的對(duì)應(yīng)關(guān)系時(shí),不如判定表清晰簡(jiǎn)單。

6.4 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法

面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法的最終目標(biāo)是得出對(duì)程序處理過(guò)程的描述。


6.4.1Jackson


A由B、C、D 3個(gè)元素順序組成 根據(jù)條件A是B或C或D中的某一個(gè) A由B出現(xiàn)N次(N≥0)組成

6.4.2 改進(jìn)的Jackson圖

6.4.3 Jackson方法

6.5 程序復(fù)雜程度的定量度量

6.5.1 McCabe方法

1. 流圖(程序圖)

2. 計(jì)算環(huán)形復(fù)雜度的方法

V(G)=流圖中的區(qū)域數(shù)

V(G)=E-N+2

其中E是流圖中的邊數(shù),N是結(jié)點(diǎn)數(shù)

V(G)=P+1

其中P是流圖中判定結(jié)點(diǎn)的數(shù)目

6.5.2 Halstead方法

令N1為程序中運(yùn)算符出現(xiàn)的總次數(shù),N2為操作數(shù)出現(xiàn)的總次數(shù),程序長(zhǎng)度N定義為:

N=N1+N2

程序中使用的不同運(yùn)算符(包括關(guān)鍵字)的個(gè)數(shù)n1,以及不同操作數(shù)(變量和常數(shù))的個(gè)數(shù)n2。預(yù)測(cè)程序長(zhǎng)度的公式如下:

H = n1 log2n1 + n2 log2n2

預(yù)測(cè)程序中包含錯(cuò)誤的個(gè)數(shù)的公式如下:

E = N log2 (n1+n2)/3000

第7章 實(shí)現(xiàn)

編碼和測(cè)試統(tǒng)稱為實(shí)現(xiàn)。

7.1編碼

7.1.1 選擇程序設(shè)計(jì)語(yǔ)言

主要的實(shí)用標(biāo)準(zhǔn):

系統(tǒng)用戶的要求

可以使用的編譯程序

可以得到的軟件工具

工程規(guī)模

程序員的知識(shí)

軟件可移植性要求

軟件的應(yīng)用領(lǐng)域

7.1.2 編碼風(fēng)格

1. 程序內(nèi)部的文檔:恰當(dāng)?shù)臉?biāo)識(shí)符 適當(dāng)?shù)淖⒔?程序的視覺組織

2. 數(shù)據(jù)說(shuō)明

3. 語(yǔ)句構(gòu)造

4. 輸入輸出

5. 效率:程序運(yùn)行時(shí)間 存儲(chǔ)器效率 輸入輸出的效率

7.2軟件測(cè)試基礎(chǔ)

7.2.1 軟件測(cè)試的目標(biāo)

測(cè)試是為了發(fā)現(xiàn)程序中的錯(cuò)誤而執(zhí)行程序的過(guò)程;

好的測(cè)試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試方案;

成功的測(cè)試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。

7.2.3 測(cè)試方法

黑盒測(cè)試(功能測(cè)試):

把程序看作一個(gè)黑盒子;

完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過(guò)程;

是在程序接口進(jìn)行的測(cè)試。

白盒測(cè)試(結(jié)構(gòu)測(cè)試):

把程序看成裝在一個(gè)透明的盒子里;

測(cè)試者完全知道程序的結(jié)構(gòu)和處理算法;

按照程序內(nèi)部的邏輯測(cè)試程序,檢測(cè)程序中的主要執(zhí)行通路是否都能按預(yù)定要求正確工作。

7.2.4 測(cè)試步驟

1. 模塊測(cè)試(單元測(cè)試)

保證每個(gè)模塊作為一個(gè)單元能正確運(yùn)行;

發(fā)現(xiàn)的往往是編碼和詳細(xì)設(shè)計(jì)的錯(cuò)誤。

2. 子系統(tǒng)測(cè)試

把經(jīng)過(guò)單元測(cè)試的模塊放在一起形成一個(gè)子系統(tǒng)來(lái)測(cè)試;

著重測(cè)試模塊的接口。

3. 系統(tǒng)測(cè)試

把經(jīng)過(guò)測(cè)試的子系統(tǒng)裝配成一個(gè)完整的系統(tǒng)來(lái)測(cè)試;

發(fā)現(xiàn)的往往是軟件設(shè)計(jì)中的錯(cuò)誤,也可能發(fā)現(xiàn)需求說(shuō)明中的錯(cuò)誤;

不論是子系統(tǒng)測(cè)試還是系統(tǒng)測(cè)試,都兼有檢測(cè)和組裝兩重含義,通常稱為集成測(cè)試。

4. 驗(yàn)收測(cè)試(確認(rèn)測(cè)試)

把軟件系統(tǒng)作為單一的實(shí)體進(jìn)行測(cè)試;

它是在用戶積極參與下進(jìn)行的,而且可能主要使用實(shí)際數(shù)據(jù)(系統(tǒng)將來(lái)要處理的信息)進(jìn)行測(cè)試;

發(fā)現(xiàn)的往往是系統(tǒng)需求說(shuō)明書中的錯(cuò)誤。

5. 平行運(yùn)行

7.2.5 測(cè)試階段的信息流

輸入信息有兩類:

軟件配置,包括需求說(shuō)明書、設(shè)計(jì)說(shuō)明書和源程序清單等;

測(cè)試配置,包括測(cè)試計(jì)劃和測(cè)試方案。

7.3 單元測(cè)試

單元測(cè)試集中檢測(cè)模塊;

單元測(cè)試和編碼屬于軟件過(guò)程的同一個(gè)階段;

可以應(yīng)用人工測(cè)試和計(jì)算機(jī)測(cè)試這樣兩種不同類型的測(cè)試方法;

單元測(cè)試主要使用白盒測(cè)試技術(shù),對(duì)多個(gè)模塊的測(cè)試可以并行地進(jìn)行。

7.3.1 測(cè)試重點(diǎn)

模塊接口

局部數(shù)據(jù)結(jié)構(gòu)

重要的執(zhí)行通路

出錯(cuò)處理通路

邊界條件

7.3.2 代碼審查

由審查小組正式進(jìn)行測(cè)試稱為代碼審查;

一次審查會(huì)上可以發(fā)現(xiàn)許多錯(cuò)誤,可以減少系統(tǒng)驗(yàn)證的總工作量。

7.3.3 計(jì)算機(jī)測(cè)試

驅(qū)動(dòng)程序是一個(gè)“主程序”,它接收測(cè)試數(shù)據(jù),傳送給被測(cè)試的模塊,并且印出有關(guān)的結(jié)果。

存根程序代替被測(cè)試的模塊所調(diào)用的模塊。它使用被它代替的模塊的接口,可能做最少量的數(shù)據(jù)操作,印出對(duì)入口的檢驗(yàn)或操作結(jié)果,并且把控制歸還給調(diào)用它的模塊。

7.4 集成測(cè)試

集成測(cè)試是測(cè)試和組裝軟件的系統(tǒng)化技術(shù),主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問(wèn)題。

由模塊組裝成程序時(shí)有兩種方法:

7.4.3 不同集成測(cè)試策略的比較


混合策略:

改進(jìn)的自頂向下測(cè)試方法

混合法

7.4.4 回歸測(cè)試

7.5 確認(rèn)測(cè)試

確認(rèn)測(cè)試也稱為驗(yàn)收測(cè)試,它的目標(biāo)是驗(yàn)證軟件的有效性。

7.5.3 Alpha和Beta測(cè)試

Alpha測(cè)試是在受控的環(huán)境中進(jìn)行的。

Beta測(cè)試是軟件在開發(fā)者不能控制的環(huán)境中的“真實(shí)”應(yīng)用。

1. 接口測(cè)試

2. 路徑測(cè)試

3. 功能測(cè)試

4. 健壯性測(cè)試

5. 性能測(cè)試

6. 用戶界面測(cè)試

7. 信息安全測(cè)試

8. 壓力測(cè)試

9. 可靠性測(cè)試

10. 安裝/反安裝測(cè)試確認(rèn)測(cè)試也稱為驗(yàn)收測(cè)試,它的目標(biāo)是驗(yàn)證軟件的有效性。

Alpha測(cè)試是在受控的環(huán)境中進(jìn)行的。

Beta測(cè)試是軟件在開發(fā)者不能控制的環(huán)境中的“真實(shí)”應(yīng)用。

4. 接口測(cè)試

5. 路徑測(cè)試

6. 功能測(cè)試

4. 健壯性測(cè)試

5. 性能測(cè)試

6. 用戶界面測(cè)試

7. 信息安全測(cè)試

8. 壓力測(cè)試

9. 可靠性測(cè)試

10. 安裝/反安裝測(cè)試


7.6 白盒測(cè)試技術(shù)


7.6.1 邏輯覆蓋

語(yǔ)句覆蓋

判定覆蓋 :比語(yǔ)句覆蓋強(qiáng),但對(duì)程序邏輯的覆蓋程度仍不高。

條件覆蓋 :判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋。

判定/條件覆蓋 :有時(shí)判定/條件覆蓋也并不比條件覆蓋更強(qiáng)。

條件組合覆蓋 :條件組合覆蓋標(biāo)準(zhǔn)的測(cè)試數(shù)據(jù)并不一定能使程序中的每條路徑都執(zhí)行到。

6. 點(diǎn)覆蓋(語(yǔ)句覆蓋標(biāo)準(zhǔn)相同)

7. 邊覆蓋(判定覆蓋一致)

8. 路徑覆蓋

7.6.2 控制結(jié)構(gòu)測(cè)試覆蓋

1. 基本路徑測(cè)試

基本路徑測(cè)試是Tom McCabe提出的一種白盒測(cè)試技術(shù)。

首先計(jì)算程序的環(huán)形復(fù)雜度;

以該復(fù)雜度為指南定義執(zhí)行路徑的基本集合;

2.條件測(cè)試

從該基本集合導(dǎo)出的測(cè)試用例可保證程序中的每條語(yǔ)句至少執(zhí)行一次,而且每個(gè)條件在執(zhí)行時(shí)都將分別取真、假兩種值。

3. 循環(huán)測(cè)試

循環(huán)測(cè)試是一種白盒測(cè)試技術(shù),它專注于測(cè)試循環(huán)結(jié)構(gòu)的有效性。

在結(jié)構(gòu)化的程序中通常只有3種循環(huán),即簡(jiǎn)單循環(huán)、串接循環(huán)和嵌套循環(huán)。

7.7 黑盒測(cè)試技術(shù)

7.7.1 等價(jià)劃分

7.7.2 邊界值分析

7.7.3 錯(cuò)誤推測(cè)

7.9 軟降可靠性

7.9.1 基本概念

軟件可靠性:

程序在給定的時(shí)間間隔內(nèi),按照規(guī)格說(shuō)明書的規(guī)定成功地運(yùn)行的概率。

軟件的可用性:

程序在給定的時(shí)間點(diǎn),按照規(guī)格說(shuō)明書的規(guī)定,成功地運(yùn)行的概率。

第8章 維護(hù)

軟件工程的目的是要提高軟件的可維護(hù)性,減少軟件維護(hù)所需要的工作量,降低軟件系統(tǒng)的總成本。

8.1 軟件維護(hù)的定義

軟件維護(hù):在軟件已經(jīng)交付使用之后,為了改正錯(cuò)誤或滿足新的需要而修改軟件的過(guò)程。

可分為4項(xiàng)活動(dòng):

改正性維護(hù)

適應(yīng)性維護(hù)

完善性維護(hù)

預(yù)防性維護(hù)

8.2軟件維護(hù)的特點(diǎn)

8.2.1 結(jié)構(gòu)化維護(hù)與非結(jié)構(gòu)化維護(hù)差別巨大

8.2.2 維護(hù)的代價(jià)高昂

8.2.3 維護(hù)的問(wèn)題很多

8.3軟件維護(hù)過(guò)程

1.維護(hù)組織 2.維護(hù)報(bào)告 3.維護(hù)的事件流 4.保存維護(hù)記錄 5.評(píng)價(jià)維護(hù)活動(dòng)

8.4 軟件的可維護(hù)性

決定軟件可維護(hù)性的因素主要有7個(gè):

可理解性

可測(cè)試性

可修改性

可靠性

可移植性

可使用性

效率

第9章 面向?qū)ο蠓椒▽W(xué)引論

9.1面向?qū)ο蠓椒▽W(xué)概述

9.1.1面向?qū)ο蠓椒▽W(xué)要點(diǎn)

(1)認(rèn)為客觀世界是由各種對(duì)象組成的,任何事物都是對(duì)象

(2)把所有對(duì)象都劃分成各種類對(duì)象,每個(gè)對(duì)象類都定義了一組數(shù)據(jù)和一組方法

(3)按照子類和父類的關(guān)系,把若干個(gè)對(duì)象類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)

(4)對(duì)象彼此之間僅能通過(guò)傳遞消息相互聯(lián)系

9.1.2 面向?qū)ο箝_發(fā)方法

面向?qū)ο?對(duì)象+類 +繼承+通信

9.1.4 面向?qū)ο蠓椒ńM成

面向?qū)ο蟮姆治?/p>

面向?qū)ο蟮脑O(shè)計(jì)

面向?qū)ο蟮某绦蛟O(shè)計(jì)

9.1.6 面向?qū)ο蠓椒ǖ膬?yōu)點(diǎn)

1.與人類習(xí)慣的思維方式一致

2.穩(wěn)定性好

3.可重用性好

4.可維護(hù)性好

5.較易開發(fā)大型軟件產(chǎn)品

9.2 面向?qū)ο蟮母拍?/p>

9.2.1 對(duì)象

是客觀事物或概念的抽象表述,即對(duì)客觀存在的事物的描述統(tǒng)稱為對(duì)象,對(duì)象可以是事、物、或抽象概念 ,是將一組數(shù)據(jù)和使用該數(shù)據(jù)的一組基本操作或過(guò)程封裝在一起的實(shí)體。

對(duì)象的特點(diǎn)

(1) 以數(shù)據(jù)為中心。

(2) 對(duì)象是主動(dòng)的。

(3) 實(shí)現(xiàn)了數(shù)據(jù)封裝。

(4) 本質(zhì)上具有并行性。

(5) 模塊獨(dú)立性好。

9.2.2 類

是一組具有相同屬性和相同操作的對(duì)象的集合。

9.2.3 實(shí)例

由某個(gè)特定的類所描述的一個(gè)具體的對(duì)象。

9.2.4 消息

向?qū)ο蟀l(fā)出的服務(wù)請(qǐng)求(互相聯(lián)系、協(xié)同工作等)。一個(gè)消息包含3個(gè)部分:接收消息的對(duì)象,消息名,消息變?cè)?/p>

9.2.5 方法

方法就是對(duì)象所能執(zhí)行的操作,也就是類中所定義的服務(wù)。

9.2.6 屬性

屬性就是類中所定義的數(shù)據(jù),它是對(duì)客觀世界實(shí)體所具有的性質(zhì)的抽象。

9.2.7 封裝

對(duì)象封裝了對(duì)象的數(shù)據(jù)以及對(duì)這些數(shù)據(jù)的操作。

9.2.8 繼承(I)

繼承是子類自動(dòng)地共享基類中定義的數(shù)據(jù)和方法的機(jī)制。

單重繼承:子類僅從一個(gè)父類繼承屬性和方法

多重繼承:子類可從多個(gè)父類繼承屬性和方法

9.2.9 多態(tài)性

9.2.10 重載

9.3 面向?qū)ο蠼?II)

面向?qū)ο箝_發(fā)軟件,需要建立3種形式的模型。

對(duì)象模型。描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)—數(shù)據(jù)結(jié)構(gòu)。

動(dòng)態(tài)模型。描述系統(tǒng)控制結(jié)構(gòu)—執(zhí)行操作。

功能模型。描述系統(tǒng)功能—數(shù)值變化。

9.4 對(duì)象模型

9.4.1類圖的基本符號(hào)(I)

1. 定義類



2. 定義屬性

可見性 屬性名 :類型 = 缺省值 {性質(zhì)串}

可見性(visibility)表示該屬性對(duì)類外的元素是否可見。

分為:

public(+) 公有的,即模型中的任何類都可以訪問(wèn)該屬性。

private(-) 私有的,表示不能被別的類訪問(wèn)。

protected(#) 受保護(hù)的,表示該屬性只能被該類及其子類訪問(wèn)。

如果可見性未申明,表示其可見性不確定。

3. 定義操作

可見性 操作名(參數(shù)表):返回類型{性質(zhì)串}

9.4.2 表示關(guān)系的符號(hào)(I)

9.4.2.1 關(guān)聯(lián)(I)

關(guān)聯(lián)表示兩個(gè)類的對(duì)象之間存在某種語(yǔ)義上的聯(lián)系。

(1) 普通關(guān)聯(lián)




遞歸關(guān)聯(lián):一個(gè)類與本身有關(guān)聯(lián)關(guān)系

(3) 限定關(guān)聯(lián)


(4) 關(guān)聯(lián)類





9.4.2.2 聚集(I)

(1) 共享聚集

如果在聚集關(guān)系中處于部分方的對(duì)象可同時(shí)參與多個(gè)處于整體方對(duì)象的構(gòu)成,則該聚集稱為共享聚集。



(2) 組合聚集

如果部分類完全隸屬于整體類,部分與整體共存,整體不存在了部分也會(huì)隨之消失,則該聚集稱為組合聚集。


9.4.2.3 泛化(I)

(1)普通泛化

(2)受限泛化

預(yù)定義的約束有4種: 多重、不相交、完全和不完全。


9.4.2.4 依賴



9.4.2.5 細(xì)化



9.5動(dòng)態(tài)模型

9.6功能模型

9.6.1用例圖

模型元素:系統(tǒng)、行為者、用例及用例之間的關(guān)系(擴(kuò)展關(guān)系、使用關(guān)系)

用例的實(shí)例是腳本

第10章 面向?qū)ο蠓治?/p>

10.1 面向?qū)ο蠓治龅幕具^(guò)程

面向?qū)ο蠓治觯撼槿『驼碛脩粜枨蟛⒔?wèn)題域精確模型的過(guò)程.

理解----用戶、分析員和領(lǐng)域?qū)<?/p>

表達(dá)----需求規(guī)格說(shuō)明書(對(duì)象模型、動(dòng)態(tài)模型、功能模型)

驗(yàn)證----二義性,完善性

對(duì)象模型最基本、最重要、最核心。

靜態(tài)結(jié)構(gòu)(對(duì)象模型)

3個(gè)子模型 交互次序(動(dòng)態(tài)模型)

數(shù)據(jù)變換(功能模型)


復(fù)雜問(wèn)題的對(duì)象模型的5個(gè)層次

面向?qū)ο蠓治龅倪^(guò)程

尋找類與對(duì)象

識(shí)別結(jié)構(gòu)

識(shí)別主題

定義屬性

建立動(dòng)態(tài)模型

建立功能模型

定義服務(wù)

10.2 需求陳述

需求陳述是闡明“做什么”,而不是“怎樣做”

問(wèn)題范圍

功能需求

性能需求

應(yīng)用環(huán)境

假設(shè)條件

第11章 面向?qū)ο笤O(shè)計(jì)

11.1 面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則

1. 模塊化 2. 抽象 3. 信息隱藏

4. 弱耦合

耦合指不同對(duì)象之間相互關(guān)聯(lián)的緊密程度。

對(duì)象之間的耦合分兩類:

交互耦合

如果對(duì)象之間的耦合通過(guò)消息連接來(lái)實(shí)現(xiàn),則這種耦合就是交互耦合。交互耦合應(yīng)盡可能松散 。

繼承耦合

與交互耦合相反,應(yīng)該提高繼承耦合程度。

5. 強(qiáng)內(nèi)聚

在面向?qū)ο笤O(shè)計(jì)中存在下述3種內(nèi)聚:

服務(wù)內(nèi)聚:一個(gè)服務(wù)應(yīng)該完成一個(gè)且僅完成一個(gè)功能。

類內(nèi)聚:一個(gè)類應(yīng)該只有一個(gè)用途,它的屬性和服務(wù)應(yīng)該是高內(nèi)聚的。

一般-特殊內(nèi)聚:設(shè)計(jì)出的一般-特殊結(jié)構(gòu),應(yīng)該符合多數(shù)人的概念

6. 可重用

11.2 啟發(fā)規(guī)則

1. 設(shè)計(jì)結(jié)果應(yīng)該清晰易懂

2. 一般-特殊結(jié)構(gòu)的深度應(yīng)適當(dāng)

3. 設(shè)計(jì)簡(jiǎn)單的類

4. 使用簡(jiǎn)單的協(xié)議

5. 使用簡(jiǎn)單的服務(wù)

6. 把設(shè)計(jì)變動(dòng)減至最小

第13章 軟件項(xiàng)目管理

13.1估算軟件規(guī)模

13.1.1 代碼行技術(shù)

估算方法:

由多名有經(jīng)驗(yàn)的軟件工程師分別做出估計(jì)。

每個(gè)人都估計(jì)程序的最小規(guī)模(a)、最大規(guī)模(b)和最可能的規(guī)模(m),

分別算出這3種規(guī)模的平均值之后,再用下式計(jì)算程序規(guī)模的估計(jì)值:


單位:

LOC或KLOC。

代碼行技術(shù)的優(yōu)點(diǎn):

代碼是所有軟件開發(fā)項(xiàng)目都有的“產(chǎn)品”,而且很容易計(jì)算代碼行數(shù);

有大量參考文獻(xiàn)和數(shù)據(jù) 。

代碼行技術(shù)的缺點(diǎn):

源程序僅是軟件配置的一個(gè)成分,由源程序度量軟件規(guī)模不太合理;

用不同語(yǔ)言實(shí)現(xiàn)同一個(gè)軟件所需要的代碼行數(shù)并不相同;

不適用于非過(guò)程性語(yǔ)言。

13.1.2 功能點(diǎn)技術(shù)

功能點(diǎn)技術(shù)依據(jù)對(duì)軟件信息域特性和軟件復(fù)雜性的評(píng)估結(jié)果,估算軟件規(guī)模。

這種方法用功能點(diǎn)(FP)為單位度量軟件規(guī)模。

1. 信息域特性

輸入項(xiàng)數(shù)(Inp)、輸出項(xiàng)數(shù)(Out)、查詢數(shù)(Inq)、主文件數(shù)(Maf)、外部接口數(shù)(Inf)

每個(gè)特征根據(jù)其復(fù)雜程度分配一個(gè)功能點(diǎn)數(shù),即信息域特征系數(shù)a1,a2,a3,a4,a5

2. 估算功能點(diǎn)的步驟

(1) 計(jì)算未調(diào)整的功能點(diǎn)數(shù)UFP

UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf

(2) 計(jì)算技術(shù)復(fù)雜性因子TCF

技術(shù)因素對(duì)軟件規(guī)模的綜合影響程度DI:


技術(shù)復(fù)雜性因子TCF由下式計(jì)算:

TCF = 0.65 + 0.01 × DI

因?yàn)镈I的值在0~70之間,所以TCF的值在0.65~1.35之間。

(3) 計(jì)算功能點(diǎn)數(shù)FP

FP = UFP × TCF

功能點(diǎn)技術(shù)優(yōu)點(diǎn):與所用的編程語(yǔ)言無(wú)關(guān),比代碼行技術(shù)更合理。

功能點(diǎn)技術(shù)缺點(diǎn):在判斷信息域特性復(fù)雜級(jí)別和技術(shù)因素的影響程度時(shí)主觀因素較大,對(duì)經(jīng)驗(yàn)依賴性較強(qiáng)。



13.2 工作量估算

13.2.1 靜態(tài)單變量模型

E = A + B × (ev) C

ev是估算變量(KLOC或FP)。

13.2.2 動(dòng)態(tài)多變量模型

動(dòng)態(tài)多變量模型也稱為軟件方程式,該模型把工作量看作是軟件規(guī)模和開發(fā)時(shí)間這兩個(gè)變量的函數(shù)。

E=(LOC×B0.333/P)3×(1/t)4

13.2.3 COCOMO2模型(構(gòu)造性成本模型)

3個(gè)層次的估算模型:

應(yīng)用系統(tǒng)組成模型:這個(gè)模型主要用于估算構(gòu)建原型的工作量,模型名字暗示在構(gòu)建原型時(shí)大量使用已有的構(gòu)件。

早期設(shè)計(jì)模型:這個(gè)模型適用于體系結(jié)構(gòu)設(shè)計(jì)階段。

后體系結(jié)構(gòu)模型:這個(gè)模型適用于完成體系結(jié)構(gòu)設(shè)計(jì)之后的軟件開發(fā)階段。




COCOMO2使用的5個(gè)分級(jí)因素:項(xiàng)目先例性、開發(fā)靈活性、風(fēng)險(xiǎn)排除度、項(xiàng)目組凝聚力、過(guò)程成熟度

13.3 進(jìn)度計(jì)劃

13.3.1 估算開發(fā)時(shí)間

Brooks規(guī)律:向一個(gè)已經(jīng)延期的項(xiàng)目增加人力,只會(huì)使得它更加延期。

13.3.2 Gantt圖

Gantt圖的主要優(yōu)點(diǎn):

Gantt圖能很形象地描繪任務(wù)分解情況,以及每個(gè)子任務(wù)(作業(yè))的開始和結(jié)束時(shí)間。

具有直觀簡(jiǎn)明和容易掌握、容易繪制的優(yōu)點(diǎn)。

Gantt圖的3個(gè)主要缺點(diǎn):

不能顯式地描繪各項(xiàng)作業(yè)彼此間的依賴關(guān)系;

進(jìn)度計(jì)劃的關(guān)鍵部分不明確,難于判定哪些部分應(yīng)當(dāng)是主攻和主控的對(duì)象;

計(jì)劃中有潛力的部分及潛力的大小不明確,往往造成潛力的浪費(fèi)。

13.3.3 工程網(wǎng)絡(luò)

工程網(wǎng)絡(luò)是系統(tǒng)分析和系統(tǒng)設(shè)計(jì)的強(qiáng)有力的工具。

13.3.4 估算工程進(jìn)度


計(jì)算最早時(shí)刻EET使用下述3條簡(jiǎn)單規(guī)則:

考慮進(jìn)入該事件的所有作業(yè);

對(duì)于每個(gè)作業(yè)都計(jì)算它的持續(xù)時(shí)間與起始事件的EET之和;

選取上述和數(shù)中的最大值作為該事件的最早時(shí)刻EET。

計(jì)算最遲時(shí)刻LET使用下述3條規(guī)則:

考慮離開該事件的所有作業(yè);

從每個(gè)作業(yè)的結(jié)束事件的最遲時(shí)刻中減去該作業(yè)的持續(xù)時(shí)間;

選取上述差數(shù)中的最小值作為該事件的最遲時(shí)刻LET。

13.3.5關(guān)鍵路徑

關(guān)鍵事件:EET=LET

13.3.5 機(jī)動(dòng)時(shí)間=(LET)結(jié)束-(EET)開始-持續(xù)時(shí)間

=右下角-左上角-持續(xù)時(shí)間

13.4 人員組織

13.4.1 民主制程序員組

如果小組內(nèi)有n個(gè)成員,則可能的通信信道共有n(n-1)/2條。

13.4.2 主程序員組

主程序員組的兩個(gè)重要特性:專業(yè)化、 層次性

13.4.3 現(xiàn)代程序員組

13.5質(zhì)量保證

13.5.1 軟件質(zhì)量

13.5.2 軟件質(zhì)量保證措施

13.6 軟件配置管理

基于非執(zhí)行的測(cè)試(復(fù)審或評(píng)審),主要用來(lái)保證在編碼之前各階段產(chǎn)生的文檔的質(zhì)量;

基于執(zhí)行的測(cè)試(軟件測(cè)試),需要在程序編寫出來(lái)之后進(jìn)行,它是保證軟件質(zhì)量的最后一道防線;

程序正確性證明,使用數(shù)學(xué)方法嚴(yán)格驗(yàn)證程序是否與對(duì)它的說(shuō)明完全一致。

1. 技術(shù)復(fù)審的必要性

2. 走查:參與者驅(qū)動(dòng)法、文檔驅(qū)動(dòng)法

3. 審查:綜述 準(zhǔn)備 審查 返工 跟蹤

4. 程序正確性證明

軟件配置管理是在軟件的整個(gè)生命期內(nèi)管理變化的一組活動(dòng)。

具體地說(shuō),這組活動(dòng)用來(lái):①標(biāo)識(shí)變化;②控制變化;③確保適當(dāng)?shù)貙?shí)現(xiàn)了變化;④向需要知道這類信息的人報(bào)告變化。

軟件配置管理的目標(biāo):使變化更正確且更容易被適應(yīng),在必須變化時(shí)減少所需花費(fèi)的工作量。

13.6.1 軟件配置

1.軟件過(guò)程的輸出信息(軟件配置項(xiàng)):

計(jì)算機(jī)程序(源代碼和可執(zhí)行程序);

描述計(jì)算機(jī)程序的文檔(供技術(shù)人員或用戶使用);

數(shù)據(jù)(程序內(nèi)包含的或在程序外的)

2. 基線

基線就是通過(guò)了正式復(fù)審的軟件配置項(xiàng)。

13.6.2 軟件配置管理過(guò)程

軟件配置管理主要有5項(xiàng)任務(wù):

1. 標(biāo)識(shí)軟件配置中的對(duì)象:基本對(duì)象、聚集對(duì)象

2. 版本控制

3. 變化控制

4. 配置審計(jì)

5. 狀態(tài)報(bào)告

13.7 能力成熟度模型

1. 初始級(jí)

軟件過(guò)程的特征是無(wú)序的,有時(shí)甚至是混亂的。

2. 可重復(fù)級(jí)

軟件機(jī)構(gòu)建立了基本的項(xiàng)目管理過(guò)程(過(guò)程模型),可跟蹤成本、進(jìn)度、功能和質(zhì)量。

3. 已定義級(jí)

軟件機(jī)構(gòu)已經(jīng)定義了完整的軟件過(guò)程(過(guò)程模型),軟件過(guò)程已經(jīng)文檔化和標(biāo)準(zhǔn)化。

4. 已管理級(jí)

軟件機(jī)構(gòu)對(duì)軟件過(guò)程(過(guò)程模型和過(guò)程實(shí)例)和軟件產(chǎn)品都建立了定量的質(zhì)量目標(biāo),所有項(xiàng)目的重要的過(guò)程活動(dòng)都是可度量的。

5. 優(yōu)化級(jí)

軟件機(jī)構(gòu)集中精力持續(xù)不斷地改進(jìn)軟件過(guò)程。這一級(jí)的軟件機(jī)構(gòu)是一個(gè)以防止出現(xiàn)缺陷為目標(biāo)的機(jī)構(gòu),它有能力識(shí)別軟件過(guò)程要素的薄弱環(huán)節(jié),并有足夠的手段改進(jìn)它們。



軟件工程導(dǎo)論復(fù)習(xí)重點(diǎn)總結(jié)--很全的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
沁源县| 肥东县| 施秉县| 延庆县| 嫩江县| 察雅县| 酉阳| 泉州市| 河北区| 株洲市| 汉中市| 新安县| 庄河市| 武义县| 高尔夫| 台东市| 通许县| 镇原县| 庆阳市| 元阳县| 庐江县| 大姚县| 平顶山市| 新和县| 双峰县| 泸州市| 潞城市| 丁青县| 昌乐县| 宁南县| 革吉县| 于田县| 焉耆| 衡东县| 鄂州市| 宁陵县| 偃师市| 响水县| 高碑店市| 泾阳县| 永靖县|