軟件需求工程課件2013-06-11_第1頁
軟件需求工程課件2013-06-11_第2頁
軟件需求工程課件2013-06-11_第3頁
軟件需求工程課件2013-06-11_第4頁
軟件需求工程課件2013-06-11_第5頁
已閱讀5頁,還剩119頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1需求模版框架需求模版框架n產(chǎn)品限制條件產(chǎn)品限制條件-適用于項目與產(chǎn)品的限制與適用于項目與產(chǎn)品的限制與局限局限1.產(chǎn)品的目標(biāo)產(chǎn)品的目標(biāo)2.客戶、顧客和其他的風(fēng)險承擔(dān)者客戶、顧客和其他的風(fēng)險承擔(dān)者3.產(chǎn)品的用戶產(chǎn)品的用戶4.需求限制條件需求限制條件5.命名標(biāo)準(zhǔn)和定義命名標(biāo)準(zhǔn)和定義6.相關(guān)事實相關(guān)事實7.假定假定2需求模版框架需求模版框架n功能需求功能需求-產(chǎn)品的功能產(chǎn)品的功能1.產(chǎn)品的范圍產(chǎn)品的范圍2.功能與數(shù)據(jù)需求功能與數(shù)據(jù)需求3需求模版框架需求模版框架n非功能需求非功能需求-產(chǎn)品的品質(zhì)產(chǎn)品的品質(zhì)1.觀感需求觀感需求2.易用性需求易用性需求3.性能需求性能需求4.操作需求操作需求5.可維護(hù)性和

2、可移植性需求可維護(hù)性和可移植性需求6.安全性需求安全性需求7.文化與政策需求文化與政策需求8.法律需求法律需求4需求模版框架需求模版框架n項目問題項目問題-適用于構(gòu)建產(chǎn)品的項目適用于構(gòu)建產(chǎn)品的項目1.開放式問題開放式問題2.商業(yè)上架式軟件解決方案商業(yè)上架式軟件解決方案3.新問題新問題4.任務(wù)任務(wù)5.遷移遷移6.風(fēng)險風(fēng)險7.費用費用8.用戶文檔用戶文檔9.后續(xù)版本需求后續(xù)版本需求5項目啟動項目啟動 一、一、在這個階段,我們要找出對項目我們真正知道些什么? 二、并開始對項目盡早進(jìn)行度量。6項目啟動階段主要目的項目啟動階段主要目的通過收集通過收集各種信息各種信息,確保確保項目可行項目可行,且,且資金

3、充足資金充足。7項目啟動階段圖示項目啟動階段圖示項目啟動項目啟動領(lǐng)域領(lǐng)域知識知識可重用可重用的需求的需求網(wǎng)羅知識網(wǎng)羅知識客戶客戶客戶客戶的的想法想法產(chǎn)品的產(chǎn)品的戰(zhàn)略計劃戰(zhàn)略計劃主要風(fēng)險和主要風(fēng)險和初始費用初始費用上下文上下文范圍圖范圍圖業(yè)務(wù)目標(biāo)業(yè)務(wù)目標(biāo)8項目啟動階段提交的產(chǎn)物項目啟動階段提交的產(chǎn)物 1、產(chǎn)品的目的;、產(chǎn)品的目的; 2、客戶;、客戶; 3、顧客;、顧客; 4、風(fēng)險承擔(dān)者;、風(fēng)險承擔(dān)者; 5、用戶;、用戶; 6、限制條件;、限制條件; 7、名稱;、名稱; 8、相關(guān)事實和假定;、相關(guān)事實和假定; 9、工作的范圍;、工作的范圍; 10、估算的費用;、估算的費用; 11、風(fēng)險;、風(fēng)險;

4、12、繼續(xù)或終止的決定。、繼續(xù)或終止的決定。9項目案例項目案例 IceBreaker項目運用各種數(shù)據(jù)來精確預(yù)測何時道路將結(jié)冰。然后它安排調(diào)度并派出卡車,在道路變得危險之前用除冰物質(zhì)(一種鹽類化合物)來處理道路。10IceBreaker氣象站 該設(shè)備將氣象和道路表面情況數(shù)據(jù)傳送到產(chǎn)品的另一部份,在那里預(yù)測道路何時將結(jié)冰,然后派出卡車,用除冰物質(zhì)處理路面。 11 IceBreaker氣象站12產(chǎn)品目標(biāo)應(yīng)具備什么?大家一致同意的;大家一致同意的;清晰的;清晰的;無歧義的;無歧義的;可度量的??啥攘康?。13如何得到產(chǎn)品目標(biāo)?需要從一份需要從一份用戶問題用戶問題或或項目背景的描述項目背景的描述開始。開始

5、。推薦格式:推薦格式: 1.產(chǎn)品的目標(biāo)產(chǎn)品的目標(biāo)1a.該項工作的用戶問題或背景該項工作的用戶問題或背景內(nèi)容:內(nèi)容:對引發(fā)任務(wù)的工作和情況的描述,同時也應(yīng)描述用戶對引發(fā)任務(wù)的工作和情況的描述,同時也應(yīng)描述用戶希望用提交的軟件來完成的工作。希望用提交的軟件來完成的工作。動機(jī):動機(jī):這項說明為該項目提供了合法的理由。這項說明為該項目提供了合法的理由??紤]:考慮:您應(yīng)該考慮用戶的問題是否嚴(yán)重,是否應(yīng)該解決和為您應(yīng)該考慮用戶的問題是否嚴(yán)重,是否應(yīng)該解決和為什么應(yīng)該解決。什么應(yīng)該解決。14案例背景描述(IceBreaker項目)15目標(biāo)來自于-問題的解決方案問題問題解決方案解決方案優(yōu)勢優(yōu)勢可度量的可度量的

6、優(yōu)勢優(yōu)勢16案例項目目標(biāo)的得出IceBreaker項目的背景描述,我們發(fā)現(xiàn):項目的背景描述,我們發(fā)現(xiàn):問題問題是:是: “因為道路結(jié)冰而引起的道路交通事故因為道路結(jié)冰而引起的道路交通事故”,問題的問題的解決方案解決方案是:是: “處理路面以防止結(jié)冰(如果道路已經(jīng)結(jié)冰處理路面以防止結(jié)冰(如果道路已經(jīng)結(jié)冰,理所當(dāng)然是使冰融化),理所當(dāng)然是使冰融化)。”因此,我們可以說因此,我們可以說產(chǎn)品的目標(biāo)產(chǎn)品的目標(biāo)是:是: “精確預(yù)報道路結(jié)冰時間并分派除冰卡車。精確預(yù)報道路結(jié)冰時間并分派除冰卡車?!?7案例項目目標(biāo)的業(yè)務(wù)優(yōu)勢因此,我們得出該產(chǎn)品的因此,我們得出該產(chǎn)品的業(yè)務(wù)優(yōu)勢業(yè)務(wù)優(yōu)勢是:是: “通過預(yù)報道路結(jié)

7、冰情況來減少道路事故。通過預(yù)報道路結(jié)冰情況來減少道路事故?!边@個優(yōu)勢是可度量的嗎?這個優(yōu)勢是可度量的嗎?18 案例項目目標(biāo)的得出是的。產(chǎn)品的成功可以通過事故數(shù)量的減少來度量,是的。產(chǎn)品的成功可以通過事故數(shù)量的減少來度量,在這些事故中,道路結(jié)冰是一個因素。在這些事故中,道路結(jié)冰是一個因素。度量度量: “因結(jié)冰而發(fā)生的事故數(shù)將低于冬季發(fā)生的事故因結(jié)冰而發(fā)生的事故數(shù)將低于冬季發(fā)生的事故數(shù)的數(shù)的15%?!?9目標(biāo)的合理性 “因結(jié)冰而發(fā)生的事故數(shù)將低于冬季發(fā)生的事故因結(jié)冰而發(fā)生的事故數(shù)將低于冬季發(fā)生的事故數(shù)的數(shù)的15%?!逼渲?,其中,20目標(biāo)的可行性21目標(biāo)的可達(dá)成性22目標(biāo)目標(biāo): “在冬季道路養(yǎng)護(hù)支出

8、上節(jié)省費用。在冬季道路養(yǎng)護(hù)支出上節(jié)省費用?!眱?yōu)勢:優(yōu)勢: “減少除冰和道路養(yǎng)護(hù)的費用。減少除冰和道路養(yǎng)護(hù)的費用?!倍攘浚憾攘浚?“除冰費用將在目前道路處理費用的基礎(chǔ)上降低除冰費用將在目前道路處理費用的基礎(chǔ)上降低25%,并對道路造成的損傷將降低,并對道路造成的損傷將降低50%?!?3小結(jié):目標(biāo)的以下方面24 1.產(chǎn)品的目標(biāo)產(chǎn)品的目標(biāo)1a.該項工作的用戶問題或背景(已完成)該項工作的用戶問題或背景(已完成)1b.產(chǎn)品的目標(biāo)產(chǎn)品的目標(biāo)內(nèi)容:內(nèi)容:用一句話或很少的幾句話來說明用一句話或很少的幾句話來說明“我們希望該產(chǎn)品做什么?我們希望該產(chǎn)品做什么?”換言之,即開發(fā)該產(chǎn)品的真正原因。換言之,即開發(fā)該產(chǎn)品

9、的真正原因。動機(jī):動機(jī):項目如果沒有一個表述清晰、易于理解的目標(biāo),就會容易項目如果沒有一個表述清晰、易于理解的目標(biāo),就會容易迷失在產(chǎn)品開發(fā)的沙漠中。產(chǎn)品必須提供某種業(yè)務(wù)優(yōu)勢。典型的迷失在產(chǎn)品開發(fā)的沙漠中。產(chǎn)品必須提供某種業(yè)務(wù)優(yōu)勢。典型的優(yōu)勢是產(chǎn)品會增加組織在市場中的價值,減少運作的成本,或提優(yōu)勢是產(chǎn)品會增加組織在市場中的價值,減少運作的成本,或提供更好的顧客服務(wù)。不管是哪種優(yōu)勢,都應(yīng)該是可度量的。開發(fā)供更好的顧客服務(wù)。不管是哪種優(yōu)勢,都應(yīng)該是可度量的。開發(fā)該產(chǎn)品的優(yōu)勢或好處必須有某種客觀的度量,首先它讓您能確定該產(chǎn)品的優(yōu)勢或好處必須有某種客觀的度量,首先它讓您能確定該產(chǎn)品是否值得,其次讓您能確

10、定提交的產(chǎn)品是否達(dá)到目標(biāo)。該產(chǎn)品是否值得,其次讓您能確定提交的產(chǎn)品是否達(dá)到目標(biāo)。例子:例子:“我們希望對顧客通過電話下訂單訂購我們的產(chǎn)品做出立即我們希望對顧客通過電話下訂單訂購我們的產(chǎn)品做出立即和完整的響應(yīng)。和完整的響應(yīng)?!边@個目標(biāo)的度量將會表達(dá)為由于更好的響應(yīng)帶來這個目標(biāo)的度量將會表達(dá)為由于更好的響應(yīng)帶來的營業(yè)額的增長,或顧客滿意度調(diào)查中分?jǐn)?shù)值的上升。的營業(yè)額的增長,或顧客滿意度調(diào)查中分?jǐn)?shù)值的上升。25請評價下面的這條業(yè)務(wù)目標(biāo)26保持跟蹤目標(biāo)27誰為它付錢:28誰為它付錢:29誰為它付錢:30誰為它付錢:3132用戶:理解他們33風(fēng)險承擔(dān)者和顧問34其他風(fēng)險承擔(dān)者35 2.客戶、顧客和其他風(fēng)

11、險承擔(dān)者客戶、顧客和其他風(fēng)險承擔(dān)者2a.客戶是為開發(fā)付費的人,并將成為所提交產(chǎn)品的擁有者客戶是為開發(fā)付費的人,并將成為所提交產(chǎn)品的擁有者內(nèi)容:內(nèi)容:這一項必須給出客戶的姓名。有多個姓名是允許的,但是這一項必須給出客戶的姓名。有多個姓名是允許的,但是如果姓名超過三個,本項就會失去意義。如果姓名超過三個,本項就會失去意義。動機(jī):動機(jī):客戶最終將接受該產(chǎn)品,因此必須對提交的產(chǎn)品滿意。如果客戶最終將接受該產(chǎn)品,因此必須對提交的產(chǎn)品滿意。如果產(chǎn)品是作為內(nèi)部使用來開發(fā)的,客戶和顧客的角色由相同的人來擔(dān)產(chǎn)品是作為內(nèi)部使用來開發(fā)的,客戶和顧客的角色由相同的人來擔(dān)當(dāng)。如果您無法找到一個客戶的姓名,那么也許您就不

12、應(yīng)該構(gòu)建該當(dāng)。如果您無法找到一個客戶的姓名,那么也許您就不應(yīng)該構(gòu)建該產(chǎn)品。產(chǎn)品??紤]:考慮:當(dāng)為外部用戶構(gòu)建一個軟件包或產(chǎn)品時,有時客戶是市場部當(dāng)為外部用戶構(gòu)建一個軟件包或產(chǎn)品時,有時客戶是市場部門。在這種情況下,來自于市場部門的一個人必須作為客戶,并記門。在這種情況下,來自于市場部門的一個人必須作為客戶,并記下姓名。下姓名。36 2.客戶、顧客和其他風(fēng)險承擔(dān)者客戶、顧客和其他風(fēng)險承擔(dān)者2b.顧客是將花錢購買該產(chǎn)品的人顧客是將花錢購買該產(chǎn)品的人內(nèi)容:內(nèi)容:對內(nèi)部使用的開發(fā)來說,顧客就是最終將決定是否接受該對內(nèi)部使用的開發(fā)來說,顧客就是最終將決定是否接受該產(chǎn)品的人,這通常是將部署該產(chǎn)品的部門經(jīng)理

13、。給出此人的姓名。產(chǎn)品的人,這通常是將部署該產(chǎn)品的部門經(jīng)理。給出此人的姓名。注意這可能與客戶相同。對于大量上市銷售的產(chǎn)品,顧客是那些注意這可能與客戶相同。對于大量上市銷售的產(chǎn)品,顧客是那些將從貨架上購買產(chǎn)品的人。在這種情況下,應(yīng)該以足夠詳細(xì)的方將從貨架上購買產(chǎn)品的人。在這種情況下,應(yīng)該以足夠詳細(xì)的方式定義目標(biāo)顧客的特征,這樣需求分析師可以想象顧客并據(jù)此形式定義目標(biāo)顧客的特征,這樣需求分析師可以想象顧客并據(jù)此形成需求。請注意,對于某些大量上市銷售產(chǎn)品的開發(fā)工作來說,成需求。請注意,對于某些大量上市銷售產(chǎn)品的開發(fā)工作來說,市場部門可能作為代理顧客,在這種情況下,應(yīng)該確保市場人員市場部門可能作為代理

14、顧客,在這種情況下,應(yīng)該確保市場人員盡可能地像最終顧客一樣給出詳細(xì)的描述。盡可能地像最終顧客一樣給出詳細(xì)的描述。動機(jī):動機(jī):顧客的角色將決定是否購買該產(chǎn)品,或是否部署它。構(gòu)建顧客的角色將決定是否購買該產(chǎn)品,或是否部署它。構(gòu)建的產(chǎn)品必須滿足顧客的目標(biāo),同時也要滿足客戶的限制條件。即的產(chǎn)品必須滿足顧客的目標(biāo),同時也要滿足客戶的限制條件。即使您的顧客是工作在客戶組織中其他部門的人,他們還是有權(quán)決使您的顧客是工作在客戶組織中其他部門的人,他們還是有權(quán)決定用還是不用新產(chǎn)品。定用還是不用新產(chǎn)品。37 2.客戶、顧客和其他風(fēng)險承擔(dān)者客戶、顧客和其他風(fēng)險承擔(dān)者2c.其他風(fēng)險承擔(dān)者其他風(fēng)險承擔(dān)者內(nèi)容:內(nèi)容:其他

15、一些人或組織的名稱,他們或者受到產(chǎn)品的影響,或其他一些人或組織的名稱,他們或者受到產(chǎn)品的影響,或者需要他們提供輸入信息以便構(gòu)建產(chǎn)品。者需要他們提供輸入信息以便構(gòu)建產(chǎn)品。例如:風(fēng)險承擔(dān)者可能包括:經(jīng)理或項目;業(yè)務(wù)主題方面的專家;例如:風(fēng)險承擔(dān)者可能包括:經(jīng)理或項目;業(yè)務(wù)主題方面的專家;技術(shù)人員;系統(tǒng)開發(fā)者;市場人員;產(chǎn)品經(jīng)理;測試和質(zhì)量保證技術(shù)人員;系統(tǒng)開發(fā)者;市場人員;產(chǎn)品經(jīng)理;測試和質(zhì)量保證人員;審查員,諸如安全審查人員或?qū)徲嬋藛T;律師;易用性專人員;審查員,諸如安全審查人員或?qū)徲嬋藛T;律師;易用性專家;您所處行業(yè)的專業(yè)人員。家;您所處行業(yè)的專業(yè)人員。同時也請檢查上下文范圍圖中每個相鄰系統(tǒng)。

16、在您收集需求的活同時也請檢查上下文范圍圖中每個相鄰系統(tǒng)。在您收集需求的活動中,可能需要有人對相鄰系統(tǒng)做一些講解。動中,可能需要有人對相鄰系統(tǒng)做一些講解。動機(jī):動機(jī):風(fēng)險承擔(dān)者對產(chǎn)品有要求。不能找齊所有的風(fēng)險承擔(dān)者會風(fēng)險承擔(dān)者對產(chǎn)品有要求。不能找齊所有的風(fēng)險承擔(dān)者會導(dǎo)致遺漏需求。導(dǎo)致遺漏需求。38 3.產(chǎn)品的用戶產(chǎn)品的用戶3a.產(chǎn)品的用戶產(chǎn)品的用戶內(nèi)容:內(nèi)容:產(chǎn)品的潛在用戶或操作員的列表。針對每種類型的用戶提產(chǎn)品的潛在用戶或操作員的列表。針對每種類型的用戶提供以下信息:供以下信息:用戶分類用戶分類如學(xué)校里的兒童、公路工程師,項目經(jīng)理等;如學(xué)校里的兒童、公路工程師,項目經(jīng)理等;用戶工作的任務(wù)用戶工

17、作的任務(wù)總結(jié)用戶的職責(zé);總結(jié)用戶的職責(zé);主題相關(guān)的經(jīng)驗主題相關(guān)的經(jīng)驗用戶在業(yè)務(wù)方面的知識。按照新手、熟練工或用戶在業(yè)務(wù)方面的知識。按照新手、熟練工或?qū)<襾碓u定;專家來評定;技術(shù)經(jīng)驗技術(shù)經(jīng)驗描述用戶在相關(guān)技術(shù)方面的經(jīng)驗,按照新手、熟練工描述用戶在相關(guān)技術(shù)方面的經(jīng)驗,按照新手、熟練工或?qū)<襾碓u定?;?qū)<襾碓u定。其他用戶特征其他用戶特征描述任何可能對產(chǎn)品需求和最終設(shè)計產(chǎn)生影響的描述任何可能對產(chǎn)品需求和最終設(shè)計產(chǎn)生影響的其他特征。描述諸如以下問題:身體能力其他特征。描述諸如以下問題:身體能力/障礙;智利能力障礙;智利能力/障礙;障礙;對工作的態(tài)度;對技術(shù)的態(tài)度;教育程度;語言技能;年齡段;性對工作的態(tài)

18、度;對技術(shù)的態(tài)度;教育程度;語言技能;年齡段;性別等。別等。39 3.產(chǎn)品的用戶產(chǎn)品的用戶3a.產(chǎn)品的用戶產(chǎn)品的用戶動機(jī):動機(jī):用戶是為了完成工作而與產(chǎn)品交互的人。您越了解用戶,用戶是為了完成工作而與產(chǎn)品交互的人。您越了解用戶,就越可能提交適合用戶工作方式的產(chǎn)品,符合用戶的隱喻和偏好。就越可能提交適合用戶工作方式的產(chǎn)品,符合用戶的隱喻和偏好。當(dāng)您在確定產(chǎn)品的易用性需求時,應(yīng)該考慮這些對用戶的描述。當(dāng)您在確定產(chǎn)品的易用性需求時,應(yīng)該考慮這些對用戶的描述。例子:例子:用戶的來源可能很廣,有時甚至想象不到??紤]您的用戶用戶的來源可能很廣,有時甚至想象不到??紤]您的用戶可能是辦公室職員、商店店員、經(jīng)理

19、、接受過專門訓(xùn)練的操作員;可能是辦公室職員、商店店員、經(jīng)理、接受過專門訓(xùn)練的操作員;普通公眾;隨意的用戶;過路人;文盲;手工藝人;學(xué)生;測試普通公眾;隨意的用戶;過路人;文盲;手工藝人;學(xué)生;測試工程師;外國人;兒童;律師;遠(yuǎn)程用戶;用過電話線或因特網(wǎng)工程師;外國人;兒童;律師;遠(yuǎn)程用戶;用過電話線或因特網(wǎng)使用該產(chǎn)品的人,救險工作人員等,幾乎任何人都可以成為用戶。使用該產(chǎn)品的人,救險工作人員等,幾乎任何人都可以成為用戶。40 3.產(chǎn)品的用戶產(chǎn)品的用戶3b.對用戶設(shè)的優(yōu)先級對用戶設(shè)的優(yōu)先級內(nèi)容:內(nèi)容:在每類用戶后面附上一個優(yōu)先級,這區(qū)別了用戶的重要性在每類用戶后面附上一個優(yōu)先級,這區(qū)別了用戶的重

20、要性和優(yōu)先地位。按以下優(yōu)先級劃分用戶:和優(yōu)先地位。按以下優(yōu)先級劃分用戶:關(guān)鍵用戶關(guān)鍵用戶這些用戶是對產(chǎn)品的后續(xù)成功至關(guān)重要的。給由這這些用戶是對產(chǎn)品的后續(xù)成功至關(guān)重要的。給由這類用戶提出的需求更高的優(yōu)先級;類用戶提出的需求更高的優(yōu)先級;次要用戶次要用戶他們將使用該產(chǎn)品,但他們的意見對產(chǎn)品的長期成他們將使用該產(chǎn)品,但他們的意見對產(chǎn)品的長期成功并無影響。如果次要用戶的需求和關(guān)鍵用戶的需求發(fā)生沖突,功并無影響。如果次要用戶的需求和關(guān)鍵用戶的需求發(fā)生沖突,應(yīng)該優(yōu)先考慮關(guān)鍵用戶的需求。應(yīng)該優(yōu)先考慮關(guān)鍵用戶的需求。不重要用戶不重要用戶這類用戶的優(yōu)先級是最低的。這包括不常用的、這類用戶的優(yōu)先級是最低的。這包

21、括不常用的、未授權(quán)的和沒有技能的用戶,以及誤用了該產(chǎn)品的用戶。(這種未授權(quán)的和沒有技能的用戶,以及誤用了該產(chǎn)品的用戶。(這種類型的用戶所占的百分比,目的是評估對這類用戶要考慮多少)類型的用戶所占的百分比,目的是評估對這類用戶要考慮多少)41 3.產(chǎn)品的用戶產(chǎn)品的用戶3b.對用戶設(shè)的優(yōu)先級對用戶設(shè)的優(yōu)先級動機(jī):動機(jī):如果認(rèn)為某些用戶對產(chǎn)品或組織更重要,那么應(yīng)該寫明,如果認(rèn)為某些用戶對產(chǎn)品或組織更重要,那么應(yīng)該寫明,因為這會影響您設(shè)計該產(chǎn)品的方式。例如:您需要知道,是否有因為這會影響您設(shè)計該產(chǎn)品的方式。例如:您需要知道,是否有一個很大的顧客曾經(jīng)特別詢問過該產(chǎn)品,并且如果他們得不到想一個很大的顧客曾

22、經(jīng)特別詢問過該產(chǎn)品,并且如果他們得不到想要的東西,結(jié)果會造成嚴(yán)重的業(yè)務(wù)損失。要的東西,結(jié)果會造成嚴(yán)重的業(yè)務(wù)損失。某些用戶可能被列為對產(chǎn)品沒有重要影響,這表示這些用戶會使某些用戶可能被列為對產(chǎn)品沒有重要影響,這表示這些用戶會使用該產(chǎn)品,但在產(chǎn)品中的沒有被賦予利益。換言之,這些用戶不用該產(chǎn)品,但在產(chǎn)品中的沒有被賦予利益。換言之,這些用戶不會抱怨,也不會對產(chǎn)品作出什么貢獻(xiàn)。來自于這些用戶的任何特會抱怨,也不會對產(chǎn)品作出什么貢獻(xiàn)。來自于這些用戶的任何特殊需求都只有較低的設(shè)計優(yōu)先級。殊需求都只有較低的設(shè)計優(yōu)先級。42需求限制條件43 4.需求限制條件需求限制條件4a.解決方案的限制條件解決方案的限制條件

23、內(nèi)容:內(nèi)容:此處明確了限制條件,它們規(guī)定了解決問題必須采取的方此處明確了限制條件,它們規(guī)定了解決問題必須采取的方式。您可以認(rèn)為它們的指令性的解決方案。仔細(xì)描述該解決方案,式。您可以認(rèn)為它們的指令性的解決方案。仔細(xì)描述該解決方案,以及測試是否符合的度量標(biāo)準(zhǔn)。如果可能,您應(yīng)該解釋使用該解以及測試是否符合的度量標(biāo)準(zhǔn)。如果可能,您應(yīng)該解釋使用該解決方案的原因。決方案的原因。動機(jī):動機(jī):動機(jī)是確定必須成為最終產(chǎn)品一部分的限制條件。出于某動機(jī)是確定必須成為最終產(chǎn)品一部分的限制條件。出于某些原因,您的客戶、顧客或用戶可能有一些設(shè)計偏好。如果不滿些原因,您的客戶、顧客或用戶可能有一些設(shè)計偏好。如果不滿足這些偏

24、好,您的解決方案將不會被接受。足這些偏好,您的解決方案將不會被接受。例子:例子:“產(chǎn)品必須使用目前的雙向無線電系統(tǒng)與卡車中的駕駛員產(chǎn)品必須使用目前的雙向無線電系統(tǒng)與卡車中的駕駛員通信。通信。”、”產(chǎn)品必須使用產(chǎn)品必須使用Windows NT操作系統(tǒng)操作系統(tǒng)”、”產(chǎn)品必須產(chǎn)品必須是一個手持設(shè)備。是一個手持設(shè)備?!?4 4.需求限制條件需求限制條件4a.解決方案的限制條件解決方案的限制條件考慮:考慮:我們希望定義一個邊界,在此邊界范圍內(nèi)我們可以解決問我們希望定義一個邊界,在此邊界范圍內(nèi)我們可以解決問題。請注意,任何人如果有在某項技術(shù)方面的經(jīng)驗,都會傾向于題。請注意,任何人如果有在某項技術(shù)方面的經(jīng)驗

25、,都會傾向于以該項技術(shù)的角度看需求。這種傾向性導(dǎo)致人們出于錯誤的原因以該項技術(shù)的角度看需求。這種傾向性導(dǎo)致人們出于錯誤的原因強(qiáng)加一些解決方案限制條件,假定限制條件很容易就潛入到需求強(qiáng)加一些解決方案限制條件,假定限制條件很容易就潛入到需求規(guī)格說明書中。如果您強(qiáng)加了一些限制條件,帶來的危險性就是規(guī)格說明書中。如果您強(qiáng)加了一些限制條件,帶來的危險性就是您將失去得到問題的最佳解決方案的自由。解決方案限制條件應(yīng)您將失去得到問題的最佳解決方案的自由。解決方案限制條件應(yīng)該只限于那些絕對不可能商榷的解決方案。該只限于那些絕對不可能商榷的解決方案。45 4.需求限制條件需求限制條件4b.實現(xiàn)環(huán)境實現(xiàn)環(huán)境。此處描

26、述產(chǎn)品將被實施的技術(shù)環(huán)境和物理環(huán)境,。此處描述產(chǎn)品將被實施的技術(shù)環(huán)境和物理環(huán)境,包括自動的、機(jī)械的、組織的和其他設(shè)備。這包括了非人力相鄰包括自動的、機(jī)械的、組織的和其他設(shè)備。這包括了非人力相鄰系統(tǒng)。系統(tǒng)。4c.伙伴應(yīng)用。伙伴應(yīng)用。此處描述那些不屬于產(chǎn)品的一部分的應(yīng)用程序,但此處描述那些不屬于產(chǎn)品的一部分的應(yīng)用程序,但產(chǎn)品必須與這些應(yīng)用程序協(xié)作。產(chǎn)品必須與這些應(yīng)用程序協(xié)作。4d.商業(yè)上架銷售軟件。商業(yè)上架銷售軟件。此處描述實現(xiàn)產(chǎn)品需求必需使用的此處描述實現(xiàn)產(chǎn)品需求必需使用的COTS。4e.預(yù)期的工作場地環(huán)境。預(yù)期的工作場地環(huán)境。此處描述用戶工作和使用該產(chǎn)品的工作此處描述用戶工作和使用該產(chǎn)品的工作

27、場地。此處描述任何可能對產(chǎn)品設(shè)計產(chǎn)生影響的工作場地特征。場地。此處描述任何可能對產(chǎn)品設(shè)計產(chǎn)生影響的工作場地特征。4f.開發(fā)者構(gòu)建該產(chǎn)品需要多長時間。開發(fā)者構(gòu)建該產(chǎn)品需要多長時間。最后期限或商業(yè)機(jī)會的時限最后期限或商業(yè)機(jī)會的時限。4g.該產(chǎn)品的財務(wù)預(yù)算是多少。該產(chǎn)品的財務(wù)預(yù)算是多少。以金錢的形式或可得資源的形式說以金錢的形式或可得資源的形式說明。明。46詞匯表-數(shù)據(jù)字典的基礎(chǔ)47詞匯表48詞匯表49 5.命名標(biāo)準(zhǔn)和定義命名標(biāo)準(zhǔn)和定義定義項目中使用到的所有術(shù)語,包括同義詞。定義項目中使用到的所有術(shù)語,包括同義詞。內(nèi)容:內(nèi)容:一個字典,包括在需求規(guī)格說明書中使用的所有名稱的含一個字典,包括在需求規(guī)格

28、說明書中使用的所有名稱的含義。這個字典應(yīng)該使用您的組織或行業(yè)使用的標(biāo)準(zhǔn)名稱。這些名義。這個字典應(yīng)該使用您的組織或行業(yè)使用的標(biāo)準(zhǔn)名稱。這些名稱也應(yīng)該反映出在工作領(lǐng)域中當(dāng)前使用的術(shù)語。該字典包括項目稱也應(yīng)該反映出在工作領(lǐng)域中當(dāng)前使用的術(shù)語。該字典包括項目中用到的所有重要名稱。請仔細(xì)地選擇名稱,以避免傳達(dá)不同的中用到的所有重要名稱。請仔細(xì)地選擇名稱,以避免傳達(dá)不同的、不期望的含義。為每個名字寫下簡明扼要的定義,這些定義必、不期望的含義。為每個名字寫下簡明扼要的定義,這些定義必須經(jīng)過相應(yīng)的風(fēng)險承擔(dān)者同意。須經(jīng)過相應(yīng)的風(fēng)險承擔(dān)者同意。動機(jī):動機(jī):名稱十分重要,它們能反映含義。如果定義得好,可以省名稱十分

29、重要,它們能反映含義。如果定義得好,可以省掉數(shù)小時的解釋。在項目的這個階段注意名稱將有助于盡早澄清掉數(shù)小時的解釋。在項目的這個階段注意名稱將有助于盡早澄清誤解。在需求階段得到的字典將在整個項目中使用并不斷補充。誤解。在需求階段得到的字典將在整個項目中使用并不斷補充。例子:例子:除冰卡車除冰卡車在冬季,將除冰物質(zhì)散布到道路上的運輸工具在冬季,將除冰物質(zhì)散布到道路上的運輸工具50ATM案例的數(shù)據(jù)詞典(供參考):案例的數(shù)據(jù)詞典(供參考):n賬戶:某銀行的單個賬戶,交易要依靠賬戶來進(jìn)賬戶:某銀行的單個賬戶,交易要依靠賬戶來進(jìn)行。賬戶可以有許多不同的種類,例如經(jīng)常賬戶行。賬戶可以有許多不同的種類,例如經(jīng)

30、常賬戶和儲蓄賬戶。一個客戶可以持有多個賬戶。和儲蓄賬戶。一個客戶可以持有多個賬戶。nATM:允許客戶使用現(xiàn)金卡作為身份證明來進(jìn):允許客戶使用現(xiàn)金卡作為身份證明來進(jìn)行交易的柜臺。行交易的柜臺。ATM與客戶進(jìn)行交互,收集交與客戶進(jìn)行交互,收集交易信息,給中心計算機(jī)發(fā)送交易信息進(jìn)行校驗和易信息,給中心計算機(jī)發(fā)送交易信息進(jìn)行校驗和處理,給用戶支付現(xiàn)金。我們假定處理,給用戶支付現(xiàn)金。我們假定ATM不需要不需要獨立于網(wǎng)絡(luò)運轉(zhuǎn)。獨立于網(wǎng)絡(luò)運轉(zhuǎn)。n銀行:擁有客戶賬戶的金融機(jī)構(gòu),發(fā)放現(xiàn)金卡,銀行:擁有客戶賬戶的金融機(jī)構(gòu),發(fā)放現(xiàn)金卡,通過通過ATM網(wǎng)絡(luò)授權(quán)訪問帳戶。網(wǎng)絡(luò)授權(quán)訪問帳戶。51設(shè)定范圍52設(shè)定范圍53影

31、響范圍設(shè)定的因素:產(chǎn)品目標(biāo)和其他限制條件54影響范圍設(shè)定的因素:感興趣的領(lǐng)域55背景描述56設(shè)定工作上下文范圍57設(shè)定工作上下文范圍58 8.產(chǎn)品的范圍產(chǎn)品的范圍內(nèi)容:內(nèi)容:上下文范圍圖確定了為了構(gòu)建該產(chǎn)品您需要調(diào)查的工作。上下文范圍圖確定了為了構(gòu)建該產(chǎn)品您需要調(diào)查的工作。請注意這包括的范圍超出了目標(biāo)產(chǎn)品。如果我們不了解產(chǎn)品將支請注意這包括的范圍超出了目標(biāo)產(chǎn)品。如果我們不了解產(chǎn)品將支持的工作,就很少有機(jī)會構(gòu)建能與它的環(huán)境無縫集成的產(chǎn)品。上持的工作,就很少有機(jī)會構(gòu)建能與它的環(huán)境無縫集成的產(chǎn)品。上下文范圍圖說明了需要理解的其他主題相關(guān)的領(lǐng)域(系統(tǒng)、人下文范圍圖說明了需要理解的其他主題相關(guān)的領(lǐng)域(系

32、統(tǒng)、人和組織)。相鄰系統(tǒng)與工作上下文范圍之間的接口說明了為什么和組織)。相鄰系統(tǒng)與工作上下文范圍之間的接口說明了為什么我們對相鄰系統(tǒng)有興趣。我們對相鄰系統(tǒng)有興趣。動機(jī):動機(jī):動機(jī)是清楚地定義我們打算研究的工作的邊界。工作活動動機(jī)是清楚地定義我們打算研究的工作的邊界。工作活動與相鄰系統(tǒng)之間的信息流精確地定義了工作系統(tǒng)的職責(zé)和相鄰系與相鄰系統(tǒng)之間的信息流精確地定義了工作系統(tǒng)的職責(zé)和相鄰系統(tǒng)的職責(zé)。統(tǒng)的職責(zé)。59卡車車庫卡車車庫預(yù)測和調(diào)度預(yù)測和調(diào)度道路除冰的道路除冰的工作工作氣象站氣象站氣象氣象預(yù)報局預(yù)報局道路工程道路工程熱像圖熱像圖提供者提供者60該產(chǎn)品的成本會是多少?61風(fēng)險62風(fēng)險63繼續(xù)還是

33、終止?64啟動會議替代方案65小結(jié)66用例-需求獲取的有效方法67建模公式681.整個軟件過程就是用例驅(qū)動的。用例驅(qū)動軟件生產(chǎn)整個軟件過程就是用例驅(qū)動的。用例驅(qū)動軟件生產(chǎn)過程是非常有道理的。過程是非常有道理的。2.要解決問題領(lǐng)域就要歸納出所有必要的要解決問題領(lǐng)域就要歸納出所有必要的抽象角度抽象角度(用例(用例),為這些用例描述可能的特定),為這些用例描述可能的特定場景場景,并找,并找到實現(xiàn)這些場景的到實現(xiàn)這些場景的事物、規(guī)則、行為事物、規(guī)則、行為。再換個說法,。再換個說法,如果我們找到的那些事物、規(guī)則、行為實現(xiàn)了所有如果我們找到的那些事物、規(guī)則、行為實現(xiàn)了所有必要的用例,那么問題領(lǐng)域就解決了。

34、總之,必要的用例,那么問題領(lǐng)域就解決了??傊瑢崿F(xiàn)實現(xiàn)用例是必須做用例是必須做的工作,一旦用例實現(xiàn)了,問題領(lǐng)域的工作,一旦用例實現(xiàn)了,問題領(lǐng)域就解決了。這就是就解決了。這就是用例驅(qū)動方法的原理用例驅(qū)動方法的原理。用例驅(qū)動69只見樹木 不見森林。UML。(建模)。70。UML。系統(tǒng)軟件過程軟件過程站在軟件過程的角度站在軟件過程的角度71為什么需要UML?提到UML我們必須先搞清楚一個問題72你贊同以下哪幾種說法?1.面向?qū)ο笫乾F(xiàn)代科學(xué)發(fā)展到一定程度才出現(xiàn)的研究成果;面向?qū)ο笫乾F(xiàn)代科學(xué)發(fā)展到一定程度才出現(xiàn)的研究成果;2.面向過程和面向?qū)ο蠖际且环N軟件技術(shù);面向過程和面向?qū)ο蠖际且环N軟件技術(shù);3.面

35、向過程和面向?qū)ο笫且粋€古已有之的認(rèn)識論的問題;面向過程和面向?qū)ο笫且粋€古已有之的認(rèn)識論的問題;4.世界的本質(zhì)是由對象組成的,平時看上去相互無關(guān)的獨立對象世界的本質(zhì)是由對象組成的,平時看上去相互無關(guān)的獨立對象 在不在不同的驅(qū)動力下和規(guī)則下體現(xiàn)出不同的運動過程;同的驅(qū)動力下和規(guī)則下體現(xiàn)出不同的運動過程; 5.世界的一切都不是孤立的,它們相互緊密聯(lián)系在一起,缺一不可,世界的一切都不是孤立的,它們相互緊密聯(lián)系在一起,缺一不可,相互影響,相互作用,并形成一個個具有嚴(yán)格因果律的小系統(tǒng),而相互影響,相互作用,并形成一個個具有嚴(yán)格因果律的小系統(tǒng),而更小的系統(tǒng)組成了更大的系統(tǒng),所有小系統(tǒng)之間的聯(lián)系也是緊密不更小

36、的系統(tǒng)組成了更大的系統(tǒng),所有小系統(tǒng)之間的聯(lián)系也是緊密不可分割的。可分割的。6.面向?qū)ο蠓椒ň哂懈鼜?qiáng)大的抽象能力。面向?qū)ο蠓椒ň哂懈鼜?qiáng)大的抽象能力。7.UML是面向?qū)ο蠓椒ǖ木唧w化和符號。是面向?qū)ο蠓椒ǖ木唧w化和符號。8.學(xué)習(xí)學(xué)習(xí)UML的過程就是掌握面向?qū)ο笏枷牒头椒ǖ倪^程。的過程就是掌握面向?qū)ο笏枷牒头椒ǖ倪^程。9.相對學(xué)習(xí)相對學(xué)習(xí)UML符號而言掌握它們背后的方法和思想是更為重要的;符號而言掌握它們背后的方法和思想是更為重要的;10. 面向過程和面向?qū)ο蠖际侨藗冋J(rèn)識世界的方法。面向過程和面向?qū)ο蠖际侨藗冋J(rèn)識世界的方法。11. 面向?qū)ο缶褪侵甘褂靡幌盗忻嫦驅(qū)ο蟪绦蛟O(shè)計語言的軟件開發(fā)方法。面向?qū)ο?/p>

37、就是指使用一系列面向?qū)ο蟪绦蛟O(shè)計語言的軟件開發(fā)方法。 73。UML。系統(tǒng)面向?qū)ο筮€是面向過程?軟件過程軟件過程74什么是面向?qū)ο?(Object Oriented,簡稱OO) 面向?qū)ο筌浖_發(fā)方法描述和理解問面向?qū)ο筌浖_發(fā)方法描述和理解問題域的基本思想是,對問題域進(jìn)行自然分題域的基本思想是,對問題域進(jìn)行自然分割,以更接近人類思維的方式建立問題域割,以更接近人類思維的方式建立問題域模型,從而使生產(chǎn)出的軟件盡可能直接地模型,從而使生產(chǎn)出的軟件盡可能直接地描述現(xiàn)實世界,具有更好的可維護(hù)性,能描述現(xiàn)實世界,具有更好的可維護(hù)性,能適應(yīng)用戶需求的變化。適應(yīng)用戶需求的變化。75什么是面向?qū)ο?(Objec

38、t Oriented,簡稱OO) 面向?qū)ο蠼Ec設(shè)計面向?qū)ο蠼Ec設(shè)計是使用真實世界是使用真實世界的概念模型來思考問題的一種方法。其基的概念模型來思考問題的一種方法。其基本元素是本元素是“對象對象”。 對象既包含數(shù)據(jù)結(jié)構(gòu),又包含行為。對象既包含數(shù)據(jù)結(jié)構(gòu),又包含行為。對于理解問題、與應(yīng)用領(lǐng)域?qū)<医涣?、建對于理解問題、與應(yīng)用領(lǐng)域?qū)<医涣鳌⒔F髽I(yè)級應(yīng)用、編寫文檔、設(shè)計程序和數(shù)模企業(yè)級應(yīng)用、編寫文檔、設(shè)計程序和數(shù)據(jù)庫來說,面向?qū)ο竽P投挤浅S杏?。?jù)庫來說,面向?qū)ο竽P投挤浅S杏谩?6什么是面向?qū)ο?(Object Oriented,簡稱OO) 對于軟件來說,面向?qū)ο筮@個術(shù)語的意對于軟件來說,面向?qū)ο?/p>

39、這個術(shù)語的意思是,把軟件組織成一系列離散的、合并思是,把軟件組織成一系列離散的、合并了數(shù)據(jù)結(jié)構(gòu)和行為的對象。了數(shù)據(jù)結(jié)構(gòu)和行為的對象。 77OO方法的幾個特征 1.標(biāo)識:意指數(shù)據(jù)被量化成稱為對象(object)的離散的、可辨識的實體。 在真實世界中,對象只是一種簡單的存在,但在編程語言中,每個對象都有一個唯一的句柄,借助這個句柄就可以引用對象。 78OO方法的幾個特征 2.分類:指的是有著相同的數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對象被分組為一個類。 類(class)是什么?答:A)是一種抽象;B)是單個對象組成的無限集合; 79每個對象都是該類的一個實例(instance) 自行車對象自行車對象

40、抽象成-自行車類自行車類Mike的自行車屬性屬性Brian的自行車 車架尺寸Mary的自行車 車輪尺寸 齒輪數(shù) 材料操作操作 變速 移動 修理80再一個例子 多邊形對象多邊形對象 抽象成-多邊形類多邊形類屬性屬性 頂點 邊界顏色 填充顏色 操作操作 繪制 擦除 移動81OO方法的幾個特征 3.繼承:指的是多個類基于一種分層關(guān)系,共享類間屬性和操作(合稱特征)。父類(super-class)擁有子類(subclass)要精煉和詳細(xì)指定的通用信息。子類不需要重復(fù)其父類的特征。 82OO方法的幾個特征 4.多態(tài):是指對于不同的類來說,相同的操作會有不同的動作。操作是對象執(zhí)行或被執(zhí)行的一個過程或轉(zhuǎn)換。

41、 83 OO主題 有幾個主題在OO方法中無處不在。盡管這幾個主題并不是OO系統(tǒng)所特有的,但OO系統(tǒng)對他們的支持卻極為出色。84 OO主題-1.抽象 抽象(抽象(abstraction)使我們可以專注于應(yīng))使我們可以專注于應(yīng)用程序最本質(zhì)的那些方面,同時忽略細(xì)節(jié)。這意用程序最本質(zhì)的那些方面,同時忽略細(xì)節(jié)。這意味著在確定如何實現(xiàn)功能之前,要先關(guān)注對象是味著在確定如何實現(xiàn)功能之前,要先關(guān)注對象是什么,做了什么。使用抽象機(jī)制,可以避免不成什么,做了什么。使用抽象機(jī)制,可以避免不成熟的細(xì)節(jié)承諾。對于熟的細(xì)節(jié)承諾。對于OO開發(fā)來說,抽象的能力是開發(fā)來說,抽象的能力是最重要的一項技能。最重要的一項技能。85

42、OO主題-2.封裝 封裝(封裝(encapsulation)將對象的外部因素)將對象的外部因素(可以被其他對象訪問)與內(nèi)部實現(xiàn)細(xì)節(jié)(其他對(可以被其他對象訪問)與內(nèi)部實現(xiàn)細(xì)節(jié)(其他對象不可見)分離開來。封裝阻止程序的組成部分過象不可見)分離開來。封裝阻止程序的組成部分過于依賴,如果那樣的話,很小的變化也會引起巨大于依賴,如果那樣的話,很小的變化也會引起巨大的漣漪效應(yīng)。的漣漪效應(yīng)。 封裝不是封裝不是OO語言所特有的,但將數(shù)據(jù)結(jié)構(gòu)和行語言所特有的,但將數(shù)據(jù)結(jié)構(gòu)和行為組織在一個實體中,這樣的封裝比以前的語言為組織在一個實體中,這樣的封裝比以前的語言-例如例如Fortran、Cobol和和C更干凈、更

43、有力。更干凈、更有力。86 OO主題-3.共享 OO方法有利于不同層次上的共享。方法有利于不同層次上的共享。繼承數(shù)據(jù)結(jié)構(gòu)和行為使得子類可以共享通繼承數(shù)據(jù)結(jié)構(gòu)和行為使得子類可以共享通用代碼。通過繼承完成共享是用代碼。通過繼承完成共享是OO語言的語言的一個主要的優(yōu)點。比節(jié)省代碼量更重要的一個主要的優(yōu)點。比節(jié)省代碼量更重要的是概念的清晰性,認(rèn)識到不同的操作實行是概念的清晰性,認(rèn)識到不同的操作實行的實際上都是相同的事。這樣就減少了必的實際上都是相同的事。這樣就減少了必須理解和分析的不同情形的數(shù)量。須理解和分析的不同情形的數(shù)量。87 OO主題-4.強(qiáng)調(diào)對象的本質(zhì) OO方法強(qiáng)調(diào)對象是什么,而不是如何使用方

44、法強(qiáng)調(diào)對象是什么,而不是如何使用它。對象的用法依賴于應(yīng)用程序的細(xì)節(jié),經(jīng)常會它。對象的用法依賴于應(yīng)用程序的細(xì)節(jié),經(jīng)常會在開發(fā)過程中發(fā)生變化。隨著需求的演化,對象在開發(fā)過程中發(fā)生變化。隨著需求的演化,對象提供的特征會比使用它的方法來得更加穩(wěn)定,因提供的特征會比使用它的方法來得更加穩(wěn)定,因此,構(gòu)建在對象結(jié)構(gòu)上的軟件系統(tǒng)最終也會比較此,構(gòu)建在對象結(jié)構(gòu)上的軟件系統(tǒng)最終也會比較穩(wěn)定。與功能分解方法學(xué)相比,穩(wěn)定。與功能分解方法學(xué)相比,OO開發(fā)在數(shù)據(jù)開發(fā)在數(shù)據(jù)結(jié)構(gòu)上投入了較大精力,而較少關(guān)注過程結(jié)構(gòu)。結(jié)構(gòu)上投入了較大精力,而較少關(guān)注過程結(jié)構(gòu)。88 OO主題-5.協(xié)同(synergy) 標(biāo)識、分類、多態(tài)和繼承都

45、是標(biāo)識、分類、多態(tài)和繼承都是OO語言的特語言的特色。這些概念中的每一個都可以分開使用,但結(jié)色。這些概念中的每一個都可以分開使用,但結(jié)合在一起,它們就會互相促進(jìn),互為補充。強(qiáng)調(diào)合在一起,它們就會互相促進(jìn),互為補充。強(qiáng)調(diào)對象的基本特性會迫使開發(fā)者更加仔細(xì)和深入地對象的基本特性會迫使開發(fā)者更加仔細(xì)和深入地思考對象是什么,做了些什么。這與關(guān)注重心只思考對象是什么,做了些什么。這與關(guān)注重心只在數(shù)據(jù)和操作上的用法相比,前者所生成的最終在數(shù)據(jù)和操作上的用法相比,前者所生成的最終系統(tǒng)會更加干凈、更加通用和更加健壯。系統(tǒng)會更加干凈、更加通用和更加健壯。89 關(guān)于OO開發(fā)有效性的證據(jù) OO開發(fā)工作開始于開發(fā)工作開

46、始于GE研發(fā)中心的內(nèi)部應(yīng)研發(fā)中心的內(nèi)部應(yīng)用程序。開發(fā)者用用程序。開發(fā)者用OO來開發(fā)編譯器、圖形、用來開發(fā)編譯器、圖形、用戶界面、數(shù)據(jù)庫、戶界面、數(shù)據(jù)庫、oo語言、語言、CAD系統(tǒng)、元模型、系統(tǒng)、元模型、控制系統(tǒng)以及其他一些應(yīng)用??刂葡到y(tǒng)以及其他一些應(yīng)用。OO模型還被用于模型還被用于評述結(jié)構(gòu)不良、難以理解的程序。評述結(jié)構(gòu)不良、難以理解的程序。 自從自從20世紀(jì)世紀(jì)90年代中期以來,年代中期以來,OO從從GE擴(kuò)展擴(kuò)展到了全世界?,F(xiàn)在,到了全世界?,F(xiàn)在,OO不能被認(rèn)為是一種時髦不能被認(rèn)為是一種時髦的或是一種純理論的方法了,它已經(jīng)是計算機(jī)科的或是一種純理論的方法了,它已經(jīng)是計算機(jī)科學(xué)和軟件工程的主流。

47、學(xué)和軟件工程的主流。901.抽象層次抽象層次是面向?qū)ο蠓椒ㄖ袠O其重要且非常是面向?qū)ο蠓椒ㄖ袠O其重要且非常難以把握的技巧;難以把握的技巧;2.要想建立好模型,就需學(xué)會站在不同的抽象要想建立好模型,就需學(xué)會站在不同的抽象層次考慮問題。層次考慮問題。3.抽象層次越高,被屏蔽(或者說封裝)的信抽象層次越高,被屏蔽(或者說封裝)的信息也就越多,信息量越少也就越容易理解和息也就越多,信息量越少也就越容易理解和處理。處理。抽象層次91統(tǒng)一過程一般抽象層次921.什么時候選擇什么樣的層次以及總共什么時候選擇什么樣的層次以及總共抽象多少層?抽象多少層?-用例粒度用例粒度2.抽象層次與邊界的選擇總是相生相伴抽象層

48、次與邊界的選擇總是相生相伴-邊界邊界抽象層次相關(guān)的問題931.視圖是視圖是UML建模中另一個非常重要的概念;建模中另一個非常重要的概念;2.視圖用于組織視圖用于組織UML元素,表達(dá)出模型某一方面的含義,元素,表達(dá)出模型某一方面的含義,視圖的準(zhǔn)確應(yīng)用是建立好模型的一個重要組成部分;視圖的準(zhǔn)確應(yīng)用是建立好模型的一個重要組成部分;3.目標(biāo)對象的每一個屬性都是它的一個視圖。例如:汽車的目標(biāo)對象的每一個屬性都是它的一個視圖。例如:汽車的大小、重量、外觀、性能、安全等。大小、重量、外觀、性能、安全等。4.只有將必要的方面都用視圖展現(xiàn)出來,觀察者才會真正理只有將必要的方面都用視圖展現(xiàn)出來,觀察者才會真正理解

49、這個事物。解這個事物。5.UML里定義了用例圖、類圖、對象圖、包圖、活動圖等里定義了用例圖、類圖、對象圖、包圖、活動圖等不同的視圖。不同的視圖。何謂視圖?941.觀察者會抱怨視圖給出的信息不是很清晰;觀察者會抱怨視圖給出的信息不是很清晰;2.希望從更多的角度來查看事物的信息。希望從更多的角度來查看事物的信息。3.這就引出了視圖中另一個被很多人忽視的概念這就引出了視圖中另一個被很多人忽視的概念- 視角視角給出事物所有屬性的視圖就足夠了嗎?951.不同的人或者同一個人出于不同的目的會對不同的人或者同一個人出于不同的目的會對同一個信息從不同的角度來審視和評估;同一個信息從不同的角度來審視和評估;2.

50、不同的角度展示了同樣信息的不同認(rèn)知角度不同的角度展示了同樣信息的不同認(rèn)知角度以便于理解。例如:汽車的外觀視圖。以便于理解。例如:汽車的外觀視圖。視角:是人們觀察事物的角度961.適當(dāng)?shù)囊暯沁m當(dāng)?shù)囊暯墙o給適當(dāng)?shù)娜?。適當(dāng)?shù)娜恕?.軟件干系人很多,有客戶、系統(tǒng)分析員、架構(gòu)軟件干系人很多,有客戶、系統(tǒng)分析員、架構(gòu)師、設(shè)計師、開發(fā)人員、測試人員、項目經(jīng)理師、設(shè)計師、開發(fā)人員、測試人員、項目經(jīng)理等,他們對同樣信息的審視角度是不同的。等,他們對同樣信息的審視角度是不同的。3.錯誤的選擇視角常常導(dǎo)致需求改來改去難以確錯誤的選擇視角常常導(dǎo)致需求改來改去難以確定。定。恰當(dāng)?shù)囊暯?71.為特定的信息選擇正確的視圖;

51、為特定的信息選擇正確的視圖;2.為特定的干系人展示正確的視角。為特定的干系人展示正確的視角。也就是要經(jīng)常思考下面兩個問題:也就是要經(jīng)常思考下面兩個問題:1.應(yīng)該為哪些軟件信息繪制哪些視圖?應(yīng)該為哪些軟件信息繪制哪些視圖?2.應(yīng)該為哪些干系人展示哪些視角?應(yīng)該為哪些干系人展示哪些視角?視圖和視角對建立一個好的模型很重要981.一切都是對象;一切都是對象;2.對象都是獨立的;對象都是獨立的;3.對象都具有原子性;對象都具有原子性;4.對象都是可抽象的;對象都是可抽象的;5.對象都有層次性。對象都有層次性。對象分析方法99對象的獨立性100對象分析方法總結(jié)1011.構(gòu)造類型(構(gòu)造類型(stereot

52、ype)2.參與者參與者3.用例用例4.邊界邊界5.業(yè)務(wù)實體業(yè)務(wù)實體6.包包7.分析類分析類8.設(shè)計類設(shè)計類9.關(guān)系關(guān)系10.組件組件11.節(jié)點節(jié)點UML核心元素1021.構(gòu)造類型(構(gòu)造類型(stereotype):l也稱為版型、類型。也稱為版型、類型。l概念:是對一個概念:是對一個UML元素基礎(chǔ)定義的擴(kuò)展,在元素基礎(chǔ)定義的擴(kuò)展,在同一個元素基礎(chǔ)定義的基礎(chǔ)上賦予特別的含義,同一個元素基礎(chǔ)定義的基礎(chǔ)上賦予特別的含義,使得這個元素適用于特定的場合。例如:用例使得這個元素適用于特定的場合。例如:用例的構(gòu)造類型有的構(gòu)造類型有“業(yè)務(wù)用例業(yè)務(wù)用例”、“業(yè)務(wù)用例實現(xiàn)業(yè)務(wù)用例實現(xiàn)”等;等;“類類”有有“邊界類

53、邊界類”、“實體類實體類”、“控控制類制類”等。等。l意義:構(gòu)造類型只是意義:構(gòu)造類型只是UML的一種擴(kuò)展手段,是的一種擴(kuò)展手段,是在建模的不同階段區(qū)分視圖的不同點。例如:在建模的不同階段區(qū)分視圖的不同點。例如:“業(yè)務(wù)用例業(yè)務(wù)用例”就是專門應(yīng)用在業(yè)務(wù)建模場合的。就是專門應(yīng)用在業(yè)務(wù)建模場合的。構(gòu)造類型也可以自己定義。構(gòu)造類型也可以自己定義。UML核心元素1032. 參與者(參與者(actor):l定義:定義:actor是在系統(tǒng)之外與系統(tǒng)交互的是在系統(tǒng)之外與系統(tǒng)交互的某人或某事物。如圖所示:某人或某事物。如圖所示:UML核心元素參與者參與者位于邊位于邊界之外;界之外;參與者參與者可以非可以非人。人

54、。104l發(fā)現(xiàn)參與者:參與者的一個重要來源是涉眾,從涉眾中找發(fā)現(xiàn)參與者:參與者的一個重要來源是涉眾,從涉眾中找出那些出那些直接對系統(tǒng)發(fā)出動作直接對系統(tǒng)發(fā)出動作,或,或直接從系統(tǒng)中接收反饋直接從系統(tǒng)中接收反饋的的涉眾。在查找參與者的過程中,可以詢問以下問題以幫助涉眾。在查找參與者的過程中,可以詢問以下問題以幫助確定參與者:確定參與者:誰負(fù)責(zé)提供、使用或刪除信息?誰負(fù)責(zé)提供、使用或刪除信息?誰將使用此功能?誰將使用此功能?誰對某個特定功能感興趣?誰對某個特定功能感興趣?在組織中的什么地方使用系統(tǒng)?在組織中的什么地方使用系統(tǒng)?誰負(fù)責(zé)支持和維護(hù)系統(tǒng)?誰負(fù)責(zé)支持和維護(hù)系統(tǒng)?系統(tǒng)有哪些外部資源?系統(tǒng)有哪些

55、外部資源?其他還有哪些系統(tǒng)將需要與該系統(tǒng)進(jìn)行交互?其他還有哪些系統(tǒng)將需要與該系統(tǒng)進(jìn)行交互?UML核心元素105l參與者一定是參與者一定是直接直接并且并且主動地主動地向系統(tǒng)發(fā)向系統(tǒng)發(fā)出動作并出動作并獲得反饋獲得反饋的,否則就不是參與的,否則就不是參與者。者。UML核心元素106業(yè)務(wù)主角(業(yè)務(wù)主角(busuness actor):是參與者的一):是參與者的一個構(gòu)造類型,特別用于定義業(yè)務(wù)的參與者,在需個構(gòu)造類型,特別用于定義業(yè)務(wù)的參與者,在需求階段使用。業(yè)務(wù)主角是與業(yè)務(wù)系統(tǒng)有著交互的求階段使用。業(yè)務(wù)主角是與業(yè)務(wù)系統(tǒng)有著交互的人和事物,他們用來確定業(yè)務(wù)范圍。業(yè)務(wù)主角的人和事物,他們用來確定業(yè)務(wù)范圍。業(yè)

56、務(wù)主角的特殊性在于它針對的是業(yè)務(wù)人員而非計算機(jī)用戶。特殊性在于它針對的是業(yè)務(wù)人員而非計算機(jī)用戶。業(yè)務(wù)工人(業(yè)務(wù)工人(business worker):處于系統(tǒng)邊界):處于系統(tǒng)邊界內(nèi),被動地參與了業(yè)務(wù)的執(zhí)行過程。業(yè)務(wù)工人不內(nèi),被動地參與了業(yè)務(wù)的執(zhí)行過程。業(yè)務(wù)工人不是參與者。是參與者。UML核心元素107l參與者與其他成員的關(guān)系參與者與其他成員的關(guān)系參與者與涉眾(項目干系人、相關(guān)方):參與者參與者與涉眾(項目干系人、相關(guān)方):參與者是涉眾代表,是涉眾代表,他們的要求就是系統(tǒng)需求的來源;他們的要求就是系統(tǒng)需求的來源;參與者與用戶(參與者與用戶(user):用戶是系統(tǒng)的使用者。):用戶是系統(tǒng)的使用者。

57、用戶是參與者的代表,或者說是參與者的實例或用戶是參與者的代表,或者說是參與者的實例或代理。并非所有的參與者都是用戶。代理。并非所有的參與者都是用戶。參與者與角色(參與者與角色(role):角色是參與者的職責(zé),):角色是參與者的職責(zé),角色是一個抽象的概念,從眾多參與者的職責(zé)中角色是一個抽象的概念,從眾多參與者的職責(zé)中抽象出相同的那一部分,將其命名形成一個角色。抽象出相同的那一部分,將其命名形成一個角色。一個角色代表了系統(tǒng)的一類職責(zé)。由于一個用戶一個角色代表了系統(tǒng)的一類職責(zé)。由于一個用戶可以代理多個參與者,因此一個用戶可以擁有多可以代理多個參與者,因此一個用戶可以擁有多個職責(zé),也就是可以被指定多個角色。個職責(zé),也就是可以被指定多個角色。UML核心元素108l參與者、涉眾、和角色的關(guān)系參與者、涉眾、和角色的關(guān)系UML核心元素1093. 用例(用例(Use Case)l基本概念:官方文檔對用例是這樣定義的:用例定基本概念:官方文檔對用例是這樣定義的:用例定義了一組用例實例,其中每個實例都是系統(tǒng)所執(zhí)行義了一組用例實例,其中每個實例都是系統(tǒng)所執(zhí)行的一系列操作,這些操作生成特定主角可以觀測的的一系列操作,這些操作生成特定主角可以觀測的值。值。l一

溫馨提示

  • 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

提交評論