軟件工程期末考試匯總_第1頁(yè)
軟件工程期末考試匯總_第2頁(yè)
軟件工程期末考試匯總_第3頁(yè)
軟件工程期末考試匯總_第4頁(yè)
軟件工程期末考試匯總_第5頁(yè)
已閱讀5頁(yè),還剩21頁(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)介

第一章軟件和軟件工程

1.4軟件過(guò)程

軟件過(guò)程是工作產(chǎn)品構(gòu)建時(shí)所執(zhí)行的一系列活動(dòng)、動(dòng)作和任務(wù)的集合。

在軟件工程領(lǐng)域過(guò)程不是對(duì)如何構(gòu)建計(jì)算機(jī)軟件的嚴(yán)格規(guī)定,而是一種可適應(yīng)性調(diào)整的

方法,以便于工作人員可以挑選合適的工作和任務(wù)集合。

?個(gè)通用的軟件工程過(guò)程框架通常包含以下5個(gè)活動(dòng):

1、溝通。在技術(shù)工作開展之前,和客戶的溝通與協(xié)作是非常重要的。

2、策劃。策劃活動(dòng)就是創(chuàng)建一個(gè)地圖,以指導(dǎo)團(tuán)隊(duì)的項(xiàng)目旅程,它定義了和描述

了軟件工程工作包括需要執(zhí)行的任務(wù)可能的風(fēng)險(xiǎn)、資源的需求和工作計(jì)劃。

3、建模。軟件工程師利用模型來(lái)更好地理解軟件需求并完成符合這些需求的軟件

設(shè)計(jì)。

4、構(gòu)建。它包括編碼和測(cè)試以發(fā)現(xiàn)編碼中的錯(cuò)誤。

5,部署。軟件交付到用戶,用戶對(duì)其進(jìn)行評(píng)測(cè)并給出反饋意見。

典型的普適性活動(dòng)包括:軟件項(xiàng)目跟蹤和控制、風(fēng)險(xiǎn)管理、軟件質(zhì)量保證、技術(shù)評(píng)審、

測(cè)量、軟件配置管理、可復(fù)用管理、工作產(chǎn)品的準(zhǔn)備和生產(chǎn)

1.5軟件工程實(shí)踐

實(shí)踐的精髓:理解問(wèn)題(溝通分析)、計(jì)劃解決方案(建模和軟件設(shè)計(jì))、實(shí)施計(jì)劃(代

碼生成)、檢查結(jié)果的正確性(測(cè)試和質(zhì)量保證)

一般原則(7個(gè)原則):存在價(jià)值、保持簡(jiǎn)潔、保持愿景、關(guān)注使用者、面向未來(lái)、計(jì)

劃復(fù)用、認(rèn)真思考

第二章過(guò)程模型

2.1通用過(guò)程模型

2.1.1定義框架活動(dòng)

過(guò)程流描述了在執(zhí)行順序和執(zhí)行時(shí)間上,如何組織框架中的活動(dòng)、動(dòng)作和任務(wù)。

4種過(guò)程流:線性過(guò)程流(從溝通島部署順序執(zhí)行五個(gè)框架活動(dòng))、迭代過(guò)程流(在執(zhí)

行下一個(gè)活動(dòng)前重復(fù)執(zhí)行之前的一個(gè)或多個(gè)活動(dòng))、演化過(guò)程流(采用循環(huán)的方式執(zhí)行各個(gè)

活動(dòng))、并行過(guò)程流(將一個(gè)或是多個(gè)活動(dòng)與其他活動(dòng)并行執(zhí)行)。

個(gè)人負(fù)責(zé)的小型軟件項(xiàng)目主要的動(dòng)作是電話交流,主要的任務(wù)集有

1、通過(guò)電話與利益相關(guān)者取得聯(lián)系

2、討論需求并做記錄

3、將筆記整理成?份簡(jiǎn)單的書面需求

4、通過(guò)Email請(qǐng)利益相關(guān)者審閱并批準(zhǔn)

2.1.2明確任務(wù)集

每一個(gè)軟件工程動(dòng)作,都是山若干個(gè)任務(wù)集構(gòu)成的,而每一個(gè)任務(wù)集都由軟件工程工作

任務(wù)、相關(guān)工作產(chǎn)品、質(zhì)量保證點(diǎn)等部分組成,需要選擇滿足項(xiàng)目并適合開發(fā)團(tuán)隊(duì)特點(diǎn)的任

務(wù)集。這就意味著軟件工程動(dòng)作可以根據(jù)軟件項(xiàng)目的特定需要和開發(fā)隊(duì)伍的特點(diǎn)做適當(dāng)調(diào)

整。

2.1.3過(guò)程模式

過(guò)程模式描述了軟件工程工作中遇到的過(guò)程相關(guān)的問(wèn)題、明確了問(wèn)題環(huán)境并給出了針對(duì)

該問(wèn)題的一種或幾種可證明的解決方案。通過(guò)模式組合,軟件團(tuán)隊(duì)可以解決問(wèn)題并定義最符

合項(xiàng)目需求的開發(fā)過(guò)程。

過(guò)程模式的描述模板:

模式名稱:能清楚地表述模式在軟件過(guò)程中的含義

驅(qū)動(dòng)力:模式使用環(huán)境及主要問(wèn)題

類型:定義模式類型(步驟模式、任務(wù)模式、階段模式)

啟動(dòng)條件:它是模式應(yīng)用的前提條件

問(wèn)題:描述模式要解決的具體問(wèn)題

解決辦法:描述如何成功實(shí)現(xiàn)模式

結(jié)束條件:描述模式成功之后的結(jié)果

相關(guān)模式:以層次或其他圖的方式列舉與該模式直接相關(guān)的其他過(guò)程模式

已知應(yīng)用實(shí)例:說(shuō)明該模式可應(yīng)用的具體實(shí)例

過(guò)程模式一旦建立起來(lái),就可以復(fù)用來(lái)定義各種過(guò)程變體,即軟件開發(fā)隊(duì)伍可以將模式

作為過(guò)程模型的構(gòu)建模塊,定制特定的過(guò)程模型。

2.3慣用過(guò)程模型【會(huì)畫】

2.3.1瀑布模型。又稱為經(jīng)典生命周期,它提出了一個(gè)系統(tǒng)的、順序的軟件開發(fā)方法,從用

戶需求規(guī)格說(shuō)明開始,通過(guò)計(jì)劃、建模、構(gòu)建和部署的過(guò)程,最終提供一個(gè)完整的軟件并提

供持續(xù)的技術(shù)支持。

2.3.2增量過(guò)程模型。綜合了線性過(guò)程流和并行過(guò)程流的特征。隨著時(shí)間的推移,增量模型

在每個(gè)階段運(yùn)用線性序列。每個(gè)線性序列以一種演化過(guò)程流生產(chǎn)增量類似的方式生產(chǎn)出一個(gè)

軟件的可交付增量。

2.3.3演化過(guò)程模型。是迭代的過(guò)程模型,使軟件開發(fā)人員能夠逐步開發(fā)出更完整的軟件版

本?(演化過(guò)程模型中,每個(gè)迭代產(chǎn)生軟件的一個(gè)更完整的版本。)

兩種常用的演化過(guò)程模型:1、原型開發(fā)模型開始于溝通。軟件開發(fā)人員和利益相關(guān)者

進(jìn)行會(huì)晤,定義軟件的整體目標(biāo),明確已知的需求,然后迅速刻畫一個(gè)原型開發(fā)迭代并進(jìn)行

建模。在原型系統(tǒng)不斷調(diào)整以滿足各種利益相關(guān)者需求的過(guò)程中。采用迭代技術(shù),同時(shí)也使

開發(fā)者逐步清楚用戶的需求.2、螺旋模型是一種演進(jìn)式軟件過(guò)程模型。它結(jié)合了原型的迭

代性質(zhì)和瀑布模型的系統(tǒng)性和可控特點(diǎn)。螺旋模型是一種風(fēng)險(xiǎn)驅(qū)動(dòng)型的過(guò)程模型生成器,對(duì)

于軟件集中的系統(tǒng),它可以指導(dǎo)多個(gè)利益相關(guān)者的協(xié)同工作。它有兩個(gè)顯著的特點(diǎn):一是采

用循環(huán)的方式逐步加深系統(tǒng)定義和實(shí)現(xiàn)的深度,同時(shí)降低風(fēng)險(xiǎn)。二是確定一-系列里程碑,確

保利益相關(guān)者都支持可行的和令人滿意的系統(tǒng)解決方案。

2.3.4協(xié)同模型

協(xié)同開發(fā)模型(協(xié)同工程),它允許軟件團(tuán)隊(duì)表達(dá)本章所描述的任何模型中的迭代和并

發(fā)元素。協(xié)同模型定義了一系列事件,這些事件將觸發(fā)軟件工程活動(dòng)、動(dòng)作和任務(wù)的狀態(tài)轉(zhuǎn)

換。它可以適用于所有類型的軟件開發(fā)。

2.3.5演化模型的最終評(píng)述

演化模型是采用迭代或者增量的方式開發(fā)高質(zhì)量軟件。她也可以做到強(qiáng)調(diào)靈活性、可延

展性和開發(fā)速度。

第三章敏捷開發(fā)

3.3敏捷過(guò)程是什么

任何一個(gè)敏捷過(guò)程都可以由3個(gè)關(guān)鍵假設(shè)來(lái)識(shí)別:

1、提前預(yù)測(cè)哪些需求是穩(wěn)定的而哪些需求會(huì)變更非常困難。

2、對(duì)很多軟件來(lái)說(shuō),設(shè)計(jì)和構(gòu)建是交錯(cuò)進(jìn)行的。

3、從制定計(jì)劃的角度來(lái)看,分析、設(shè)計(jì)'構(gòu)建和測(cè)試并不像我們?cè)O(shè)想的那么容易

預(yù)測(cè)。

3.3.1敏捷原則(12條)

1.通過(guò)盡早、持續(xù)的交付有價(jià)值的軟件來(lái)使客戶滿意

2.利用變更為客戶創(chuàng)造競(jìng)爭(zhēng)優(yōu)勢(shì)

3.經(jīng)常交付可運(yùn)行軟件

4.在項(xiàng)目開發(fā)期間,業(yè)務(wù)人員和開發(fā)人員天天在一起工作

5.圍繞有積極性的個(gè)人構(gòu)建項(xiàng)目

6.面對(duì)面交談是最有效果的信息傳遞方法

7.可運(yùn)行軟件是進(jìn)度的首要度量標(biāo)準(zhǔn)

8.敏捷過(guò)程倡導(dǎo)可持續(xù)的開發(fā)速度

9.不斷關(guān)注優(yōu)秀的技能

10.簡(jiǎn)單是必要的

11.最好的架構(gòu)、需求和設(shè)計(jì)出自于自組織團(tuán)隊(duì)

12.每隔一定時(shí)間,團(tuán)隊(duì)反省如何做有效的工作

3.3.3人的因素

如果敏捷開發(fā)團(tuán)隊(duì)成員希望努力維護(hù)所使用的過(guò)程的特性,則該團(tuán)隊(duì)成員及團(tuán)隊(duì)本身必

須具備以下一些特點(diǎn):基本能力、共同目標(biāo)、精誠(chéng)合作、決策能力、模糊問(wèn)題解決能力、相

互信任和尊重、自組織

3.5其他敏捷過(guò)程模型

適應(yīng)性軟件開發(fā)強(qiáng)調(diào)人的合作和團(tuán)隊(duì)的組織,按思考、協(xié)作、和學(xué)習(xí)三個(gè)框架活動(dòng)組織,

ASD使用迭代過(guò)程,該過(guò)程由自適應(yīng)循環(huán)計(jì)劃、相對(duì)嚴(yán)格的需求收集方法和?個(gè)迭代開發(fā)循

環(huán)構(gòu)成,其中迭代開發(fā)循環(huán)包括客戶焦點(diǎn)組合正式技術(shù)評(píng)審作為實(shí)時(shí)反饋機(jī)制。動(dòng)態(tài)系統(tǒng)開

發(fā)方法定義了三種不同的迭代循環(huán):功能模型迭代、設(shè)計(jì)和構(gòu)建迭代和實(shí)現(xiàn)迭代,另外前面

還增加了可行性研究和業(yè)務(wù)研究?jī)蓚€(gè)傳統(tǒng)的生命周期活動(dòng)。動(dòng)態(tài)系統(tǒng)開發(fā)方法倡導(dǎo)時(shí)間調(diào)度

的使用,認(rèn)為對(duì)每一個(gè)軟件增量所需的必要工作僅僅是能夠方便地進(jìn)入下一次增量開發(fā)。

Scrum強(qiáng)調(diào)一系列軟件過(guò)程模式的使用,這些模式已被證實(shí)對(duì)時(shí)間緊迫、需求變化和業(yè)

務(wù)重要的項(xiàng)目非常有效。每個(gè)過(guò)程模式定義?系列開發(fā)任務(wù)并允許Scrum團(tuán)隊(duì)以適應(yīng)其項(xiàng)目

的方式構(gòu)建過(guò)程。

動(dòng)態(tài)系統(tǒng)開發(fā)方法是一種敏捷軟件開發(fā)方法,該方法提供一種框架,使其''通過(guò)在可控

項(xiàng)目環(huán)境中使用增量原型開發(fā)模式完全滿足對(duì)時(shí)間有約束的系統(tǒng)的構(gòu)建和維護(hù)

Crystal是一系列敏捷過(guò)程模型可用于具有特定特征的項(xiàng)目。和其他敏捷方法類似,

Crystal采用迭代策略,但可以調(diào)整過(guò)程的嚴(yán)格程度以適應(yīng)不同規(guī)模和復(fù)雜度的項(xiàng)目。

特征驅(qū)動(dòng)開發(fā)某種程度上比其他敏捷方法更“形式化”,而且通過(guò)項(xiàng)目開發(fā)團(tuán)隊(duì)專注于

特征的開發(fā)來(lái)維持敏捷性。FDD比其他敏捷方法更強(qiáng)調(diào)項(xiàng)目管理和質(zhì)量管理。

敏捷建模認(rèn)為對(duì)于所有的系統(tǒng)都是必要的,但是模型的復(fù)雜度、類型和規(guī)模都必須根據(jù)

所構(gòu)建軟件來(lái)調(diào)節(jié)。通過(guò)提出一系列核心和補(bǔ)充建模原則,AM給實(shí)踐者的分析和設(shè)計(jì)任務(wù)

以非常有用的指導(dǎo)。

精益軟件開發(fā)是在軟件工程里適用于精益制造的原則。精益原則鼓勵(lì)LSD過(guò)程消除耗

損、把質(zhì)量體現(xiàn)于產(chǎn)品、創(chuàng)造知識(shí)、遵從承諾、快速交付、尊重成員以及整體優(yōu)化。

敏捷統(tǒng)一過(guò)程(AUP)采用了一個(gè)全局串行以及局部迭代的原理來(lái)構(gòu)建基于計(jì)算機(jī)的系統(tǒng)。

采用經(jīng)典UP階躍性運(yùn)動(dòng)——開始、加工、構(gòu)建以及變遷,UP提供了一系列覆蓋,能夠使團(tuán)

隊(duì)為軟件項(xiàng)目構(gòu)想出一個(gè)全面的過(guò)程流。

3.5.7敏捷建模(AM,AgileModeling)獨(dú)具特色的建模原則:

有目的的模型、使用多個(gè)模型、輕裝上陣、內(nèi)容重于表述形式、理解模型及工具、適應(yīng)

本地需要。

小結(jié):軟件工程的敏捷理念強(qiáng)調(diào)4個(gè)關(guān)鍵問(wèn)題:自我組織團(tuán)隊(duì)對(duì)所開展工作具有控制力的重

要性;團(tuán)隊(duì)成員之間以及開發(fā)參與者與客戶之間的交流與合作;對(duì)“變更代表機(jī)遇”的認(rèn)識(shí);

以及強(qiáng)調(diào)快速軟件交付以讓客戶滿意。敏捷過(guò)程模型能解決上述這些問(wèn)題。

第四章指導(dǎo)每個(gè)框架活動(dòng)的原則

4.2核心原則

4.2.1指導(dǎo)過(guò)程的原則

原則1:敏捷。保持你的技術(shù)方法盡可能簡(jiǎn)單,保持你的工作產(chǎn)品盡可能簡(jiǎn)潔,無(wú)論何時(shí)盡

可能根據(jù)具體情況做出決定。原則2:每一步都關(guān)注質(zhì)量。原則3:做好適應(yīng)的準(zhǔn)備。當(dāng)需

要的時(shí)候,就讓你的方法適應(yīng)于由問(wèn)題、人員以及項(xiàng)目本身施加的限制。原則4:建立一個(gè)

有效的團(tuán)隊(duì)。原則5:建立溝通和協(xié)調(diào)機(jī)制。原則6:管理變更。必須建立一種機(jī)制來(lái)管理

變更要求的提出、變更的評(píng)估、變更的批準(zhǔn)以及變更實(shí)施的方式。原則7:評(píng)估風(fēng)險(xiǎn)。原則

8:創(chuàng)造能給別人帶來(lái)價(jià)值的工作產(chǎn)品。

4.2.2指導(dǎo)實(shí)踐的原則

原則1:分治策略(分割和攻克)。大問(wèn)題分解為小問(wèn)題。原則2:理解抽象的使用。在這一

核心原則中,抽象就是對(duì)?個(gè)系統(tǒng)中一些復(fù)雜元素的簡(jiǎn)單化,用以傳達(dá)詞組的含義。原則3:

力求一致性。一致性原則建議熟悉的上下文使軟件易于使用。原則4:關(guān)注信息傳送。這一

原則的含義是必須特別注意界面的分析、設(shè)計(jì)、構(gòu)建以及測(cè)試。原則5:構(gòu)建能展示有效模

塊化的軟件。原則6:尋找模式。原則7:在可能的時(shí)候,用大量不同的觀點(diǎn)描述問(wèn)題及其

解決方法。這樣就有可能獲得更深刻的認(rèn)識(shí),發(fā)現(xiàn)錯(cuò)誤和遺漏。原則8:記?。河腥藢⒁獙?duì)

軟件進(jìn)行維護(hù)。

4.3指導(dǎo)每個(gè)框架活動(dòng)的原則

4.3.1溝通原則

傾聽;有準(zhǔn)備的溝通(溝通前花時(shí)間理解問(wèn)題);需要有人推動(dòng)(主持人);最好當(dāng)面溝

通;記錄所有決定;保持通力協(xié)作;把討論集中在限定的范圍內(nèi);如果某些東西很難表述清

楚,采用圖形表示;繼續(xù)前進(jìn)原則;協(xié)商不是?場(chǎng)競(jìng)賽或者一場(chǎng)游戲,協(xié)商雙贏忖才發(fā)揮了

協(xié)商的最大價(jià)值。

4.3.2策劃原則

理解項(xiàng)目范圍;吸收利益相關(guān)者參與策劃;要認(rèn)識(shí)到計(jì)劃的制定應(yīng)按照迭代方式進(jìn)行;

基于已知估計(jì);計(jì)劃考慮風(fēng)險(xiǎn);保持腳踏實(shí)地;調(diào)整計(jì)劃粒度;制定計(jì)劃確保質(zhì)量;描述如

何適應(yīng)變化;經(jīng)常跟蹤并根據(jù)需要調(diào)整計(jì)戈上

4.3.3建模原則:

軟件團(tuán)隊(duì)的主要目標(biāo)是構(gòu)建軟件而不是創(chuàng)建模型;輕裝前進(jìn)——不需要?jiǎng)?chuàng)建你不需要的

模型;盡量創(chuàng)建能描述問(wèn)題利軟件的最簡(jiǎn)單模型;用能適應(yīng)模型改變的方式構(gòu)建模型;明確

描述創(chuàng)建每一個(gè)模型的目的;調(diào)整開發(fā)模型適應(yīng)待開發(fā)系統(tǒng);盡量構(gòu)建有用的模型而不是完

美的模型;對(duì)于模型的構(gòu)造方法不要太死板;如果直覺告訴你模型很不妥當(dāng),盡管看上去很

正確,那么你要仔細(xì)注意了;盡可能快的獲得反饋。

需求建模原則:必須描述并理解問(wèn)題的信息域;必須確定軟件所要實(shí)現(xiàn)的功能;必須描

述軟件的行為(作為外部事件的結(jié)果);描述信息、功能和行為的模型必須以一種能揭示分

層(或者分級(jí))細(xì)節(jié)的方式分解開來(lái);分析任務(wù)應(yīng)該從本質(zhì)信息轉(zhuǎn)向?qū)崿F(xiàn)細(xì)節(jié);

設(shè)計(jì)建模原則:設(shè)計(jì)可追溯到分析模型;經(jīng)常關(guān)注待建系統(tǒng)的架構(gòu);數(shù)據(jù)設(shè)計(jì)與功能設(shè)

計(jì)同等重要;必須精心設(shè)計(jì)接口(包括內(nèi)部接口和外部接口);用戶界面設(shè)計(jì)必須符合最終

用戶要求;構(gòu)件級(jí)設(shè)計(jì)應(yīng)是功能獨(dú)立的;構(gòu)件之間以及構(gòu)建與外部環(huán)境之間松散耦合;設(shè)計(jì)

表述(模型)應(yīng)該做到盡可能易于理解;設(shè)計(jì)應(yīng)該迭代式進(jìn)行,每一次迭代,設(shè)計(jì)者都應(yīng)該

盡力簡(jiǎn)化。

4.3.4構(gòu)造原則(包括編碼原則和測(cè)試原則)

編碼原則包括:準(zhǔn)備原則、編程原則、確認(rèn)原則

測(cè)試原則包括:所有測(cè)試都應(yīng)該可以追溯到用戶需求;測(cè)試計(jì)劃應(yīng)該在測(cè)試之前著手;

將Pareto原則應(yīng)用于軟件測(cè)試;測(cè)試從微觀到宏觀;窮舉測(cè)試時(shí)不可能的。

4.3.5部署原則

客戶對(duì)于軟件的期望必須得到管理;完整的交付包應(yīng)該經(jīng)過(guò)安裝和測(cè)試:技術(shù)支持必須

在軟件交付之前確定下來(lái);必須為最終用戶提供適當(dāng)?shù)恼f(shuō)明材料;有缺陷的軟件先改正后交

付。

第五章理解需求

5.1需求工程(RE)

是指致力于不斷理解需求的大量任務(wù)和技術(shù)。從軟件過(guò)程的角度來(lái)看,需求工程是一個(gè)

軟件工程動(dòng)作,開始于溝通活動(dòng),并持續(xù)到建模活動(dòng)。它必須適用于過(guò)程、項(xiàng)目、產(chǎn)品、人

員工作的需要。

需求工程過(guò)程通過(guò)執(zhí)行7個(gè)不同的活動(dòng)來(lái)實(shí)現(xiàn):起始、導(dǎo)出、精化、協(xié)商、規(guī)格說(shuō)明、

確認(rèn)和管理

起始:在項(xiàng)目起始階段,要建立基本的理解,包括對(duì)問(wèn)題、誰(shuí)需要解決方案、所期望解

決方案的性質(zhì)、與項(xiàng)目利益相關(guān)者和開發(fā)人員達(dá)成初步交流合作的效果

導(dǎo)出:1、范圍問(wèn)題:系統(tǒng)的邊界不清楚、不必要的技術(shù)細(xì)節(jié);2、理解問(wèn)題:客戶或用

戶并不能完全確定需要什么;3、易變問(wèn)題:需求隨時(shí)間變化

精化:在起始和導(dǎo)出階段獲得的信息將在精化階段進(jìn)行擴(kuò)展和提煉。

協(xié)商:需求工程師必須通過(guò)協(xié)商過(guò)程來(lái)解決客戶和用戶的沖突

規(guī)格說(shuō)明:在基于計(jì)算機(jī)的系統(tǒng)的環(huán)境下,術(shù)語(yǔ)規(guī)格說(shuō)明對(duì)不同的人有不同的含義,可

以是一份寫好的文檔、一個(gè)形式化的數(shù)學(xué)模型、一組使用場(chǎng)景。

確認(rèn):在確認(rèn)這一步,將對(duì)需求工程的相關(guān)產(chǎn)品進(jìn)行質(zhì)量評(píng)估

需求管理:是用于幫助管理項(xiàng)目組在項(xiàng)目進(jìn)展中標(biāo)識(shí)、控制和跟蹤需求以及需求變更的

一組活動(dòng)。

5.5構(gòu)建需求模型

5.5.1需求模型的元素

基于場(chǎng)景的元素:使用此方法可以從用戶的視角描述系統(tǒng)。

基于類的元素:每個(gè)使用場(chǎng)景都暗示著當(dāng)一個(gè)參與者和系統(tǒng)交互時(shí)所操作的一組對(duì)象,

這些對(duì)象被分成類——具有相似屬性和共同行為的事物集合。

行為元素:狀態(tài)圖是一種表現(xiàn)系統(tǒng)行為的方法,該方法描述系統(tǒng)狀態(tài)以及導(dǎo)致系統(tǒng)改變

狀態(tài)的事件。需求分析模型必須提供描述行為的建模元素。

面向數(shù)據(jù)流的元素:信息在基于計(jì)算機(jī)的系統(tǒng)中流動(dòng)時(shí)會(huì)被轉(zhuǎn)換,系統(tǒng)結(jié)構(gòu)多種形式的

輸入;使用函數(shù)將其轉(zhuǎn)換,生成多種形式的輸出。

5.5.2分析模式

分析模式在特定應(yīng)用領(lǐng)域內(nèi)提供了一些解決方案(如類、功能、行為),在為許多應(yīng)用

項(xiàng)目建模時(shí)可以重復(fù)使用。

第六章需求分析

6.1需求分析

需求分析產(chǎn)生軟件工作特征的規(guī)格說(shuō)明,指明軟件和其它系統(tǒng)元素的接口,規(guī)定軟件必

須滿足的約束。需求分析讓軟件工程師細(xì)化在前期需求工程的起始、導(dǎo)出、談判任務(wù)中建立

的基礎(chǔ)需求。

6.1.1整體目標(biāo)和原理

分析模型必須實(shí)現(xiàn)三個(gè)主要目標(biāo):(1)描述客戶需要什么;(2)為軟件設(shè)計(jì)奠定基礎(chǔ):

(3)定義在軟件完成后可以被確認(rèn)的一組需求。分析模型在系統(tǒng)級(jí)描述和軟件設(shè)計(jì)的差距

之間建立橋梁

6.1.2.分析的經(jīng)驗(yàn)原則:在創(chuàng)建分析模型時(shí)應(yīng)該遵循這些經(jīng)驗(yàn)原則

(1)模型應(yīng)關(guān)注在問(wèn)題域或業(yè)務(wù)域內(nèi)可見的需求,抽象的級(jí)別應(yīng)該相對(duì)高一些;

(2)分析模型的每個(gè)元素都應(yīng)能增加對(duì)軟件需求的整體理解,并提供對(duì)信息域、

功能和系統(tǒng)行為的深入理解;

(3)關(guān)于基礎(chǔ)結(jié)構(gòu)和其他非功能的模型應(yīng)推延到設(shè)計(jì)階段再考慮;

(4)最小化整個(gè)系統(tǒng)內(nèi)的關(guān)聯(lián);

(5)確認(rèn)分析模型為所有共利益者帶來(lái)價(jià)值;

(6)盡可能保持模型簡(jiǎn)潔。

6.1.3域分析

軟件域分析是識(shí)別、分析和詳細(xì)說(shuō)明來(lái)自某個(gè)特定應(yīng)用領(lǐng)域的公共需求,特別是那些在

該應(yīng)用領(lǐng)域內(nèi)被多個(gè)項(xiàng)目重復(fù)使用的需求面向?qū)ο蟮挠蚍治鍪窃谀硞€(gè)特定應(yīng)用領(lǐng)域內(nèi),根據(jù)

通用的對(duì)象、類、部件和框架,識(shí)別、分析和詳細(xì)說(shuō)明公共的、可復(fù)用的能力。域分析的目

標(biāo):查找或創(chuàng)建那些分析類和(或)能夠廣泛應(yīng)用的、共有的功能和特點(diǎn),這樣就可以復(fù)用。

6.1.4需求建模方法

1.結(jié)構(gòu)化分析:考慮數(shù)據(jù)和處理的分析建模方法,其中數(shù)據(jù)作為獨(dú)立實(shí)體轉(zhuǎn)換。

2.面向?qū)ο蟮姆治觯哼@種方法關(guān)注于定義類和影響客戶需求的類之間的協(xié)作方式。

6.2基于場(chǎng)景建模

6.2.1新建初始用例

用例從某個(gè)特定參與者的角度出發(fā),采用簡(jiǎn)明的語(yǔ)言描述?個(gè)特定的使用場(chǎng)景,我們需

要回答編寫什么?寫多少?編寫說(shuō)明應(yīng)該多詳細(xì)?如何組織說(shuō)明?

開發(fā)用例時(shí),應(yīng)列出特定參與者執(zhí)行的功能和活動(dòng)。這些可以從所需系統(tǒng)功能的列表通

過(guò)與利益相關(guān)者交流,或通過(guò)評(píng)估活動(dòng)圖(作為需求建模中的一部分而開發(fā))獲得。

6.2.2細(xì)化初始用例

主場(chǎng)景中的每個(gè)步驟將通過(guò)如下問(wèn)題得到評(píng)估:

在這一狀態(tài)點(diǎn),參與者能進(jìn)行一些其他動(dòng)作嗎?參與者有沒(méi)有可能遇到一些錯(cuò)誤條件?

參與者有沒(méi)有可能遇到?些其他行為?這些問(wèn)題的答案導(dǎo)致創(chuàng)建了一組次場(chǎng)景,次場(chǎng)景屬于

原始用例的一部分,但是表現(xiàn)了可供選擇的行為。

第七章需求建模:流程、行為、模式和Web應(yīng)用

7.2面向數(shù)建模

數(shù)據(jù)流圖(DFD),DFD采取了系統(tǒng)的輸入…處理一輸出的觀點(diǎn),也就是說(shuō),流入軟件

的數(shù)據(jù)對(duì)象,經(jīng)由處理元素變換,最后以結(jié)果數(shù)據(jù)對(duì)象的形式流出軟件。帶標(biāo)記的箭頭表示

數(shù)據(jù)對(duì)象,圓圈(也稱作泡泡)表示轉(zhuǎn)換。

1.導(dǎo)出數(shù)據(jù)流圖時(shí)一些有用而簡(jiǎn)單的指導(dǎo)原則:

(1)第0層的數(shù)據(jù)流圖應(yīng)將軟件或系統(tǒng)描述為一個(gè)泡泡;

(2)應(yīng)仔細(xì)標(biāo)記主要的輸入和輸出

(3)通過(guò)把選定的處理、數(shù)據(jù)對(duì)象和數(shù)據(jù)存儲(chǔ)分離為下一層表示而開始精化過(guò)程

(4)應(yīng)使用有意義的名稱標(biāo)記所有的箭頭和泡泡

(5)當(dāng)從一個(gè)層轉(zhuǎn)到另一個(gè)層時(shí)要保持信息流連續(xù)性

(6)一次精化一個(gè)泡泡

2.創(chuàng)建控制流模型

有很多問(wèn)題是事件驅(qū)動(dòng)的而不是數(shù)據(jù)驅(qū)動(dòng)的,這類問(wèn)題產(chǎn)生控制信息而不是報(bào)告或

顯示信息,并且處理信息是非常關(guān)注時(shí)間和性能

選擇潛在候選事件,建議使用如下的指導(dǎo)原則:

(1)列出所有被軟件“讀”的傳感器

(2)列出所有的中斷條件

(3)列出操作人員能夠啟動(dòng)的所有的“開關(guān)“

(4)列出所有的數(shù)據(jù)條件

(5)回顧對(duì)處理敘述所進(jìn)行的名詞的語(yǔ)法解析,考察所有可能作為控制規(guī)格說(shuō)

明輸入輸出的“控制項(xiàng)“

(6)通過(guò)標(biāo)示其狀態(tài)描述系統(tǒng)的行為

(7)關(guān)注可能的疏忽

第八章設(shè)計(jì)概念

8.1軟件工程中的設(shè)計(jì)

設(shè)計(jì)工程包括一套原理、概念和實(shí)踐,可以指導(dǎo)高質(zhì)量的系統(tǒng)或產(chǎn)品開發(fā)。設(shè)計(jì)工程的

目標(biāo)是創(chuàng)作出堅(jiān)固、適用和賞心悅目的模型或設(shè)計(jì)表示。先實(shí)現(xiàn)多樣化再進(jìn)行聚合,即選擇

能夠滿足需求工程和分析模型所定義的需求的元素,進(jìn)行聚合,使之成為構(gòu)建的某種特定的

配置,于是便得到最終的產(chǎn)品。

軟件設(shè)計(jì)是建?;顒?dòng)的最后一個(gè)軟件工程活動(dòng)。

軟件設(shè)計(jì)過(guò)程由基于場(chǎng)景的元素、基于類的元素、面向流的元素和行為元素所表明的分

析模型是設(shè)計(jì)任務(wù)的輸入,通過(guò)設(shè)計(jì)表示法和設(shè)計(jì)方法,將得到數(shù)據(jù)/類設(shè)計(jì)、體系結(jié)構(gòu)設(shè)

計(jì)、接口設(shè)計(jì)和構(gòu)件設(shè)計(jì)。

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

8.2.1軟件質(zhì)量指導(dǎo)原則和屬性

1.設(shè)計(jì)過(guò)程和設(shè)計(jì)質(zhì)量

McGlaughlin提出了可以指導(dǎo)評(píng)價(jià)良好設(shè)計(jì)演化的三個(gè)特征:

①設(shè)計(jì)必須實(shí)現(xiàn)所有包含在分析模型中的明確需求,而且必須滿足客戶期望的所有隱含需

求。

②對(duì)于那些生成代碼的人和那些進(jìn)行測(cè)試以及隨后維護(hù)軟件的人而言,設(shè)計(jì)必須是可讀

的、可理解的指南。

③設(shè)計(jì)必須提供軟件的全貌,從現(xiàn)實(shí)角度說(shuō)明數(shù)據(jù)域、功能域和行為域。

2.質(zhì)量指導(dǎo)原則

1、設(shè)計(jì)應(yīng)展示出這樣一種結(jié)構(gòu):(a)已經(jīng)使用可識(shí)別的體系結(jié)構(gòu)或模式創(chuàng)建(b)由展示

出良好設(shè)計(jì)特征的構(gòu)建構(gòu)成(c)能夠以演化方式實(shí)現(xiàn),從而便于實(shí)現(xiàn)和測(cè)試。

2、設(shè)計(jì)應(yīng)該模塊化;也就是說(shuō)軟件應(yīng)按照邏輯劃分為元素或者子系統(tǒng)。

3、設(shè)計(jì)應(yīng)該包括數(shù)據(jù)、體系結(jié)構(gòu)、接口和構(gòu)建的清楚的表示。

4、設(shè)計(jì)應(yīng)導(dǎo)出數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)適于要實(shí)現(xiàn)的類,并由可識(shí)別的數(shù)據(jù)模式提取。

5、設(shè)計(jì)應(yīng)導(dǎo)出顯示獨(dú)立功能特征的構(gòu)建。

6、設(shè)計(jì)應(yīng)導(dǎo)出接口,這些接口降低了構(gòu)件之間以及與外部環(huán)境連接的復(fù)雜性。

7、設(shè)計(jì)的導(dǎo)出應(yīng)根據(jù)軟件需求分析過(guò)程中獲取的信息采用可重復(fù)使用的方法進(jìn)行。

8、應(yīng)使用能夠有效傳達(dá)其意義的表示法來(lái)表達(dá)設(shè)計(jì)。

3.質(zhì)量屬性

FURPS,其中個(gè)字母分別代表功能性(functionality),易用性(usablity),可靠性(reliablity),

性能(performance),可支持性(supportablity)

功能性評(píng)估程序的特征集和能力,所提交功能的普遍性以及整個(gè)系統(tǒng)的安全性。

易用性通過(guò)考慮人為因素、整體美感、一致性和文檔來(lái)評(píng)估。

可靠性通過(guò)測(cè)量故障的頻率和嚴(yán)重性、輸出結(jié)果的精確性、故障平均時(shí)間、故障恢復(fù)能力和

程序的可預(yù)見性來(lái)評(píng)估。

性能度量處理速度、響應(yīng)時(shí)間、資源消耗、吞吐量和效率。

可支持性綜合了可擴(kuò)展性、適應(yīng)性和耐用性這三個(gè)方面的能力,此外還包括可測(cè)試性,兼容

性,可配置性,系統(tǒng)安裝的簡(jiǎn)易性和問(wèn)題定位的簡(jiǎn)易性。

實(shí)際上,設(shè)計(jì)概念強(qiáng)調(diào)了:1、抽象的必要性,它提供了一種創(chuàng)造可重用軟件構(gòu)件的方

法;2、體系結(jié)構(gòu)的重要性,它使得能夠更好地理解系統(tǒng)整體結(jié)構(gòu);3、基于模式的工程的有

益性,它是一項(xiàng)用于已證明能力的軟件的設(shè)計(jì)技術(shù);4、關(guān)注點(diǎn)分離和有效的模塊化的價(jià)值,

它們使得軟件更容易理解、更容易測(cè)試以及更容易維護(hù);5、信息隱藏的直接作用,當(dāng)錯(cuò)誤

發(fā)生時(shí),它能夠減少負(fù)面影響的傳播;6、功能獨(dú)立的影響,它是構(gòu)造有效模塊的標(biāo)準(zhǔn);7、

求精作為一種設(shè)計(jì)方法的作用;8、橫切系統(tǒng)需求方面的考慮;9、重構(gòu)的應(yīng)用,它是為了優(yōu)

化己導(dǎo)出的設(shè)計(jì);10、面向?qū)ο蟮念惡团c類相關(guān)特征的重要性。

第九章體系結(jié)構(gòu)設(shè)計(jì)

進(jìn)行體系結(jié)構(gòu)設(shè)計(jì)

(1)為計(jì)算機(jī)系統(tǒng)建造的軟件也展示了眾多體系結(jié)構(gòu)風(fēng)格的?種。每種風(fēng)格描述一種系統(tǒng)

類別,包括:

①一組構(gòu)件(比如:數(shù)據(jù)庫(kù)、計(jì)算模塊)完成系統(tǒng)需要的某種功能;

②一組連接器,他們能使構(gòu)件間“通信、合作和協(xié)調(diào)”;

③約束,定義構(gòu)件如何集成為一個(gè)系統(tǒng)

④語(yǔ)義模型,它能使設(shè)計(jì)者通過(guò)分析系統(tǒng)的構(gòu)成成分的性質(zhì)來(lái)理解系統(tǒng)的整體性質(zhì)。

(2)一種體系結(jié)構(gòu)風(fēng)格就是一種加在整個(gè)系統(tǒng)設(shè)計(jì)上的變換。目的為系統(tǒng)的所有構(gòu)件建立

■■個(gè)結(jié)構(gòu)。在對(duì)已有體系結(jié)構(gòu)進(jìn)行再工程時(shí),強(qiáng)制采用一種體系結(jié)構(gòu)風(fēng)格會(huì)導(dǎo)致軟件結(jié)構(gòu)的

根本性改變,包括對(duì)構(gòu)件功能的再分配。

(3)體系結(jié)構(gòu)模式和體系結(jié)構(gòu)風(fēng)格一樣,也對(duì)體系結(jié)構(gòu)的設(shè)計(jì)施加一種變換。模式可以與

體系結(jié)構(gòu)風(fēng)格結(jié)合起來(lái),用于建立整個(gè)系統(tǒng)結(jié)構(gòu)的外形。

9.3.1體系結(jié)構(gòu)風(fēng)格的簡(jiǎn)單分類:

①以數(shù)據(jù)為中心的體系結(jié)構(gòu);【數(shù)據(jù)存儲(chǔ)駐留在這種體系結(jié)構(gòu)的中心,其他構(gòu)件會(huì)經(jīng)常

訪問(wèn)該數(shù)據(jù)存儲(chǔ),并對(duì)存儲(chǔ)中的數(shù)據(jù)進(jìn)行更新、增加、刪除或修改;提升可集成性;客戶構(gòu)

建獨(dú)立地執(zhí)行過(guò)程】

②數(shù)據(jù)流體系結(jié)構(gòu);【輸入數(shù)據(jù)經(jīng)過(guò)一系列的計(jì)算和操作構(gòu)件的變化形成輸出數(shù)據(jù)】

③調(diào)用和返回體系結(jié)構(gòu);(包括:主程序/子程序體系結(jié)構(gòu)、遠(yuǎn)程過(guò)程調(diào)用體系結(jié)構(gòu))

④向?qū)ο篌w系結(jié)構(gòu);【系統(tǒng)的構(gòu)件封裝了數(shù)據(jù)和必須應(yīng)用到該數(shù)據(jù)上的操作,構(gòu)件間通

過(guò)信息傳遞進(jìn)行通信與合作】

⑤層次體系結(jié)構(gòu);【核心層、實(shí)用程序?qū)?、?yīng)用程序?qū)?、用戶界面層、?gòu)件;最外層,

構(gòu)件完成用戶界面的操作;最內(nèi)層,構(gòu)件完成與操作系統(tǒng)的連接;中間層提供實(shí)用程序服務(wù)

和應(yīng)用軟件功能?!?/p>

9.6映射數(shù)據(jù)流到軟件體系結(jié)構(gòu)【重點(diǎn)】

【變換流】輸入流被描述為信息從外部形式變換為內(nèi)部形式的途徑,輸出流是信息從內(nèi)部形

式變換為外部形式的路徑,整個(gè)的數(shù)據(jù)流動(dòng)以一種順序的方式沿著一條或僅僅很少的幾條

“直線”路徑進(jìn)行,當(dāng)一部分?jǐn)?shù)據(jù)流圖展現(xiàn)了這些特征時(shí),表明變換流的存在。

【事務(wù)流】信息流經(jīng)常被描述為單個(gè)數(shù)據(jù)項(xiàng),即事務(wù),他可以沿多條路徑中的一條觸發(fā)其他

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

【變換映射】開發(fā)個(gè)軟件的體系結(jié)構(gòu)表示(或數(shù)據(jù)流圖映射成體系結(jié)構(gòu)模型)的七大步驟:

步驟一:評(píng)審基本系統(tǒng)模型

步驟二:評(píng)審和精化軟件的數(shù)據(jù)流圖

步驟三:確定DFD是否含有變換流或事務(wù)流特征

步驟四:通過(guò)確定輸入流和輸出流的邊界,分離出變換中心

步驟五:完成“第一次分解”

步驟六:完成“第二次分解”

步驟七:使用提高軟件質(zhì)量的設(shè)計(jì)啟發(fā)式方法,精化第一次迭代得到的體系結(jié)構(gòu)

一般來(lái)說(shuō),體系結(jié)構(gòu)設(shè)計(jì)需要4個(gè)不同步驟來(lái)完成。第一步,系統(tǒng)必須表示在相應(yīng)的環(huán)境中,

也就是說(shuō),設(shè)計(jì)人員應(yīng)該定義與軟件交互的外部實(shí)體及其交互性質(zhì)。一旦環(huán)境得到說(shuō)明,設(shè)

計(jì)人員就應(yīng)該確定一系列的頂層抽象,稱之為原型,該原型可以表示系統(tǒng)行為或者功能的關(guān)

鍵元素。定義完抽象后,設(shè)計(jì)開始向?qū)崿F(xiàn)移動(dòng)。在支持構(gòu)件的體系結(jié)構(gòu)環(huán)境中識(shí)別和描述這

些構(gòu)件。最后,開發(fā)體系結(jié)構(gòu)的特定實(shí)例,在真實(shí)世界中驗(yàn)證設(shè)計(jì)。

第十章構(gòu)件級(jí)設(shè)計(jì)

什么是構(gòu)件

面向?qū)ο蟮挠^點(diǎn)

在面向?qū)ο蟮能浖こ汰h(huán)境中,構(gòu)件包括一組協(xié)作的類。構(gòu)件中的每個(gè)類都得到詳細(xì)的

闡釋,包括所有的屬性和與其實(shí)現(xiàn)相關(guān)的操作。

傳統(tǒng)觀點(diǎn)

在傳統(tǒng)軟件工程環(huán)境中,一個(gè)構(gòu)件就是程序的一個(gè)功能要素,程序由處理邏輯及實(shí)現(xiàn)處

理邏輯所需的內(nèi)部數(shù)據(jù)結(jié)構(gòu)以及能夠保證構(gòu)件被調(diào)用和實(shí)現(xiàn)數(shù)據(jù)傳遞的接口構(gòu)成。傳統(tǒng)構(gòu)件

也稱為模塊。作為軟件體系結(jié)構(gòu)的一部分,它承擔(dān)如下3個(gè)重要角色之一:1、控制構(gòu)件,

協(xié)調(diào)問(wèn)題域中所有其他構(gòu)件的調(diào)用;2、問(wèn)題域構(gòu)件,實(shí)現(xiàn)客戶需要的全部功能或部分功能;

3、基礎(chǔ)設(shè)施構(gòu)件,負(fù)責(zé)完成問(wèn)題域中所需支持處理的功能。

10.2設(shè)計(jì)基于類的構(gòu)件

10.2.1基本設(shè)計(jì)原則

Liskov替換原則;依賴倒置原則;接口分離原則;發(fā)布復(fù)用等價(jià)性原則;共同封裝原

則;共同復(fù)用原則。

10.3實(shí)施構(gòu)件級(jí)設(shè)計(jì)

步驟1:標(biāo)識(shí)出所有與問(wèn)題域相對(duì)應(yīng)的設(shè)計(jì)類。

步驟2:確定所有與基礎(chǔ)設(shè)施域相對(duì)應(yīng)的設(shè)計(jì)類。

步驟3:細(xì)化所有不能作為復(fù)用構(gòu)件的設(shè)計(jì)類。

步驟4:說(shuō)明持久數(shù)據(jù)源并確定管理數(shù)據(jù)源所需要的類。

步驟5:開發(fā)并且細(xì)化類或構(gòu)件的行為表示。

步驟6:細(xì)化部署圖以提供額外的實(shí)現(xiàn)細(xì)節(jié)。

步驟7:考慮每一個(gè)構(gòu)件級(jí)設(shè)計(jì)表示,并且時(shí)刻考慮其它選擇。

10.5設(shè)計(jì)傳統(tǒng)構(gòu)件【新內(nèi)容】

所有的程序都可以建立在?組限定好的邏輯構(gòu)造之上。(這一組邏輯構(gòu)造強(qiáng)調(diào)了“對(duì)功

能域的支持”,其中每一個(gè)邏輯構(gòu)造有可預(yù)測(cè)的邏輯結(jié)構(gòu),從頂端進(jìn)入,從底端退出,其過(guò)

程流易理解)

這些邏輯構(gòu)造包括順序型、條件型和重復(fù)型。順序型實(shí)現(xiàn)了任何算法規(guī)格說(shuō)明中的核心

處理步驟;條件型允許根據(jù)邏輯情況選擇處理的方式;重復(fù)型提供了循環(huán)。(這些邏輯構(gòu)造

是結(jié)構(gòu)化編程的基礎(chǔ),而結(jié)構(gòu)化編程是構(gòu)件設(shè)計(jì)的一種重要技術(shù))

圖形化設(shè)計(jì)表示:

方框表示處理步驟,菱形表示邏輯條件,箭頭表示控制流。順序型由兩個(gè)表示處理的方

框以及連接兩者的控制線表示;條件型即if-then-else結(jié)構(gòu),由一個(gè)菱形表示,并用兩個(gè)

方框表示else和then部分;重復(fù)型有dowhile結(jié)構(gòu)和reapeatuntil結(jié)構(gòu);選擇型

select-case,相當(dāng)于switch-case結(jié)構(gòu)。

表格式設(shè)計(jì)表示:【了解】

決策表分為四個(gè)部分,左上部列出了所有的條件,左下部列出了所有可能的動(dòng)作,右半

部構(gòu)成了一個(gè)矩陣,表示條件的組合以及特定條件組合對(duì)應(yīng)的動(dòng)作。因此矩陣的每一列可以

解釋成一條處理規(guī)則。

程序設(shè)計(jì)語(yǔ)言:

程序設(shè)計(jì)語(yǔ)言(ProgramDesignLanguage,PDL)也成為結(jié)構(gòu)化的英語(yǔ)或偽代碼。基本

的PDL語(yǔ)言應(yīng)包括用于定義構(gòu)件的構(gòu)造、接口描述、數(shù)據(jù)聲明、塊結(jié)構(gòu)、條件結(jié)構(gòu)、循環(huán)結(jié)

構(gòu)和I/O構(gòu)造。PDL包括多任務(wù)處理和(或)并發(fā)處理、中斷處理、交互同步及其他特征關(guān)

鍵字。

第十一章用戶界面設(shè)計(jì)

11.1黃金規(guī)則

TheoMandel在其關(guān)于界面設(shè)計(jì)的著作中提出了3條黃金規(guī)則:

1、用戶操縱控制

設(shè)計(jì)原則:a、以不強(qiáng)迫用戶進(jìn)入不必要或者不希望的動(dòng)作的方式來(lái)定義交互模式。

b、提供靈活的交互。

c、允許用戶交可以互被中斷和撤銷。

d、當(dāng)技能級(jí)別增長(zhǎng)時(shí)可以使交互流線化并允許定制交互。

e、使用戶和內(nèi)部技術(shù)細(xì)節(jié)隔離開來(lái)。

f、設(shè)計(jì)應(yīng)允許用戶與出現(xiàn)在屏幕上的對(duì)象直接交互。

2、減輕用戶的記憶負(fù)擔(dān)

設(shè)計(jì)原則:a、減少對(duì)短期記憶的要求。

b、建立有意義的缺省。

c、定義直觀的快捷方式。

d、界面的視覺布局應(yīng)該基于真實(shí)世界的特征。

e、以不斷進(jìn)展的方式揭示信息。

3、保持界面一致性

設(shè)計(jì)原則:a、允許用戶將當(dāng)前任務(wù)放入有意義的環(huán)境中。

b、在應(yīng)用系統(tǒng)家族中保持一致性。

c、如果過(guò)去的交互模式已經(jīng)建立起了用戶期望,除非不得已的理由,否則不

要改變它。

11.2用戶界面的分析與設(shè)計(jì)

1、用戶界面分析與設(shè)計(jì)模型

分析和設(shè)計(jì)用戶界面要考慮4種模型:

a、工程師建立用戶模型(確立了系統(tǒng)最終用戶的輪廓)。

b、軟件工程師創(chuàng)建設(shè)計(jì)模型(其中交互模式的選擇要對(duì)用戶進(jìn)行分類)。

c、最終在用戶腦海里對(duì)界面產(chǎn)生的映像,稱為用戶的心里模型或系統(tǒng)感覺.

d、系統(tǒng)的實(shí)現(xiàn)者創(chuàng)建實(shí)現(xiàn)模型。

2、用戶界面分析與設(shè)計(jì)過(guò)程

一般的這個(gè)過(guò)程是迭代的,包括4個(gè)不同的框架活動(dòng):

a、界面分析與建模(重點(diǎn)在于那些與系統(tǒng)交互的用戶的心里模型)。

b、界面設(shè)計(jì)(其目標(biāo)是定義?組界面對(duì)象和動(dòng)作以及它們的屏幕顯示)。

c、界面構(gòu)造(通常開始于創(chuàng)建可評(píng)估使用場(chǎng)景的原型)。

d、界面確認(rèn)(確認(rèn)以下方面:界面正確實(shí)現(xiàn)每個(gè)用戶任務(wù)的能力,適應(yīng)所有任務(wù)變化的

能力以及達(dá)到一般用戶需求的能力;界面容易使用和學(xué)習(xí)的程度;用戶將

界面作為其工作中有用工具的接受程度。)

11.3界面分析

所有軟件工程過(guò)程模型的一個(gè)重要原則就是:在試圖設(shè)計(jì)一個(gè)解決方案之前,最好對(duì)問(wèn)

題有更好的理解。在用戶界面設(shè)計(jì)中,理解問(wèn)題就意味著了解:1、通過(guò)界面和系統(tǒng)交互的

人(最終用戶);2、最終用戶為完成工作要執(zhí)行的任務(wù);3、作為界面的一部分而顯示的內(nèi)

容;4、任務(wù)處理環(huán)境。

11.3.1用戶分析

為了了解用戶,可以利用各種途徑獲得的信息,這些途徑包括:I、用戶訪談:這是獲

取信息的最直接的方法??梢允挂粚?duì)一的會(huì)議方式,也可以是群體討論的形式。2、銷售輸

入:銷售人員與用戶定期會(huì)面,能夠收集到有助于軟件團(tuán)隊(duì)對(duì)用戶進(jìn)行分類和更好地理解用

戶需求的信息。3、市場(chǎng)輸入:市場(chǎng)分析提供了對(duì)市場(chǎng)每個(gè)部分使用軟件的細(xì)微差別的理解。

4、支持輸入:技術(shù)支持人員與用戶交談,使他們更容易獲得“該做什么,不該做什么等等”。

11.4界面設(shè)計(jì)步驟

界面設(shè)計(jì)是一個(gè)迭代過(guò)程。每個(gè)用戶界面設(shè)計(jì)步驟都要進(jìn)行很多次,每次細(xì)化和精化的

信息都來(lái)源于前面的步驟。雖然有很多不同的用戶界面設(shè)計(jì)模型,但都建議結(jié)合以下的步驟:

1、使用界面分析中獲得的信息,定義界面對(duì)象和動(dòng)作(操作)八

2、定義那些導(dǎo)致用戶界面狀態(tài)發(fā)生變化的事件(用戶動(dòng)作),并對(duì)行為建模。

3、描述每個(gè)界面狀態(tài),就像最終用戶實(shí)際看到的那樣。

4、簡(jiǎn)要說(shuō)明用戶如何從界面提供的界面信息來(lái)解釋系統(tǒng)狀態(tài)。

11.4.1應(yīng)用界面設(shè)計(jì)步驟

界面設(shè)計(jì)的?個(gè)重要步驟就是定義界面對(duì)象和作用于對(duì)象上的動(dòng)作。一旦完成了對(duì)象和

動(dòng)作的定義及迭代細(xì)化,就可以將它們按類型分類。目標(biāo)、源和應(yīng)用對(duì)象都被標(biāo)識(shí)出來(lái)。當(dāng)

設(shè)計(jì)者滿意地認(rèn)為已經(jīng)定義了所有的重要對(duì)象和動(dòng)作(對(duì)一次設(shè)計(jì)迭代而言)時(shí),開始進(jìn)行

屏幕布局。屏幕布局是一個(gè)交互過(guò)程。

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

在進(jìn)行用戶界面設(shè)計(jì)時(shí),幾乎總會(huì)遇到以下4個(gè)問(wèn)題:系統(tǒng)響應(yīng)時(shí)間,用戶幫助設(shè)施,

錯(cuò)誤信息處理和命令標(biāo)記。

響應(yīng)時(shí)間:指從用戶開始執(zhí)行動(dòng)作到軟件以預(yù)期的輸出和動(dòng)作形式給出響應(yīng)這段時(shí)間。

系統(tǒng)響應(yīng)時(shí)間包括兩方面的屬性:時(shí)間長(zhǎng)度和可變性。系統(tǒng)時(shí)間的可變性是指相對(duì)于平均響

應(yīng)時(shí)間的偏差。即時(shí)響應(yīng)時(shí)間比較長(zhǎng),響應(yīng)時(shí)間的低可變性也有助于用戶建立穩(wěn)定的交互節(jié)

奏。

幫助設(shè)施:幾乎所有計(jì)算機(jī)交互式系統(tǒng)的用戶都時(shí)常需要幫助。

錯(cuò)誤處理:出差信息和警告是指出現(xiàn)問(wèn)題時(shí)系統(tǒng)反饋給用戶的“壞消息”。如果做得不

好的話,出錯(cuò)信息和警告會(huì)給出無(wú)用和誤導(dǎo)的信息,反而增加了用戶的沮喪感。

菜單和命令標(biāo)記:面向窗口的界面采用點(diǎn)擊和選取方式,減少了用戶對(duì)鍵入命令的依賴。

但許多高級(jí)用戶仍然喜歡面向命令的交互方式。在提供命令或菜單標(biāo)簽交互方式時(shí),必須考

慮“每個(gè)菜單選項(xiàng)是否都有對(duì)應(yīng)的命令?”等問(wèn)題。

應(yīng)用系統(tǒng)的可訪問(wèn)性:必須確保界面設(shè)計(jì)中包含使得有特殊要求的用戶易于訪問(wèn)的機(jī)

制。

國(guó)際化:用戶界面應(yīng)該被設(shè)計(jì)成能夠容納需要交付給所有軟件用戶的核心功能。

11.5WebApp界面設(shè)計(jì)

11.5.1界面設(shè)計(jì)原則和指導(dǎo)方針

預(yù)測(cè):對(duì)WebApp進(jìn)行設(shè)計(jì),使其能夠預(yù)測(cè)出用戶的下一個(gè)步驟;傳達(dá):界面應(yīng)該能夠傳達(dá)

由用戶啟動(dòng)的任何活動(dòng)的狀態(tài);一致:導(dǎo)航控制、菜單、圖標(biāo)和美學(xué)風(fēng)格的使用應(yīng)該在整個(gè)

WebApp中保持一致;自律:界面應(yīng)該堅(jiān)持使用已經(jīng)為應(yīng)用系統(tǒng)建立起來(lái)的導(dǎo)航習(xí)慣;效率:

WebApp的設(shè)計(jì)和界面應(yīng)該優(yōu)化用戶的工作效率;靈活性:界面應(yīng)該足夠靈活;關(guān)注點(diǎn):

WebApp界面(及界面表示的內(nèi)容)應(yīng)該關(guān)注在用戶正在完成的任務(wù)上;Fitt規(guī)則:“到達(dá)目

標(biāo)所用的時(shí)間是到達(dá)目標(biāo)的距離和目標(biāo)規(guī)模的函數(shù)”;人機(jī)界面對(duì)象:對(duì)于WebApp,已經(jīng)

開發(fā)了大量可復(fù)用的人機(jī)界面對(duì)象庫(kù);縮短等待時(shí)間:WebApp不應(yīng)該讓用戶等待內(nèi)部操作

的完成,而應(yīng)該利用多任務(wù)處理方式,從而使用戶繼續(xù)他的處理工作;學(xué)習(xí)能力:將學(xué)習(xí)時(shí)

間減到最少;隱喻:只要隱喻適合應(yīng)用系統(tǒng)和用戶,使用交互隱喻的界面就更容易學(xué)習(xí)和使

用;保持工作產(chǎn)品的完整性:工作產(chǎn)品必須自動(dòng)保存,使得在有錯(cuò)誤發(fā)生時(shí)數(shù)據(jù)不會(huì)丟失;

易讀性:界面展示的所有信息對(duì)于所有人都應(yīng)該是易讀的;跟蹤狀態(tài):在合適的時(shí)候,應(yīng)該

跟蹤和保存用戶狀態(tài),使得用戶能夠退出系統(tǒng),稍后返回系統(tǒng)時(shí)又能回到退出的地方;可見

的導(dǎo)航:。。。。

11.5.2WebApp的界面設(shè)計(jì)工作流

基本工作流程:

1、對(duì)需求模型中的信息進(jìn)行評(píng)審,并根據(jù)需要進(jìn)行優(yōu)化。

2、開發(fā)WebApp界面布局的草圖。

3、將用戶目標(biāo)映射到特定的界面行為。

4、定義與每個(gè)行為相關(guān)的一組用戶任務(wù)。

5、為每個(gè)界面行為設(shè)計(jì)情節(jié)故事屏像。

6、利用從美學(xué)設(shè)計(jì)中的輸入來(lái)優(yōu)化界面布局和情節(jié)故事板.

7、明確實(shí)現(xiàn)界面功能的界面對(duì)象。

8、開發(fā)用戶與界面交互的過(guò)程表示。

9、開發(fā)界面的行為表示法。

10、描述每種狀態(tài)的界面布局。

11、優(yōu)化和評(píng)審界面設(shè)計(jì)模型。

第十三章WebApp設(shè)計(jì)

13.2設(shè)計(jì)目標(biāo)

簡(jiǎn)單性;一致性;符合性;健壯性;導(dǎo)航性;視覺吸引;兼容性。

13.3WebApp設(shè)計(jì)金字塔

整一件設(shè)t十

4麥木

13-2WebAppi殳計(jì)金:字咯

13.4WebApp界面設(shè)計(jì)

WebApp界面的目標(biāo)是:1、建立一致性的窗口進(jìn)入界面提供的內(nèi)容和功能;2、通過(guò)一系列

的與WebApp的交互指導(dǎo)用戶;3、組織用戶可用的導(dǎo)航選項(xiàng)和內(nèi)容。

13.5美學(xué)設(shè)計(jì)

13.5.1布局問(wèn)題

一般的布局指導(dǎo)原則:不要擔(dān)心留下空白;重視內(nèi)容;按照從左上到右下的順序組織布局元

素;在頁(yè)面內(nèi)按導(dǎo)航、內(nèi)容和功能安排布局;不要通過(guò)滾動(dòng)條擴(kuò)展空間:在設(shè)計(jì)布局時(shí),考

慮分辨率和瀏覽器窗口的尺寸。

第十四章質(zhì)量概念

14.2軟件質(zhì)量

在最一般的意義匕軟件質(zhì)量可以這樣定義:在一定程度上應(yīng)用有效的軟件過(guò)程,創(chuàng)造

有用的產(chǎn)品,為生產(chǎn)者和使用者提供明顯的價(jià)值01、有效的軟件過(guò)程為生產(chǎn)高質(zhì)量的軟件

產(chǎn)品奠定了基礎(chǔ)。2、有用的產(chǎn)品是指交付最終用戶要求的內(nèi)容、功能和特征,最重要的是,

以可靠、無(wú)誤的方式交付這些東西。3、通過(guò)為軟件產(chǎn)品的生產(chǎn)者和使用者增值,高質(zhì)量軟

件為軟件組織和最終用戶群體帶來(lái)了收益。

14.2.1Garvin的質(zhì)量維度

性能質(zhì)量;特性質(zhì)量;可靠性;符合性;耐久性;適用性;審美;感知。

14.2.3IS09126質(zhì)量因素

這個(gè)標(biāo)準(zhǔn)標(biāo)識(shí)了6個(gè)關(guān)鍵質(zhì)量屬性:功能性;可靠性;易用性;效率;維護(hù)性;可移植性。

第十五章評(píng)審技術(shù)

15.6.3評(píng)審指導(dǎo)原則

最低限度的一組正式技術(shù)評(píng)審指導(dǎo)原則:1、評(píng)審工作產(chǎn)品,而不是評(píng)審開發(fā)人員。2、制

定并遵守日程表。3、限制爭(zhēng)論和辯駁。4、要闡明問(wèn)題,但是不要試圖解決所有記錄的問(wèn)題。

5、做筆記。6、限制參與者人數(shù),并堅(jiān)持事先做準(zhǔn)備。7、為每個(gè)將要評(píng)審的工作產(chǎn)品建立

檢查清單。8、為FTR分配資源和時(shí)間。9、對(duì)所有評(píng)審員進(jìn)行有意義的培訓(xùn)。10、評(píng)審以

前所做的評(píng)審。

小結(jié):每次技術(shù)評(píng)審的目的都是找出錯(cuò)誤和發(fā)現(xiàn)可能對(duì)將要部署的軟件產(chǎn)生負(fù)面影響的問(wèn)

題。越早發(fā)現(xiàn)并糾正錯(cuò)誤,錯(cuò)誤傳播到其他軟件工程產(chǎn)品并擴(kuò)大,導(dǎo)致需要更多的工作來(lái)糾

正的可能越小。

第十六章軟件質(zhì)量保證

16.2軟件質(zhì)量保證的要素

軟件質(zhì)量保證涵蓋了廣泛的內(nèi)容和活動(dòng),這些內(nèi)容和活動(dòng)側(cè)重于軟件質(zhì)量管理,可以歸

納如下:

標(biāo)準(zhǔn):軟件質(zhì)量保證的任務(wù)是要確保遵循所采用的標(biāo)準(zhǔn),并保證所有的工作產(chǎn)品符合標(biāo)

準(zhǔn)。

評(píng)審和審核:技術(shù)評(píng)審是由軟件工程師執(zhí)行的質(zhì)量控制活動(dòng),目的是發(fā)現(xiàn)錯(cuò)誤。審核是

一種由SQA人員執(zhí)行的審核,意圖是確保軟件工程工作遵循質(zhì)量準(zhǔn)則。

測(cè)試:軟件測(cè)試是一種質(zhì)量控制功能,它有一個(gè)基本目標(biāo)——發(fā)現(xiàn)錯(cuò)誤。

錯(cuò)誤/缺陷的收集和分析:改進(jìn)的唯一途徑是衡量如何做。

變更管理:變更是對(duì)所有軟件項(xiàng)目最具破壞性的一個(gè)方面。

教育:每個(gè)軟件組織都想改善其軟件工程實(shí)踐。

供應(yīng)商管理:通過(guò)建議供應(yīng)商應(yīng)遵循的具體的質(zhì)量做法,并將質(zhì)量要求作為與任何外部

供應(yīng)商簽訂合同的一部分,確保高質(zhì)量的軟件成果。

安全管理:軟件質(zhì)量保證確保應(yīng)用適當(dāng)?shù)倪^(guò)程和技術(shù)來(lái)實(shí)現(xiàn)軟件安全。

安全:軟件質(zhì)量保證可能負(fù)責(zé)評(píng)估軟件失效的影響,并負(fù)責(zé)啟動(dòng)那些減少風(fēng)險(xiǎn)所必須的

步驟。

風(fēng)險(xiǎn)管理:軟件質(zhì)量保證組應(yīng)確保風(fēng)險(xiǎn)管理活動(dòng)適當(dāng)進(jìn)行,且已經(jīng)建立風(fēng)險(xiǎn)相關(guān)的應(yīng)急

計(jì)劃。

16.3軟件質(zhì)量保證的任務(wù)、目標(biāo)和度量

16.3.1軟件質(zhì)量保證任務(wù)

軟件質(zhì)量保證組的行動(dòng)綱領(lǐng)是幫助軟件團(tuán)隊(duì)實(shí)現(xiàn)高品質(zhì)的目標(biāo)產(chǎn)品。執(zhí)行一套質(zhì)量保證

活動(dòng),如下:

編制項(xiàng)目質(zhì)量保證計(jì)劃;參與項(xiàng)目的軟件過(guò)程描述的編寫;評(píng)審軟件工程活動(dòng),以驗(yàn)證

是否符合規(guī)定的軟件過(guò)程;審核指定的軟件工作產(chǎn)品以驗(yàn)證是否遵守作為軟件過(guò)程一部分的

那些規(guī)定;確保根據(jù)文檔化的規(guī)程記錄和處理軟件工作和工作產(chǎn)品中的偏差;記錄各種不符

合項(xiàng)并報(bào)告給高層管理人員。除了這些活動(dòng),軟件質(zhì)量保證組還協(xié)調(diào)變更的控制和管理,并

幫助收集和分析軟件度量。

16.3.2目標(biāo)、屬性和度量

執(zhí)行上節(jié)所述軟件質(zhì)量保證活動(dòng),以實(shí)現(xiàn)一套務(wù)實(shí)的目標(biāo):需求質(zhì)量;設(shè)計(jì)質(zhì)量;代碼

質(zhì)量;質(zhì)量控制有效性;

16.6軟件可靠性

16.6.1可靠性和可用性的測(cè)量

當(dāng)我們考慮到計(jì)算機(jī)的系統(tǒng)時(shí),可靠性的簡(jiǎn)單測(cè)量是“平均失效間隔時(shí)間”

(Mean-Time-Between-Failure,MTBF):

MTBF=MTTF+MTTR

其中MTTF(Mean-Time-To-Failure)和MTTR(Mean-Time-To-Repair)分別是

“平均失效時(shí)間”和“平均維修時(shí)間”。許多研究人員認(rèn)為MTBF是一個(gè)遠(yuǎn)比其他與質(zhì)量有

關(guān)的軟件度量更有用的測(cè)量指標(biāo)。簡(jiǎn)而言之,最終用戶關(guān)心的是失效,而不是總?cè)毕輸?shù)。

除可靠性測(cè)量之外,還應(yīng)該進(jìn)行可用性測(cè)量,軟件可用性是指在某個(gè)給定時(shí)間點(diǎn)上程序

能夠按照需求執(zhí)行的概率。其定義為:

可用性=MTTF/(MTTF+MTTR)*100%

MTBF可靠性測(cè)量對(duì)MTTF和MTTR同樣敏感。而可用性測(cè)量在某種程度上對(duì)MTTR

較為敏感,MTTR是對(duì)軟件可維護(hù)性的間接測(cè)量。

第十七章軟件測(cè)試策略

17.1.3軟件測(cè)試策略一宏觀

以過(guò)程的觀點(diǎn)來(lái)考慮整個(gè)測(cè)試過(guò)程,軟件工程的測(cè)試實(shí)際上是按順序?qū)崿F(xiàn)4個(gè)步驟:

1、單元測(cè)試(側(cè)重于以源代碼形式實(shí)現(xiàn)的每個(gè)單元,側(cè)重于每個(gè)構(gòu)建,運(yùn)行構(gòu)件中每個(gè)控

制結(jié)構(gòu)的特定路徑,以確保路徑的完全覆蓋,并最大可能的發(fā)現(xiàn)錯(cuò)誤)。

2、集成測(cè)試(它處理并驗(yàn)證與程序構(gòu)造相關(guān)的問(wèn)題,普遍使用關(guān)注輸入利輸出的測(cè)試用例

設(shè)計(jì)技術(shù))。

3、高階測(cè)試(對(duì)需求分析階段建立的準(zhǔn)則進(jìn)行評(píng)估,看是否滿足所有的功能、行為和性能)。

4、系統(tǒng)測(cè)試(驗(yàn)證所有成分是否能很好的結(jié)合在一起、能滿足整個(gè)系統(tǒng)功能和性能需求)。

17.3傳統(tǒng)軟件的測(cè)試策略

1、單元測(cè)試(側(cè)重于軟件設(shè)計(jì)的最小單元,利用構(gòu)件級(jí)設(shè)計(jì)描述作為指南,測(cè)試重要的控

制路徑并發(fā)現(xiàn)模塊內(nèi)的錯(cuò)誤,其更側(cè)重于構(gòu)件內(nèi)部處理邏輯和數(shù)據(jù)結(jié)構(gòu),當(dāng)設(shè)計(jì)高內(nèi)聚的構(gòu)

件時(shí)就能簡(jiǎn)化單元測(cè)試)。

2、集成測(cè)試(集成測(cè)試是構(gòu)造軟件體系結(jié)構(gòu)的系統(tǒng)化技術(shù),同時(shí)也是進(jìn)行一些旨在發(fā)現(xiàn)與

接口相關(guān)的錯(cuò)誤的測(cè)試,其目標(biāo)是利用已通過(guò)單元測(cè)試的構(gòu)件建立設(shè)計(jì)中描述的程序結(jié)構(gòu)。

一般分有以下4種增量集成策略:自頂向下集成,從主模塊開始,沿著控制層次逐步向下;

自底向上集成測(cè)試,從原子模塊開始進(jìn)行構(gòu)造和測(cè)試;回歸測(cè)試,每當(dāng)加入?個(gè)新模塊,就

重新執(zhí)行已測(cè)試過(guò)的某些子集,以確保變更沒(méi)有傳播不期望的副作用)。

3、冒煙測(cè)試(是一種常見的集成測(cè)試,其對(duì)整個(gè)系統(tǒng)進(jìn)行徹底的測(cè)試)。是時(shí)間關(guān)鍵項(xiàng)目的

決定性機(jī)制,它讓軟件團(tuán)隊(duì)頻繁地對(duì)項(xiàng)目進(jìn)行評(píng)估。本質(zhì)上,冒煙測(cè)試方法包括下列活動(dòng):

將已經(jīng)轉(zhuǎn)換為代碼的軟件構(gòu)件集成到構(gòu)建中。?個(gè)構(gòu)建包括所有的數(shù)據(jù)文件、庫(kù)、可復(fù)用的

模塊以及實(shí)現(xiàn)一個(gè)或多個(gè)產(chǎn)品功能所需的工程化構(gòu)件;設(shè)計(jì)一系列測(cè)試以暴露影響構(gòu)建正確

地完成其功能的錯(cuò)誤。其目的是為了發(fā)現(xiàn)極有可能造成項(xiàng)目延遲的'業(yè)務(wù)阻塞錯(cuò)誤;每天將該

構(gòu)建與其他構(gòu)建及整個(gè)軟件產(chǎn)品(以其當(dāng)前的形式)集成起來(lái)進(jìn)行冒煙測(cè)試。這種集成方法

可以是自頂向下,也可以自底向上。

17.5WebApp的測(cè)試策略

WebApp測(cè)試策略采用所有軟件測(cè)試的基本原理,并使用面向?qū)ο笙到y(tǒng)所使用的策略和

戰(zhàn)術(shù)。下面的步驟對(duì)此方法進(jìn)行了總結(jié):

1、對(duì)WebApp的內(nèi)容模型進(jìn)行評(píng)審,以發(fā)現(xiàn)錯(cuò)誤。

2、對(duì)接口模型進(jìn)行評(píng)審,保證適合所有的用例。

3、評(píng)審WebApp的設(shè)計(jì)模型,發(fā)現(xiàn)導(dǎo)航錯(cuò)誤。

4、測(cè)試用戶界面,發(fā)現(xiàn)表現(xiàn)機(jī)制和導(dǎo)航機(jī)制中的錯(cuò)誤.

5、對(duì)每個(gè)功能構(gòu)件進(jìn)行單元測(cè)試。

6、對(duì)貫穿體系結(jié)構(gòu)的導(dǎo)航進(jìn)行測(cè)試。

7、在各種不同的環(huán)境配置下,實(shí)現(xiàn)WebApp,并測(cè)試WebApp對(duì)于每一種配置的兼容性。

8、進(jìn)行安全性測(cè)試,試圖攻擊WebApp或其所處環(huán)境的弱點(diǎn)。

9、進(jìn)行性能測(cè)試。

10、通過(guò)可監(jiān)控的最終用戶群對(duì)WebApp進(jìn)行測(cè)試.

小結(jié):軟件測(cè)試的目標(biāo)是發(fā)現(xiàn)錯(cuò)誤。對(duì)于傳統(tǒng)軟件,這個(gè)目標(biāo)是通過(guò)一系列測(cè)試步驟達(dá)到的。

單元測(cè)試和集成測(cè)試側(cè)重于驗(yàn)證模塊的功能以及將模塊集成到程序結(jié)構(gòu)中去;確認(rèn)測(cè)試驗(yàn)證

軟件需求的可追蹤性;系統(tǒng)測(cè)試在軟件集成為較大的系統(tǒng)時(shí)對(duì)軟件進(jìn)行確認(rèn)。每個(gè)測(cè)試步驟

都是通過(guò)有助于測(cè)試用例設(shè)計(jì)的一系列系統(tǒng)化測(cè)試技術(shù)來(lái)完成的。

第十八章測(cè)試傳統(tǒng)的應(yīng)用系統(tǒng)【重點(diǎn)章節(jié)】

18.2測(cè)試的內(nèi)部視角和外部視角

(1)了解已設(shè)計(jì)的產(chǎn)品要完成的指定功能,可以執(zhí)行測(cè)試以顯示每個(gè)功能是可操作的,同

時(shí),查找在每個(gè)功能中的錯(cuò)誤;(2)了解產(chǎn)品的內(nèi)部工作情況,可以執(zhí)行測(cè)試以確?!八?/p>

的齒輪吻合”——即內(nèi)部操作依據(jù)規(guī)格說(shuō)明執(zhí)行,而且對(duì)所有的內(nèi)部構(gòu)件已進(jìn)行了充分測(cè)試。

第一種測(cè)試方法采用外部觀察,也稱為黑盒測(cè)試,第二種方法需要內(nèi)部觀察,也稱為白盒測(cè)

試。

黑盒測(cè)試暗指在軟件接口處執(zhí)行測(cè)試。黑盒測(cè)試檢查系統(tǒng)的功能方面,而不考慮軟件的

內(nèi)部結(jié)構(gòu)。軟件的白盒測(cè)試是基于過(guò)程細(xì)節(jié)的封閉檢查。只有在構(gòu)件設(shè)計(jì)(或源代碼)存在

之后,才設(shè)計(jì)白盒測(cè)試。此時(shí),定要獲得程序的邏輯細(xì)節(jié)。

18.3白盒測(cè)試

白盒測(cè)試(玻璃盒測(cè)試)是?種測(cè)試用例設(shè)計(jì)方法,它利用作為構(gòu)件層設(shè)計(jì)的一部分所

描述的控制結(jié)構(gòu)來(lái)生成測(cè)試用例。利用白盒測(cè)試方法導(dǎo)出的測(cè)試用例可以:1、保證一個(gè)模

塊中的所有獨(dú)立路徑至少被執(zhí)行一次;2、對(duì)所有的邏輯判定均需測(cè)試取真和取假兩個(gè)方面;

3、在上下邊界及可操作的范圍內(nèi)執(zhí)行多有的循環(huán):4、檢驗(yàn)內(nèi)部數(shù)據(jù)結(jié)構(gòu)以確保其有效性。

18.4基本路徑測(cè)試【重點(diǎn)】

基本路徑測(cè)試是一種白盒測(cè)試技術(shù),使測(cè)試用例設(shè)計(jì)者計(jì)算出過(guò)程設(shè)計(jì)的邏輯復(fù)雜性測(cè)

量,并以這種測(cè)量來(lái)指導(dǎo)定義執(zhí)行路徑的基本集。

導(dǎo)出測(cè)試用例的步驟:

1、以設(shè)計(jì)或源代碼為基礎(chǔ),畫出相應(yīng)的流圖。(將PDL語(yǔ)句進(jìn)行編號(hào),并映射到相應(yīng)

的流圖結(jié)點(diǎn),以此來(lái)創(chuàng)建流圖。)

2、確定所得流圖的環(huán)復(fù)雜度。(V(G)=E-N+2;V(G)=p+l。其中E為流圖的邊,N為流

圖的結(jié)點(diǎn)數(shù),P為包含在流圖G中的判定結(jié)點(diǎn)。)

3、確定線性獨(dú)立路徑的基本集合。(其中V(G)提供了程序控制結(jié)構(gòu)中線性獨(dú)立路徑數(shù)

量的上界,比如V(G)=6的話,那么測(cè)試路徑就為6條)

4、準(zhǔn)備測(cè)試用例,強(qiáng)行執(zhí)行基本集合中的每條路徑。(測(cè)試人員應(yīng)該選擇測(cè)試數(shù)據(jù),

以便在測(cè)試每條路徑時(shí)適當(dāng)?shù)脑O(shè)置判定結(jié)點(diǎn)的條件。)

18.6黑盒測(cè)試

黑盒測(cè)試,也稱為行為測(cè)試,側(cè)重于軟件的功能需求。其中基于圖的黑盒測(cè)試的第一步

是理解軟件中建模的對(duì)象及這些對(duì)象間的關(guān)系,下一步就是定義一系列驗(yàn)證“所有對(duì)象之間

具有預(yù)期關(guān)系”的測(cè)試。常見的使用圖的行為測(cè)試方法有:事物流建模、有限狀態(tài)建模、數(shù)

據(jù)流建模、時(shí)間建模。

等價(jià)類劃分

等價(jià)類劃分是一種黑盒測(cè)試方法,它將程序的輸入劃分為若干個(gè)數(shù)據(jù)類,從中生成測(cè)試

用例?等價(jià)類劃分的測(cè)試用例設(shè)計(jì)是基于對(duì)輸入條件的等價(jià)類進(jìn)行評(píng)估。

定義等價(jià)類的原則:

1、若輸入條件指定一個(gè)范圍,則可以定義一個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類。

2、若輸入條件需要特定的值,則可以定義一個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類。

3、若輸入條件指定集合的某個(gè)元素,則可以定義一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。

4、若輸入條件為布爾值,則可以定義個(gè)有效等價(jià)類和?個(gè)無(wú)效等價(jià)類。

邊界值分析

邊界值分析是一種測(cè)試用例設(shè)計(jì)技術(shù),是對(duì)“等價(jià)劃分”的補(bǔ)充。邊界值分析不是選擇

等價(jià)類的任何元素,而是在等價(jià)類“邊緣”上選擇測(cè)試用例。

邊界值分析的指導(dǎo)原則:

1、若輸入條件指定為以a和b為邊界的范圍,則測(cè)試用例應(yīng)該包括a和b,略大于和

略小于a和b的值。

2,若輸入條件指定為一組值,則測(cè)試用例應(yīng)當(dāng)執(zhí)行其中的最大值和最小值,以及略大

于或略小于最大值和最小值的值。

3、指導(dǎo)原則1和2也適用于輸出條件。

4、若內(nèi)部程序數(shù)據(jù)結(jié)構(gòu)有預(yù)定義的邊界值(例如,表具有100項(xiàng)的定義限制),一定

要設(shè)計(jì)測(cè)試用例,在其邊界處測(cè)試數(shù)據(jù)結(jié)構(gòu)。

18.7基于模型的測(cè)試

基于模型的測(cè)試(Model-basedtesting,MBT)是一種黑盒測(cè)試技術(shù)。MBT技術(shù)需要5

個(gè)步驟:

1、分析軟件的已有行為模型或創(chuàng)建一個(gè)行為模型。

2、遍歷行為模型,并標(biāo)明促使軟件在狀態(tài)之間進(jìn)行轉(zhuǎn)換的輸入。

3、評(píng)估行為模型,并標(biāo)注當(dāng)軟件在狀態(tài)之間轉(zhuǎn)換時(shí)所期望的輸出。

4、運(yùn)行測(cè)試用例。

5、比較實(shí)際結(jié)果和期望結(jié)果,并根據(jù)需要進(jìn)行調(diào)整。

第二十四章項(xiàng)目管理概念

24.14個(gè)P

理解4個(gè)P—人員(People)、產(chǎn)品(Product)、過(guò)程(Process)和項(xiàng)目(Project).

必須將人員組織起來(lái)以有效的完成軟件工作;必須和客戶及其他利益相關(guān)者很好的溝

通,以便了解產(chǎn)品的范圍和需求;必須選擇適合于人員和產(chǎn)品的過(guò)程;必須估算完成工作任

務(wù)的工作量和工作時(shí)間,從而制定項(xiàng)目計(jì)劃。

24.2人員

在一個(gè)軟件工程過(guò)程中,人員是最重要的。

利益相關(guān)者:

1、高級(jí)管理者一負(fù)責(zé)定義業(yè)務(wù)問(wèn)題,這些問(wèn)題往往對(duì)項(xiàng)目產(chǎn)生很大的影響。

2、項(xiàng)目(技術(shù))管理者一必須計(jì)劃、激勵(lì)、組織和控制軟件開發(fā)人員。

3、開發(fā)人員一擁有開發(fā)產(chǎn)品或應(yīng)用軟件所需技能的人員。

4、客戶一闡明待開發(fā)軟件需求的人員以及關(guān)心項(xiàng)目成敗的其他利益相關(guān)者。

5、最終用戶一一旦軟件發(fā)布成為產(chǎn)品,最終用戶就是直接與軟件進(jìn)行交互的人。

團(tuán)隊(duì)負(fù)責(zé)人:

團(tuán)隊(duì)負(fù)責(zé)人的4種關(guān)鍵的品質(zhì):

解決問(wèn)題、管理者的特性、成就、影響和隊(duì)伍建設(shè)。

小結(jié):在所有軟件項(xiàng)目中,最關(guān)鍵的因素是人員??梢园凑斩喾N不同的團(tuán)隊(duì)結(jié)構(gòu)來(lái)組織

軟件工程師,從傳統(tǒng)的控制層次到“開放式范型”團(tuán)隊(duì)??梢允褂枚喾N協(xié)調(diào)和溝通技術(shù)來(lái)支

持團(tuán)隊(duì)的工作。一般而言,技術(shù)評(píng)審和非正式的人與人交流對(duì)開發(fā)者最有價(jià)值。

第二十五章過(guò)程度量和項(xiàng)目度量

25.2.6Web應(yīng)用項(xiàng)目度量

可以收集的測(cè)量有:靜態(tài)Web頁(yè)的數(shù)量;動(dòng)態(tài)Web頁(yè)的數(shù)量;內(nèi)部頁(yè)面鏈接的數(shù)量;永久

數(shù)據(jù)對(duì)象的數(shù)量;通過(guò)界面連接的外部系統(tǒng)的數(shù)量;靜態(tài)內(nèi)容對(duì)象的數(shù)量;動(dòng)態(tài)內(nèi)容對(duì)象的

數(shù)量;可執(zhí)行的功能的數(shù)量;

上述的每個(gè)測(cè)量在初期就可以確定下來(lái)。例如,可以定義一個(gè)度量,來(lái)反應(yīng)Web應(yīng)用所需的

最終用戶的定制程度,并使它與項(xiàng)目花費(fèi)的工作量以及評(píng)審和測(cè)試中發(fā)現(xiàn)的錯(cuò)誤關(guān)聯(lián)起來(lái)。

為此,進(jìn)行一下定義:

Nsp=靜態(tài)Web頁(yè)的數(shù)量

Ndp=動(dòng)態(tài)Web頁(yè)的數(shù)量

那么,定制指數(shù),C=Ndp/(Ndp+Nsp)

C的取值范圍是0到1.隨著C值的增大,Web應(yīng)用的定制水平將成為?個(gè)重大的技術(shù)問(wèn)題。

25.3軟件質(zhì)量度量

25.3.1測(cè)量質(zhì)量

軟件質(zhì)量的測(cè)量指標(biāo):正確性、可維護(hù)性、完整性、可用性。

25.3.2缺陷排除效率

缺陷排除效率(DRE)是在項(xiàng)目級(jí)和過(guò)程級(jí)都有意思的質(zhì)量度量。本質(zhì)上,DRE是對(duì)

質(zhì)量保證及控制動(dòng)作中濾除缺陷能力的測(cè)量。

當(dāng)把項(xiàng)目作為一個(gè)整體來(lái)考慮是,可按如下方式定義DRE:

E

DRE=---

E+D

其中,E是軟件交付給最終用戶之前發(fā)現(xiàn)的錯(cuò)誤數(shù),D是軟件交付之后發(fā)現(xiàn)的缺陷數(shù)。

DRE的理想值是I.

在項(xiàng)目?jī)?nèi)部,也可以使用DRE來(lái)評(píng)估一個(gè)團(tuán)體在錯(cuò)誤傳遞到下一個(gè)框架活動(dòng)或者軟件

工程動(dòng)作之前發(fā)現(xiàn)錯(cuò)誤的能力。在這種情況下,我們將DRE電新定義為:

E

DRE;=——!一

這里耳是軟件工程動(dòng)作i中發(fā)現(xiàn)的錯(cuò)誤數(shù),是在軟件工程動(dòng)作i+i中發(fā)現(xiàn)的錯(cuò)誤數(shù),這

些錯(cuò)誤都是在軟件工程動(dòng)作i中美被發(fā)現(xiàn)的錯(cuò)誤。

25.5小型組織的度量

在小型的軟件開發(fā)組織中,要完成任何軟件過(guò)程相關(guān)的活動(dòng),一種常識(shí)性的方法是:保

持簡(jiǎn)單,根據(jù)項(xiàng)目需要對(duì)它進(jìn)行定制,確保它帶來(lái)的增值。一開始,先不要關(guān)注度量,而是

要從結(jié)果入手,軟件小組通過(guò)表決來(lái)確定一個(gè)需要改進(jìn)的目標(biāo)。

第二十六章軟件項(xiàng)目估算

26.10.1創(chuàng)建決策樹

課本例子夕514一。515,此例子的公式如下:

預(yù)期成本=?(路徑概率"x(估算的路徑成本):,若出其他題目,類似。

第二十七章項(xiàng)目進(jìn)度安排

27.2.2人員與工作量之間的關(guān)系

td的左側(cè)急劇上升。事實(shí)上,PNR曲線不僅說(shuō)明了項(xiàng)目的交付時(shí)間不能少于0.755如果想更

少,項(xiàng)目則會(huì)進(jìn)入“不可能區(qū)域”,并面臨著很高的失敗風(fēng)險(xiǎn);還說(shuō)明了最低成本的交付時(shí)

間心應(yīng)該滿足t?=2td,即拖延項(xiàng)目交付可以明顯降低成本。

L=PXE"3t46E是以人月為單位的開發(fā)工作量;P是生產(chǎn)率參數(shù),它反映了影響高質(zhì)量

軟件工程工作的的各種因素的綜合效果(P

溫馨提示

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