軟件工程導(dǎo)論課件_第1頁(yè)
軟件工程導(dǎo)論課件_第2頁(yè)
軟件工程導(dǎo)論課件_第3頁(yè)
軟件工程導(dǎo)論課件_第4頁(yè)
軟件工程導(dǎo)論課件_第5頁(yè)
已閱讀5頁(yè),還剩89頁(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)介

軟件工程

導(dǎo)論

張海藩編著

’第1篇軟件工程概述

:?軟件危機(jī)

:?軟件工程

「?jìng)鹘y(tǒng)方法學(xué)

?「技術(shù)

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

題定義

L管理「軟件定義喇城)

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

1秋懺廿年編碼和單元測(cè)試

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

>軟件過(guò)程

第2篇軟件定義

問(wèn)題定義\

a

可行性研究

*需求分析

2.1問(wèn)題定義

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

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

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

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

2、問(wèn)題:人工銷(xiāo)售教材手續(xù)繁瑣,容易出錯(cuò)

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

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

5、初步想法:建議在系統(tǒng)中增加對(duì)缺書(shū)的統(tǒng)計(jì)與采購(gòu)功能

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

超過(guò)500元

一’2.2可行性研究

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

題是否能夠解決.

?:?任務(wù):對(duì)以后的行動(dòng)方針提出建議,制定工程實(shí)

施計(jì)劃。

1)技術(shù)可行性

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

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

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

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

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

。進(jìn)行成本效益分析,評(píng)估項(xiàng)目的開(kāi)發(fā)成本。

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

程中的成本效益分析

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

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

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

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

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

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

B=Txrxdxnxp

成本-效益(萬(wàn)元)

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小時(shí),n=8000/年,d=20元/小時(shí),p=60%,

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

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

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

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

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

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

.貨幣的時(shí)間價(jià)值

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

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

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

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

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

如修改已有的庫(kù)存清單程序并且編寫(xiě)產(chǎn)生報(bào)表)

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

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

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

5000元和12500元相比較,因?yàn)榍罢呤乾F(xiàn)在投資的

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

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

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

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

將來(lái)值(1+i)現(xiàn)在值累計(jì)的現(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)的操作方式在這個(gè)用戶組織內(nèi)行的通

嗎?

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

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

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

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

泛的方面研究可行性」!

2.3需求分析

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

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

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

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

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

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

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

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

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

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

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

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

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

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

原因:DEC不了解市場(chǎng)和用戶,盲目追求技

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

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

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

受!

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

為什么人們開(kāi)發(fā)一個(gè)軟件系統(tǒng)會(huì)比建

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

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

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

中;

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

和有效實(shí)施。

因此“需求”這個(gè)名詞的定義不僅僅是從用戶角度對(duì)系

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

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

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

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

*一

象化

抽G

模型

A導(dǎo)

.

實(shí)

例化

達(dá)

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

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

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

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

人工過(guò)程等)。

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

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

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

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

?一個(gè)存放零件的倉(cāng)庫(kù),

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

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

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

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

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

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

庫(kù)存清單

。若此零件的庫(kù)存量少于報(bào)告生成程序

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

該報(bào)告各采購(gòu)部門(mén)以便定貨報(bào)告

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

部門(mén)送一次定貨報(bào)告。結(jié)束

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

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

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

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

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

和被處理的邏輯過(guò)程.

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

/.

薨國(guó)翼跳做#W四前榭幽稠螂鬧碗

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

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

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

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

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

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

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

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

項(xiàng)或數(shù)據(jù)集合

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

二例

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

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

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

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

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

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

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

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

實(shí)體屬性定義:

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

課程:課程編號(hào)、課程名稱(chēng)、課程學(xué)分、課程描述

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

實(shí)體關(guān)系圖:

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

。第0層DFD圖

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

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

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

1層DFD圖:

A學(xué)生

課程信息

教務(wù)人員A課程

成績(jī)

成績(jī)

查詢請(qǐng)求

學(xué)生

查詢結(jié)果

第2層DFD圖:對(duì)第1層DFD圖中的一個(gè)加工,,查

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

工一■查詢

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

\

查詢條件\\

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

\

查詢條件V

成績(jī)

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

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

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

的編號(hào)

數(shù)據(jù)項(xiàng)別名:無(wú)

學(xué)生

名:類(lèi)型:字符串

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

別名:無(wú)其他說(shuō)明:學(xué)號(hào)不能重復(fù)

學(xué)號(hào)+姓名+性別+

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

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

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

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

峰值:

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

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

峰值:

明:能增加定義項(xiàng)開(kāi)學(xué)

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

其他說(shuō)明:

能增加種類(lèi)

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

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

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

第3篇軟件開(kāi)發(fā)

總體設(shè)計(jì)

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

?編碼和單元測(cè)試

。綜合測(cè)試

信息描述

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

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

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

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

有軟件設(shè)計(jì)沒(méi)有軟件設(shè)計(jì)

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

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

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

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

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

3.1總體設(shè)計(jì)

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

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

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

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

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

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

間的關(guān)系。;

.

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

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

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

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

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

--

D自

/#單1

庫(kù)

z清1T

T111產(chǎn)

>事

1.2一

庫(kù)

務(wù)采購(gòu)

報(bào)

務(wù)

報(bào)

單員

清1

I貨

71-

I息

=單==r

Dr2訂貨信息

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

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

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

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

SQ圖?StructuredChart

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

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

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

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

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

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

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

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

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

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

(2)設(shè)計(jì)出的處理過(guò)程應(yīng)該盡可能簡(jiǎn)明易懂。

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

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

和可維護(hù)性。

1)過(guò)程設(shè)計(jì)的工具

程序流程圖

盒圖

PAD圖

判定表

判定樹(shù)

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

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

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

理過(guò)程。)

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

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

段設(shè)計(jì)每個(gè)模塊的處理過(guò)程。I

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

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

改進(jìn)的Jackson圖

標(biāo)識(shí)循環(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)考證號(hào)、姓名、通訊地址。

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

號(hào)和各門(mén)考分。I

要求高考后將兩文件合并成一個(gè)新文件(簡(jiǎn);

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

通訊地址和各門(mén)考分。

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

對(duì)問(wèn)題進(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)的對(duì)應(yīng)關(guān)系

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

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

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

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

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

數(shù)據(jù)單元合畫(huà)一個(gè)處理框,沒(méi)有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元?jiǎng)t各畫(huà)

一個(gè)處理框。\

產(chǎn)生新文件

處理考生記錄*

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

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

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

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

操作:(1)停止

(2)打開(kāi)兩個(gè)輸入文件;

(3)建立輸出文件。

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

(5)生成一條新記錄。

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

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

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

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

第五步用偽碼表示程序

用Jackson偽碼描述的程序:

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

打開(kāi)兩個(gè)輸入文件生成一條新記錄

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

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

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

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

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

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

產(chǎn)生通訊地址

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

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

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

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

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

對(duì)軟件產(chǎn)品的評(píng)價(jià),從而影響軟件產(chǎn)品

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

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

界面設(shè)計(jì)是否存在問(wèn)題?

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

??..---

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

3.3實(shí)現(xiàn)

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

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

的程序。I

軟件測(cè)試在軟件生命周期中橫跨兩個(gè)階段:I

單元測(cè)試:在編寫(xiě)出每個(gè)模塊之后就對(duì)它做必要的測(cè)I

試,模塊的編寫(xiě)者和測(cè)試者是同一個(gè)人,編碼和單I

元測(cè)試屬于軟件生命周期的同一個(gè)階段。I

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

生命周期中的另一個(gè)獨(dú)立的階段,通常由專(zhuān)門(mén)的測(cè)

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

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

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

章,要求邏輯簡(jiǎn)明清晰易讀易懂。

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

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

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

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

9輸入/輸出方法

9效率

例如,

rADDAMOUNTTOTOTAL7

TOTAL=AMOUNT,TOTALS好。

。如果注明把月銷(xiāo)售額計(jì)入年度總額,便

使讀者理解了下面語(yǔ)句的意圖:

rADDMONTHLY-SALESTO

ANNUAL-TOTAL7

TOTAL=AMOUNT,TOTAL

要點(diǎn).

《描述一段程序,而不是每一個(gè)語(yǔ)句;

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

s注正確___________________

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

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

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

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

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

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

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

2)測(cè)試步驟

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

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

過(guò)程基本上由下述幾個(gè)步驟組成:(

1,模塊測(cè)試)

把每個(gè)模塊作為一個(gè)單獨(dú)的實(shí)體來(lái)測(cè)試。目的是保

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

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

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

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

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

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

的主要問(wèn)題,因此,這個(gè)步驟著重測(cè)試模塊的接口。j

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

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

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

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

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

和組裝兩重含義,通常稱(chēng)為集成測(cè)試。

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

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

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

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

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

明書(shū)中的錯(cuò)誤。驗(yàn)收測(cè)試也稱(chēng)為確認(rèn)測(cè)試。

案例

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

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

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

名美國(guó)士兵死亡。

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

當(dāng)系統(tǒng)時(shí)鐘累計(jì)運(yùn)行超過(guò)14個(gè)小時(shí)后,跟蹤

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

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

案例

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

T第一款面向兒童的多媒體光盤(pán)游戲

“獅子王童話”

*沒(méi)有對(duì)當(dāng)時(shí)市場(chǎng)上的各種pc機(jī)型進(jìn)行

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

pc上定常運(yùn)行

3)測(cè)試方法

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

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

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

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

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

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

第一種方法是黑盒測(cè)試,第二種方法是白盒

測(cè)試。

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

1

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

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

測(cè)試用例

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

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

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

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

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

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

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

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

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

?232*232=264=10192

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

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

106106

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

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

?1019.2/3.139*1013>105年

程序插樁技術(shù)

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

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

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

X和整數(shù)Y的最大公約數(shù)程序?yàn)槔?,說(shuō)明插樁方法

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

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

①探測(cè)哪些信息;I

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

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

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

3

1

數(shù)

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

Q=QRR=R-Q

等價(jià)劃分法

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

劃分為若干等價(jià)類(lèi)(等價(jià)類(lèi)是指某個(gè)輸入域的子

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

序中的錯(cuò)誤都是等價(jià)的)。

在每一個(gè)等價(jià)類(lèi)中取一個(gè)數(shù)據(jù)作為測(cè)試的

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

來(lái)取得較好的測(cè)試結(jié)果。

有效等價(jià)類(lèi)

是指對(duì)于程序的規(guī)格說(shuō)明來(lái)說(shuō),是合理的

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

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

無(wú)效等價(jià)類(lèi)

是指對(duì)于程序的規(guī)格說(shuō)明來(lái)說(shuō),是不合理

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

用這一類(lèi)測(cè)試用例來(lái)檢查程序中功能和性能的實(shí)

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

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

金山詞霸2003和金山快譯2003正式在全國(guó)各

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

某些詞語(yǔ)翻譯上的錯(cuò)誤|

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

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

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

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

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

4)調(diào)試過(guò)程

調(diào)試過(guò)程從執(zhí)行一個(gè)測(cè)試用例開(kāi)始,評(píng)估測(cè)

5)軟件可靠性

,估算平均無(wú)故障時(shí)間

經(jīng)驗(yàn)表明,平均無(wú)故障時(shí)間與單位長(zhǎng)度程序中剩余

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

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

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

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

估算平均無(wú)故障時(shí)間的公式,可以評(píng)價(jià)軟件測(cè)試的

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

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

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

估計(jì)需要改正多少個(gè)錯(cuò)誤之后,測(cè)試工作才能結(jié)束。

估計(jì)錯(cuò)誤總數(shù)ET的方法

(1)植入錯(cuò)誤法

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

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

錯(cuò)誤的比例,來(lái)估計(jì)原有錯(cuò)誤的總數(shù)|

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

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

A

N=n/nsXNs)

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

八個(gè)植入錯(cuò)誤和n個(gè)原有錯(cuò)誤。

((2)分別測(cè)試法

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

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

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

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

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

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

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

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

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

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

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

則:A

B0=B2/bcB1

第4篇軟件維護(hù)

?改正性維護(hù)

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

。完善性維護(hù)

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

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

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

改正性維護(hù)

?:?在軟件交付使用后,因開(kāi)發(fā)時(shí)測(cè)試的不

徹底、不完全,必然會(huì)有部分隱藏的錯(cuò)

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

。這些隱藏下來(lái)的錯(cuò)誤在某些特定的使用I

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

。為了識(shí)別和糾正軟件錯(cuò)誤、改正軟件性/

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

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

改正桂筵護(hù)。(

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

?在使用過(guò)程中,

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

f數(shù)

溫馨提示

  • 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)論