《《UML面向?qū)ο蠼;A(chǔ)》需求建?;A(chǔ)與實例課件》由會員分享,可在線閱讀,更多相關(guān)《《UML面向?qū)ο蠼;A(chǔ)》需求建?;A(chǔ)與實例課件(40頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,UML,面向?qū)ο蠼;A(chǔ),需求建?;A(chǔ)與實例,知識圖譜,Agenda,什么是需求,如何使用,UML,對需求建模,需求建模實例,本章小結(jié),Agenda,什么是需求,如何使用,UML,對需求建模,需求建模實例,本章小結(jié),需求,導(dǎo)致項目失敗的罪魁禍首,根據(jù),Standish Group,對,23000,個項目進行的研究結(jié)果表明,,28%,的項目徹底失敗,,46%,的項目超出經(jīng)費預(yù)算或者超出工期,只有約,26%,的項目獲得成功。
2、,而在于這些高達,74%,的不成功項目中,有約,60%,的失敗是源于需求問題。,也就是說,有近,45%,的項目最終因為需求的問題最終導(dǎo)致失敗。,我們在哪重重摔了一跤,在,Standish Group,的報告中總結(jié)了導(dǎo)致項目失敗的最重要的,8,大原因中,有,5,個與需求相關(guān):,不完整的需求;,沒有用戶的介入;,不實際的客戶期望;,需求和規(guī)范的變理;,提供了不再需要的,軟件需求曾經(jīng)讓我們?nèi)绱死仟N,需求的定義,需求層次,內(nèi)容,業(yè)務(wù)需求,反映組織機構(gòu)或客戶對系統(tǒng)、產(chǎn)品高層次的目標要求。通常問題定義就是業(yè)務(wù)需求,用戶需求,描述用戶使用產(chǎn)品必須要完成什么任務(wù),怎么完成,通常是在問題定義的基礎(chǔ)上進用戶訪談、
3、調(diào)查,對用戶使用的場景進行整理,從而建立從用戶角度的需求,系統(tǒng)需求,從系統(tǒng)的角度來說明軟件的需求,它就包括了用特性說明的功能需求,質(zhì)量屬性以及其它非功能需求,還有設(shè)計約束,需求工程,需求開發(fā)活動,需求開發(fā)與需求管理的分界線,需求捕獲,明確業(yè)務(wù)需求:業(yè)務(wù)需求是整個系統(tǒng)最為宏觀層面的東西,也就是“項目的目標”;通常來說,業(yè)務(wù)需求是構(gòu)建在“項目發(fā)起人”的腦子里的;“業(yè)務(wù)需求”可以分為“產(chǎn)品,/,項目目標”和“子目標描述”兩個方面的內(nèi)容,理解業(yè)務(wù)流程:,-,若項目較大或者業(yè)務(wù)較陌生:應(yīng)進行業(yè)務(wù)建模;,-,如果業(yè)務(wù)較陌生:聘請領(lǐng)域?qū)<遥I(lǐng)域培訓(xùn);,-,如果術(shù)語較多,易于混淆:業(yè)務(wù)術(shù)語表,-,無論如何,都
4、應(yīng)該建立跨部門職能流程圖,需求捕獲,明確用戶需求:,-What,(收集什么信息),-Where,(從哪收集),-How,(如何收集),捕獲技術(shù),優(yōu)點,缺點,用戶訪談,直接有效、靈活、深入,主要技術(shù),占用時間長,信息面窄、較片面,用戶調(diào)查,面廣、可以獲得更多反饋,不夠深入,容易形式主義、失真,現(xiàn)場觀摩,容易建立直接的認識,消耗時間長,易失真,文檔考古,能夠詳細、直觀對數(shù)據(jù)流細節(jié)進行分析,易陷入文山書海,甚至產(chǎn)生誤導(dǎo),聯(lián)合開發(fā),直接的頭腦風暴,可以擊破需求盲點,成本高,需要較高的控制技巧,Agenda,什么是需求,如何使用,UML,對需求建模,需求建模實例,本章小結(jié),用例模型,組織需求,用例特性,
5、-,用例描繪的場景(或事件流)展示了參與者如何使用系統(tǒng)。這都應(yīng)基于系統(tǒng)要完成的任務(wù)及其重要性來決定如何確定主要場景、次要場景,以及需要多少場景,|-,用例的粒度問題很關(guān)鍵,既不能太大也不能夠太小,測試項,含義,說明,W,What to do,用例是否描述了應(yīng)用做什么?而非如何做?,A,Actors point of view,用例的描述是否體現(xiàn)了參與者的視角?,V,Value for the actor?,用例是否對參與者有價值?,E,Entire scenario,用例描述時間流是否為一個完整的場景?,用例模型,組織需求,用例建模工作流,-,識別參與者,-,尋找用例,-,描述參與者和用例的交
6、互方式,-,用包來組織用例和參與者(可選),-,通過用例圖表示用例模型,-,細化用例模型,-,評估用例模型,類模型,概念模型,概念模型也稱為領(lǐng)域模型,通常把業(yè)務(wù)建模生成的稱為領(lǐng)域模型,而無專門的業(yè)務(wù)建模生成的稱為概念模型,建立概念模型的目的是幫助開發(fā)團隊理解問題領(lǐng)域的各種概念、各種名詞、以及它們之間的各種關(guān)系,它的主要表現(xiàn)方式就是類圖,在構(gòu)建這個模型時,最主要的工作是找出相關(guān)的類,然后明明類之間的關(guān)聯(lián)關(guān)系,必要時加入一些多重性描述和業(yè)務(wù)規(guī)則約束,交互模型,描述事件流,在需求階段的交互模型是一個起點,隨著分析和設(shè)計工作的開展,該模型將不斷的精化和修正,可借助,Robustness,分析來推導(dǎo)出交
7、互模型,交互模型中一般只包含概念模型中的實體對象和分析模型中的邊界對象,其目標只是幫助分析人員理清整個事件流,而控制對象、設(shè)計類的引入都將在后續(xù)階段進行,并非一定要為用例模型中的所有用例構(gòu)建交互模型,關(guān)鍵在于“是否需要”,可借助狀態(tài)圖表示一些對象狀態(tài)的變遷及用戶界面設(shè)計,還可以借助活動圖來理解活動與活動之間的控制流,Agenda,什么是需求,如何使用,UML,對需求建模,需求建模實例,本章小結(jié),確定業(yè)務(wù)需求,確定業(yè)務(wù)需求,確定業(yè)務(wù)需求,為開發(fā)人員提供一個,PSP,工具,簡化時間記錄工作;同時提供數(shù)據(jù)使用的工具,幫助開發(fā)人提高估算能力。,需求捕獲,需求捕獲,獲取需求特性表,編號,特性,FEAT0
8、1,研發(fā)經(jīng)理能夠創(chuàng)建項目、指定或修改項目經(jīng)理、刪除尚未分配工作任務(wù)的項目,FEAT02,項目經(jīng)理可以對項目設(shè)置工作包,工作包允許多級嵌套,它只用來組織工作任務(wù),FEAT03,項目經(jīng)理可以為開發(fā)人員指派工作任務(wù),工作任務(wù)屬于特定的工作包,FEAT04,項目經(jīng)理在分配工作任務(wù)時,能夠查閱開發(fā)人員的日程安排表,可以按開發(fā)人員查詢、也可按日程查詢,FEAT05,開發(fā)人員接到任務(wù)時,通過系統(tǒng)填寫計劃時間(計劃開始時間和計劃結(jié)束時間),項目經(jīng)理確認后,更新日程安排表,FEAT06,開發(fā)人員可以查詢相近工作任務(wù)的歷史數(shù)據(jù)(估算數(shù)據(jù)、實際數(shù)據(jù)),FEAT07,開發(fā)人員任務(wù)執(zhí)行將超計劃時,應(yīng)報告項目經(jīng)理,項目經(jīng)
9、理通過系統(tǒng)更新其日程表,FEAT08,當任務(wù)完成之后,項目經(jīng)理負責,Close,任務(wù),并填入實際的完成情況(,KLOC,、實際結(jié)束時間),FEAT09,開發(fā)人員可以隨時記錄自己的時間,提供“開始計時”、“暫停計時”、“停止計時”,在停止時,填入任務(wù)編號(在線則選擇)、工作關(guān)鍵字(以逗號分隔的多個),自動生成開始時間、暫停時間、停止時間、總時長、有效時長(總時長,-,中斷時長),FEAT10,開發(fā)人員可以根據(jù)任務(wù)編號、關(guān)鍵字、起止時間進行分類組合查詢與統(tǒng)計,FEAT11,時間記錄程序會自動連接服務(wù)器,完成時間日志上傳的工作,未能連接服務(wù)器,則在本機暫存時間日志,FEAT12,項目經(jīng)理可以按項目、
10、任務(wù)、關(guān)鍵字統(tǒng)計實際工作時長、產(chǎn)能,FEAT13,研發(fā)經(jīng)理及管理層可以按個人、任務(wù)、項目、關(guān)鍵字查看工作時長、統(tǒng)計產(chǎn)能,建立概念模型,發(fā)現(xiàn)類,研發(fā)經(jīng)理,項目,項目經(jīng)理,工作任務(wù) 工作包,開發(fā)人員,日程安排表,計劃時間,歷史數(shù)據(jù) 估算數(shù)據(jù),實際數(shù)據(jù),任務(wù)編號 工作關(guān)鍵字 開始時間 暫停時間,停止時間 總時長 有效時長,服務(wù)器 產(chǎn)能,管理層,時間日志,項目 工作任務(wù) 工作包 開發(fā)人員,日程安排表 時間日志,建立概念模型,關(guān)聯(lián)分析,建立概念模型,職責分析,建立用例模型,識別參與者,建立用例模型,合并特性獲得用例,參與者,特性,用例,開發(fā)人員,FEAT05.,開發(fā)人員接到任務(wù)時,應(yīng)通過系統(tǒng)填寫計劃時間
11、(計劃開始時間和計劃結(jié)束時間),項目經(jīng)理確認后,更新日程安排表,UC01.,填寫任務(wù)計劃,FEAT06.,開發(fā)人員可以查詢相近工作任務(wù)的歷史數(shù)據(jù)(估算數(shù)據(jù)、實際數(shù)據(jù)),FEAT10.,開發(fā)人員可以根據(jù)任務(wù)編號、關(guān)鍵字、起止時間進行分類組合查詢與統(tǒng)計,UC02.,查詢歷史任務(wù)數(shù)據(jù),(UC01,的擴展,),FEAT09.,開發(fā)人員可以隨時記錄自己的時間,提供“開始計時”、“暫停計時”、“停止計時”,在停止時,填入任務(wù)編號(在線則選擇)、工作關(guān)鍵字(以逗號分隔的多個),自動生成開始時間、暫停時間、停止時間、總時長、有效時長(總時長,-,中斷時長),FEAT11.,時間記錄程序會自動連接服務(wù)器,完成時
12、間日志上傳的工作,未能連接服務(wù)器,則在本機暫存時間日志,UC03.,記錄時間日志,建立用例模型,合并特性獲得用例,項目經(jīng)理,FEAT02.,項目經(jīng)理可以對項目設(shè)置工作包,工作包允許多級嵌套,它只用來組織工作任務(wù),UC04.,設(shè)置工作包,FEAT03.,項目經(jīng)理可以為開發(fā)人員指派工作任務(wù),工作任務(wù)屬于特定的工作包,FEAT04.,項目經(jīng)理在分配工作任務(wù)時,能夠查閱開發(fā)人員的日程安排表,可以按開發(fā)人員查詢、也可按日程查詢,UC05.,分配工作任務(wù),UC5A.,查看日程安排,(,擴展用例,),FEAT07.,開發(fā)人員任務(wù)執(zhí)行將超計劃時,應(yīng)報告項目經(jīng)理,項目經(jīng)理通過系統(tǒng)更新其日程表,UC06.,更新日
13、程表,FEAT08.,當任務(wù)完成之后,項目經(jīng)理負責,Close,任務(wù),并填入實際的完成情況(,KLOC,、實際結(jié)束時間),UC07.,關(guān)閉工作任務(wù),FEAT12.,項目經(jīng)理可以按項目、任務(wù)、關(guān)鍵字統(tǒng)計實際工作時長、產(chǎn)能,UC08.,統(tǒng)計項目產(chǎn)能,研發(fā)經(jīng)理,FEAT01.,研發(fā)經(jīng)理能夠創(chuàng)建項目、指定或修改項目經(jīng)理、刪除尚未分配工作任務(wù)的項目,UC09.,管理項目信息,管理層,FEAT13.,研發(fā)經(jīng)理及管理層可以按個人、任務(wù)、項目、關(guān)鍵字查看工作時長、統(tǒng)計產(chǎn)能,UC10.,統(tǒng)計團隊產(chǎn)能,建立用例模型,繪制用例圖,建立用例模型,簡要描述用例,用例編號,UC01,用例名稱,填寫任務(wù)計劃,用例概述,開發(fā)
14、人員對項目經(jīng)理安排給自己的工作任務(wù)進行計劃,填入計劃開始時間和計劃完成時間。,主參與者,開發(fā)人員,補充說明,在填入計劃開始時間和計劃完成時間時,開發(fā)人員可以查詢與該任務(wù)的關(guān)鍵字相關(guān)的歷史任務(wù)的數(shù)據(jù)。,建立用例模型,劃分用例優(yōu)先級,優(yōu)先級,用例,說明,1,UC11.,登錄系統(tǒng),系統(tǒng)使用的基礎(chǔ),并且可復(fù)用原有資源,UC09.,管理項目信息,UC04.,設(shè)置工作包,UC05.,分配工作任務(wù),UC01.,填寫任務(wù)計劃,任務(wù)管理的完整流程,是記錄時間日志的基礎(chǔ),UC03.,記錄時間日志,系統(tǒng)核心功能,2,UC07.,關(guān)閉工作任務(wù),只是對任務(wù)信息進行更新,重要性次之,UC06.,更新日程表,UC5A.,查
15、看日程安排,對日程安排進行優(yōu)化,使任務(wù)安排合理化,3,UC02.,查詢歷史任務(wù)數(shù)據(jù),UC08.,統(tǒng)計項目產(chǎn)能,UC10.,統(tǒng)計團隊產(chǎn)能,對系統(tǒng)記錄的時間記錄進行有效的利用,必須有前面的信息才能夠開發(fā),UC12.,管理用戶,前期可以通過直接往數(shù)據(jù)庫中寫值的方式進行使用,最后提供界面操作即可,建立用例模型,詳細描述用例,用例編號,UC03,用例名稱,記錄時間日志,用例概述,開發(fā)人員可以隨時記錄自己的時間,提供“開始計時”、“暫停計時”、“停止計時”等功能,在停止時,填入任務(wù)編號(在線則選擇)、工作關(guān)鍵字(以逗號分隔的多個),自動生成開始時間、暫停時間、停止時間、總時長、有效時長(總時長,-,中斷時
16、長)。,主參與者,開發(fā)人員,前置條件,用戶進入“記錄時間日志”程序,后置條件,將本次時間日志存入數(shù)據(jù)庫,基本事件流,步驟,活動,1,系統(tǒng)顯示“開始”、“暫?!焙汀巴V埂卑粹o,但僅“開始”可用,2,用戶點擊“開始”,系統(tǒng)記錄開始時間,并將“開始”置為不可用,使“暫?!焙汀巴V埂卑粹o可用,3,用戶點擊“停止”按鈕,系統(tǒng)記錄停止時間,并統(tǒng)計暫時時間、暫停次數(shù)、總時長、有效時長,并要求用戶選擇任務(wù)編號、輸入工作關(guān)鍵字和相關(guān)信息。填寫完成后,點擊確定,用例完成。,擴展事件流,3a,在此期間,若用戶點擊“暫?!卑粹o,系統(tǒng)則記錄暫停開始時間,并使暫停次數(shù)增加,1,次,并使“暫停”按鈕變?yōu)椤盎謴?fù)”,使“停用”按鈕不可用,3a1,當用戶點擊“恢復(fù)”按鈕,用當前時間減去暫停開始時間得到本次暫停時間,并累加到“暫停時間”時間中,并使“恢復(fù)”按鈕變?yōu)椤皶和!?,使“停用”按鈕恢復(fù)可用,規(guī)則與約束,時間記錄程序應(yīng)以離線式工作,該程序會自動連接服務(wù)器,完成時間日志上傳的工作,如果未能連接服務(wù)器,則在本機暫存時間日志,建立交互,/,狀態(tài)模型,用戶界面設(shè)計,Agenda,什么是需求,如何使用,UML,對需求建模,需求建