UML理論需求識別規(guī)定_第1頁
UML理論需求識別規(guī)定_第2頁
UML理論需求識別規(guī)定_第3頁
UML理論需求識別規(guī)定_第4頁
UML理論需求識別規(guī)定_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

UML理論需求識別規(guī)定一、概述

UML(統(tǒng)一建模語言)理論需求識別是系統(tǒng)開發(fā)過程中的關(guān)鍵環(huán)節(jié),旨在通過標準化建模方法,清晰、準確地描述系統(tǒng)需求。本規(guī)定旨在規(guī)范需求識別流程,確保需求描述的完整性、一致性和可追溯性。需求識別應基于用戶業(yè)務(wù)場景,采用UML圖示和文字描述相結(jié)合的方式,全面覆蓋功能性需求和非功能性需求。

二、需求識別流程

需求識別需遵循系統(tǒng)化流程,確保需求收集的全面性和準確性。具體步驟如下:

(一)需求收集

1.業(yè)務(wù)調(diào)研:與用戶或業(yè)務(wù)專家進行訪談,了解業(yè)務(wù)場景和目標。

2.資料整理:收集現(xiàn)有系統(tǒng)文檔、業(yè)務(wù)流程圖等資料,作為需求分析的依據(jù)。

3.需求來源:需求可來源于用戶需求、市場分析、技術(shù)約束等,需明確需求來源并記錄。

(二)需求分析

1.需求分類:將需求分為功能性需求(如系統(tǒng)功能模塊)和非功能性需求(如性能、安全要求)。

2.需求優(yōu)先級:根據(jù)業(yè)務(wù)重要性、實現(xiàn)難度等因素,對需求進行優(yōu)先級排序(如高、中、低)。

3.可行性評估:分析需求的技術(shù)可行性、成本效益,剔除不合理需求。

(三)需求文檔化

1.UML用例圖:繪制用例圖,展示系統(tǒng)參與者與用例關(guān)系,明確系統(tǒng)邊界。

2.UML活動圖:用活動圖描述業(yè)務(wù)流程,展示關(guān)鍵步驟和分支條件。

3.需求規(guī)格說明:撰寫需求規(guī)格說明書,包含需求描述、驗收標準等內(nèi)容。

三、UML建模規(guī)范

UML建模需遵循統(tǒng)一標準,確保模型的可讀性和可維護性。

(一)用例圖建模

1.參與者識別:明確系統(tǒng)外部交互對象(如用戶、設(shè)備)。

2.用例定義:用例應描述系統(tǒng)功能,如“用戶登錄”“訂單生成”。

3.關(guān)系繪制:展示參與者與用例的關(guān)聯(lián)(如關(guān)聯(lián)、包含、擴展)。

(二)類圖建模

1.核心類識別:確定系統(tǒng)核心實體(如用戶、商品)。

2.屬性與方法:標注類屬性(如用戶ID、姓名)和方法(如登錄驗證)。

3.關(guān)系定義:繪制類間關(guān)系(如繼承、聚合、關(guān)聯(lián))。

(三)順序圖建模

1.交互對象:列出交互對象(如用戶、系統(tǒng))及執(zhí)行順序。

2.消息傳遞:標注方法調(diào)用順序(如同步、異步消息)。

3.生命線繪制:用垂直線表示對象生命周期,用消息箭頭表示交互。

四、需求驗證與確認

需求識別完成后,需進行驗證與確認,確保需求符合預期。

(一)需求評審

1.內(nèi)部評審:團隊內(nèi)部對需求文檔進行交叉評審。

2.用戶確認:邀請用戶參與需求確認會議,核對需求描述。

3.問題跟蹤:建立需求變更記錄表,跟蹤需求調(diào)整。

(二)需求測試

1.原型測試:基于UML模型制作原型,進行用戶測試。

2.場景模擬:模擬業(yè)務(wù)場景,驗證需求完整性。

3.缺陷修復:根據(jù)測試結(jié)果,調(diào)整需求并更新文檔。

五、注意事項

1.需求變更管理:需求變更需通過正式流程,記錄變更原因和影響。

2.模型一致性:UML模型需與需求文檔保持一致,避免矛盾。

3.版本控制:建立UML模型版本管理機制,確保文檔可追溯。

一、概述

UML(統(tǒng)一建模語言)理論需求識別是系統(tǒng)開發(fā)過程中的關(guān)鍵環(huán)節(jié),旨在通過標準化建模方法,清晰、準確地描述系統(tǒng)需求。本規(guī)定旨在規(guī)范需求識別流程,確保需求描述的完整性、一致性和可追溯性。需求識別應基于用戶業(yè)務(wù)場景,采用UML圖示和文字描述相結(jié)合的方式,全面覆蓋功能性需求和非功能性需求。

需求識別的目標是創(chuàng)建一個共同的理解基礎(chǔ),使得開發(fā)團隊能夠據(jù)此設(shè)計系統(tǒng),而用戶能夠確認系統(tǒng)將滿足其業(yè)務(wù)目標。它不僅是技術(shù)工作的起點,也是項目成功的關(guān)鍵保障。通過UML建模,可以將抽象的業(yè)務(wù)需求轉(zhuǎn)化為具體、可視化的模型元素,便于溝通、分析和驗證。

二、需求識別流程

需求識別需遵循系統(tǒng)化流程,確保需求收集的全面性和準確性。具體步驟如下:

(一)需求收集

1.業(yè)務(wù)調(diào)研:

訪談準備:在開始訪談前,制定詳細的訪談計劃,明確訪談對象(如業(yè)務(wù)經(jīng)理、操作人員、關(guān)鍵用戶)、訪談目標、關(guān)鍵問題清單和訪談時間。準備相關(guān)資料,如初步的業(yè)務(wù)流程描述、組織結(jié)構(gòu)圖等。

訪談執(zhí)行:采用半結(jié)構(gòu)化訪談方式,先介紹訪談目的和流程,然后圍繞關(guān)鍵問題進行提問。鼓勵訪談對象分享實際操作經(jīng)驗、痛點及期望。注意傾聽,并適時追問細節(jié),以獲取深層需求。例如,詢問“在當前流程中,哪個步驟最耗時?”“您希望系統(tǒng)在XX方面如何改進?”

訪談記錄:使用筆記或錄音(需征得同意)記錄訪談內(nèi)容,確保信息的完整性。記錄應包括訪談對象、時間、地點、討論要點和關(guān)鍵引述。

2.資料整理:

現(xiàn)有文檔審查:系統(tǒng)性地收集并審查與目標系統(tǒng)相關(guān)的現(xiàn)有文檔,如業(yè)務(wù)流程圖、系統(tǒng)架構(gòu)圖(如果存在)、用戶手冊、操作指南、舊系統(tǒng)的設(shè)計文檔等。分析這些文檔,提取有用的信息和流程描述。

數(shù)據(jù)字典分析:如果存在數(shù)據(jù)字典,需仔細分析其中定義的數(shù)據(jù)項、數(shù)據(jù)類型、長度、約束等信息,這有助于理解系統(tǒng)的數(shù)據(jù)需求。

會議紀要整理:整理項目啟動會、需求討論會等會議的紀要,提取其中涉及的需求點。

3.需求來源:

明確來源分類:將需求來源進行分類,如用戶直接提出的功能需求、業(yè)務(wù)部門因效率提升提出的優(yōu)化需求、技術(shù)部門基于新技術(shù)提出的增強需求、市場變化帶來的新功能需求等。

記錄來源信息:對于每個需求,詳細記錄其來源(如具體人員、會議、報告)、提出時間、背景信息。這有助于后續(xù)評估和追溯。例如,需求“實現(xiàn)自動報表生成”來源于市場部張三,提出于2023年10月15日的市場策略會議。

(二)需求分析

1.需求分類:

功能性需求識別:確定系統(tǒng)必須提供的功能。這包括用戶交互界面上的操作(如點擊按鈕、填寫表單)、系統(tǒng)內(nèi)部的數(shù)據(jù)處理邏輯(如計算、驗證)、以及系統(tǒng)與其他系統(tǒng)的交互(如API調(diào)用、數(shù)據(jù)導入導出)。例如,“用戶必須能夠通過用戶名和密碼登錄系統(tǒng)”是一個功能性需求。

非功能性需求定義:明確系統(tǒng)運行時的質(zhì)量屬性要求。常見的非功能性需求包括:

性能需求:如系統(tǒng)響應時間不超過2秒,并發(fā)用戶數(shù)支持至少100個,數(shù)據(jù)庫查詢速度要求等。需結(jié)合業(yè)務(wù)場景設(shè)定具體指標。

安全需求:如用戶密碼需加密存儲,敏感數(shù)據(jù)傳輸需加密,具備防SQL注入措施,定期進行安全審計等。

可用性需求:如系統(tǒng)可用性需達到99.9%,提供在線幫助文檔,界面操作需符合用戶習慣等。

可靠性需求:如系統(tǒng)需具備故障恢復能力,數(shù)據(jù)備份頻率要求(如每日備份),關(guān)鍵操作需有日志記錄等。

可維護性需求:如代碼需遵循編碼規(guī)范,模塊化設(shè)計,提供詳細的開發(fā)文檔等。

可擴展性需求:如系統(tǒng)設(shè)計需考慮未來業(yè)務(wù)增長,支持水平擴展或垂直擴展。

2.需求優(yōu)先級:

確定優(yōu)先級標準:建立明確的優(yōu)先級排序標準,常用的標準包括:

業(yè)務(wù)價值:需求對核心業(yè)務(wù)目標的貢獻程度。

用戶影響:需求對用戶工作的影響范圍和重要性。

實現(xiàn)成本:開發(fā)、測試、部署所需的人力、物力、時間成本。

依賴關(guān)系:某些需求必須在其他需求完成后才能實現(xiàn)。

強制性:法律法規(guī)或合同要求的強制性需求通常優(yōu)先級最高。

優(yōu)先級排序方法:可采用MoSCoW方法(Musthave,Shouldhave,Couldhave,Won'thavethistime)、Kano模型(基本型、期望型、魅力型)或簡單的評分法(如1-5分)進行排序。

應用優(yōu)先級:將每個需求分配到優(yōu)先級等級(如P0-緊急,P1-高,P2-中,P3-低),并在需求文檔中清晰標注。優(yōu)先級高的需求應在早期開發(fā)迭代中實現(xiàn)。

3.可行性評估:

技術(shù)可行性分析:評估當前技術(shù)是否能夠支持需求的實現(xiàn)??紤]現(xiàn)有技術(shù)棧、開發(fā)工具、第三方服務(wù)可用性等。例如,需求“系統(tǒng)需支持語音識別”需要評估是否有成熟的API可用,以及團隊是否具備調(diào)用和處理語音數(shù)據(jù)的技能。

經(jīng)濟可行性分析:估算需求實現(xiàn)的成本(開發(fā)、硬件、軟件許可、培訓等)與預期收益(效率提升、成本節(jié)約、用戶滿意度等),判斷投入產(chǎn)出比是否合理。

操作可行性分析:評估需求是否容易被用戶接受和操作??紤]用戶技能水平、使用環(huán)境、學習成本等。例如,一個極其復雜的配置界面可能操作可行性較低。

時間可行性分析:判斷在項目既定的時間框架內(nèi),是否能夠完成需求的開發(fā)和上線。

記錄評估結(jié)果:對于每個需求,記錄其可行性分析結(jié)果(可行、部分可行、不可行),以及相應的理由和建議(如需替代方案、需進一步研究等)。

(三)需求文檔化

1.UML用例圖:

繪制步驟:

識別參與者:根據(jù)需求收集結(jié)果,列出所有與系統(tǒng)交互的外部實體(人、其他系統(tǒng)、設(shè)備等)。例如,在線購物系統(tǒng)中的參與者可能包括“顧客”、“購物車”、“支付網(wǎng)關(guān)”、“訂單管理”。

識別用例:定義每個參與者能發(fā)起的、系統(tǒng)可執(zhí)行的、有價值的功能性活動(用例)。例如,“顧客”的用例有“瀏覽商品”、“添加到購物車”、“提交訂單”、“查看訂單歷史”。

繪制圖形:使用UML標準符號繪制用例圖,包括參與者(小人圖標)、用例(橢圓形)、系統(tǒng)邊界(矩形包圍)以及它們之間的關(guān)系(關(guān)聯(lián)、包含、擴展、泛化)。

文字說明:為每個用例添加簡潔的名稱,并在需求規(guī)格說明書中詳細描述用例的詳細場景(基本流程、替代流程、異常流程)。

目的:用例圖直觀地展示了系統(tǒng)的功能范圍和用戶交互方式,是需求溝通的重要工具。

2.UML活動圖:

繪制步驟:

定義主控流程:確定系統(tǒng)執(zhí)行的頂級業(yè)務(wù)流程或操作流程。例如,“處理在線訂單”是一個主控流程。

識別活動:將主控流程分解為一系列具體的活動步驟(矩形框)。例如,“處理在線訂單”可以分解為“接收訂單信息”、“驗證訂單有效性”、“檢查庫存”、“扣減庫存”、“生成訂單號”、“調(diào)用支付接口”、“處理支付結(jié)果”、“更新訂單狀態(tài)”、“發(fā)送訂單通知”。

添加決策點:在流程中可能存在需要根據(jù)條件進行分支選擇的地方,使用菱形表示決策,并標注條件。例如,“處理支付結(jié)果”后可能有“支付成功”和“支付失敗”兩個分支。

添加控制流:使用箭頭表示活動的執(zhí)行順序和跳轉(zhuǎn)。例如,從“驗證訂單有效性”到“檢查庫存”,從“支付失敗”可能跳轉(zhuǎn)回“接收訂單信息”讓用戶重新支付。

添加對象流(可選):如果流程涉及數(shù)據(jù)的創(chuàng)建、傳遞或修改,可以使用黑色箭頭表示對象流。

繪制圖形:按照UML活動圖標準符號繪制。

文字說明:為每個活動添加簡要名稱,并在需求規(guī)格說明書中補充詳細描述。

目的:活動圖清晰地展現(xiàn)了業(yè)務(wù)流程的步驟、順序、分支和并發(fā)情況,有助于理解系統(tǒng)的工作邏輯。

3.需求規(guī)格說明:

核心內(nèi)容:

引言:項目背景、目標、范圍、參考文檔等。

總體描述:系統(tǒng)目標、主要功能概述、用戶特征(如技術(shù)熟練度)、約束條件(如技術(shù)限制、時間限制)、假設(shè)和依賴。

系統(tǒng)功能需求:

按模塊或用例組織需求。

每個需求項包含:唯一標識符、需求描述(清晰、無歧義地說明系統(tǒng)應做什么)、驗收標準(明確說明如何判斷該需求已滿足,由誰驗證)、優(yōu)先級、來源、狀態(tài)(新建、已分析、已確認、已實現(xiàn)、已驗證等)。

可關(guān)聯(lián)UML圖(如用例圖、活動圖、類圖)。

系統(tǒng)非功能需求:

按類別(性能、安全、可用性等)組織。

每個需求項包含:唯一標識符、需求描述、具體指標(如響應時間<1秒,并發(fā)用戶>500)、驗收標準、優(yōu)先級、來源、狀態(tài)。

數(shù)據(jù)需求:關(guān)鍵數(shù)據(jù)項定義、數(shù)據(jù)模型(可引用類圖)、數(shù)據(jù)存儲要求、數(shù)據(jù)交換格式等。

接口需求:系統(tǒng)與外部系統(tǒng)交互的接口描述(接口名稱、輸入輸出參數(shù)、協(xié)議、調(diào)用方式等)。

假設(shè)與約束:重申項目假設(shè)和限制條件。

編寫要求:語言清晰、準確、無歧義,避免使用模糊或主觀性強的詞語。使用編號體系(如需求ID:FR-001)確保唯一性。保持文檔的動態(tài)更新,隨著項目的進展,及時反映需求的變更。

三、UML建模規(guī)范

UML建模需遵循統(tǒng)一標準,確保模型的可讀性和可維護性。

(一)用例圖建模

1.參與者識別:

明確角色:區(qū)分不同類型的參與者。例如,“管理員”可能負責系統(tǒng)配置,“普通用戶”負責日常操作,“系統(tǒng)”可能代表與其他系統(tǒng)的交互接口。

區(qū)分主動與被動:某些參與者可能僅在系統(tǒng)中讀取數(shù)據(jù)而不執(zhí)行操作(被動參與者),需明確區(qū)分。

考慮權(quán)限差異:如果參與者具有不同的權(quán)限集,可以在用例圖或需求說明中體現(xiàn),或者通過包含/擴展關(guān)系來建模不同權(quán)限級別的用例。

2.用例定義:

動詞短語命名:用例名稱通常采用動詞短語形式,表示系統(tǒng)為參與者提供的一個價值動作。例如,“管理用戶信息”、“審批采購申請”、“生成銷售報表”。

完整性覆蓋:確保用例集覆蓋了系統(tǒng)提供的所有主要價值功能,且不重疊??梢酝ㄟ^“用例覆蓋矩陣”來檢查用例的完整性。

粒度適中:用例的粒度應適中。太細的用例會使圖過于復雜,太粗的用例則缺乏細節(jié)。一般建議一個用例對應一個用戶故事或一個小的業(yè)務(wù)流程。

3.關(guān)系繪制:

關(guān)聯(lián)(Association):最基本的關(guān)系,表示參與者與用例之間的連接。通常用實線帶箭頭表示方向(從參與者指向用例)。

包含(Include):表示一個用例的行為是另一個或多個用例行為的組成部分。被包含的用例稱為“基礎(chǔ)用例”。例如,“提交訂單”用例包含“選擇商品”和“填寫地址”兩個基礎(chǔ)用例的行為。用空心三角形指向基礎(chǔ)用例。

擴展(Extend):表示在一個用例的基本流程(主干)上,根據(jù)特定條件(擴展條件)增加額外的行為路徑。擴展用例本身不獨立執(zhí)行,只有在主用例的特定條件下才會執(zhí)行。例如,“提交訂單”用例可以根據(jù)條件“使用優(yōu)惠券”擴展出“應用優(yōu)惠券”的行為。用虛線加空心三角形指向擴展用例。

泛化(Generalization):表示多個用例共享相同的行為,可以抽象出一個公共的用例。子用例繼承父用例的行為,并可以添加或重寫部分行為。例如,多個具體的商品購買用例(如“購買書籍”、“購買服裝”)可以泛化出一個父用例“購買商品”。用空心三角形和實線指向父用例。

正確使用:根據(jù)需求關(guān)系選擇合適的建模關(guān)系,避免濫用。例如,不要用擴展來代替包含,除非確實存在條件性分支。

(二)UML類圖建模

1.核心類識別:

識別名詞:通過分析需求描述和用例,識別描述事物、概念或?qū)嶓w的名詞,這些通常是潛在的核心類。例如,“用戶”、“產(chǎn)品”、“訂單”、“支付記錄”。

識別關(guān)系:分析類之間的關(guān)系(如“用戶”擁有“訂單”,“訂單”包含“商品”),有助于進一步識別相關(guān)類。

區(qū)分實體類與邊界類:實體類(EntityClass)通常代表系統(tǒng)中的數(shù)據(jù)持久化對象(如用戶、產(chǎn)品),邊界類(BoundaryClass)代表用戶界面或與外部交互的接口(如登錄界面、查詢界面)。在類圖中主要關(guān)注實體類。

2.屬性與方法:

屬性定義:為每個類定義屬性,包括:

名稱:屬性名,通常使用名詞或名詞短語。

類型:屬性的數(shù)據(jù)類型(如String,Integer,Date,Boolean)。

可見性:修飾符(public+,private-,protected),表示屬性的訪問權(quán)限。

默認值(可選):屬性初始值。

約束/注釋(可選):對屬性的解釋或約束條件(如“非空”、“唯一”)。

示例:類“用戶”的屬性可能包括:`-用戶ID:String(primarykey,unique)`,`-用戶名:String(notnull)`,`-密碼:String(notnull)`,`+郵箱:String`。

方法定義:

名稱:方法名,通常使用動詞或動詞短語。

參數(shù)列表:方法的輸入?yún)?shù)(名稱、類型、可見性)。

返回類型:方法執(zhí)行后返回的結(jié)果類型(或void表示無返回值)。

可見性:修飾符(public+,private-,protected)。

實現(xiàn)(可選):在需求階段,方法通常只定義原型,不涉及具體實現(xiàn)代碼??梢蕴砑雍喴f明描述方法的功能。

示例:類“用戶”的方法可能包括:`+登錄(用戶名:String,密碼:String):Boolean`,`+修改個人信息(新郵箱:String):void`。

3.關(guān)系定義:

關(guān)聯(lián)(Association):表示兩個或多個類之間的結(jié)構(gòu)化連接,表明它們之間存在語義上的聯(lián)系。用實線表示。可以附加基數(shù)(如1,表示一對多)。

聚合(Aggregation):表示整體與部分的關(guān)系,強調(diào)部分可以獨立于整體存在。例如,汽車與車輪的關(guān)系。用帶空心菱形的實線表示,菱形在整體類端。

組合(Composition):表示整體對部分擁有更強的擁有權(quán),部分的生命周期通常依賴于整體。例如,人體與心臟的關(guān)系。用帶實心菱形的實線表示,菱形在整體類端。

繼承(Inheritance):表示類之間的泛化關(guān)系,子類繼承父類的屬性和方法。用帶空心三角形的實線表示,三角形在子類端。

依賴(Dependency):表示一個類的方法使用另一個類的對象,或者一個類的方法參數(shù)是另一個類的對象。表示較弱的連接關(guān)系。用虛線表示。

關(guān)系命名(可選):對于重要的關(guān)聯(lián),可以添加名稱來描述關(guān)系,如“擁有”或“管理”。

(三)順序圖建模

1.交互對象:

選擇參與者:選擇參與該交互場景的主要對象(類或參與者),作為生命線(垂直虛線)的起點或終點。

確定執(zhí)行順序:根據(jù)需求場景或活動圖,確定對象間消息傳遞的先后順序。

2.消息傳遞:

同步消息:發(fā)送方等待接收方處理完消息再繼續(xù)執(zhí)行。用實線箭頭表示,箭頭指向接收對象的生命線。

異步消息:發(fā)送方發(fā)送消息后立即繼續(xù)執(zhí)行,不等待接收方。用虛線箭頭表示。

創(chuàng)建消息:表示一個對象創(chuàng)建另一個對象。用帶實心小箭頭的虛線表示。

銷毀消息:表示一個對象銷毀另一個對象。用帶X的虛線表示。

時間約束(可選):對于關(guān)鍵的時間相關(guān)的消息,可以標注時間限制。

3.生命線繪制:

生命線表示:每個對象對應一條生命線,貫穿整個交互過程。

激活條(可選):在生命線上方用細矩形表示對象處于激活狀態(tài)(即正在執(zhí)行操作或處理消息)的時間段。

自消息:對象向自身發(fā)送消息。用從生命線出發(fā)、指向自身生命線的箭頭表示。

協(xié)作圖補充:順序圖常與協(xié)作圖(CommunicationDiagram)結(jié)合使用,協(xié)作圖更側(cè)重于對象間的鏈接關(guān)系,而順序圖側(cè)重于消息的時間順序。

四、需求驗證與確認

需求識別完成后,需進行驗證與確認,確保需求符合預期。

(一)需求評審

1.內(nèi)部評審:

評審準備:提前分發(fā)需求文檔和UML模型給項目團隊成員(開發(fā)、測試、產(chǎn)品等),準備評審議程和檢查表(Checklist),明確評審目標和重點。

評審會議:組織評審會議,由需求分析師主持,逐項檢查需求文檔和模型,對照檢查表提問、討論、記錄問題。鼓勵建設(shè)性意見。

問題跟蹤:使用需求管理工具或問題跟蹤系統(tǒng),記錄所有發(fā)現(xiàn)的問題、缺陷或改進建議,指派責任人,并跟蹤解決狀態(tài)。

2.用戶確認:

邀請用戶:邀請最終用戶或業(yè)務(wù)代表參與需求確認。確保參與者能夠代表目標用戶群體。

演示與講解:結(jié)合UML模型(特別是用例圖和活動圖)和文字說明,向用戶演示和講解需求內(nèi)容??梢允褂迷凸ぞ咧谱鞯捅U婊蚋弑U嬖洼o助講解。

場景模擬:邀請用戶根據(jù)需求場景進行模擬操作,觀察用戶的理解和反應。

反饋收集:通過問卷、訪談或討論會形式,收集用戶對需求的反饋,特別是確認需求是否滿足他們的業(yè)務(wù)目標和理解。

3.問題跟蹤:建立清晰的問題跟蹤機制,確保用戶反饋的問題得到記錄、分配、處理和驗證。更新需求文檔和模型狀態(tài)。

(二)需求測試

1.原型測試:

原型制作:根據(jù)用例圖和活動圖,使用原型工具(如Axure,Figma,Sketch)制作系統(tǒng)界面原型或交互原型。

可用性測試:邀請目標用戶測試原型,觀察用戶與原型的交互過程,收集用戶關(guān)于易用性、清晰度、操作流程等方面的反饋。

反饋迭代:根據(jù)測試反饋,快速迭代修改原型,直到用戶對關(guān)鍵流程表示滿意。

2.場景模擬:

場景設(shè)計:基于需求規(guī)格說明和活動圖,設(shè)計典型的業(yè)務(wù)場景(UseCaseScenario),詳細描述一個完整業(yè)務(wù)流程中涉及的對象、活動和交互。

模擬執(zhí)行:通過角色扮演、討論會或編寫場景測試腳本的方式,模擬執(zhí)行業(yè)務(wù)場景,檢查需求描述是否覆蓋所有必要步驟和分支,是否存在遺漏或矛盾。

驗證完整性:確保關(guān)鍵業(yè)務(wù)流程通過場景模擬驗證,需求文檔能夠支撐場景的完整描述。

3.缺陷修復:根據(jù)原型測試和場景模擬的結(jié)果,識別需求中的缺陷或不足,更新需求文檔和模型。跟蹤缺陷修復情況,并在后續(xù)階段(如設(shè)計、開發(fā))進行回歸測試,確保問題得到解決且未引入新問題。

五、注意事項

1.需求變更管理:

建立流程:制定正式的需求變更管理流程。任何需求變更(包括新增、修改、刪除)必須通過書面申請、評估、審批才能生效。

變更評估:對變更請求進行評估,分析其對項目范圍、進度、成本、資源、風險的影響。使用變更影響分析表記錄評估結(jié)果。

版本控制:確保變更后的需求文檔和模型有明確的版本號,并與舊版本一起存檔。使用需求管理工具進行版本控制。

溝通同步:及時將批準的需求變更通知所有項目干系人(開發(fā)、測試、用戶等),確保大家基于最新需求進行工作。

2.模型一致性:確保UML模型(用例圖、類圖、順序圖等)與需求規(guī)格說明書中的文字描述保持一致。模型應是對需求的圖形化表達,文字描述應是對模型的詳細解釋。定期進行模型與文檔的一致性檢查。

3.版本控制:建立文檔和模型的版本管理機制。使用版本控制系統(tǒng)(如Git)管理代碼和模型文件,或使用專業(yè)的文檔管理系統(tǒng)。確保每次變更都有記錄,可以追溯歷史版本。定義清晰的版本命名規(guī)則(如主版本號.次版本號.修訂號)。

4.溝通協(xié)作:需求識別是一個需要多方協(xié)作的過程。建立有效的溝通機制,確保需求分析師、開發(fā)人員、測試人員、用戶等角色之間能夠順暢交流,及時解決問題。定期召開需求評審會和需求澄清會。

5.文檔規(guī)范:保持文檔格式的規(guī)范性和統(tǒng)一性。使用統(tǒng)一的術(shù)語、圖表樣式和編號體系。確保文檔易于閱讀和理解。定期整理和更新文檔,刪除過時內(nèi)容。

6.工具使用:合理利用UML建模工具(如EnterpriseArchitect,StarUML,VisualParadigm)提高建模效率和規(guī)范性。工具可以幫助繪制圖形、管理版本、生成文檔、支持協(xié)作等。

一、概述

UML(統(tǒng)一建模語言)理論需求識別是系統(tǒng)開發(fā)過程中的關(guān)鍵環(huán)節(jié),旨在通過標準化建模方法,清晰、準確地描述系統(tǒng)需求。本規(guī)定旨在規(guī)范需求識別流程,確保需求描述的完整性、一致性和可追溯性。需求識別應基于用戶業(yè)務(wù)場景,采用UML圖示和文字描述相結(jié)合的方式,全面覆蓋功能性需求和非功能性需求。

二、需求識別流程

需求識別需遵循系統(tǒng)化流程,確保需求收集的全面性和準確性。具體步驟如下:

(一)需求收集

1.業(yè)務(wù)調(diào)研:與用戶或業(yè)務(wù)專家進行訪談,了解業(yè)務(wù)場景和目標。

2.資料整理:收集現(xiàn)有系統(tǒng)文檔、業(yè)務(wù)流程圖等資料,作為需求分析的依據(jù)。

3.需求來源:需求可來源于用戶需求、市場分析、技術(shù)約束等,需明確需求來源并記錄。

(二)需求分析

1.需求分類:將需求分為功能性需求(如系統(tǒng)功能模塊)和非功能性需求(如性能、安全要求)。

2.需求優(yōu)先級:根據(jù)業(yè)務(wù)重要性、實現(xiàn)難度等因素,對需求進行優(yōu)先級排序(如高、中、低)。

3.可行性評估:分析需求的技術(shù)可行性、成本效益,剔除不合理需求。

(三)需求文檔化

1.UML用例圖:繪制用例圖,展示系統(tǒng)參與者與用例關(guān)系,明確系統(tǒng)邊界。

2.UML活動圖:用活動圖描述業(yè)務(wù)流程,展示關(guān)鍵步驟和分支條件。

3.需求規(guī)格說明:撰寫需求規(guī)格說明書,包含需求描述、驗收標準等內(nèi)容。

三、UML建模規(guī)范

UML建模需遵循統(tǒng)一標準,確保模型的可讀性和可維護性。

(一)用例圖建模

1.參與者識別:明確系統(tǒng)外部交互對象(如用戶、設(shè)備)。

2.用例定義:用例應描述系統(tǒng)功能,如“用戶登錄”“訂單生成”。

3.關(guān)系繪制:展示參與者與用例的關(guān)聯(lián)(如關(guān)聯(lián)、包含、擴展)。

(二)類圖建模

1.核心類識別:確定系統(tǒng)核心實體(如用戶、商品)。

2.屬性與方法:標注類屬性(如用戶ID、姓名)和方法(如登錄驗證)。

3.關(guān)系定義:繪制類間關(guān)系(如繼承、聚合、關(guān)聯(lián))。

(三)順序圖建模

1.交互對象:列出交互對象(如用戶、系統(tǒng))及執(zhí)行順序。

2.消息傳遞:標注方法調(diào)用順序(如同步、異步消息)。

3.生命線繪制:用垂直線表示對象生命周期,用消息箭頭表示交互。

四、需求驗證與確認

需求識別完成后,需進行驗證與確認,確保需求符合預期。

(一)需求評審

1.內(nèi)部評審:團隊內(nèi)部對需求文檔進行交叉評審。

2.用戶確認:邀請用戶參與需求確認會議,核對需求描述。

3.問題跟蹤:建立需求變更記錄表,跟蹤需求調(diào)整。

(二)需求測試

1.原型測試:基于UML模型制作原型,進行用戶測試。

2.場景模擬:模擬業(yè)務(wù)場景,驗證需求完整性。

3.缺陷修復:根據(jù)測試結(jié)果,調(diào)整需求并更新文檔。

五、注意事項

1.需求變更管理:需求變更需通過正式流程,記錄變更原因和影響。

2.模型一致性:UML模型需與需求文檔保持一致,避免矛盾。

3.版本控制:建立UML模型版本管理機制,確保文檔可追溯。

一、概述

UML(統(tǒng)一建模語言)理論需求識別是系統(tǒng)開發(fā)過程中的關(guān)鍵環(huán)節(jié),旨在通過標準化建模方法,清晰、準確地描述系統(tǒng)需求。本規(guī)定旨在規(guī)范需求識別流程,確保需求描述的完整性、一致性和可追溯性。需求識別應基于用戶業(yè)務(wù)場景,采用UML圖示和文字描述相結(jié)合的方式,全面覆蓋功能性需求和非功能性需求。

需求識別的目標是創(chuàng)建一個共同的理解基礎(chǔ),使得開發(fā)團隊能夠據(jù)此設(shè)計系統(tǒng),而用戶能夠確認系統(tǒng)將滿足其業(yè)務(wù)目標。它不僅是技術(shù)工作的起點,也是項目成功的關(guān)鍵保障。通過UML建模,可以將抽象的業(yè)務(wù)需求轉(zhuǎn)化為具體、可視化的模型元素,便于溝通、分析和驗證。

二、需求識別流程

需求識別需遵循系統(tǒng)化流程,確保需求收集的全面性和準確性。具體步驟如下:

(一)需求收集

1.業(yè)務(wù)調(diào)研:

訪談準備:在開始訪談前,制定詳細的訪談計劃,明確訪談對象(如業(yè)務(wù)經(jīng)理、操作人員、關(guān)鍵用戶)、訪談目標、關(guān)鍵問題清單和訪談時間。準備相關(guān)資料,如初步的業(yè)務(wù)流程描述、組織結(jié)構(gòu)圖等。

訪談執(zhí)行:采用半結(jié)構(gòu)化訪談方式,先介紹訪談目的和流程,然后圍繞關(guān)鍵問題進行提問。鼓勵訪談對象分享實際操作經(jīng)驗、痛點及期望。注意傾聽,并適時追問細節(jié),以獲取深層需求。例如,詢問“在當前流程中,哪個步驟最耗時?”“您希望系統(tǒng)在XX方面如何改進?”

訪談記錄:使用筆記或錄音(需征得同意)記錄訪談內(nèi)容,確保信息的完整性。記錄應包括訪談對象、時間、地點、討論要點和關(guān)鍵引述。

2.資料整理:

現(xiàn)有文檔審查:系統(tǒng)性地收集并審查與目標系統(tǒng)相關(guān)的現(xiàn)有文檔,如業(yè)務(wù)流程圖、系統(tǒng)架構(gòu)圖(如果存在)、用戶手冊、操作指南、舊系統(tǒng)的設(shè)計文檔等。分析這些文檔,提取有用的信息和流程描述。

數(shù)據(jù)字典分析:如果存在數(shù)據(jù)字典,需仔細分析其中定義的數(shù)據(jù)項、數(shù)據(jù)類型、長度、約束等信息,這有助于理解系統(tǒng)的數(shù)據(jù)需求。

會議紀要整理:整理項目啟動會、需求討論會等會議的紀要,提取其中涉及的需求點。

3.需求來源:

明確來源分類:將需求來源進行分類,如用戶直接提出的功能需求、業(yè)務(wù)部門因效率提升提出的優(yōu)化需求、技術(shù)部門基于新技術(shù)提出的增強需求、市場變化帶來的新功能需求等。

記錄來源信息:對于每個需求,詳細記錄其來源(如具體人員、會議、報告)、提出時間、背景信息。這有助于后續(xù)評估和追溯。例如,需求“實現(xiàn)自動報表生成”來源于市場部張三,提出于2023年10月15日的市場策略會議。

(二)需求分析

1.需求分類:

功能性需求識別:確定系統(tǒng)必須提供的功能。這包括用戶交互界面上的操作(如點擊按鈕、填寫表單)、系統(tǒng)內(nèi)部的數(shù)據(jù)處理邏輯(如計算、驗證)、以及系統(tǒng)與其他系統(tǒng)的交互(如API調(diào)用、數(shù)據(jù)導入導出)。例如,“用戶必須能夠通過用戶名和密碼登錄系統(tǒng)”是一個功能性需求。

非功能性需求定義:明確系統(tǒng)運行時的質(zhì)量屬性要求。常見的非功能性需求包括:

性能需求:如系統(tǒng)響應時間不超過2秒,并發(fā)用戶數(shù)支持至少100個,數(shù)據(jù)庫查詢速度要求等。需結(jié)合業(yè)務(wù)場景設(shè)定具體指標。

安全需求:如用戶密碼需加密存儲,敏感數(shù)據(jù)傳輸需加密,具備防SQL注入措施,定期進行安全審計等。

可用性需求:如系統(tǒng)可用性需達到99.9%,提供在線幫助文檔,界面操作需符合用戶習慣等。

可靠性需求:如系統(tǒng)需具備故障恢復能力,數(shù)據(jù)備份頻率要求(如每日備份),關(guān)鍵操作需有日志記錄等。

可維護性需求:如代碼需遵循編碼規(guī)范,模塊化設(shè)計,提供詳細的開發(fā)文檔等。

可擴展性需求:如系統(tǒng)設(shè)計需考慮未來業(yè)務(wù)增長,支持水平擴展或垂直擴展。

2.需求優(yōu)先級:

確定優(yōu)先級標準:建立明確的優(yōu)先級排序標準,常用的標準包括:

業(yè)務(wù)價值:需求對核心業(yè)務(wù)目標的貢獻程度。

用戶影響:需求對用戶工作的影響范圍和重要性。

實現(xiàn)成本:開發(fā)、測試、部署所需的人力、物力、時間成本。

依賴關(guān)系:某些需求必須在其他需求完成后才能實現(xiàn)。

強制性:法律法規(guī)或合同要求的強制性需求通常優(yōu)先級最高。

優(yōu)先級排序方法:可采用MoSCoW方法(Musthave,Shouldhave,Couldhave,Won'thavethistime)、Kano模型(基本型、期望型、魅力型)或簡單的評分法(如1-5分)進行排序。

應用優(yōu)先級:將每個需求分配到優(yōu)先級等級(如P0-緊急,P1-高,P2-中,P3-低),并在需求文檔中清晰標注。優(yōu)先級高的需求應在早期開發(fā)迭代中實現(xiàn)。

3.可行性評估:

技術(shù)可行性分析:評估當前技術(shù)是否能夠支持需求的實現(xiàn)??紤]現(xiàn)有技術(shù)棧、開發(fā)工具、第三方服務(wù)可用性等。例如,需求“系統(tǒng)需支持語音識別”需要評估是否有成熟的API可用,以及團隊是否具備調(diào)用和處理語音數(shù)據(jù)的技能。

經(jīng)濟可行性分析:估算需求實現(xiàn)的成本(開發(fā)、硬件、軟件許可、培訓等)與預期收益(效率提升、成本節(jié)約、用戶滿意度等),判斷投入產(chǎn)出比是否合理。

操作可行性分析:評估需求是否容易被用戶接受和操作??紤]用戶技能水平、使用環(huán)境、學習成本等。例如,一個極其復雜的配置界面可能操作可行性較低。

時間可行性分析:判斷在項目既定的時間框架內(nèi),是否能夠完成需求的開發(fā)和上線。

記錄評估結(jié)果:對于每個需求,記錄其可行性分析結(jié)果(可行、部分可行、不可行),以及相應的理由和建議(如需替代方案、需進一步研究等)。

(三)需求文檔化

1.UML用例圖:

繪制步驟:

識別參與者:根據(jù)需求收集結(jié)果,列出所有與系統(tǒng)交互的外部實體(人、其他系統(tǒng)、設(shè)備等)。例如,在線購物系統(tǒng)中的參與者可能包括“顧客”、“購物車”、“支付網(wǎng)關(guān)”、“訂單管理”。

識別用例:定義每個參與者能發(fā)起的、系統(tǒng)可執(zhí)行的、有價值的功能性活動(用例)。例如,“顧客”的用例有“瀏覽商品”、“添加到購物車”、“提交訂單”、“查看訂單歷史”。

繪制圖形:使用UML標準符號繪制用例圖,包括參與者(小人圖標)、用例(橢圓形)、系統(tǒng)邊界(矩形包圍)以及它們之間的關(guān)系(關(guān)聯(lián)、包含、擴展、泛化)。

文字說明:為每個用例添加簡潔的名稱,并在需求規(guī)格說明書中詳細描述用例的詳細場景(基本流程、替代流程、異常流程)。

目的:用例圖直觀地展示了系統(tǒng)的功能范圍和用戶交互方式,是需求溝通的重要工具。

2.UML活動圖:

繪制步驟:

定義主控流程:確定系統(tǒng)執(zhí)行的頂級業(yè)務(wù)流程或操作流程。例如,“處理在線訂單”是一個主控流程。

識別活動:將主控流程分解為一系列具體的活動步驟(矩形框)。例如,“處理在線訂單”可以分解為“接收訂單信息”、“驗證訂單有效性”、“檢查庫存”、“扣減庫存”、“生成訂單號”、“調(diào)用支付接口”、“處理支付結(jié)果”、“更新訂單狀態(tài)”、“發(fā)送訂單通知”。

添加決策點:在流程中可能存在需要根據(jù)條件進行分支選擇的地方,使用菱形表示決策,并標注條件。例如,“處理支付結(jié)果”后可能有“支付成功”和“支付失敗”兩個分支。

添加控制流:使用箭頭表示活動的執(zhí)行順序和跳轉(zhuǎn)。例如,從“驗證訂單有效性”到“檢查庫存”,從“支付失敗”可能跳轉(zhuǎn)回“接收訂單信息”讓用戶重新支付。

添加對象流(可選):如果流程涉及數(shù)據(jù)的創(chuàng)建、傳遞或修改,可以使用黑色箭頭表示對象流。

繪制圖形:按照UML活動圖標準符號繪制。

文字說明:為每個活動添加簡要名稱,并在需求規(guī)格說明書中補充詳細描述。

目的:活動圖清晰地展現(xiàn)了業(yè)務(wù)流程的步驟、順序、分支和并發(fā)情況,有助于理解系統(tǒng)的工作邏輯。

3.需求規(guī)格說明:

核心內(nèi)容:

引言:項目背景、目標、范圍、參考文檔等。

總體描述:系統(tǒng)目標、主要功能概述、用戶特征(如技術(shù)熟練度)、約束條件(如技術(shù)限制、時間限制)、假設(shè)和依賴。

系統(tǒng)功能需求:

按模塊或用例組織需求。

每個需求項包含:唯一標識符、需求描述(清晰、無歧義地說明系統(tǒng)應做什么)、驗收標準(明確說明如何判斷該需求已滿足,由誰驗證)、優(yōu)先級、來源、狀態(tài)(新建、已分析、已確認、已實現(xiàn)、已驗證等)。

可關(guān)聯(lián)UML圖(如用例圖、活動圖、類圖)。

系統(tǒng)非功能需求:

按類別(性能、安全、可用性等)組織。

每個需求項包含:唯一標識符、需求描述、具體指標(如響應時間<1秒,并發(fā)用戶>500)、驗收標準、優(yōu)先級、來源、狀態(tài)。

數(shù)據(jù)需求:關(guān)鍵數(shù)據(jù)項定義、數(shù)據(jù)模型(可引用類圖)、數(shù)據(jù)存儲要求、數(shù)據(jù)交換格式等。

接口需求:系統(tǒng)與外部系統(tǒng)交互的接口描述(接口名稱、輸入輸出參數(shù)、協(xié)議、調(diào)用方式等)。

假設(shè)與約束:重申項目假設(shè)和限制條件。

編寫要求:語言清晰、準確、無歧義,避免使用模糊或主觀性強的詞語。使用編號體系(如需求ID:FR-001)確保唯一性。保持文檔的動態(tài)更新,隨著項目的進展,及時反映需求的變更。

三、UML建模規(guī)范

UML建模需遵循統(tǒng)一標準,確保模型的可讀性和可維護性。

(一)用例圖建模

1.參與者識別:

明確角色:區(qū)分不同類型的參與者。例如,“管理員”可能負責系統(tǒng)配置,“普通用戶”負責日常操作,“系統(tǒng)”可能代表與其他系統(tǒng)的交互接口。

區(qū)分主動與被動:某些參與者可能僅在系統(tǒng)中讀取數(shù)據(jù)而不執(zhí)行操作(被動參與者),需明確區(qū)分。

考慮權(quán)限差異:如果參與者具有不同的權(quán)限集,可以在用例圖或需求說明中體現(xiàn),或者通過包含/擴展關(guān)系來建模不同權(quán)限級別的用例。

2.用例定義:

動詞短語命名:用例名稱通常采用動詞短語形式,表示系統(tǒng)為參與者提供的一個價值動作。例如,“管理用戶信息”、“審批采購申請”、“生成銷售報表”。

完整性覆蓋:確保用例集覆蓋了系統(tǒng)提供的所有主要價值功能,且不重疊??梢酝ㄟ^“用例覆蓋矩陣”來檢查用例的完整性。

粒度適中:用例的粒度應適中。太細的用例會使圖過于復雜,太粗的用例則缺乏細節(jié)。一般建議一個用例對應一個用戶故事或一個小的業(yè)務(wù)流程。

3.關(guān)系繪制:

關(guān)聯(lián)(Association):最基本的關(guān)系,表示參與者與用例之間的連接。通常用實線帶箭頭表示方向(從參與者指向用例)。

包含(Include):表示一個用例的行為是另一個或多個用例行為的組成部分。被包含的用例稱為“基礎(chǔ)用例”。例如,“提交訂單”用例包含“選擇商品”和“填寫地址”兩個基礎(chǔ)用例的行為。用空心三角形指向基礎(chǔ)用例。

擴展(Extend):表示在一個用例的基本流程(主干)上,根據(jù)特定條件(擴展條件)增加額外的行為路徑。擴展用例本身不獨立執(zhí)行,只有在主用例的特定條件下才會執(zhí)行。例如,“提交訂單”用例可以根據(jù)條件“使用優(yōu)惠券”擴展出“應用優(yōu)惠券”的行為。用虛線加空心三角形指向擴展用例。

泛化(Generalization):表示多個用例共享相同的行為,可以抽象出一個公共的用例。子用例繼承父用例的行為,并可以添加或重寫部分行為。例如,多個具體的商品購買用例(如“購買書籍”、“購買服裝”)可以泛化出一個父用例“購買商品”。用空心三角形和實線指向父用例。

正確使用:根據(jù)需求關(guān)系選擇合適的建模關(guān)系,避免濫用。例如,不要用擴展來代替包含,除非確實存在條件性分支。

(二)UML類圖建模

1.核心類識別:

識別名詞:通過分析需求描述和用例,識別描述事物、概念或?qū)嶓w的名詞,這些通常是潛在的核心類。例如,“用戶”、“產(chǎn)品”、“訂單”、“支付記錄”。

識別關(guān)系:分析類之間的關(guān)系(如“用戶”擁有“訂單”,“訂單”包含“商品”),有助于進一步識別相關(guān)類。

區(qū)分實體類與邊界類:實體類(EntityClass)通常代表系統(tǒng)中的數(shù)據(jù)持久化對象(如用戶、產(chǎn)品),邊界類(BoundaryClass)代表用戶界面或與外部交互的接口(如登錄界面、查詢界面)。在類圖中主要關(guān)注實體類。

2.屬性與方法:

屬性定義:為每個類定義屬性,包括:

名稱:屬性名,通常使用名詞或名詞短語。

類型:屬性的數(shù)據(jù)類型(如String,Integer,Date,Boolean)。

可見性:修飾符(public+,private-,protected),表示屬性的訪問權(quán)限。

默認值(可選):屬性初始值。

約束/注釋(可選):對屬性的解釋或約束條件(如“非空”、“唯一”)。

示例:類“用戶”的屬性可能包括:`-用戶ID:String(primarykey,unique)`,`-用戶名:String(notnull)`,`-密碼:String(notnull)`,`+郵箱:String`。

方法定義:

名稱:方法名,通常使用動詞或動詞短語。

參數(shù)列表:方法的輸入?yún)?shù)(名稱、類型、可見性)。

返回類型:方法執(zhí)行后返回的結(jié)果類型(或void表示無返回值)。

可見性:修飾符(public+,private-,protected)。

實現(xiàn)(可選):在需求階段,方法通常只定義原型,不涉及具體實現(xiàn)代碼??梢蕴砑雍喴f明描述方法的功能。

示例:類“用戶”的方法可能包括:`+登錄(用戶名:String,密碼:String):Boolean`,`+修改個人信息(新郵箱:String):void`。

3.關(guān)系定義:

關(guān)聯(lián)(Association):表示兩個或多個類之間的結(jié)構(gòu)化連接,表明它們之間存在語義上的聯(lián)系。用實線表示??梢愿郊踊鶖?shù)(如1,表示一對多)。

聚合(Aggregation):表示整體與部分的關(guān)系,強調(diào)部分可以獨立于整體存在。例如,汽車與車輪的關(guān)系。用帶空心菱形的實線表示,菱形在整體類端。

組合(Composition):表示整體對部分擁有更強的擁有權(quán),部分的生命周期通常依賴于整體。例如,人體與心臟的關(guān)系。用帶實心菱形的實線表示,菱形在整體類端。

繼承(Inheritance):表示類之間的泛化關(guān)系,子類繼承父類的屬性和方法。用帶空心三角形的實線表示,三角形在子類端。

依賴(Dependency):表示一個類的方法使用另一個類的對象,或者一個類的方法參數(shù)是另一個類的對象。表示較弱的連接關(guān)系。用虛線表示。

關(guān)系命名(可選):對于重要的關(guān)聯(lián),可以添加名稱來描述關(guān)系,如“擁有”或“管理”。

(三)順序圖建模

1.交互對象:

選擇參與者:選擇參與該交互場景的主要對象(類或參與者),作為生命線(垂直虛線)的起點或終點。

確定執(zhí)行順序:根據(jù)需求場景或活動圖,確定對象間消息傳遞的先后順序。

2.消息傳遞:

同步消息:發(fā)送方等待接收方處理完消息再繼續(xù)執(zhí)行。用實線箭頭表示,箭頭指向接收對象的生命線。

異步消息:發(fā)送方發(fā)送消息后立即繼續(xù)執(zhí)行,不等待接收方。用虛線箭頭表示。

創(chuàng)建消息:表示一個對象創(chuàng)建另一個對象。用帶實心小箭頭的虛線表示。

銷毀消息:表示一個對象銷毀另一個對象。用帶X的虛線表示。

時間約束(可選):對于關(guān)鍵的時間相關(guān)的消息,可以標注時間限制。

3.生命線繪制:

生命線表示:每個對象對應一條生命線,貫穿整個交互過程。

激活條(可選):在生命線上方用細矩形表示對象處于激活狀態(tài)(即正在執(zhí)行操作或處理消息)的時間段。

自消息:對象向自身發(fā)送消息。用從生命線出發(fā)、指向自身生命線的箭頭表示。

協(xié)作圖補充:順序圖常與協(xié)作圖(CommunicationDiagram)結(jié)合使用,協(xié)作圖更側(cè)重于對象間的鏈接關(guān)系,而順序圖側(cè)重于消息的時間順序。

四、需求驗證與確認

需求識別完成后,需進行驗證與確認,確保需求符合預期。

(一)需求評審

1.內(nèi)部評審:

評審準備:提前分發(fā)需求文檔和UML模型給項目團隊成員(開發(fā)、測試、產(chǎn)品等),準備評審議程和檢查表(Checklist),明確評審目標和重點。

評審會議:組織評審會議,由需求分析師主持,逐項檢查需求文檔和模型,對照檢查表提問、討論、記錄問題。鼓勵建設(shè)性意見。

問題跟蹤:使用需求管理工具或問題跟蹤系統(tǒng),記錄所有發(fā)現(xiàn)的問題、缺陷或改進建議,指派責任人,并跟蹤解決狀態(tài)。

2.用戶確認:

邀請用戶:邀請最終用戶或業(yè)務(wù)代表參與需求確認。確保參與者能夠代表目標用戶群體。

演示與講解:結(jié)合UML模型(特別是用例圖和活動圖)和文字說明,向用戶演示和講解需求內(nèi)容??梢允褂迷凸ぞ咧谱鞯捅U婊蚋弑U嬖洼o助講解。

場景模擬:邀請用戶根據(jù)需求場景進行模擬操作,觀察用戶的理解和反應。

反饋收集:通過問卷、訪談或討論會形式,收集用戶對需求的反饋,特別是確認需求是否滿足他們的業(yè)務(wù)目標和理解。

3.問題跟蹤:建立清晰的問題跟蹤機制,確保用戶反饋的問題得到記錄、分配、處理和驗證。更新需求文檔和模型狀態(tài)。

(二)需求測試

1.原型測試:

原型制作:根據(jù)用例圖和活動圖,使用原型工具(如Axure,Figma,Sketch)制作系統(tǒng)界面原型或交互原型。

可用性測試:邀請目標用戶測試原型,觀察用戶與原型的交互過程,收集用戶關(guān)于易用性、清晰度、操作流程等方面的反饋。

反饋迭代:根據(jù)測試反饋,快速迭代修改原型,直到用戶對關(guān)鍵流程表示滿意。

2.場景模擬:

場景設(shè)計:基于需求規(guī)格說明和活動圖,設(shè)計典型的業(yè)務(wù)場景(UseCaseScenario),詳細描述一個完整業(yè)務(wù)流程中涉及的對象、活動和交互。

模擬執(zhí)行:通過角色扮演、討論會或編寫場景測試腳本的方式,模擬執(zhí)行業(yè)務(wù)場景,檢查需求描述是否覆蓋所有必要步驟和分支,是否存在遺漏或矛盾。

驗證完整性:確保關(guān)鍵業(yè)務(wù)流程通過場景模擬驗證,需求文檔能夠支撐場景的完整描述。

3.缺陷修復:根據(jù)原型測試和場景模擬的結(jié)果,識別需求中的缺陷或不足,更新需求文檔和模型。跟蹤缺陷修復情況,并在后續(xù)階段(如設(shè)計、開發(fā))進行回歸測試,確保問題得到解決且未引入新問題。

五、注意事項

1.需求變更管理:

建立流程:制定正式的需求變更管理流程。任何需求變更(包括新增、修改、刪除)必須通過書面申請、評估、審批才能生效。

變更評估:對變更請求進行評估,分析其對項目范圍、進度、成本、資源、風險的影響。使用變更影響分析表記錄評估結(jié)果。

版本控制:確保變更后的需求文檔和模型有明確的版本號,并與舊版本一起存檔。使用需求管理工具進行版本控制。

溝通同步:及時將批準的需求變更通知所有項目干系人(開發(fā)、測試、用戶等),確保大家基于最新需求進行工作。

2.模型一致性:確保UML模型(用例圖、類圖、順序圖等)與需求規(guī)格說明書中的文字描述保持一致。模型應是對需求的圖形化表達,文字描述應是對模型的詳細解釋。定期進行模型與文檔的一致性檢查。

3.版本控制:建立文檔和模型的版本管理機制。使用版本控制系統(tǒng)(如Git)管理代碼和模型文件,或使用專業(yè)的文檔管理系統(tǒng)。確保每次變更都有記錄,可以追溯歷史版本。定義清晰的版本命名規(guī)則(如主版本號.次版本號.修訂號)。

4.溝通協(xié)作:需求識別是一個需要多方協(xié)作的過程。建立有效的溝通機制,確保需求分析師、開發(fā)人員、測試人員、用戶等角色之間能夠順暢交流,及時解決問題。定期召開需求評審會和需求澄清會。

5.文檔規(guī)范:保持文檔格式的規(guī)范性和統(tǒng)一性。使用統(tǒng)一的術(shù)語、圖表樣式和編號體系。確保文檔易于閱讀和理解。定期整理和更新文檔,刪除過時內(nèi)容。

6.工具使用:合理利用UML建模工具(如EnterpriseArchitect,StarUML,VisualParadigm)提高建模效率和規(guī)范性。工具可以幫助繪制圖形、管理版本、生成文檔、支持協(xié)作等。

一、概述

UML(統(tǒng)一建模語言)理論需求識別是系統(tǒng)開發(fā)過程中的關(guān)鍵環(huán)節(jié),旨在通過標準化建模方法,清晰、準確地描述系統(tǒng)需求。本規(guī)定旨在規(guī)范需求識別流程,確保需求描述的完整性、一致性和可追溯性。需求識別應基于用戶業(yè)務(wù)場景,采用UML圖示和文字描述相結(jié)合的方式,全面覆蓋功能性需求和非功能性需求。

二、需求識別流程

需求識別需遵循系統(tǒng)化流程,確保需求收集的全面性和準確性。具體步驟如下:

(一)需求收集

1.業(yè)務(wù)調(diào)研:與用戶或業(yè)務(wù)專家進行訪談,了解業(yè)務(wù)場景和目標。

2.資料整理:收集現(xiàn)有系統(tǒng)文檔、業(yè)務(wù)流程圖等資料,作為需求分析的依據(jù)。

3.需求來源:需求可來源于用戶需求、市場分析、技術(shù)約束等,需明確需求來源并記錄。

(二)需求分析

1.需求分類:將需求分為功能性需求(如系統(tǒng)功能模塊)和非功能性需求(如性能、安全要求)。

2.需求優(yōu)先級:根據(jù)業(yè)務(wù)重要性、實現(xiàn)難度等因素,對需求進行優(yōu)先級排序(如高、中、低)。

3.可行性評估:分析需求的技術(shù)可行性、成本效益,剔除不合理需求。

(三)需求文檔化

1.UML用例圖:繪制用例圖,展示系統(tǒng)參與者與用例關(guān)系,明確系統(tǒng)邊界。

2.UML活動圖:用活動圖描述業(yè)務(wù)流程,展示關(guān)鍵步驟和分支條件。

3.需求規(guī)格說明:撰寫需求規(guī)格說明書,包含需求描述、驗收標準等內(nèi)容。

三、UML建模規(guī)范

UML建模需遵循統(tǒng)一標準,確保模型的可讀性和可維護性。

(一)用例圖建模

1.參與者識別:明確系統(tǒng)外部交互對象(如用戶、設(shè)備)。

2.用例定義:用例應描述系統(tǒng)功能,如“用戶登錄”“訂單生成”。

3.關(guān)系繪制:展示參與者與用例的關(guān)聯(lián)(如關(guān)聯(lián)、包含、擴展)。

(二)類圖建模

1.核心類識別:確定系統(tǒng)核心實體(如用戶、商品)。

2.屬性與方法:標注類屬性(如用戶ID、姓名)和方法(如登錄驗證)。

3.關(guān)系定義:繪制類間關(guān)系(如繼承、聚合、關(guān)聯(lián))。

(三)順序圖建模

1.交互對象:列出交互對象(如用戶、系統(tǒng))及執(zhí)行順序。

2.消息傳遞:標注方法調(diào)用順序(如同步、異步消息)。

3.生命線繪制:用垂直線表示對象生命周期,用消息箭頭表示交互。

四、需求驗證與確認

需求識別完成后,需進行驗證與確認,確保需求符合預期。

(一)需求評審

1.內(nèi)部評審:團隊內(nèi)部對需求文檔進行交叉評審。

2.用戶確認:邀請用戶參與需求確認會議,核對需求描述。

3.問題跟蹤:建立需求變更記錄表,跟蹤需求調(diào)整。

(二)需求測試

1.原型測試:基于UML模型制作原型,進行用戶測試。

2.場景模擬:模擬業(yè)務(wù)場景,驗證需求完整性。

3.缺陷修復:根據(jù)測試結(jié)果,調(diào)整需求并更新文檔。

五、注意事項

1.需求變更管理:需求變更需通過正式流程,記錄變更原因和影響。

2.模型一致性:UML模型需與需求文檔保持一致,避免矛盾。

3.版本控制:建立UML模型版本管理機制,確保文檔可追溯。

一、概述

UML(統(tǒng)一建模語言)理論需求識別是系統(tǒng)開發(fā)過程中的關(guān)鍵環(huán)節(jié),旨在通過標準化建模方法,清晰、準確地描述系統(tǒng)需求。本規(guī)定旨在規(guī)范需求識別流程,確保需求描述的完整性、一致性和可追溯性。需求識別應基于用戶業(yè)務(wù)場景,采用UML圖示和文字描述相結(jié)合的方式,全面覆蓋功能性需求和非功能性需求。

需求識別的目標是創(chuàng)建一個共同的理解基礎(chǔ),使得開發(fā)團隊能夠據(jù)此設(shè)計系統(tǒng),而用戶能夠確認系統(tǒng)將滿足其業(yè)務(wù)目標。它不僅是技術(shù)工作的起點,也是項目成功的關(guān)鍵保障。通過UML建模,可以將抽象的業(yè)務(wù)需求轉(zhuǎn)化為具體、可視化的模型元素,便于溝通、分析和驗證。

二、需求識別流程

需求識別需遵循系統(tǒng)化流程,確保需求收集的全面性和準確性。具體步驟如下:

(一)需求收集

1.業(yè)務(wù)調(diào)研:

訪談準備:在開始訪談前,制定詳細的訪談計劃,明確訪談對象(如業(yè)務(wù)經(jīng)理、操作人員、關(guān)鍵用戶)、訪談目標、關(guān)鍵問題清單和訪談時間。準備相關(guān)資料,如初步的業(yè)務(wù)流程描述、組織結(jié)構(gòu)圖等。

訪談執(zhí)行:采用半結(jié)構(gòu)化訪談方式,先介紹訪談目的和流程,然后圍繞關(guān)鍵問題進行提問。鼓勵訪談對象分享實際操作經(jīng)驗、痛點及期望。注意傾聽,并適時追問細節(jié),以獲取深層需求。例如,詢問“在當前流程中,哪個步驟最耗時?”“您希望系統(tǒng)在XX方面如何改進?”

訪談記錄:使用筆記或錄音(需征得同意)記錄訪談內(nèi)容,確保信息的完整性。記錄應包括訪談對象、時間、地點、討論要點和關(guān)鍵引述。

2.資料整理:

現(xiàn)有文檔審查:系統(tǒng)性地收集并審查與目標系統(tǒng)相關(guān)的現(xiàn)有文檔,如業(yè)務(wù)流程圖、系統(tǒng)架構(gòu)圖(如果存在)、用戶手冊、操作指南、舊系統(tǒng)的設(shè)計文檔等。分析這些文檔,提取有用的信息和流程描述。

數(shù)據(jù)字典分析:如果存在數(shù)據(jù)字典,需仔細分析其中定義的數(shù)據(jù)項、數(shù)據(jù)類型、長度、約束等信息,這有助于理解系統(tǒng)的數(shù)據(jù)需求。

會議紀要整理:整理項目啟動會、需求討論會等會議的紀要,提取其中涉及的需求點。

3.需求來源:

明確來源分類:將需求來源進行分類,如用戶直接提出的功能需求、業(yè)務(wù)部門因效率提升提出的優(yōu)化需求、技術(shù)部門基于新技術(shù)提出的增強需求、市場變化帶來的新功能需求等。

記錄來源信息:對于每個需求,詳細記錄其來源(如具體人員、會議、報告)、提出時間、背景信息。這有助于后續(xù)評估和追溯。例如,需求“實現(xiàn)自動報表生成”來源于市場部張三,提出于2023年10月15日的市場策略會議。

(二)需求分析

1.需求分類:

功能性需求識別:確定系統(tǒng)必須提供的功能。這包括用戶交互界面上的操作(如點擊按鈕、填寫表單)、系統(tǒng)內(nèi)部的數(shù)據(jù)處理邏輯(如計算、驗證)、以及系統(tǒng)與其他系統(tǒng)的交互(如API調(diào)用、數(shù)據(jù)導入導出)。例如,“用戶必須能夠通過用戶名和密碼登錄系統(tǒng)”是一個功能性需求。

非功能性需求定義:明確系統(tǒng)運行時的質(zhì)量屬性要求。常見的非功能性需求包括:

性能需求:如系統(tǒng)響應時間不超過2秒,并發(fā)用戶數(shù)支持至少100個,數(shù)據(jù)庫查詢速度要求等。需結(jié)合業(yè)務(wù)場景設(shè)定具體指標。

安全需求:如用戶密碼需加密存儲,敏感數(shù)據(jù)傳輸需加密,具備防SQL注入措施,定期進行安全審計等。

可用性需求:如系統(tǒng)可用性需達到99.9%,提供在線幫助文檔,界面操作需符合用戶習慣等。

可靠性需求:如系統(tǒng)需具備故障恢復能力,數(shù)據(jù)備份頻率要求(如每日備份),關(guān)鍵操作需有日志記錄等。

可維護性需求:如代碼需遵循編碼規(guī)范,模塊化設(shè)計,提供詳細的開發(fā)文檔等。

可擴展性需求:如系統(tǒng)設(shè)計需考慮未來業(yè)務(wù)增長,支持水平擴展或垂直擴展。

2.需求優(yōu)先級:

確定優(yōu)先級標準:建立明確的優(yōu)先級排序標準,常用的標準包括:

業(yè)務(wù)價值:需求對核心業(yè)務(wù)目標的貢獻程度。

用戶影響:需求對用戶工作的影響范圍和重要性。

實現(xiàn)成本:開發(fā)、測試、部署所需的人力、物力、時間成本。

依賴關(guān)系:某些需求必須在其他需求完成后才能實現(xiàn)。

強制性:法律法規(guī)或合同要求的強制性需求通常優(yōu)先級最高。

優(yōu)先級排序方法:可采用MoSCoW方法(Musthave,Shouldhave,Couldhave,Won'thavethistime)、Kano模型(基本型、期望型、魅力型)或簡單的評分法(如1-5分)進行排序。

應用優(yōu)先級:將每個需求分配到優(yōu)先級等級(如P0-緊急,P1-高,P2-中,P3-低),并在需求文檔中清晰標注。優(yōu)先級高的需求應在早期開發(fā)迭代中實現(xiàn)。

3.可行性評估:

技術(shù)可行性分析:評估當前技術(shù)是否能夠支持需求的實現(xiàn)??紤]現(xiàn)有技術(shù)棧、開發(fā)工具、第三方服務(wù)可用性等。例如,需求“系統(tǒng)需支持語音識別”需要評估是否有成熟的API可用,以及團隊是否具備調(diào)用和處理語音數(shù)據(jù)的技能。

經(jīng)濟可行性分析:估算需求實現(xiàn)的成本(開發(fā)、硬件、軟件許可、培訓等)與預期收益(效率提升、成本節(jié)約、用戶滿意度等),判斷投入產(chǎn)出比是否合理。

操作可行性分析:評估需求是否容易被用戶接受和操作。考慮用戶技能水平、使用環(huán)境、學習成本等。例如,一個極其復雜的配置界面可能操作可行性較低。

時間可行性分析:判斷在項目既定的時間框架內(nèi),是否能夠完成需求的開發(fā)和上線。

記錄評估結(jié)果:對于每個需求,記錄其可行性分析結(jié)果(可行、部分可行、不可行),以及相應的理由和建議(如需替代方案、需進一步研究等)。

(三)需求文檔化

1.UML用例圖:

繪制步驟:

識別參與者:根據(jù)需求收集結(jié)果,列出所有與系統(tǒng)交互的外部實體(人、其他系統(tǒng)、設(shè)備等)。例如,在線購物系統(tǒng)中的參與者可能包括“顧客”、“購物車”、“支付網(wǎng)關(guān)”、“訂單管理”。

識別用例:定義每個參與者能發(fā)起的、系統(tǒng)可執(zhí)行的、有價值的功能性活動(用例)。例如,“顧客”的用例有“瀏覽商品”、“添加到購物車”、“提交訂單”、“查看訂單歷史”。

繪制圖形:使用UML標準符號繪制用例圖,包括參與者(小人圖標)、用例(橢圓形)、系統(tǒng)邊界(矩形包圍)以及它們之間的關(guān)系(關(guān)聯(lián)、包含、擴展、泛化)。

文字說明:為每個用例添加簡潔的名稱,并在需求規(guī)格說明書中詳細描述用例的詳細場景(基本流程、替代流程、異常流程)。

目的:用例圖直觀地展示了系統(tǒng)的功能范圍和用戶交互方式,是需求溝通的重要工具。

2.UML活動圖:

繪制步驟:

定義主控流程:確定系統(tǒng)執(zhí)行的頂級業(yè)務(wù)流程或操作流程。例如,“處理在線訂單”是一個主控流程。

識別活動:將主控流程分解為一系列具體的活動步驟(矩形框)。例如,“處理在線訂單”可以分解為“接收訂單信息”、“驗證訂單有效性”、“檢查庫存”、“扣減庫存”、“生成訂單號”、“調(diào)用支付接口”、“處理支付結(jié)果”、“更新訂單狀態(tài)”、“發(fā)送訂單通知”。

添加決策點:在流程中可能存在需要根據(jù)條件進行分支選擇的地方,使用菱形表示決策,并標注條件。例如,“處理支付結(jié)果”后可能有“支付成功”和“支付失敗”兩個分支。

添加控制流:使用箭頭表示活動的執(zhí)行順序和跳轉(zhuǎn)。例如,從“驗證訂單有效性”到“檢查庫存”,從“支付失敗”可能跳轉(zhuǎn)回“接收訂單信息”讓用戶重新支付。

添加對象流(可選):如果流程涉及數(shù)據(jù)的創(chuàng)建、傳遞或修改,可以使用黑色箭頭表示對象流。

繪制圖形:按照UML活動圖標準符號繪制。

文字說明:為每個活動添加簡要名稱,并在需求規(guī)格說明書中補充詳細描述。

目的:活動圖清晰地展現(xiàn)了業(yè)務(wù)流程的步驟、順序、分支和并發(fā)情況,有助于理解系統(tǒng)的工作邏輯。

3.需求規(guī)格說明:

核心內(nèi)容:

引言:項目背景、目標、范圍、參考文檔等。

總體描述:系統(tǒng)目標、主要功能概述、用戶特征(如技術(shù)熟練度)、約束條件(如技術(shù)限制、時間限制)、假設(shè)和依賴。

系統(tǒng)功能需求:

按模塊或用例組織需求。

每個需求項包含:唯一標識符、需求描述(清晰、無歧義地說明系統(tǒng)應做什么)、驗收標準(明確說明如何判斷該需求已滿足,由誰驗證)、優(yōu)先級、來源、狀態(tài)(新建、已分析、已確認、已實現(xiàn)、已驗證等)。

可關(guān)聯(lián)UML圖(如用例圖、活動圖、類圖)。

系統(tǒng)非功能需求:

按類別(性能、安全、可用性等)組織。

每個需求項包含:唯一標識符、需求描述、具體指標(如響應時間<1秒,并發(fā)用戶>500)、驗收標準、優(yōu)先級、來源、狀態(tài)。

數(shù)據(jù)需求:關(guān)鍵數(shù)據(jù)項定義、數(shù)據(jù)模型(可引用類圖)、數(shù)據(jù)存儲要求、數(shù)據(jù)交換格式等。

接口需求:系統(tǒng)與外部系統(tǒng)交互的接口描述(接口名稱、輸入輸出參數(shù)、協(xié)議、調(diào)用方式等)。

假設(shè)與約束:重申項目假設(shè)和限制條件。

編寫要求:語言清晰、準確、無歧義,避免使用模糊或主觀性強的詞語。使用編號體系(如需求ID:FR-001)確保唯一性。保持文檔的動態(tài)更新,隨著項目的進展,及時反映需求的變更。

三、UML建模規(guī)范

UML建模需遵循統(tǒng)一標準,確保模型的可讀性和可維護性。

(一)用例圖建模

1.參與者識別:

明確角色:區(qū)分不同類型的參與者。例如,“管理員”可能負責系統(tǒng)配置,“普通用戶”負責日常操作,“系統(tǒng)”可能代表與其他系統(tǒng)的交互接口。

區(qū)分主動與被動:某些參與者可能僅在系統(tǒng)中讀取數(shù)據(jù)而不執(zhí)行操作(被動參與者),需明確區(qū)分。

考慮權(quán)限差異:如果參與者具有不同的權(quán)限集,可以在用例圖或需求說明中體現(xiàn),或者通過包含/擴展關(guān)系來建模不同權(quán)限級別的用例。

2.用例定義:

動詞短語命名:用例名稱通常采用動詞短語形式,表示系統(tǒng)為參與者提供的一個價值動作。例如,“管理用戶信息”、“審批采購申請”、“生成銷售報表”。

完整性覆蓋:確保用例集覆蓋了系統(tǒng)提供的所有主要價值功能,且不重疊。可以通過“用例覆蓋矩陣”來檢查用例的完整性。

粒度適中:用例的粒度應適中。太細的用例會使圖過于復雜,太粗的用例則缺乏細節(jié)。一般建議一個用例對應一個用戶故事或一個小的業(yè)務(wù)流程。

3.關(guān)系繪制:

關(guān)聯(lián)(Association):最基本的關(guān)系,表示參與者與用例之間的連接。通常用實線帶箭頭表示方向(從參與者指向用例)。

包含(Include):表示一個用例的行為是另一個或多個用例行為的組成部分。被包含的用例稱為“基礎(chǔ)用例”。例如,“提交訂單”用例包含“選擇商品”和“填寫地址”兩個基礎(chǔ)用例的行為。用空心三角形指向基礎(chǔ)用例。

擴展(Extend):表示在一個用例的基本流程(主干)上,根據(jù)特定條件(擴展條件)增加額外的行為路徑。擴展用例本身不獨立執(zhí)行,只有在主用例的特定條件下才會執(zhí)行。例如,“提交訂單”用例可以根據(jù)條件“使用優(yōu)惠券”擴展出“應用優(yōu)惠券”的行為。用虛線加空心三角形指向擴展用例。

泛化(Generalization):表示多個用例共享相同的行為,可以抽象出一個公共的用例。子用例繼承父用例的行為,并可以添加或重寫部分行為。例如,多個具體的商品購買用例(如“購買書籍”、“購買服裝”)可以泛化出一個父用例“購買商品”。用空心三角形和實線指向父用例。

正確使用:根據(jù)需求關(guān)系選擇合適的建模關(guān)系,避免濫用。例如,不要用擴展來代替包含,除非確實存在條件性分支。

(二)UML類圖建模

1.核心類識別:

識別名詞:通過分析需求描述和用例,識別描述事物、概念或?qū)嶓w的名詞,這些通常是潛在的核心類。例如,“用戶”、“產(chǎn)品”、“訂單”、“支付記錄”。

識別關(guān)系:分析類之間的關(guān)系(如“用戶”擁有“訂單”,“訂單”包含“商品”),有助于進一步識別相關(guān)類。

區(qū)分實體類與邊界類:實體類(EntityClass)通常代表系統(tǒng)中的數(shù)據(jù)持久化對象(如用戶、產(chǎn)品),邊界類(BoundaryClass)代表用戶界面或與外部交互的接口(如登錄界面、查詢界面)。在類圖中主要關(guān)注實體類。

2.屬性與方法:

屬性定義:為每個類定義屬性,包括:

名稱:屬性名,通常使用名詞或名詞短語。

類型:屬性的數(shù)據(jù)類型(如String,Integer,Date,Boolean)。

可見性:修飾符(public+,private-,protected),表示屬性的訪問權(quán)限。

默認值(可選):屬性初始值。

約束/注釋(可選):對屬性的解釋或約束條件(如“非空”、“唯一”)。

示例:類“用戶”的屬性可能包括:`-用戶ID:String(primarykey,unique)`,`-用戶名:String(notnull)`,`-密碼:String(notnull)`,`+郵箱:String`。

方法定義:

名稱:方法名,通常使用動詞或動詞短語。

參數(shù)列表:方法的輸入?yún)?shù)(名稱、類型、可見性)。

返回類型:方法執(zhí)行后返回的結(jié)果類型(或void表示無返回值)。

可見性:修飾符(public+,private-,protected)。

實現(xiàn)(可選):在需求階段,方法通常只定義原型,不涉及具體實現(xiàn)代碼??梢蕴砑雍喴f明描述方法的功能。

示例:類“用戶”的方法可能包括:`+登錄(用戶名:String,密碼:String):Boolean`,`+修改個人信息(新郵箱:String):void`。

3.關(guān)系定義:

關(guān)聯(lián)(Association):表示兩個或多個類之間的結(jié)構(gòu)化連接,表明它們之間存在語義上的聯(lián)系。用實線表示??梢愿郊踊鶖?shù)(如1,表示一對多)。

聚合(Aggregation):表示整體與部分的關(guān)系,強調(diào)部分可以獨立于整體存在。例如,汽車與車輪的關(guān)系。用帶空心菱形的實線表示,菱形在整體類端。

組合(Composition):表示整體對部分擁有更強的擁有權(quán),部分的生命周期通常依賴于整體。例如,人體與心臟的關(guān)系。用帶實心菱形的實線表示,菱形在整體類端。

繼承(Inheritance):表示類之間的泛化關(guān)系,子類繼承父類的屬性和方法。用帶空心三角形的實線表示,三角形在子類端。

依賴(Dependency):表示一個類的方法使用另一個類的對象,或者一個類的方法參數(shù)是另一個類的對象。表示較弱的連接關(guān)系。用虛線表示。

關(guān)系命名(可選):對于重要的關(guān)聯(lián),可以添加名稱來描述關(guān)系,如“擁有”或“管理”。

(三)順序圖建模

1.交互對象:

選擇參與者:選擇參與該交互場景的主要對象(類或參與者),作為生命線(垂直虛線)的起點或終點。

確定執(zhí)行順序:根據(jù)需求場景或活動圖,確定對象間消息傳遞的先后順序。

2.消息傳遞:

同步消息:發(fā)送方等待接收方處理完消息再繼續(xù)執(zhí)行。用實線箭頭表示,箭頭指向接收對象的生命線。

異步消息:發(fā)送方發(fā)送消息后立即繼續(xù)執(zhí)行,不等待接收方。用虛線箭頭表示。

創(chuàng)建消息:表示一個對象創(chuàng)建另一個對象。用帶實心小箭頭的虛線表示。

銷毀消息:表示一個對象銷毀另一個對象。用帶X的虛線表示。

時間約束(可選):對于關(guān)鍵的時間相關(guān)的消息,可以標注時間限制。

3.生命線繪制:

生命線表示:每個對象對應一條生命線,貫穿整個交互過程。

激活條(可選):在生命線上方用細矩形表示對象處于激活狀態(tài)(即正在執(zhí)行操作或處理消息)的時間段。

自消息:對象向自身發(fā)送消息。用從生命線出發(fā)、指向自身生命線的箭頭表示。

協(xié)作圖補充:順序圖常與協(xié)作圖(CommunicationDiagram)結(jié)合使用,協(xié)作圖更側(cè)重于對象間的鏈接關(guān)系,而順序圖側(cè)重于消息的時間順序。

四、需求驗證與確認

需求識別完成后,需進行驗證與確認,確保需求符合預期。

(一)需求評審

1.內(nèi)部評審:

評審準備:提前分發(fā)需求文檔和UML模型給項目團隊成員(開發(fā)、測試、產(chǎn)品等),準備評審議程和檢查表(Checklist),明確評審目標和重點。

評審會議:組織評審會議,由需求分析師主持,逐項檢查需求文檔和模型,對照檢查表提問、討論、記錄問題。鼓勵建設(shè)性意見。

問題跟蹤:使用需求管理工具或問題跟蹤系統(tǒng),記錄所有發(fā)現(xiàn)的問題、缺陷或改進建議,指派責任人,并跟蹤解決狀態(tài)。

2.用戶確認:

邀請用戶:邀請最終用戶或業(yè)務(wù)代表參與需求確認。確保參與者能夠代表目標用戶群體。

演示與講解:結(jié)合UML模型(特別是用例圖和活動圖)和文字說明,向用戶演示和講解需求內(nèi)容??梢允褂迷凸ぞ咧谱鞯捅U婊蚋弑U嬖洼o助講解。

場景模擬:邀請用戶根據(jù)需求場景進行模擬操作,觀察用戶的理解和反應。

反饋收集:通過問卷、訪談或討論會形式,收集用戶對需求的反饋,特別是確認需求是否滿足他們的業(yè)務(wù)目標和理解。

3.問題跟蹤:建立清晰的問題跟蹤機制,確保用戶反饋的問題得到記錄、分配、處理和驗證。更新需求文檔和模型狀態(tài)。

(二)需求測試

1.原型測試:

原型制作:根據(jù)用例圖和活動圖,使用原型工具(如Axure,Figm

溫馨提示

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

最新文檔

評論

0/150

提交評論