版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 媒體公司與攝影師合作協(xié)議三篇
- 實現(xiàn)數(shù)據(jù)驅(qū)動決策的工作目標(biāo)計劃
- 部編版jqx公開課
- 小學(xué)數(shù)學(xué)教師進(jìn)城考試試題 (含答案)
- 幾何概型公開課件
- 三年級英語上冊U4-L3學(xué)習(xí)任務(wù)單 Lesson 3 I Love My Family (我愛我家)
- 育嬰師生活照料培訓(xùn)
- 瀝青道路修復(fù)的技術(shù)創(chuàng)新方案
- 寫字樓物業(yè)管理人才招聘方案
- 小型企業(yè)倉庫管理制度建設(shè)
- 初中英語-I am more outgoing than my sister教學(xué)設(shè)計學(xué)情分析教材分析課后反思
- ICH指南指導(dǎo)原則Q2(R1)分析方法的驗證課件
- S32101雙相不銹鋼分段制作保護(hù)
- 農(nóng)業(yè)技術(shù)員專業(yè)知識考試題庫與答案
- 導(dǎo)尿術(shù)導(dǎo)尿術(shù)課件
- 生態(tài)停車場監(jiān)理規(guī)劃
- 我的應(yīng)許之地:以色列的榮耀與悲情
- 農(nóng)村寄宿制高中生心理健康現(xiàn)狀及對策研究 論文
- 賓館酒店標(biāo)準(zhǔn)化-安全管理人員任命書
- DBJ51-T 196-2022 四川省智慧工地建設(shè)技術(shù)標(biāo)準(zhǔn)
- 義務(wù)教育英語課程標(biāo)準(zhǔn)2022年英文版
評論
0/150
提交評論