軟件工程-復習資料1_第1頁
軟件工程-復習資料1_第2頁
軟件工程-復習資料1_第3頁
軟件工程-復習資料1_第4頁
軟件工程-復習資料1_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

軟件工程-復習資料1

第四章面向對象方法基礎

1、以對象為中心各種構造系統(tǒng),而不是以功能為中心,能很好地適

應需求變化。

2、面向對象的基本概念

面向對象:主要是既使用對象又使用類和繼承等機制,而且對象

之間僅能通過傳遞消息實現(xiàn)彼此通信。

面向對象=對象+分類+繼承+通信

3、對象(Object)

屬性(attribute)--對象本身的性質,描述對象的靜態(tài)特征。

方法(operation)--用于改變對象的狀態(tài),描述對象的動態(tài)特

征。

對象之間的聯(lián)系主要是通過傳遞消息來實現(xiàn)的。

4、類(Class)

類具有屬性,用數(shù)據(jù)結構來描述類的屬性。

類具有操作,它是對象的行為的抽象,操作實現(xiàn)的過程稱為方法

(method),方法有方法名、方法體和參數(shù)。

對象的抽象是類,類的具體化就是對象。

5、繼承(Inheritance)

子類自動共享其父類的屬性和操作的機制。

繼承性分為:(1)、單重繼承:一個子類只有一個父類。即子類

只繼承一個父類的數(shù)據(jù)結

構和方法,它的類層次結構是樹型。

(2)、多重繼承:一個子類可有多個父類。繼承多個父類的數(shù)據(jù)

結構和方法,它的類層次結構是格型。

6、消息(Message)

消息就是向對象發(fā)出的服務請求(互相聯(lián)系、協(xié)同工作等),是

對象之間在交互中傳送的通信信息。

7、多態(tài)性(Polymorphism)

多態(tài)性是指相同的操作或函數(shù)、過程作用于不同的對象上并獲得

不同的結果。

8、00A

00A可以采用自頂向下的方法,逐層分解建立系統(tǒng)模型,也可以

自底而上地從已定義的基類出發(fā),逐步構造新類。

9、OMT方法討論的核心就是建立三類模型:對象模型、動態(tài)模

型和功能模型。

10、建立對象模型分為5個層次:

(1)、確定對象和類

?找出候選的類與對象

?篩選出正確的類與對象

(2)、確定關聯(lián)

?初步確定關聯(lián)

?篩選

?進一步完善

(3)、劃分主題

(4)、確定屬性

?分析

?選擇

(5)、識別繼承關系

11.類圖:由類名、屬性和操作三部分組成。

12、類的關聯(lián)關系——表示類與類之間存在某種聯(lián)系

有:普通關聯(lián)、限定關聯(lián)、關聯(lián)類

13.類的層次結構:

聚集關系:共享聚集——部分對象可同時參與多個對象的構成

復合聚集(組成)——如果部分類完全隸屬于整體類,部分與整

體共存亡,

則稱該聚集為復合聚集,簡稱組成。組成關系用實心

菱形表示。

繼承性

14、三種模型之間的關系:

對象模型定義"對誰做〃,用類圖來建立;

動態(tài)模型定義”何時做〃,用狀態(tài)圖來建立;

功能模型定義"做什么〃,用數(shù)據(jù)流匿來建立。

第五章UML建模語言

1、UML語言定義了5種類型,9種不同的圖:(加粗、斜體是要

求掌握的)

用例圖

靜態(tài)圖:類圖、對象圖、包圖;

行為圖:狀態(tài)圖、活動圖;

交互圖:順序圖、協(xié)作圖;

實現(xiàn)圖:構件圖、部件圖。

舉例:飲料銷售機

假設你現(xiàn)在正著手設計一臺飲料銷售機。為了獲得用戶的觀點,

你會見了許多可能的用戶以了解這些用戶將如何與這臺機器交互。

飲料銷售機的主要功能是允許一個顧客購買一罐飲料,很可能用

戶立刻就能告訴你一些有關的場景(換句話說就是用例),你可以給

這組場景加上一個標簽〃買飲料〃。下面我們來考察這個用例中每一

種可能的場景。

解析:(1)用例〃買飲料":

這個用例的參與者是買飲料的顧客。顧客將錢插入銷售機觸發(fā)了

這個用例的場景

被執(zhí)行,然后用戶進行選擇。如果一切順利,銷售機內至少還存

儲有一罐被選擇

的飲料,則銷售機會自動彈出這種飲料給顧客。

上面的〃買飲料〃場景是唯一可描述的場景么?顯然,我們立即

會想到還有其他的

場景。顧客所要購買的飲料銷售機中可能沒有。顧客投入的錢數(shù)

不是剛好等于購

買飲料所需要的錢。應該如何設計飲料銷售機來處理這些場景呢?

沒有所需飲料的場景:

先看看沒有所需的飲料這個場景,它是用例〃買飲料〃的另一場

景??梢园堰@個場

景看成是用例執(zhí)行時的一條可選路徑。用例是由顧客在銷售機中

插入錢幣所發(fā)起

的。然后客戶進行一個選擇,銷售機中至少要有一罐選擇的飲料,

如果沒有,銷

售機就給顧客提示一個信息,告訴顧客沒有這種品牌的飲料。

理想情況下,頑客看到這條消息后會立即選擇其它品牌的飲料。

銷售機也必須提

供給顧客取回原來的錢的選項。這表示,銷售機應給顧客兩種選

擇:讓顧客選擇

另一種飲料并且給顧客提供這種飲料(如果這種飲料還有存貨的

話)或者讓顧客

選擇退錢。

〃缺貨〃的場景

另一種"缺貨〃的場景?!ㄖ付ㄆ放频娘嬃鲜弁辍ㄏ@示在機

器上,直到對這臺機

器補充為止。在這種情況下,用戶不再輸入錢了。銷售機的客戶

可能更喜歡第一

種場景:如果顧客已經(jīng)投了錢,應該讓顧客做另外一種選擇而不

是要機器退錢。

付款數(shù)不正確〃的場景

緊接著讓我們來看看〃付款數(shù)不正確〃的這個場景。顧客按照通

常的方式發(fā)起了這

個用例,并進行了一個選擇。假設這是機器中備有選擇的飲料。

如果機器中剛好

存有適合的零錢,那么機器就會退還零錢并交付飲料。如果機器

中沒有保存零錢,

它將退還錢,并顯示一條消息提示用戶投入適當?shù)牧沐X。

另一種可能是機器的儲備零錢一旦用光,就會在機器上顯示一條

小子告訴用戶需

要投入適當?shù)牧沐X。直到對這臺機器補充零錢為止,這條消息才

會消失。

(2)其他用例

已經(jīng)從用戶的觀點考察了飲料銷售機。除了這些用戶外,當然還

有其他人加入。

供貨人負責為銷售機提供飲料,收款人(可能與供貨人是同一個

人)負責定期收集

銷售機中的錢。這說明至少需要建立兩個用例:〃供貨〃和〃取

錢〃,這些用例細節(jié)可

以通過與供貨人和收款人交談來獲得。

〃供貨〃用例

考慮〃供貨〃用例。供貨人發(fā)起這個用例是由于某個時間間隔到

期所引起的。供貨代

表打開銷售機拉出銷售機前面的架子,在架子上補滿各種品牌的

飲料。銷售員還要

在機器中加零錢。然后他放好銷售機的前端架子,并鎖好機器。

〃取錢〃用例

還有一個〃取錢〃用例,同樣也是因為一段時間的流逝,收款人

發(fā)起了這個用例。它

的前期工作步驟與〃供貨〃一樣,也是打開銷售機前端架子。收

款人從機器中取出錢,

然后按照〃供貨〃步驟,放回架子鎖好機器。

書上病房系統(tǒng)

2、類的識別

常用的方法有:Q)名詞識別法

(2)系統(tǒng)實體識別法

(3)從用例中識別類

(4)利用分解與抽象技術

例題:

1、用狀態(tài)圖描繪復印機的行為:

未接到復印命令時處于閑置狀態(tài),一旦接到復印命令則進入復印

狀態(tài),完成一個復印命令規(guī)定的工作后又回到閑置狀態(tài),等待下一個

復印命令;

如果執(zhí)行復印命令時發(fā)現(xiàn)缺紙,則進入缺紙狀態(tài),發(fā)出警告,等

待裝紙,裝滿紙后進入閑置狀態(tài),準備接受復印命令;

如果復印時發(fā)生卡紙故障,則進入卡紙狀態(tài),發(fā)出警告,等待維

修人員來排除故障,故障排除后回到閑置狀態(tài)。

2、試用面向對象方法設計下述程序:

在顯示器屏幕上圓心坐標為(100,100)的位置上畫一個半徑為

40的圓,在圓心坐標為(400,150)的位置畫一條弧,弧的起始角

度為30度,結束角度為120度,半徑為50。

3、畫出下題的狀態(tài)轉換圖:

該界面具有一個主菜單和一個帶有文件打開命令的文件菜單,在

每個菜單上都有一條退出命令,假設每次只有一個文件能夠打開

4、畫出下題的用例圖:

文本編輯程序的主要功能有:建立文件、打開文件、插入文本、

修改文本和保存文件。

5、畫出下題的時序圖、協(xié)作圖:

網(wǎng)絡打印系統(tǒng)首先由用戶觸發(fā)打印功能,計算機實例處理這個打

印請求;

然后計算機請求打印服務器處理打??;

打印服務器根據(jù)當前打印機的任務情況調用打印機打印文件,或

放入打印隊列等待進一步處理。

第八章軟件測試

L軟件測試的概念

軟件測試:是一個為了尋找軟件錯誤而運行程序的過程。

2、軟件測試的目的

測試的目的是盡可能多的發(fā)現(xiàn)軟件系統(tǒng)中的錯誤。

3、測試的基本步驟:(看書)

4、軟件測試方法:

(1)、靜態(tài)分析方法:指以人工的、非形式化的方法對程序進行

分析和測試。

(2)、動態(tài)測試:計算機必須真正運行被測試的程序,通過輸入

測試用例,對其運行情況情況進行分析。

兩者的區(qū)別是需要通過選擇適當?shù)臏y試用例上機執(zhí)行程序進行測

試。

5、動態(tài)測試常用的方法:白盒法和黑盒法。

一種是測試產品的功能;二是測試產品的內部結構及處理過程。

(1)、白盒法

概念:白盒測試法的前提是可以把程序看成裝在一個透明的白盒

子里,也就是完全了解程序的結構和處理過程。這種方法按照程序內

部的邏輯測試程序,檢驗程序中的每條通路是否都能按預定要求正確

工作,白盒測試又稱為結構測試。

(2)、黑盒法

概念:黑盒測試法把程序看成一個黑盒子,完全不考慮程序的內

部結構和處理過程。黑盒測試是在程序接口進行的測試,它只檢查程

序功能是否能按照規(guī)格說明書的規(guī)定正

常使用,程序是否能適當?shù)亟邮蛰斎霐?shù)據(jù)產生正確的輸出信息,

并且保持外部信息

的完整性。

6、白盒法常用的覆蓋標準:

①語句覆蓋:選擇足夠的測試用例,使得程序中每個語句至少都

能被執(zhí)行一次。

②判定覆蓋:執(zhí)行足夠的測試用例,使得程序中每個判定至少都

獲得一次〃真〃值和〃假〃

值。

③條件覆蓋:執(zhí)行足夠的測試用例,使得判定中的每個條件獲得

各種可能的結果。

④判定/條件覆蓋:執(zhí)行足夠的測試用例,使得判定中每個條件取

到各種可能的值,并使每個判定取到各種可能的結果。

⑤條件組合覆蓋:執(zhí)行足夠的例子,使得每個判定中條件的各種

可能組合都至少出現(xiàn)

一次。

7、總結:比較白盒測試各方法的檢錯能力

①語句覆蓋發(fā)現(xiàn)錯誤能力最弱。

②判定覆蓋包含了語句覆蓋,但它可能會使一些條件的不到測試。

③條件覆蓋對每一條件進行單獨檢查,一般情況它的檢錯能力較

判定覆蓋強,但有時達

不到判定覆蓋的要求。

④判定/條件覆蓋包含了判定覆蓋和條件覆蓋的要求,但由于計算

機系統(tǒng)軟件實現(xiàn)方式的

限制,實際上不一定達到條件覆蓋的標準。

⑤條件組合覆蓋發(fā)現(xiàn)錯誤能力較強,凡滿足其標準的測試用例,

也必須滿足前四種覆蓋

標準。

⑥前五種覆蓋標準把注意力集中在單個判定或判定的各個條件上,

可能會使程序某些路徑

沒有執(zhí)行到。

⑦路徑覆蓋根據(jù)各判定表達式取值的組合,使程序沿著不同的路

徑執(zhí)行,查錯能力強。但

由于它是從各判定的整體組合出發(fā)設計測試用例的,可能使測試

用例達不到條件組合覆蓋的要求。

8、黑盒法

(1)、等價分類法基本思想:

將輸入數(shù)據(jù)按有效的(合理的)和無效的(不合理的)劃分成若

干個等價類,認為測試等價類中的一個代表值的結果就等于對該類其

他值的測試。

(2)、邊界值分析法基木思想:

是指設計測試用例,使程序在輸入或輸出的邊界值或者邊界值左

右的值執(zhí)行。邊界值分析方法可以單獨設計測試用例,也可以作為等

價類劃分方法的補充,即在各個等價類中主要是選擇邊界上及其左右

的值。

9、等價分類法步驟:

①劃分〃等價類〃

②選擇測試用例

特別要注意:一個測試用例只能覆蓋一個無效等價類

10、等價類劃分的幾條經(jīng)驗性原則:

①如果規(guī)定了輸入值的范圍,則可劃分出一個有效的等價類(輸

入值在此范圍內)和兩個

無效的等價類(輸入值小于最小值或大于最大值)。

②如果規(guī)定了數(shù)據(jù)輸入的個數(shù),則可劃分出一個有效的等價類

(輸入值的個數(shù)符合規(guī)定)

和兩個無效的等價類(輸入值的個數(shù)少于或多于規(guī)定個數(shù))。

③如果一個輸入條件說明了一個〃必須成立〃的情況,則可劃分

為一個合理等價類和一個不

合理等價類。

④如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序對不同的輸入值進行

不同的處理,則每個允許

的輸入值是一個有效的等價類,此外還有一個無效的等價類(規(guī)

定的這一組值以外的值)。

⑤如果認為程序將按不同方式來處理某個等價類中的各種測試用

例,則將這個等價類再分

成幾個更小的等價類。

11、邊值分析法:

邊界選擇原則:(根據(jù)題目寫,不需要寫純理論)

練習題:

1、某工廠公開招工,規(guī)定報名者年齡在16周歲至35周歲之間

(至!J2002年3月30日為止)。

即出生年月不在上述范圍內,將拒絕接受,并顯示〃年齡不合格〃

等出錯信息。

試用等價分類法設計對這一程序功能的測試用例。

假設已知出生年月由6位數(shù)字字符表示,前4位代表年,后2位

代表月。

2、設計下列偽碼程序的語句覆蓋:

START

INPUT(AzB,C)

IFA>5

THENX=10

ELSEX=1

ENDIF

IFB>10

THENY=20

ELSEY=2

ENDIF

IFC>15

THENZ=30

ELSEZ=3

ENDIF

PRINT(X,Y,Z)

STOP

3、設計下列偽碼程序的判定覆蓋和條件組合覆蓋測試用例:

START

INPUT(A,B,CrD)

IF(A>0)AND(B>0)

THENX=A+B

ELSEX=A-B

END

IF(C>A)OR(D

THENY=C-D

ELSEY=C+D

END

PRINT(X,Y)

STOP

12、單元測試:指對源程序中的每也眼程序單元進行測試,檢查

各個模塊是否正確實現(xiàn)規(guī)定

的功能,從而發(fā)現(xiàn)模塊在編碼中或算法中的錯誤。

13,模塊測試步驟:用到驅動模塊和樁模塊

14、組裝測試——概要設計階段:

也稱為聯(lián)合測試或集成測試,指在單元測試的基礎上,將所有模

塊按照設計要求組裝成一個完整的系統(tǒng)進行的測試。

問題:漸增式與非漸增式各有何優(yōu)、缺點?為什么通常采用漸增

式?

I.非漸增式測試:一次就把所有通過了單元測試的模塊組合在一

起進行全程序的測

試,缺點是發(fā)現(xiàn)錯誤難以診斷定位。

n.漸增式測試:從一個模塊開始,測一次添加一個模塊,邊組裝

邊測試,以發(fā)現(xiàn)與

接口相聯(lián)系的問題。

漸增式測試分為:

(1)自頂向下:該方法不需要編寫驅動模塊,只需要編寫樁模塊。

又分為:以深度優(yōu)先和廣度優(yōu)先

(2)自底向上

15、確認測試:以軟件需求規(guī)格說明書文檔為依據(jù),用以檢查軟

件功能與用戶需求是否一致。

通常用黑盒測試方法。

16、系統(tǒng)測試:檢驗軟件是否能與系統(tǒng)的其他部分協(xié)調工作。

17、驗收測試:它主要突出了客戶的作用,同時軟件開發(fā)人員也

應有一定程度的參與.

第九章軟件維護

1,軟件維護的基本概念

軟件維護是指軟件系統(tǒng)交付使用以后,為了改正錯誤或滿足新的

需求而修改軟件的過程。

軟件生存周期中時間最長.花費的精力和費用最多的一個階段是

維護階段

軟件維護費用高的主要原因是生產率低

2、軟件維護的類型

?完善性維護——根據(jù)用戶在軟件使用過程中提出的建設性意見

而進行的維護活動。

?糾錯性維護——為改正軟件系統(tǒng)中潛藏的錯誤而進行的活動

?適應性維護——為適應軟件運行環(huán)境的變化而修改軟件的活動。

?預防性維護——為了進一步改善軟件系統(tǒng)的可維護性和可靠性,

并為以后的改進奠定基

礎。

軟件維護工作的最主要部分是完善性維護,占據(jù)了50%。

3、軟件維護的特性:

主要體現(xiàn)在三個方面:非結構化維護和結構化維護。

<2>維護的困難性。

<3>軟件維護的費用。

第十一章軟件項目管理

1,軟件質量管理

軟件質量是貫穿軟件生存期的一個極為重要的問題,軟件質量必

須在設計與實現(xiàn)過程中加以保證。

2、軟件質量保證定義:

軟件質量保證就是向用戶及社會提供滿意的高質量的產品,確

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論