軟件工程導(dǎo)論課件_第1頁
軟件工程導(dǎo)論課件_第2頁
軟件工程導(dǎo)論課件_第3頁
軟件工程導(dǎo)論課件_第4頁
軟件工程導(dǎo)論課件_第5頁
已閱讀5頁,還剩89頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

軟件工程

導(dǎo)論

張海藩編著

’第1篇軟件工程概述

:?軟件危機(jī)

:?軟件工程

「傳統(tǒng)方法學(xué)

?「技術(shù)

YL面向?qū)ο蠓椒▽W(xué)

題定義

L管理「軟件定義喇城)

:?軟件生命周期J軟件開發(fā)

1秋懺廿年編碼和單元測試

I運(yùn)行維護(hù)〔綜合測試

>軟件過程

第2篇軟件定義

問題定義\

a

可行性研究

*需求分析

2.1問題定義

。目的:弄清楚用戶要求計算機(jī)解決什么問題

。任務(wù):編寫“系統(tǒng)目標(biāo)與規(guī)范說明”

系統(tǒng)目標(biāo)與規(guī)范說明書

1、項目:教材銷售系統(tǒng)

2、問題:人工銷售教材手續(xù)繁瑣,容易出錯

3、項目目標(biāo):建立一個高效率、無差錯的計算機(jī)教材銷售系統(tǒng)

4、項目范圍:利用現(xiàn)有的計算機(jī),軟件開發(fā)費(fèi)用不得超過2000元

5、初步想法:建議在系統(tǒng)中增加對缺書的統(tǒng)計與采購功能

6、可性行研究:建議進(jìn)行大約10天的可性行研究,且研究費(fèi)用不

超過500元

一’2.2可行性研究

*目的:用最小的代價在盡可能短的時間內(nèi)確定問

題是否能夠解決.

?:?任務(wù):對以后的行動方針提出建議,制定工程實

施計劃。

1)技術(shù)可行性

分析技術(shù)冒險的各種因素,如:現(xiàn)有的技術(shù)是否能

實現(xiàn)本系統(tǒng),現(xiàn)有的技術(shù)人員是否能任,開發(fā)系

統(tǒng)的軟、硬資源是否能如期得到等。

2)經(jīng)濟(jì)可行性

*這個系統(tǒng)的經(jīng)濟(jì)效益能超過它的開發(fā)成本嗎?

。進(jìn)行成本效益分析,評估項目的開發(fā)成本。

舉例:開發(fā)計算機(jī)輔助設(shè)計(CAD)系統(tǒng)取代當(dāng)前的手工設(shè)計過

程中的成本效益分析

設(shè):T:繪制一幅圖的平均時間,單位小時

r:用CAD系統(tǒng)繪圖減少的繪圖時間比例

d:每小時繪圖的平均成本,單位元

n:每年繪制圖的數(shù)目

P:用CAD系統(tǒng)繪圖的百分比

則可用下式計算利用CAD系統(tǒng)繪圖每年可以節(jié)省的經(jīng)費(fèi):

B=Txrxdxnxp

成本-效益(萬元)

60-盈虧平衡點(diǎn)J該系統(tǒng)節(jié)省經(jīng)費(fèi)

成本及效益分析圖:一

該系統(tǒng)成本

20—

oL]----1----1----1-----1------?

12345年

卜投資回收期一|

若r=1/4,T=4小時,n=8000/年,d=20元/小時,p=60%,

貝ijB=1/4x4x8000x20x60%=96000/年,即用CAD繪圖比

用手工系統(tǒng)繪圖平均每年要節(jié)省96000元。

假設(shè)總開發(fā)費(fèi)用為20.4萬元,年度費(fèi)用估計為3.2萬元。

系統(tǒng)開發(fā)成本、節(jié)省的經(jīng)費(fèi)與時間的關(guān)系如圖所示。盈虧平衡

點(diǎn)對應(yīng)的時間坐標(biāo)是3」年,表示系統(tǒng)應(yīng)用3」年后可以收回系

統(tǒng)成本。則從圖中可知,投資回收期大約需要3.1年。

.貨幣的時間價值

通常用利率的形式表示。假設(shè)年利率為i,如果

現(xiàn)在存入P元,、則n年后可以得到的錢數(shù)為:F=

PX(1十巾這也就是p兀錢在n布后的價值。

反之,如果n年后能收入F元錢,那么這些錢的

現(xiàn)在的價值是:P=F^(1+i)n

如修改已有的庫存清單程序并且編寫產(chǎn)生報表)

的程序,估計共需5000元;系統(tǒng)修改后能及時定貨

將消除零件短缺問題,估計因此每年可以節(jié)省2500

元,5年共可節(jié)省12500元。但是,不能簡單地把

5000元和12500元相比較,因為前者是現(xiàn)在投資的

錢,后者是若干年以后節(jié)省的錢。

假定年利率為12%,利用上面計算貨幣現(xiàn)在價值

的公式可以算出修改庫存清單系統(tǒng)后每年預(yù)計節(jié)

省的錢的現(xiàn)在價值,如表所示。

將來值(1+i)現(xiàn)在值累計的現(xiàn)在

(元)n(元)值(元)

125001.122232.142232.14

225001.251992.984225.12

325001.401779.456004.57

425001.571588.807593.37

525001.761418.579011.94

3)操作可行性

系統(tǒng)的操作方式在這個用戶組織內(nèi)行的通

嗎?

?考慮待開發(fā)軟件的操作方式在用戶組織

內(nèi)是否行得通,現(xiàn)有管理制度、人員素

質(zhì)、操作方式是否可行。J

必要時還應(yīng)從法律、社會效益等更』f

泛的方面研究可行性」!

2.3需求分析

。軟件需求指用戶對目標(biāo)軟件系統(tǒng)在功能、

行為、性能、設(shè)計約束等方面的期望。

。通過對應(yīng)問題及其環(huán)境的理解與分析,為

問題涉及的信息、功能及系統(tǒng)行為建立模

。將用戶需求精確化、完全化,最終形成需

求規(guī)格說明,這一系列的活動即構(gòu)成軟件

開發(fā)生命周期的需求分析階段。

DEC曾是美國三大計算機(jī)公司之一,以眾多的

高新技術(shù)著稱于世,98年前被康柏收購。它在最后

的幾年里研發(fā)出的Alpha計算機(jī)芯片更以卓越的技

術(shù)在性能上超過了Intel、sun和其他廠家的芯片。

微軟也曾大力協(xié)助DEC,將WindowsNt移植到

Alpha系統(tǒng),然而,Alpha在市場上徹底向失敗了,

成為DEC最終失敗的原因之一。

原因:DEC不了解市場和用戶,盲目追求技

術(shù)。Alpha系統(tǒng)復(fù)雜,造價過高,絕大多數(shù)用戶不

能接受;而且它又不能與已有的系統(tǒng)兼容,使得

在其上的軟件開發(fā)相當(dāng)困難,軟件開發(fā)商也很難接

受!

因此,設(shè)計產(chǎn)品的出發(fā)點(diǎn)應(yīng)該是用戶和用戶的需求。

為什么人們開發(fā)一個軟件系統(tǒng)會比建

造一座摩天大廈要難得多?

軟件行業(yè)缺乏準(zhǔn)確又統(tǒng)一的語言來定義或描述相應(yīng)

的工作,真正的“需求”實際上存在于人們的頭腦

中;

軟件開發(fā)過程難以用一種工程化的方法來統(tǒng)一規(guī)范

和有效實施。

因此“需求”這個名詞的定義不僅僅是從用戶角度對系

統(tǒng)外部行為的描述,以及從開發(fā)人員角度對系統(tǒng)內(nèi)

部特性的描述,其關(guān)鍵的一點(diǎn)是”需求“必須文檔化。

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

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

*一

象化

抽G

模型

A導(dǎo)

.

例化

達(dá)

1)系統(tǒng)流程圖

是用來概括描述系統(tǒng)物理模型的一種傳統(tǒng)工具。

?基本思想是用圖形符號以黑盒子的形式描繪系

統(tǒng)里的每個部件(程序、文件、數(shù)據(jù)庫、表格、

人工過程等)。

?系統(tǒng)流程圖表達(dá)信息在系統(tǒng)各部件之間流動的

情況,而不是對數(shù)據(jù)進(jìn)行加工處理的控制過程,

所以是物理數(shù)據(jù)流圖而不是程序流程圖。

庫存清單系統(tǒng)流程圖

?一個存放零件的倉庫,

倉庫中現(xiàn)有多種零件及事務(wù);

零件的數(shù)量等項數(shù)據(jù)。,

庫存清單程序小庫監(jiān)單

。需加工的數(shù)據(jù)是每當(dāng)倉—丁一主文件

庫中的零件數(shù)量發(fā)生變,

化時,就應(yīng)該及時修改

庫存清單

。若此零件的庫存量少于報告生成程序

它的庫存臨界值,則應(yīng)

該報告各采購部門以便定貨報告

定貨,規(guī)定每天向采購

部門送一次定貨報告。結(jié)束

結(jié)構(gòu)化分析的分析模型

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

數(shù)據(jù)流圖(DFD)描繪信息系統(tǒng)的邏輯模型。

沒有任何具體的物理元素,描繪信息流和數(shù)據(jù)從輸入

移動到輸出的過程所經(jīng)受的變換,即在系統(tǒng)中流動

和被處理的邏輯過程.

巡標(biāo)幽用來概括攤那彝表示,

/.

薨國翼跳做#W四前榭幽稠螂鬧碗

椒碟調(diào)硼色鹿揖標(biāo)酹頸

腳I翳不需要考慮如何具體實現(xiàn)這些功能,是今

后進(jìn)行軟件設(shè)計很好的出發(fā)點(diǎn)。

數(shù)據(jù)流圖中的基本符號

0)數(shù)據(jù)轉(zhuǎn)換—轉(zhuǎn)換數(shù)據(jù)的處理過程

II外部實體-----數(shù)據(jù)的源點(diǎn)/終點(diǎn),位于軟件

1—1系統(tǒng)邊界之外的信息生產(chǎn)者或消費(fèi)者

---"數(shù)據(jù)流-----在轉(zhuǎn)換之間有向流動的數(shù)據(jù)

項或數(shù)據(jù)集合

2kL數(shù)據(jù)存儲-----可以是數(shù)據(jù)庫文件或任何形式的數(shù)

據(jù)組織。箭頭向內(nèi)則表示寫入文件

或查詢文件,箭頭向外則表示從文

件中讀取數(shù)據(jù)或得到查詢結(jié)果

數(shù)據(jù)流圖的層次結(jié)構(gòu)

。為了表達(dá)復(fù)雜的實際問題,需要采用層次結(jié)

構(gòu)的數(shù)據(jù)流圖,即按照問題的層次結(jié)構(gòu)進(jìn)行逐

步分解,并以分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)

關(guān)系,能清楚地表達(dá)和容易理解整個系統(tǒng).

。做法:系統(tǒng)的基本模型(把整個系統(tǒng)看成一

個加工點(diǎn))一逐層地對系統(tǒng)進(jìn)行分解,系統(tǒng)

的加工數(shù)量就會增多f所有的加工都足夠簡

單,不必再分解為止-“基本加工”O(jiān)

3)實體■聯(lián)系圖

。從用戶角度描繪了系統(tǒng)的數(shù)據(jù)對象及對象關(guān)

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

?描述狀態(tài)以及導(dǎo)致系統(tǒng)改變狀態(tài)的事件來表

示系統(tǒng)的行為,此外還指明了作為特定事件

的結(jié)果系統(tǒng)將做哪些動作(如處理數(shù)據(jù))。

它對于實時系統(tǒng)和控制系統(tǒng)尤為重要。

狀態(tài)1||狀態(tài)2_

邂一…iij矍表達(dá)式:瑛菽儂里0

、活動表島,轉(zhuǎn)換活動表2,

二例

學(xué)生成績管理系統(tǒng)

。某校準(zhǔn)備開發(fā)一個學(xué)生成績管理系統(tǒng)。在該

系統(tǒng)中,教務(wù)人員錄入學(xué)生信息、課程信息

和成績信息,學(xué)生可以隨時查詢自己所選課

程的成績。由于學(xué)生成績屬于敏感信息,系

統(tǒng)必須提供必要的安全措施以防非法存取。

1)創(chuàng)建實體關(guān)系圖

,實體:學(xué)生、課程、成績。

實體屬性定義:

學(xué)生:學(xué)號、姓名、性別、出生日期、入學(xué)年月

課程:課程編號、課程名稱、課程學(xué)分、課程描述

成績:學(xué)號、課程編號、分?jǐn)?shù)、考核日期

實體關(guān)系圖:

2)創(chuàng)建數(shù)據(jù)流模型

。第0層DFD圖

教務(wù)人員維護(hù)學(xué)生信息和課程信息,并登錄

學(xué)生的選課成績;

學(xué)生查詢自己的成績單。

1層DFD圖:

A學(xué)生

課程信息

教務(wù)人員A課程

成績

成績

查詢請求

學(xué)生

查詢結(jié)果

第2層DFD圖:對第1層DFD圖中的一個加工,,查

詢學(xué)生成績”進(jìn)行展開。一'

工一■查詢

生L請求V合*'性%----------學(xué)生

\

查詢條件\\

查恂結(jié)果合法查詢條件\課程

\

查詢條件V

成績

數(shù)據(jù)分量名:學(xué)號

唯一標(biāo)識學(xué)生

數(shù)據(jù)字典描述:

的編號

數(shù)據(jù)項別名:無

學(xué)生

名:類型:字符串

描述:包括學(xué)生的主要信息長度:6位字符

別名:無其他說明:學(xué)號不能重復(fù)

學(xué)號+姓名+性別+

定義:數(shù)據(jù)流名:學(xué)生成績查詢

出生日期+入學(xué)年月

數(shù)據(jù)量:10000左右描述:系統(tǒng)處理的一個命令

隨時,但經(jīng)常在新生別名:無

峰值:

入學(xué)時期頻率:10000次左右

其他說在系統(tǒng)功能擴(kuò)充時可隨時,但經(jīng)常在學(xué)期

峰值:

明:能增加定義項開學(xué)

在系統(tǒng)功能擴(kuò)充時可

其他說明:

能增加種類

3)創(chuàng)建行為模型

?:?學(xué)生成績信息需要采取安全措施,采取登錄方法避

免非法使用系統(tǒng)。

第3篇軟件開發(fā)

總體設(shè)計

。詳細(xì)設(shè)計

?編碼和單元測試

。綜合測試

信息描述

數(shù)據(jù)設(shè)計

——軟件開發(fā)階段的信息流

軟件設(shè)計是后續(xù)開發(fā)步驟及軟件維護(hù)工作的基礎(chǔ)。

如果沒有設(shè)計,只能建立一個不穩(wěn)定的系統(tǒng)結(jié)構(gòu)

有軟件設(shè)計沒有軟件設(shè)計

從技術(shù)和管理的角度看設(shè)計的關(guān)系

/詳細(xì)設(shè)計

’數(shù)據(jù)設(shè)計~

技術(shù)觀點(diǎn),系統(tǒng)結(jié)構(gòu)設(shè)計,

過程設(shè)計

3.1總體設(shè)計

總體設(shè)計通常由兩個階段組成:

。系統(tǒng)設(shè)計階段確定系統(tǒng)的具體實現(xiàn)方案,劃I

分出組成系統(tǒng)的物理元素一程序、文件、數(shù)

據(jù)庫、人工過程和文檔等.

。結(jié)構(gòu)設(shè)計階段確定軟件的結(jié)構(gòu)一確定系統(tǒng)中)

每個程序由哪些模塊組成以及這些模塊相互

間的關(guān)系。;

.

確定物理實現(xiàn)方案

1)聯(lián)機(jī)接收事務(wù)并存儲,批量方式更新庫存

清單、處理定貨和產(chǎn)生報表

J2)聯(lián)機(jī)接收事務(wù)、更新庫存清單和處理定貨及輸

出定貨信息,以批量方式產(chǎn)生報表

--

D自

/#單1

z清1T

T111產(chǎn)

>事

1.2一

務(wù)采購

務(wù)

單員

清1

I貨

71-

I息

=單==r

Dr2訂貨信息

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

目標(biāo):是給出設(shè)計軟件結(jié)構(gòu)的一個系統(tǒng)化的途徑。

結(jié)構(gòu)化設(shè)計方法(SD-StructuredDesign)

目標(biāo)系統(tǒng)的DFDSD.目標(biāo)系統(tǒng)的SC

SQ圖?StructuredChart

該圖常用來表示系統(tǒng)的軟件結(jié)構(gòu)。利

用它可以清楚地表達(dá)軟件結(jié)構(gòu)中模塊間的

層次調(diào)用關(guān)系和模塊之間的聯(lián)系。

2實例:.某學(xué)校的學(xué)生“選課”系統(tǒng):具有明顯變換流特征的數(shù)據(jù)

流程圖。首先登錄到系統(tǒng),輸入密碼,經(jīng)過驗證合格后,即可進(jìn)

行選課處理。先查詢相關(guān)課程信息,再進(jìn)行選課登記,選課完成

后,顯示所選課程表,并打印輸出課表

3.2詳細(xì)設(shè)計

詳細(xì)設(shè)計的目標(biāo)

(1)邏輯上正確實現(xiàn)每個模塊的功能。

(2)設(shè)計出的處理過程應(yīng)該盡可能簡明易懂。

采用結(jié)構(gòu)化程序設(shè)計方法,改善控制結(jié)構(gòu),降

低程序復(fù)雜度,提高程序的可讀性、可測試性

和可維護(hù)性。

1)過程設(shè)計的工具

程序流程圖

盒圖

PAD圖

判定表

判定樹

過程設(shè)計語言

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

*數(shù)據(jù)結(jié)構(gòu)既影響程序的結(jié)構(gòu)又影響程序的處

理過程。)

〃面向數(shù)據(jù)結(jié)構(gòu)設(shè)計方法的最終目標(biāo)是得出對I

程序處理過程的描述。適合于在詳細(xì)設(shè)計階

段設(shè)計每個模塊的處理過程。I

:?首先需要分析確定數(shù)據(jù)結(jié)構(gòu),并用適當(dāng)?shù)墓?/p>

具清晰地描繪數(shù)據(jù)結(jié)構(gòu)。

改進(jìn)的Jackson圖

標(biāo)識循環(huán)條件和分支條件

??蜷g連線改為直線

(a)順序結(jié)構(gòu)(b)可選結(jié)構(gòu)(c)選擇結(jié)構(gòu)(d)重復(fù)結(jié)構(gòu)

改進(jìn)的Jackson圖

J習(xí)

考生基本情況文件中的考生記錄的內(nèi)容包括:

準(zhǔn)考證號、姓名、通訊地址。

考分文件中的考生記錄的內(nèi)容包括:準(zhǔn)考證I

號和各門考分。I

要求高考后將兩文件合并成一個新文件(簡;

稱考生新文件),內(nèi)容包括:準(zhǔn)考證號、姓名、

通訊地址和各門考分。

第一步數(shù)據(jù)結(jié)構(gòu)表示

對問題進(jìn)行分析,確定輸入數(shù)據(jù)和輸出數(shù)據(jù)的

邏輯結(jié)構(gòu),并用Jackson圖描述這些數(shù)據(jù)結(jié)構(gòu)。

(a)輸入數(shù)據(jù)結(jié)構(gòu)(b)輸出數(shù)據(jù)結(jié)構(gòu)

第二步找出輸入和輸出數(shù)據(jù)結(jié)構(gòu)的對應(yīng)關(guān)系

有直接因果關(guān)系、在程序中可以同時處理的數(shù)

據(jù)單元稱為有對應(yīng)關(guān)系。注:重復(fù)的數(shù)據(jù)單元必須

是重復(fù)的次序、次數(shù)都相同才可能有對應(yīng)關(guān)系。

第三步確定程序結(jié)構(gòu)圖

實際上,這一步是一個綜合的過程:每對有對應(yīng)關(guān)系的

數(shù)據(jù)單元合畫一個處理框,沒有對應(yīng)關(guān)系的數(shù)據(jù)單元則各畫

一個處理框。\

產(chǎn)生新文件

處理考生記錄*

產(chǎn)生準(zhǔn)考證號產(chǎn)生姓名產(chǎn)生通訊地址產(chǎn)生考分

第四步列出并分配所有操作和條件

列出所有操作和條件(包括分支條件和循環(huán)結(jié)束條件),

并把它們分配到程序結(jié)構(gòu)圖的適當(dāng)位置。

操作:(1)停止

(2)打開兩個輸入文件;

(3)建立輸出文件。

(4)從輸入文件中各讀一條記錄

(5)生成一條新記錄。

(6)將新記錄寫入輸出文件。

(7)關(guān)閉全部文件。

條件:I(1)文件結(jié)束。

把操作和條件分配到程序結(jié)構(gòu)圖的適當(dāng)位置

第五步用偽碼表示程序

用Jackson偽碼描述的程序:

產(chǎn)生新文件seq產(chǎn)生考分

打開兩個輸入文件生成一條新記錄

從輸入文件中各讀一條記錄將新記錄寫入輸出文件

分析考生記錄iter從輸入文件中各讀一條記錄

until文件結(jié)束處理考生記錄end

處理考生記錄seq關(guān)閉全部文件

產(chǎn)生準(zhǔn)考證號停止

產(chǎn)生姓名產(chǎn)生新文件end

產(chǎn)生通訊地址

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

”人機(jī)界面設(shè)計是接口設(shè)計的一個重要

的組成部分。在個別系統(tǒng)中人機(jī)界面的

設(shè)計工作量甚至占總設(shè)計量的一半以上。

人機(jī)界面的設(shè)計質(zhì)量,直接影響用戶

對軟件產(chǎn)品的評價,從而影響軟件產(chǎn)品

的競爭力和壽命,因此,必須對人機(jī)界

面設(shè)計給予足夠重視。

界面設(shè)計是否存在問題?

Windows2000操作系統(tǒng)關(guān)機(jī)窗口

??..---

WindowsXP操作系統(tǒng)關(guān)機(jī)窗口

3.3實現(xiàn)

腦常把編碼和測試統(tǒng)稱為實現(xiàn)。

編碼:把軟件設(shè)計結(jié)果翻譯成用某種程序設(shè)計語言書寫

的程序。I

軟件測試在軟件生命周期中橫跨兩個階段:I

單元測試:在編寫出每個模塊之后就對它做必要的測I

試,模塊的編寫者和測試者是同一個人,編碼和單I

元測試屬于軟件生命周期的同一個階段。I

?:?綜合測試:對軟件系統(tǒng)進(jìn)行各種綜合測試,這是軟件:

生命周期中的另一個獨(dú)立的階段,通常由專門的測

試人員承擔(dān)這項工作。

;1)編碼風(fēng)格

。程序?qū)嶋H上也是一種供人閱讀的文

章,要求邏輯簡明清晰易讀易懂。

應(yīng)該使程序遵循下述規(guī)則。

9程序內(nèi)部的文檔

i數(shù)據(jù)說明

f語句結(jié)構(gòu)

9輸入/輸出方法

9效率

例如,

rADDAMOUNTTOTOTAL7

TOTAL=AMOUNT,TOTALS好。

。如果注明把月銷售額計入年度總額,便

使讀者理解了下面語句的意圖:

rADDMONTHLY-SALESTO

ANNUAL-TOTAL7

TOTAL=AMOUNT,TOTAL

要點(diǎn).

《描述一段程序,而不是每一個語句;

《用縮進(jìn)和空行,使程序與注釋容易區(qū)別;

s注正確___________________

?:?盡量減少使用“否定”條件的條件語句。

例如,如果在程序中出現(xiàn)

if(!(char<||char>9))

改成if(char>='O'&&char<='9')

避免大量使用循環(huán)嵌套和條件嵌套;

?:?利用括號使邏輯表達(dá)式或算術(shù)表達(dá)式的

運(yùn)算次序清晰直觀。

2)測試步驟

大型軟件系統(tǒng)通常由若干個子系統(tǒng)組成,每個子系

統(tǒng)又由許多模塊組成,因此,大型軟件系統(tǒng)的測試

過程基本上由下述幾個步驟組成:(

1,模塊測試)

把每個模塊作為一個單獨(dú)的實體來測試。目的是保

證每個模塊作為一個單元能正確運(yùn)行,所以模塊測

試通常又稱為單元測試。在這個測試步驟中所發(fā)現(xiàn)

的往往是編碼和詳細(xì)設(shè)計的錯誤。,

2,子系統(tǒng)測試

把經(jīng)過單元測試的模塊放在一起形成一個子系統(tǒng)來

測試。模塊相互間的協(xié)調(diào)和通信是這個測試過程中

的主要問題,因此,這個步驟著重測試模塊的接口。j

3.系統(tǒng)測試

系統(tǒng)測試是把經(jīng)過測試的子系統(tǒng)裝配成一個完整的

系統(tǒng)來測試。在這個測試步驟中發(fā)現(xiàn)的往往是軟件

設(shè)計中的錯誤,也可能發(fā)現(xiàn)需求說明中的錯誤。

不論是子系統(tǒng)測試還是系統(tǒng)測試,都兼有檢測

和組裝兩重含義,通常稱為集成測試。

4.驗收測試

測試內(nèi)容與系統(tǒng)測試基本類似,但它在用戶參與下

進(jìn)行,而且主要使用實際數(shù)據(jù)(系統(tǒng)將來要處理的信

息)進(jìn)行測試。目的是驗證系統(tǒng)確實能夠滿足用戶的

需要,在這個測試步驟中發(fā)現(xiàn)的往往是系統(tǒng)需求說

明書中的錯誤。驗收測試也稱為確認(rèn)測試。

案例

。第一次海灣戰(zhàn)爭,美國愛國者導(dǎo)彈防御系統(tǒng)

首次被應(yīng)用于對抗伊拉克的飛毛腿導(dǎo)彈,但

其中一枚在沙特阿拉伯的多哈爆炸,造成2

名美國士兵死亡。

。原因:導(dǎo)彈的軟件包含一個累加計時故障。

當(dāng)系統(tǒng)時鐘累計運(yùn)行超過14個小時后,跟蹤

系統(tǒng)不能準(zhǔn)確運(yùn)行,在多哈襲擊戰(zhàn)爭中,愛

國者的累計運(yùn)行時間已經(jīng)超過了100小時。

案例

》94年圣誕前夕,美國迪斯尼公司發(fā)布

T第一款面向兒童的多媒體光盤游戲

“獅子王童話”

*沒有對當(dāng)時市場上的各種pc機(jī)型進(jìn)行

完整的系統(tǒng)兼容性測試,只能在少數(shù)

pc上定常運(yùn)行

3)測試方法

任何產(chǎn)品都可以使用以下兩種方法進(jìn)行測試:

(1)如果已知產(chǎn)品的功能,則可以對它的每

一個功能進(jìn)行測試,看是否都達(dá)到了預(yù)期的要求;

(2)如果已知產(chǎn)品的內(nèi)部工作過程,則可以

對它的每種內(nèi)部操作進(jìn)行測試,看是否按照規(guī)格

說明書的規(guī)定正常進(jìn)行。

第一種方法是黑盒測試,第二種方法是白盒

測試。

設(shè)計測試方案是測試階段的關(guān)鍵技術(shù)問題。

1

具體的測試目的(如,預(yù)定要測試的具體功能)

測試方案,應(yīng)輸入的測試數(shù)據(jù)

測試用例

、預(yù)期的結(jié)果

為用有限的測試發(fā)現(xiàn)更多的錯誤,需精心設(shè)

計測試用例。其中最困難的問題是設(shè)計測試

用的輸入數(shù)據(jù):

不同的測試數(shù)據(jù)發(fā)現(xiàn)程序錯誤的能力差

別很大,為了提高測試效率降低測試成本,

應(yīng)該選用高效的測試數(shù)據(jù)。

例如:一程序兩個輸入數(shù)據(jù)為32位

二進(jìn)制數(shù),則可能的輸入為多少?

?232*232=264=10192

?:?若每微秒可進(jìn)行一次測試,則每秒可

進(jìn)行個測試,每年:

106106

*60*60*24*365=3.139*1013;

“所有可能輸入進(jìn)行測試所需時間:.

?1019.2/3.139*1013>105年

程序插樁技術(shù)

想要了解一個程序在某次運(yùn)行中所有可執(zhí)行語句

被覆蓋的情況,或是每個語句的實際執(zhí)行次數(shù),

最好的辦法是利用插樁技術(shù)。這里僅以計算整數(shù)

X和整數(shù)Y的最大公約數(shù)程序為例,說明插樁方法

的要點(diǎn)。圖3?1給出了這一程序的流程圖。

?設(shè)計插樁程序時需要考慮的問題包括:1

①探測哪些信息;I

②在程序的什么部位設(shè)置探測點(diǎn);flI

③需要設(shè)置多少個探測點(diǎn);

④程序特定部位插入某些用以判斷變量特性的語句。I)

3

1

數(shù)

C(5)=C(5)+1C(6)=C(6)+1流

Q=QRR=R-Q

等價劃分法

所謂等價劃分,就是把輸入數(shù)據(jù)的可能值

劃分為若干等價類(等價類是指某個輸入域的子

集合。在該集合中,各個輸入數(shù)據(jù)對于揭露程

序中的錯誤都是等價的)。

在每一個等價類中取一個數(shù)據(jù)作為測試的

輸入條件,這樣就可以少量的代表性測試數(shù)據(jù),

來取得較好的測試結(jié)果。

有效等價類

是指對于程序的規(guī)格說明來說,是合理的

有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用它可以檢

驗程序是否實現(xiàn)預(yù)先規(guī)定的功能和性能。

無效等價類

是指對于程序的規(guī)格說明來說,是不合理

的,是無意義的輸入數(shù)據(jù)構(gòu)成的集合。主要利

用這一類測試用例來檢查程序中功能和性能的實

現(xiàn)是否不符合規(guī)格說明要求。

金山詞霸出現(xiàn)的錯誤

金山詞霸2003和金山快譯2003正式在全國各

地上市后,很多用戶強(qiáng)烈批評這兩款軟件在

某些詞語翻譯上的錯誤|

?:?當(dāng)詞霸的安裝路徑不按默認(rèn)路徑,或者用戶I

使用其他以英文命名的目錄路徑進(jìn)行安裝時,

系統(tǒng)就會出現(xiàn)安裝完成后無法取詞和無法解

釋等多類錯誤,以致金山公司在正式版發(fā)布

幾天之后不得不發(fā)布補(bǔ)丁。

4)調(diào)試過程

調(diào)試過程從執(zhí)行一個測試用例開始,評估測

5)軟件可靠性

,估算平均無故障時間

經(jīng)驗表明,平均無故障時間與單位長度程序中剩余

的錯誤數(shù)成反比,即

MTTF=1/[K(ET/IT-EC(T)/IT)](7.5)

其中K為常數(shù),它的值應(yīng)該根據(jù)經(jīng)驗選取。美國的

一些統(tǒng)計數(shù)字表明,K的典型值是200。

估算平均無故障時間的公式,可以評價軟件測試的

進(jìn)展情況。此外,由(7.5)式可得

EC=ET-IT/(KXMTTF)(7.6)

因此,也可以根據(jù)對軟件平均無故障時間的要求,

估計需要改正多少個錯誤之后,測試工作才能結(jié)束。

估計錯誤總數(shù)ET的方法

(1)植入錯誤法

測試前在程序中隨機(jī)地植入一些錯誤,測試之]

后根據(jù)測試小組發(fā)現(xiàn)的錯誤中原有的和植入的兩種

錯誤的比例,來估計原有錯誤的總數(shù)|

假定測試方案發(fā)現(xiàn)植入錯誤和發(fā)現(xiàn)原有錯誤的能力

相同,則能夠估計出程序中原有錯誤的總數(shù)為

A

N=n/nsXNs)

義為植入的錯誤數(shù),經(jīng)過一段時間的測試之后發(fā)現(xiàn)

八個植入錯誤和n個原有錯誤。

((2)分別測試法

隨機(jī)地把程序中一部分原有的錯誤加上標(biāo)記,

然后根據(jù)測試過程中發(fā)現(xiàn)的有標(biāo)記錯誤和無標(biāo)記錯

誤的比例,估計程序中的錯誤總數(shù)。

分別測試法使用兩個測試員(或測試小組),彼

此獨(dú)立地測試同一個程序的兩個副本,把其中一個

測試員發(fā)現(xiàn)的錯誤作為有標(biāo)記的錯誤,由另一名分

析員分析他們的測試結(jié)果。用T表示測試時間,假設(shè)

T=o時錯誤總數(shù)為B。;

T=Ti時測試員甲發(fā)現(xiàn)的錯誤數(shù)為Bi;

T=一時測試員乙發(fā)現(xiàn)的錯誤數(shù)為B2;

Tf時兩個測試員發(fā)現(xiàn)的相同錯誤數(shù)為

則:A

B0=B2/bcB1

第4篇軟件維護(hù)

?改正性維護(hù)

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

。完善性維護(hù)

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

維護(hù)在軟件生四類維護(hù)占

存期所占比例總維護(hù)比例

改正性維護(hù)

?:?在軟件交付使用后,因開發(fā)時測試的不

徹底、不完全,必然會有部分隱藏的錯

‘誤遺留到運(yùn)行階段。!

。這些隱藏下來的錯誤在某些特定的使用I

環(huán)境下就會暴露出來。I

。為了識別和糾正軟件錯誤、改正軟件性/

能上的缺陷、排除實施中的誤使用,應(yīng)

當(dāng)進(jìn)行的診斷和改正錯誤的過程就叫做

改正桂筵護(hù)。(

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

?在使用過程中,

i外部環(huán)境(新的硬、軟件配置)

f數(shù)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論