




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
需求模版框架產品限制條件------適用于項目與產品的限制與局限產品的目標客戶、顧客和其他的風險承擔者產品的用戶需求限制條件命名標準和定義相關事實假定1需求模版框架功能需求------產品的功能產品的范圍功能與數據需求2需求模版框架非功能需求------產品的品質觀感需求易用性需求性能需求操作需求可維護性和可移植性需求安全性需求文化與政策需求法律需求3需求模版框架項目問題------適用于構建產品的項目開放式問題商業(yè)上架式軟件解決方案新問題任務遷移風險費用用戶文檔后續(xù)版本需求4項目啟動一、在這個階段,我們要找出對項目我們真正知道些什么?
二、并開始對項目盡早進行度量。5項目啟動階段主要目的通過收集各種信息,確保項目可行,且資金充足。6項目啟動階段圖示項目啟動領域知識可重用的需求網羅知識客戶客戶的想法產品的戰(zhàn)略計劃主要風險和初始費用上下文范圍圖業(yè)務目標7項目啟動階段提交的產物1、產品的目的;2、客戶;3、顧客;4、風險承擔者;5、用戶;6、限制條件;7、名稱;8、相關事實和假定;9、工作的范圍;10、估算的費用;11、風險;12、繼續(xù)或終止的決定。8項目案例
IceBreaker項目運用各種數據來精確預測何時道路將結冰。然后它安排調度并派出卡車,在道路變得危險之前用除冰物質(一種鹽類化合物)來處理道路。9IceBreaker氣象站
該設備將氣象和道路表面情況數據傳送到產品的另一部份,在那里預測道路何時將結冰,然后派出卡車,用除冰物質處理路面。
10
IceBreaker氣象站11產品目標應具備什么?大家一致同意的;清晰的;無歧義的;可度量的。12如何得到產品目標?需要從一份用戶問題或項目背景的描述開始。推薦格式:1.產品的目標1a.該項工作的用戶問題或背景內容:對引發(fā)任務的工作和情況的描述,同時也應描述用戶希望用提交的軟件來完成的工作。動機:這項說明為該項目提供了合法的理由??紤]:您應該考慮用戶的問題是否嚴重,是否應該解決和為什么應該解決。13案例背景描述(IceBreaker項目)“道路在冬季結冰,這種結冰路面將引發(fā)道路交通事故,使人喪生。我們需要能夠預測何時道路可能結冰,然后我們的車庫可以及時調度除冰卡車來防止道路結冰。除了氣象預報之外,可以使用地區(qū)的熱象圖和安裝在道路上的氣象儀發(fā)出的道路溫度數據,我們希望新的系統(tǒng)能提供更精確的冰情預報。這將使我們能比現在更及時地進行除冰處理,從而減少道路交通事故。我們也希望能消除對道路不加選擇的處理,因為那樣會浪費除冰化合物,并破壞環(huán)境。”14目標來自于------問題的解決方案
當我們知道了問題是什么,并能夠清晰地說明它,我們就可以開始規(guī)劃一個解決方案。該解決方案就是產品要做的事,有助于解決問題或緩解問題。
但,產品的目標應該不僅僅是解決問題,還要提供業(yè)務上的優(yōu)勢。并且,如果存在這種優(yōu)勢,我們必須能夠度量它。問題解決方案優(yōu)勢可度量的優(yōu)勢15案例項目目標的得出
根據IceBreaker項目的背景描述,我們發(fā)現:問題是:“因為道路結冰而引起的道路交通事故”,問題的解決方案是:“處理路面以防止結冰(如果道路已經結冰,理所當然是使冰融化)。”因此,我們可以說產品的目標是:“精確預報道路結冰時間并分派除冰卡車。”16案例項目目標的業(yè)務優(yōu)勢請看案例背景描述(紅色部分):“道路在冬季結冰,這種結冰路面將引發(fā)道路交通事故,使人喪生。我們需要能夠預測何時道路可能結冰,然后我們的車庫可以及時調度除冰卡車來防止道路結冰。除了氣象預報之外,可以使用地區(qū)的熱象圖和安裝在道路上的氣象儀發(fā)出的道路溫度數據,我們希望新的系統(tǒng)能提供更精確的冰情預報。這將使我們能比現在更及時地進行除冰處理,從而減少道路交通事故。我們也希望能消除對道路不加選擇的處理,因為那樣會浪費除冰化合物,并破壞環(huán)境?!币虼耍覀兊贸鲈摦a品的業(yè)務優(yōu)勢是:“通過預報道路結冰情況來減少道路事故?!边@個優(yōu)勢是可度量的嗎?17案例項目目標的得出
“道路在冬季結冰,這種結冰路面將引發(fā)道路交通事故,使人喪生。我們需要能夠預測何時道路可能結冰,然后我們的車路可以及時調度除冰卡車來防止道路結冰。除了氣象預報之外,可以使用地區(qū)的熱象圖和安裝在道路上的氣象儀發(fā)出的道路溫度數據,我們希望新的系統(tǒng)能提供更精確的冰情預報。這將使我們能比現在更及時地進行除冰處理,從而減少道路交通事故。我們也希望能消除對道路不加選擇的處理,因為那樣會浪費除冰化合物,并破壞環(huán)境。”是的。產品的成功可以通過事故數量的減少來度量,在這些事故中,道路結冰是一個因素。度量:“因結冰而發(fā)生的事故數將低于冬季發(fā)生的事故數的15%?!?8目標的合理性至此,我們已經得到了一個可度量的目標,對一兩個冬季進行事故監(jiān)控也是可行的。事故統(tǒng)計數據和警察報告已經收集,對我們了解產品是否成功已經沒有障礙。
但,這是一個合理的目標嗎?為了消除大部分因為結冰導致的事故而花費成本和工作量來構建該產品,這值得嗎?你想過下面的問題嗎?“因結冰而發(fā)生的事故數將低于冬季發(fā)生的事故數的15%。”其中,“總數的15%”是從哪里來的?---啟動會議或其替代方式19目標的可行性該目標可行嗎?“及時地進行除冰處理”就會導致事故的減少嗎?會降到低于總數的15%嗎?讓主要風險承擔者參加會議的一個主要原因就是回答諸如此類的問題。20目標的可達成性該目標可達成嗎?
本例中,代表產品設計者、構建者、硬件方的技術專家和氣象學者的風險承擔者讓啟動會議的參加者相信,技術是可獲得的或可以建造的,類似的軟件問題已經被團隊事先解決。21有些產品的目標說明不止一個。請看背景描述:
“道路在冬季結冰,這種結冰路面將引發(fā)道路交通事故,使人喪生。我們需要能夠預測何時道路可能結冰,然后我們的車路可以及時調度除冰卡車來防止道路結冰。除了氣象預報之外,可以使用地區(qū)的熱象圖和安裝在道路上的氣象儀發(fā)出的道路溫度數據,我們希望新的系統(tǒng)能提供更精確的冰情預報。這將使我們能比現在更及時地進行除冰處理,從而減少道路交通事故。我們也希望能消除對道路不加選擇的處理,因為那樣會浪費除冰化合物,并破壞環(huán)境。”目標:“在冬季道路養(yǎng)護支出上節(jié)省費用?!眱?yōu)勢:“減少除冰和道路養(yǎng)護的費用?!倍攘浚骸俺M用將在目前道路處理費用的基礎上降低25%,并對道路造成的損傷將降低50%?!?2小結:目標的以下方面
目標------關于產品要做什么的描述。優(yōu)勢------產品能提供怎樣的業(yè)務優(yōu)勢?度量------如何對優(yōu)勢進行度量?合理性------構建產品的工作量超過了業(yè)務優(yōu)勢嗎?可行性------產品能達到度量標準嗎?可達成性------組織是否具備(或可獲得)構建該產品的技能,在構建之后能夠操作它嗎?
目標陳述導致了優(yōu)勢和度量標準。一個簡單的事實是:如果不能表達實現目標將取得的優(yōu)勢,或者該優(yōu)勢不可度量,那么該目標就不應該成為規(guī)格說明書的一部分。231.產品的目標1a.該項工作的用戶問題或背景(已完成)1b.產品的目標內容:用一句話或很少的幾句話來說明“我們希望該產品做什么?”換言之,即開發(fā)該產品的真正原因。動機:項目如果沒有一個表述清晰、易于理解的目標,就會容易迷失在產品開發(fā)的沙漠中。產品必須提供某種業(yè)務優(yōu)勢。典型的優(yōu)勢是產品會增加組織在市場中的價值,減少運作的成本,或提供更好的顧客服務。不管是哪種優(yōu)勢,都應該是可度量的。開發(fā)該產品的優(yōu)勢或好處必須有某種客觀的度量,首先它讓您能確定該產品是否值得,其次讓您能確定提交的產品是否達到目標。例子:“我們希望對顧客通過電話下訂單訂購我們的產品做出立即和完整的響應?!边@個目標的度量將會表達為由于更好的響應帶來的營業(yè)額的增長,或顧客滿意度調查中分數值的上升。24請評價下面的這條業(yè)務目標
目標:改進我們進行業(yè)務的方式。25保持跟蹤目標在建立起產品的目標后,需要保持項目朝著目標在前進。質量關讓每項需求通過一系列的檢查。有一項檢查確保其相關性。產品的目標說明被作為評判相關性的準繩------如果需求不能以某種方式對目標做出貢獻,那么它就是無關的。當需求分析師和用戶對工作和建議的產品進行研究時,總是有可能忘記產品的目標。隨著越來越多的需求被發(fā)現,越來越多的令人興奮的功能被建議加入,有可能產品將不再能滿足最初的目標了,因此最初期望的業(yè)務優(yōu)勢將不能實現。26誰為它付錢:客戶IceBreaker產品的客戶是MackAndrews先生,SaltworksSystems公司的首席執(zhí)行官,MackAndrews先生已經同意為開發(fā)該產品投資,我們需要將這一點寫入需求規(guī)格說明書中:“該產品的客戶是MackAndrews先生,他是SaltworksSystems公司的首席執(zhí)行官。最終客戶會將該產品賣給其他國家的顧客??蛻粽f他一個人對批準產品范圍的變化負責?!?7誰為它付錢:客戶顧客:在產品開發(fā)完成后購買該產品。對IceBreaker來說,Northunmerland郡高速公路部門已經同意作為產品的第一個用戶。說明書中如下:
“該產品的顧客是Northunmerland郡高速公路部門,主管JaneTorville是顧客代表?!?8誰為它付錢:客戶SaltworksSystems公司對IceBreaker項目抱有更大的期望。他們預計,一個成功的除冰預報系統(tǒng)將可以賣給其他郡議會,如果在開發(fā)產品時抱有這種想法,那么需求規(guī)格說明書應該包括一個附加的顧客。表述如下:
“該產品的潛在顧客包括英國所有的郡議會,需求規(guī)格說明書的一份小結將提供所有郡議會的高速公路部門管理者,目的是發(fā)現附加的需求?!?9誰為它付錢:客戶
“該產品的潛在顧客包括英國所有的郡議會,需求規(guī)格說明書的一份小結將提供所有郡議會的高速公路部門管理者,目的是發(fā)現附加的需求?!?0顧客顧客應該由一個風險承擔者代表,積極參與項目開發(fā)。盡管可能存在很多用戶,但是需要有一個顧客代表。這可能是市場部門、來自用戶小組的一個代表、來自關鍵顧客一個高級用戶,或者是來自于我們組織內部的領域專家和易用性專家,或者是其他一些人。產品的實質、組織結構、顧客基礎和其他一些可能因素將決定誰將成為團隊里的顧客代表?!皡⒖假Y料:最初的Vaisala除冰系統(tǒng)是在1996年為Cheshire郡議會開發(fā)的,產品的設計者是ThermalMappingInternational公司和計算機部門,該產品目前已在英國所有郡實施,并擁有超過100個海外顧客?!?1用戶:理解他們用戶是最終操縱您的產品的人。確定用戶的目的是讓您能理解他們所做的工作。對他們越了解,就越能開發(fā)出合適的產品。不同的用戶對產品將提出不同的需求??偸菚嬖诤芏嗟臐撛谟脩?,還有很多可能會被遺忘或沒有被注意到。簡易的方法是:對可能使用產品的人列一份清單------一份分類清單。作為一個起點,列出人們將扮演的角色,這些角色與產品的關系。32風險承擔者和顧問風險承擔者是在產品中有既得利益的人------他們構建產品、管理產品、使用產品或以某種方式受到產品用途的影響。風險承擔者是對產品有一些要求的人,因此在需求收集活動中必須向他們咨詢。顧問是那些知道產品的一些需求的人,雖然產品不會影響到他們。首要的風險承擔者是?
用戶、客戶和顧客33其他風險承擔者管理者、業(yè)務主題相關者、開發(fā)者、檢查人員、市場力量、法律方面、反對者、專業(yè)團體、公眾意見、政府、特殊利益團體、技術專家、文化利益、相鄰系統(tǒng)342.客戶、顧客和其他風險承擔者2a.客戶是為開發(fā)付費的人,并將成為所提交產品的擁有者內容:這一項必須給出客戶的姓名。有多個姓名是允許的,但是如果姓名超過三個,本項就會失去意義。動機:客戶最終將接受該產品,因此必須對提交的產品滿意。如果產品是作為內部使用來開發(fā)的,客戶和顧客的角色由相同的人來擔當。如果您無法找到一個客戶的姓名,那么也許您就不應該構建該產品??紤]:當為外部用戶構建一個軟件包或產品時,有時客戶是市場部門。在這種情況下,來自于市場部門的一個人必須作為客戶,并記下姓名。352.客戶、顧客和其他風險承擔者2b.顧客是將花錢購買該產品的人內容:對內部使用的開發(fā)來說,顧客就是最終將決定是否接受該產品的人,這通常是將部署該產品的部門經理。給出此人的姓名。注意這可能與客戶相同。對于大量上市銷售的產品,顧客是那些將從貨架上購買產品的人。在這種情況下,應該以足夠詳細的方式定義目標顧客的特征,這樣需求分析師可以想象顧客并據此形成需求。請注意,對于某些大量上市銷售產品的開發(fā)工作來說,市場部門可能作為代理顧客,在這種情況下,應該確保市場人員盡可能地像最終顧客一樣給出詳細的描述。動機:顧客的角色將決定是否購買該產品,或是否部署它。構建的產品必須滿足顧客的目標,同時也要滿足客戶的限制條件。即使您的顧客是工作在客戶組織中其他部門的人,他們還是有權決定用還是不用新產品。362.客戶、顧客和其他風險承擔者2c.其他風險承擔者內容:其他一些人或組織的名稱,他們或者受到產品的影響,或者需要他們提供輸入信息以便構建產品。例如:風險承擔者可能包括:經理或項目;業(yè)務主題方面的專家;技術人員;系統(tǒng)開發(fā)者;市場人員;產品經理;測試和質量保證人員;審查員,諸如安全審查人員或審計人員;律師;易用性專家;您所處行業(yè)的專業(yè)人員。同時也請檢查上下文范圍圖中每個相鄰系統(tǒng)。在您收集需求的活動中,可能需要有人對相鄰系統(tǒng)做一些講解。動機:風險承擔者對產品有要求。不能找齊所有的風險承擔者會導致遺漏需求。373.產品的用戶3a.產品的用戶內容:產品的潛在用戶或操作員的列表。針對每種類型的用戶提供以下信息:用戶分類——如學校里的兒童、公路工程師,項目經理等;用戶工作的任務——總結用戶的職責;主題相關的經驗——用戶在業(yè)務方面的知識。按照新手、熟練工或專家來評定;技術經驗——描述用戶在相關技術方面的經驗,按照新手、熟練工或專家來評定。其他用戶特征——描述任何可能對產品需求和最終設計產生影響的其他特征。描述諸如以下問題:身體能力/障礙;智利能力/障礙;對工作的態(tài)度;對技術的態(tài)度;教育程度;語言技能;年齡段;性別等。383.產品的用戶3a.產品的用戶動機:用戶是為了完成工作而與產品交互的人。您越了解用戶,就越可能提交適合用戶工作方式的產品,符合用戶的隱喻和偏好。當您在確定產品的易用性需求時,應該考慮這些對用戶的描述。例子:用戶的來源可能很廣,有時甚至想象不到??紤]您的用戶可能是辦公室職員、商店店員、經理、接受過專門訓練的操作員;普通公眾;隨意的用戶;過路人;文盲;手工藝人;學生;測試工程師;外國人;兒童;律師;遠程用戶;用過電話線或因特網使用該產品的人,救險工作人員等,幾乎任何人都可以成為用戶。393.產品的用戶3b.對用戶設的優(yōu)先級內容:在每類用戶后面附上一個優(yōu)先級,這區(qū)別了用戶的重要性和優(yōu)先地位。按以下優(yōu)先級劃分用戶:關鍵用戶——這些用戶是對產品的后續(xù)成功至關重要的。給由這類用戶提出的需求更高的優(yōu)先級;次要用戶——他們將使用該產品,但他們的意見對產品的長期成功并無影響。如果次要用戶的需求和關鍵用戶的需求發(fā)生沖突,應該優(yōu)先考慮關鍵用戶的需求。不重要用戶——這類用戶的優(yōu)先級是最低的。這包括不常用的、未授權的和沒有技能的用戶,以及誤用了該產品的用戶。(這種類型的用戶所占的百分比,目的是評估對這類用戶要考慮多少)403.產品的用戶3b.對用戶設的優(yōu)先級動機:如果認為某些用戶對產品或組織更重要,那么應該寫明,因為這會影響您設計該產品的方式。例如:您需要知道,是否有一個很大的顧客曾經特別詢問過該產品,并且如果他們得不到想要的東西,結果會造成嚴重的業(yè)務損失。某些用戶可能被列為對產品沒有重要影響,這表示這些用戶會使用該產品,但在產品中的沒有被賦予利益。換言之,這些用戶不會抱怨,也不會對產品作出什么貢獻。來自于這些用戶的任何特殊需求都只有較低的設計優(yōu)先級。41需求限制條件解決方案限制條件項目限制條件424.需求限制條件4a.解決方案的限制條件內容:此處明確了限制條件,它們規(guī)定了解決問題必須采取的方式。您可以認為它們的指令性的解決方案。仔細描述該解決方案,以及測試是否符合的度量標準。如果可能,您應該解釋使用該解決方案的原因。動機:動機是確定必須成為最終產品一部分的限制條件。出于某些原因,您的客戶、顧客或用戶可能有一些設計偏好。如果不滿足這些偏好,您的解決方案將不會被接受。例子:“產品必須使用目前的雙向無線電系統(tǒng)與卡車中的駕駛員通信?!?、”產品必須使用WindowsNT操作系統(tǒng)”、”產品必須是一個手持設備。”434.需求限制條件4a.解決方案的限制條件考慮:我們希望定義一個邊界,在此邊界范圍內我們可以解決問題。請注意,任何人如果有在某項技術方面的經驗,都會傾向于以該項技術的角度看需求。這種傾向性導致人們出于錯誤的原因強加一些解決方案限制條件,假定限制條件很容易就潛入到需求規(guī)格說明書中。如果您強加了一些限制條件,帶來的危險性就是您將失去得到問題的最佳解決方案的自由。解決方案限制條件應該只限于那些絕對不可能商榷的解決方案。444.需求限制條件4b.實現環(huán)境。此處描述產品將被實施的技術環(huán)境和物理環(huán)境,包括自動的、機械的、組織的和其他設備。這包括了非人力相鄰系統(tǒng)。4c.伙伴應用。此處描述那些不屬于產品的一部分的應用程序,但產品必須與這些應用程序協(xié)作。4d.商業(yè)上架銷售軟件。此處描述實現產品需求必需使用的COTS。4e.預期的工作場地環(huán)境。此處描述用戶工作和使用該產品的工作場地。此處描述任何可能對產品設計產生影響的工作場地特征。4f.開發(fā)者構建該產品需要多長時間。最后期限或商業(yè)機會的時限。4g.該產品的財務預算是多少。以金錢的形式或可得資源的形式說明。45詞匯表------數據字典的基礎名稱很重要。在啟動會議上開始收集并記錄項目將用到的一些名稱。每個項目或產品都有一些特別的名稱。這些是我們需要捕獲的術語,同時也要得到它們公認的含義。當沒有一個集中的詞匯表時,我們總是會吃驚地發(fā)現將導致多少錯誤。我們也發(fā)現好的名稱對交流思想是很有效的。這方面花一些功夫是值得的,這將保證今后在項目中能順利地進行溝通。將來的詳細系統(tǒng)分析將用這些詞匯作為基礎來形成完整的數據字典。46詞匯表請對IceBreaker項目中的“氣象站”一詞進行定義。47詞匯表“氣象站”:一組硬件,能夠收集并傳遞道路溫度、空氣溫度、濕度和降水量數據。氣象站在Northumberland郡安裝了八處。485.命名標準和定義定義項目中使用到的所有術語,包括同義詞。內容:一個字典,包括在需求規(guī)格說明書中使用的所有名稱的含義。這個字典應該使用您的組織或行業(yè)使用的標準名稱。這些名稱也應該反映出在工作領域中當前使用的術語。該字典包括項目中用到的所有重要名稱。請仔細地選擇名稱,以避免傳達不同的、不期望的含義。為每個名字寫下簡明扼要的定義,這些定義必須經過相應的風險承擔者同意。動機:名稱十分重要,它們能反映含義。如果定義得好,可以省掉數小時的解釋。在項目的這個階段注意名稱將有助于盡早澄清誤解。在需求階段得到的字典將在整個項目中使用并不斷補充。例子:除冰卡車——在冬季,將除冰物質散布到道路上的運輸工具49ATM案例的數據詞典(供參考):賬戶:某銀行的單個賬戶,交易要依靠賬戶來進行。賬戶可以有許多不同的種類,例如經常賬戶和儲蓄賬戶。一個客戶可以持有多個賬戶。ATM:允許客戶使用現金卡作為身份證明來進行交易的柜臺。ATM與客戶進行交互,收集交易信息,給中心計算機發(fā)送交易信息進行校驗和處理,給用戶支付現金。我們假定ATM不需要獨立于網絡運轉。銀行:擁有客戶賬戶的金融機構,發(fā)放現金卡,通過ATM網絡授權訪問帳戶。50設定范圍我們設定范圍的方法是把一塊工作(我們要研究的工作)與另一些工作(圍繞我們的工作)分開。記住,你碰到的任何一項工作都或多或少與其他的工作有聯系。51設定范圍為了確定何處是一項工作的結束,另一項工作開始的地方,請考慮工作職責。也就是說,我的這部分工作要負責得到什么,相鄰的工作要負責接收什么。我的工作需要從相鄰的工作得到什么才能開始自己的職責?(如下頁圖示)52影響范圍設定的因素:產品目標和其他限制條件設定工作的范圍意味著決定在確定產品的需求之前有多少工作要研究。當考慮哪部分是本產品的工作,哪部分是其他工作時,請牢記產品的目標。它限制了哪些應該是我們的工作范圍之內的,哪些放在工作范圍之外是安全的。但必須確保在工作范圍之內的工作足夠滿足產品的目標??傻玫降念A算和允許的開發(fā)時間也會影響項目的范圍。53影響范圍設定的因素:感興趣的領域感興趣的領域是與主題相關的領域。我們要研究的工作來自于一個主題或多個主題。根據本項目的背景描述,請找出該項目涉及的領域。54背景描述“道路在冬季結冰,這種結冰路面將引發(fā)道路交通事故,使人喪生。我們需要能夠預測何時道路可能結冰,然后我們的車路可以及時調度除冰卡車來防止道路結冰。除了氣象預報之外,可以使用地區(qū)的熱象圖和安裝在道路上的氣象儀發(fā)出的道路溫度數據,我們希望新的系統(tǒng)能提供更精確的冰情預報。這將使我們能比現在更及時地進行除冰處理,從而減少道路交通事故。我們也希望能消除對道路不加選擇的處理,因為那樣會浪費除冰化合物,并破壞環(huán)境?!?5設定工作上下文范圍工作上下文范圍定義了我們要研究的工作,以及工作周圍的其他系統(tǒng)??梢园阉胂蟪伞澳墓ぷ髀氊熓鞘裁??其他人的工作職責是什么?”我們通過創(chuàng)建上下文范圍的模型來展示這種指責上的劃分,上下文范圍模型表現了工作和與之相連的工作56設定工作上下文范圍讓我們從相鄰系統(tǒng)看起,它們是圍繞在我們的工作周圍的一些工作。它們可以從產品的目的、背景信息和感興趣的領域推導出來。針對每個領域,問以下問題:是否存在一個物理實體代表這個領域?這個領域提供數據或政策,還是都提供?我將從何處得到關于該領域的信息?578.產品的范圍內容:上下文范圍圖確定了為了構建該產品您需要調查的工作。請注意這包括的范圍超出了目標產品。如果我們不了解產品將支持的工作,就很少有機會構建能與它的環(huán)境無縫集成的產品。上下文范圍圖說明了需要理解的其他主題相關的領域(系統(tǒng)、人和組織)。相鄰系統(tǒng)與工作上下文范圍之間的接口說明了為什么我們對相鄰系統(tǒng)有興趣。動機:動機是清楚地定義我們打算研究的工作的邊界。工作活動與相鄰系統(tǒng)之間的信息流精確地定義了工作系統(tǒng)的職責和相鄰系統(tǒng)的職責。58卡車車庫預測和調度道路除冰的工作氣象站氣象預報局道路工程熱像圖提供者59該產品的成本會是多少?在這個階段上下文范圍內已經提供了相當多的可度量的方面,因此沒有理由不進行度量。度量的要點是理解工作的大小。盡管這個階段還不知道精確的產品邊界,但是度量工作可以讓你對任務大小有個了解,以決定是否要進行該項目。如果連基本的度量工作都不做,那么任何預測必定是建立在猜測的基礎之上。60風險您知道問題有可能會發(fā)生,那么為什么不注意它們?一些破壞性最大的風險:不準確的度量標準;測量工作做得不夠;過重的時間進度壓力;管理層玩忽職守;不準確的費用估計;銀彈綜合癥;蔓延的用戶需求;低質量;低生產效率;61風險可能與本階段最有關系的是需求相關的風險。例如:產品沒有清晰和可度量的目標;缺少客戶參與;缺少風險承擔者參與;在需求上很少或不能達成一致;需求蔓延;鍍金需求;沒有需求對應的度量方式;快速變化的需求;需求變更控制不夠;新進入未知的業(yè)務,需求不確定。62繼續(xù)還是終止?在啟動會議階段得到的提交產物為評估項目的可行性提供了基礎??紤]以下問題,決定是否終止。產品的目標清楚嗎?目標是可度量的,可行的嗎?有可能達到項目的目標嗎?能就工作的上下文范圍取得一致同意的意見嗎?高可能性、后果嚴重的風險是否讓項目變得不可行?考慮產品帶來的好處,它的費用是否合理?風險承擔者愿意參與嗎?是否有足夠的理由投資該項目?是否有足夠的理由不投資該項目?在按下項目的啟動的按鈕之前,還需要進行進一步的調查嗎?63啟動會議替代方案您不必一定要舉行一個會議,但您需要知道會議要提交的那些事實。64小結項目啟動階段是一個了解認知的過程。了解項目的限制條件。啟動階段提供了知識。啟動階段提交的產物作為后續(xù)活動的輸入信息,它們非常有價值。65用例------需求獲取的有效方法66建模公式67整個軟件過程就是用例驅動的。用例驅動軟件生產過程是非常有道理的。要解決問題領域就要歸納出所有必要的抽象角度(用例),為這些用例描述可能的特定場景,并找到實現這些場景的事物、規(guī)則、行為。再換個說法,如果我們找到的那些事物、規(guī)則、行為實現了所有必要的用例,那么問題領域就解決了??傊?,實現用例是必須做的工作,一旦用例實現了,問題領域就解決了。這就是用例驅動方法的原理。用例驅動68只見樹木不見森林。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。UML。。。。。。。。。。。。。。。。。。。。。。。。(建模)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。69。。。。。。。。。。。。。。。。。。。UML。。。。。。。。。。。。。。。。。。。系統(tǒng)軟件過程站在軟件過程的角度70為什么需要UML?提到UML我們必須先搞清楚一個問題……71你贊同以下哪幾種說法?面向對象是現代科學發(fā)展到一定程度才出現的研究成果;面向過程和面向對象都是一種軟件技術;面向過程和面向對象是一個古已有之的認識論的問題;世界的本質是由對象組成的,平時看上去相互無關的獨立對象在不同的驅動力下和規(guī)則下體現出不同的運動過程;世界的一切都不是孤立的,它們相互緊密聯系在一起,缺一不可,相互影響,相互作用,并形成一個個具有嚴格因果律的小系統(tǒng),而更小的系統(tǒng)組成了更大的系統(tǒng),所有小系統(tǒng)之間的聯系也是緊密不可分割的。面向對象方法具有更強大的抽象能力。UML是面向對象方法的具體化和符號。學習UML的過程就是掌握面向對象思想和方法的過程。相對學習UML符號而言掌握它們背后的方法和思想是更為重要的;面向過程和面向對象都是人們認識世界的方法。面向對象就是指使用一系列面向對象程序設計語言的軟件開發(fā)方法。72。。。。。。。。。。。。。。。。。。。UML。。。。。。。。。。。。。。。。。。。系統(tǒng)面向對象還是面向過程?軟件過程73什么是面向對象?(ObjectOriented,簡稱OO)
面向對象軟件開發(fā)方法描述和理解問題域的基本思想是,對問題域進行自然分割,以更接近人類思維的方式建立問題域模型,從而使生產出的軟件盡可能直接地描述現實世界,具有更好的可維護性,能適應用戶需求的變化。74什么是面向對象?(ObjectOriented,簡稱OO)面向對象建模與設計是使用真實世界的概念模型來思考問題的一種方法。其基本元素是“對象”。
對象既包含數據結構,又包含行為。對于理解問題、與應用領域專家交流、建模企業(yè)級應用、編寫文檔、設計程序和數據庫來說,面向對象模型都非常有用。75什么是面向對象?(ObjectOriented,簡稱OO)對于軟件來說,面向對象這個術語的意思是,把軟件組織成一系列離散的、合并了數據結構和行為的對象。
76OO方法的幾個特征
1.標識:意指數據被量化成稱為對象(object)的離散的、可辨識的實體。
在真實世界中,對象只是一種簡單的存在,但在編程語言中,每個對象都有一個唯一的句柄,借助這個句柄就可以引用對象。
77OO方法的幾個特征
2.分類:指的是有著相同的數據結構(屬性)和行為(操作)的對象被分組為一個類。
類(class)是什么?答:A)是一種抽象;B)是單個對象組成的無限集合;
78每個對象都是該類的一個實例(instance)
自行車對象
抽象成-自行車類Mike的自行車屬性Brian的自行車車架尺寸Mary的自行車車輪尺寸……齒輪數材料操作變速移動修理79再一個例子
多邊形對象
抽象成-多邊形類屬性頂點邊界顏色填充顏色
操作繪制擦除移動80OO方法的幾個特征
3.繼承:指的是多個類基于一種分層關系,共享類間屬性和操作(合稱特征)。父類(super-class)擁有子類(subclass)要精煉和詳細指定的通用信息。子類不需要重復其父類的特征。
81OO方法的幾個特征
4.多態(tài):是指對于不同的類來說,相同的操作會有不同的動作。操作是對象執(zhí)行或被執(zhí)行的一個過程或轉換。
82OO主題
有幾個主題在OO方法中無處不在。盡管這幾個主題并不是OO系統(tǒng)所特有的,但OO系統(tǒng)對他們的支持卻極為出色。83OO主題---1.抽象抽象(abstraction)使我們可以專注于應用程序最本質的那些方面,同時忽略細節(jié)。這意味著在確定如何實現功能之前,要先關注對象是什么,做了什么。使用抽象機制,可以避免不成熟的細節(jié)承諾。對于OO開發(fā)來說,抽象的能力是最重要的一項技能。84OO主題---2.封裝封裝(encapsulation)將對象的外部因素(可以被其他對象訪問)與內部實現細節(jié)(其他對象不可見)分離開來。封裝阻止程序的組成部分過于依賴,如果那樣的話,很小的變化也會引起巨大的漣漪效應。
封裝不是OO語言所特有的,但將數據結構和行為組織在一個實體中,這樣的封裝比以前的語言---例如Fortran、Cobol和C更干凈、更有力。85OO主題---3.共享
OO方法有利于不同層次上的共享。繼承數據結構和行為使得子類可以共享通用代碼。通過繼承完成共享是OO語言的一個主要的優(yōu)點。比節(jié)省代碼量更重要的是概念的清晰性,認識到不同的操作實行的實際上都是相同的事。這樣就減少了必須理解和分析的不同情形的數量。86OO主題---4.強調對象的本質
OO方法強調對象是什么,而不是如何使用它。對象的用法依賴于應用程序的細節(jié),經常會在開發(fā)過程中發(fā)生變化。隨著需求的演化,對象提供的特征會比使用它的方法來得更加穩(wěn)定,因此,構建在對象結構上的軟件系統(tǒng)最終也會比較穩(wěn)定。與功能分解方法學相比,OO開發(fā)在數據結構上投入了較大精力,而較少關注過程結構。87OO主題---5.協(xié)同(synergy)標識、分類、多態(tài)和繼承都是OO語言的特色。這些概念中的每一個都可以分開使用,但結合在一起,它們就會互相促進,互為補充。強調對象的基本特性會迫使開發(fā)者更加仔細和深入地思考對象是什么,做了些什么。這與關注重心只在數據和操作上的用法相比,前者所生成的最終系統(tǒng)會更加干凈、更加通用和更加健壯。88關于OO開發(fā)有效性的證據
OO開發(fā)工作開始于GE研發(fā)中心的內部應用程序。開發(fā)者用OO來開發(fā)編譯器、圖形、用戶界面、數據庫、oo語言、CAD系統(tǒng)、元模型、控制系統(tǒng)以及其他一些應用。OO模型還被用于評述結構不良、難以理解的程序。
自從20世紀90年代中期以來,OO從GE擴展到了全世界?,F在,OO不能被認為是一種時髦的或是一種純理論的方法了,它已經是計算機科學和軟件工程的主流。89抽象層次是面向對象方法中極其重要且非常難以把握的技巧;要想建立好模型,就需學會站在不同的抽象層次考慮問題。抽象層次越高,被屏蔽(或者說封裝)的信息也就越多,信息量越少也就越容易理解和處理。抽象層次90統(tǒng)一過程一般抽象層次91什么時候選擇什么樣的層次以及總共抽象多少層?------用例粒度抽象層次與邊界的選擇總是相生相伴------邊界抽象層次相關的問題92視圖是UML建模中另一個非常重要的概念;視圖用于組織UML元素,表達出模型某一方面的含義,視圖的準確應用是建立好模型的一個重要組成部分;目標對象的每一個屬性都是它的一個視圖。例如:汽車的大小、重量、外觀、性能、安全等。只有將必要的方面都用視圖展現出來,觀察者才會真正理解這個事物。UML里定義了用例圖、類圖、對象圖、包圖、活動圖等不同的視圖。何謂視圖?93觀察者會抱怨視圖給出的信息不是很清晰;希望從更多的角度來查看事物的信息。這就引出了視圖中另一個被很多人忽視的概念------
視角給出事物所有屬性的視圖就足夠了嗎?94不同的人或者同一個人出于不同的目的會對同一個信息從不同的角度來審視和評估;不同的角度展示了同樣信息的不同認知角度以便于理解。例如:汽車的外觀視圖。視角:是人們觀察事物的角度95適當的視角給適當的人。軟件干系人很多,有客戶、系統(tǒng)分析員、架構師、設計師、開發(fā)人員、測試人員、項目經理等,他們對同樣信息的審視角度是不同的。錯誤的選擇視角常常導致需求改來改去難以確定。恰當的視角96為特定的信息選擇正確的視圖;為特定的干系人展示正確的視角。也就是要經常思考下面兩個問題:應該為哪些軟件信息繪制哪些視圖?應該為哪些干系人展示哪些視角?視圖和視角對建立一個好的模型很重要97一切都是對象;對象都是獨立的;對象都具有原子性;對象都是可抽象的;對象都有層次性。對象分析方法98對象的獨立性99對象分析方法總結100構造類型(stereotype)參與者用例邊界業(yè)務實體包分析類設計類關系組件節(jié)點UML核心元素101構造類型(stereotype):也稱為版型、類型。概念:是對一個UML元素基礎定義的擴展,在同一個元素基礎定義的基礎上賦予特別的含義,使得這個元素適用于特定的場合。例如:用例的構造類型有“業(yè)務用例”、“業(yè)務用例實現”等;“類”有“邊界類”、“實體類”、“控制類”等。意義:構造類型只是UML的一種擴展手段,是在建模的不同階段區(qū)分視圖的不同點。例如:“業(yè)務用例”就是專門應用在業(yè)務建模場合的。構造類型也可以自己定義。UML核心元素1022.參與者(actor):定義:actor是在系統(tǒng)之外與系統(tǒng)交互的某人或某事物。如圖所示:UML核心元素參與者位于邊界之外;參與者可以非人。103發(fā)現參與者:參與者的一個重要來源是涉眾,從涉眾中找出那些直接對系統(tǒng)發(fā)出動作,或直接從系統(tǒng)中接收反饋的涉眾。在查找參與者的過程中,可以詢問以下問題以幫助確定參與者:誰負責提供、使用或刪除信息?誰將使用此功能?誰對某個特定功能感興趣?在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年鄉(xiāng)村醫(yī)生考試題庫:農村慢性病管理與慢性病社區(qū)健康促進政策效果評價試題
- 2025年小學語文畢業(yè)升學考試全真模擬卷(語文口語表達與寫作技巧測試試題)
- 2025年專升本藝術概論考試模擬卷:藝術理論前沿熱點現象研究
- 2025年婚姻家庭咨詢師職業(yè)技能鑒定試卷:婚姻家庭咨詢案例分析:家庭心理輔導
- 2025年注冊會計師考試《會計》套期會計真題模擬試題集解析
- 2025年安全生產考試題庫(建筑施工安全)案例分析試題
- 分布式光伏安裝主合同(知識研究版本)
- 科學世界深度解析
- 2025年ICU護士工作總結
- 考評員工作流程
- 2025年阜陽幼兒師范高等專科學校單招職業(yè)技能考試題庫學生專用
- 2025年安徽工業(yè)經濟職業(yè)技術學院單招職業(yè)適應性測試題庫附答案
- 2025湖北市政建設集團有限公司管理崗位公開競聘14人筆試參考題庫附帶答案詳解
- 3.13跨學科主題活動-在線學習小能手 課件 川教版(2024)三年級下冊信息科技
- 礦產勘探數據分析-深度研究
- 2024年07月江蘇銀行招考筆試歷年參考題庫附帶答案詳解
- 2023中華護理學會團體標準-注射相關感染預防與控制
- 小學數學人教四年級下冊圖形的運動軸對稱教案詳案
- 招貼設計 課件完整版
- 住宅房屋樓層修正系數表
- 高層住宅采暖施工方案有地暖
評論
0/150
提交評論