SERU最佳需求分析方法
SERU需求分析是由徐峰老師于08年提出的一種以業(yè)務(wù)為驅(qū)動,實踐為載體的需求分析體系。個人認(rèn)為是一種理論最大化應(yīng)用到實際業(yè)務(wù)中的方式:把傳統(tǒng)的分析方法與建模理論應(yīng)用到實際業(yè)務(wù)中,再對業(yè)務(wù)中的場景和問題結(jié)合uml,rup分析的方法進行業(yè)務(wù)建模,具體問題抽象化找到最佳的解決路徑。有時候很多產(chǎn)品人在分析需求的時候只是憑一些邏輯分析的方法,通過幾個原型就去規(guī)劃信息系統(tǒng)或app的架構(gòu)正是缺少需求理論分析的表現(xiàn)。
SERU需求分析意為Subject Area,Event/Report,User case三個需求分析創(chuàng)建的層次。分別對應(yīng)了seru方法中三個重要的階段: 明確目標(biāo)和范圍(開天辟地)、理清脈絡(luò)和框架(涇渭分明)、填充需求細(xì)節(jié)(天圓地方);整個需求體系可劃分為需求定義、需求捕獲和需求分析, 通過主題域、事件、報表/管控點、用例四個關(guān)鍵分解項貫穿分析、建模和描述過程。我認(rèn)為這有點像畫素描的過程,首先把范圍以及大致的框架畫成型,然后畫出各部分的骨架以及結(jié)構(gòu)形成大致的形體,最后再添加每一個層次上的細(xì)節(jié)形成一幅完整的畫作。需求分析建模也是有種藝術(shù)的境界。
圖1 SERU模型
明確目標(biāo)和范圍
第一階段,明確目標(biāo)和范圍也就是需求的定義階段,在項目立項初始對需求范圍的梳理階段。這個階段的核心目標(biāo)是通過劃分主題域(subject)、標(biāo)示出每個主題域中的業(yè)務(wù)事件(event)和確定報表(report)的方式明確分析的范圍和目標(biāo)。在上一篇文章我已經(jīng)完整敘述了整個劃分和標(biāo)示的流程,在這里簡單地說一下。筆者提倡一種自上而下、逐層分解的分析思路。 在這個階段需要按照業(yè)務(wù)流程來劃分,以”事”為線索貫穿系統(tǒng),用uml中的構(gòu)件圖建模并表達業(yè)務(wù)流程抽象化的過程。首先應(yīng)該按照業(yè)務(wù)的職責(zé)區(qū)塊來劃分子系統(tǒng),然后根據(jù)實現(xiàn)關(guān)系及使用關(guān)系標(biāo)示出各系統(tǒng)之間的接口并且在這個階段分析各子主題域之間的關(guān)系,最后一步進行主題域范圍的明確,界定每個主題域內(nèi)進行的功能以及相關(guān)的事件并且要考慮到Customer與Worker之間的關(guān)系。找到系統(tǒng)中所有的客戶,考慮這些客戶會引起什么事件的發(fā)生,這些事件會引起Worker什么樣的工作,將這些都考慮進來。然后再補充Worker主動發(fā)起的動作,那么一個系統(tǒng)的所有事件就能沒有遺漏地梳理完整了。
圖2 劃分子系統(tǒng),確定關(guān)系
理清脈絡(luò)和框架
第二階段,理清脈絡(luò)階段就是對業(yè)務(wù)粒度的細(xì)化。該階段的任務(wù)就是對每個業(yè)務(wù)事件、每類報表進行人事物三者之間關(guān)系的分析,并標(biāo)示出絕大部分的用例。需求先分解再提煉,第一階段是需求分解并形成組織架構(gòu)的階段,在第二階段就是對需求進行提煉的過程。前面說過分解是一個自上而下的過程,那么按照一種線索進行分解時多個業(yè)務(wù)時間就會產(chǎn)生相互交疊的情況。提煉就是一種自底向上的方式將每個業(yè)務(wù)事件的類進行提煉,抽取出共性的部分,建立針對整個系統(tǒng)的全局領(lǐng)域模型。我們可以使用uml中的領(lǐng)域類圖、流程圖和用例圖來理清需求的結(jié)構(gòu)框架和行為脈絡(luò),把業(yè)務(wù)事件列表以及報表輸出成領(lǐng)域模型和用例模型。業(yè)務(wù)流程的梳理應(yīng)該是每個產(chǎn)品人的基本功,在這里我推薦使用跨職責(zé)流程圖以及完善的活動圖提煉出業(yè)務(wù)模型。
圖4 活動圖
那么通過模型,我們可以看到子系統(tǒng)內(nèi)業(yè)務(wù)流轉(zhuǎn)的過程,從而確定邏輯關(guān)系以及數(shù)量關(guān)系??偠灾砬迕}絡(luò)的方式可以通過uml中各種圖例幫助產(chǎn)品人員理清業(yè)務(wù)流程,建立起完善的業(yè)務(wù)邏輯模型。在這里要善于合也要善于舍,合并提煉相同的業(yè)務(wù)類,舍棄細(xì)節(jié)的干擾,整理出子系統(tǒng)內(nèi)層次清晰的架構(gòu)。
圖5 梳理脈絡(luò)并且進行建模
填充需求細(xì)節(jié)
第三個階段是填充細(xì)節(jié)階段,該階段的任務(wù)就是填充每個用例的實現(xiàn)細(xì)節(jié),以便于開發(fā)人員進行具體的實現(xiàn)。往往產(chǎn)品人員在考慮需求范圍的時候只考慮到功能性需求,在這個階段要對非功能性需求以及設(shè)計約束進行更細(xì)致的補充。這個階段的任務(wù)是對用例模型、領(lǐng)域模型標(biāo)示出用例、領(lǐng)域類的細(xì)節(jié)進行填充。對于組織行為需求的用例,我們要填充用例的事件流;對于組織數(shù)據(jù)(結(jié)構(gòu))需求的領(lǐng)域類,我們要填充它的字段與格式。很多產(chǎn)品人員在歸納用例的時候會采用“先人后事”的思路,這種方式很容易陷入誤區(qū)。我們應(yīng)該講人(角色,參與者)和事(場景,用例)分開考慮,在確定他們的關(guān)聯(lián)時,要先事后人地考慮。用例說明可以分為兩個層次,第一個層次重點關(guān)注業(yè)務(wù)活動的變化以及其中的約束條件,另外一個層次就是交互/界面在視覺層次上的建模和細(xì)化。這兩個層次其實是縱深對應(yīng)的關(guān)系,先考慮業(yè)務(wù)和規(guī)則,再考慮前端的交互和界面展示。在這個階段不單單是對業(yè)務(wù)的考慮,同時前置條件,后置條件,基本事件流程,拓展事件流程,子事件流程都是用例的核心部分。
圖6 填充需求細(xì)節(jié)
總結(jié)
在需求分析,架構(gòu)系統(tǒng)的時候往往我們產(chǎn)品人員會把大量的時間花在探索“怎么做”,很少對現(xiàn)實業(yè)務(wù)的整個過程進行思考。SERU需求分析的核心是從“人,事,物,接口”四條主線著手,沿著業(yè)務(wù)的脈絡(luò)(業(yè)務(wù)主題域-業(yè)務(wù)事件/流程報表-業(yè)務(wù)活動-業(yè)務(wù)步驟)進行有機的分解,再以建模(構(gòu)建-流程圖-用例-事件流)的方式實現(xiàn)定向的需求分析。先從廣義上對問題進行系統(tǒng)的拆分,以子系統(tǒng)的方式單獨成一個封閉的集合,接下來考慮集合與集合之間的關(guān)系,最后完善集合內(nèi)部符合業(yè)務(wù)流轉(zhuǎn)的玩法。實際上我認(rèn)為這個過程很像古代治國的方式,三個步驟對應(yīng)著確定國家邊界,國與國之間的延展,國內(nèi)的治理。或許徐峰老師自身體現(xiàn)的也是一種設(shè)計系統(tǒng)架構(gòu)的兵家思想。
本文由 @justinlam(知乎id:justinlam) 授權(quán)發(fā)布于人人都是產(chǎn)品經(jīng)理?,未經(jīng)許可,禁止轉(zhuǎn)載。
這是傳統(tǒng)的需求分析方法,是否適用于產(chǎn)品分析?我不知道
說的太復(fù)雜了,不是很能理解。
謝謝樓主分享
學(xué)習(xí)到了,之前看了volere的需求分析方法,和作者seru分析有點類似,請問有沒有什么具體的案例可以參考學(xué)習(xí)一下呢,謝謝!
volere的需求分析方法是《掌握需求過程》這本書的,seru的分析方法是徐峰的《軟件需求最佳實踐》這本書的。后者有參考和借鑒前者。
領(lǐng)教,領(lǐng)教,學(xué)習(xí)學(xué)習(xí)
理論很好,文字好難讀,感覺好生硬
感同身受
誰能告訴我文中說的上一篇是哪一篇
https://www.zhihu.com/people/hannah-56-7/activities我想可能是這一篇,如何畫構(gòu)件圖
上一篇文章是那一片啊 作者怎么不說明啊
同求
在上一篇文章我已經(jīng)完整敘述了整個劃分和標(biāo)示的流程,同求
沒圖 ?? ??
樓主,看不到圖片哎