如何用UML來做需求分析


在面向?qū)ο蟮男枨蠓治龇椒ㄖ泻暾琔ML的地位是不容動(dòng)搖的奏路。
在和很多做產(chǎn)品做需求的小伙伴聊過后發(fā)現(xiàn)大家對(duì)UML的了解非常的少,在之前組織的需求分析實(shí)戰(zhàn)中也發(fā)現(xiàn)了這一點(diǎn)举哟。
反而對(duì)程序員GG來說思劳,UML的普及率會(huì)更高一些。

有的人會(huì)說妨猩,我不用UML潜叛,需求分析的也挺好的啊,產(chǎn)品做的也沒什么問題啊壶硅。

如果你正面臨著下面這些問題威兜,我建議你看一下這篇文庐椒,并且學(xué)習(xí)并應(yīng)用UML约谈。

  • 我對(duì)自己的產(chǎn)品功能了如指掌,但是卻無法總結(jié)出所有的系統(tǒng)角色特征
  • 測(cè)試寫的用例我提不出意見泼橘,但是測(cè)試結(jié)束后我卻經(jīng)常發(fā)現(xiàn)之前沒有想到過的用例
  • 在做原型及需求文檔時(shí)炬灭,有時(shí)候會(huì)遺漏某個(gè)功能或者場(chǎng)景
  • 與程序猿經(jīng)常無法溝通重归,我覺得自己寫的文檔厦凤、畫的原型已經(jīng)很清晰了较鼓,但是他們就是看不懂
  • 我完全不知道產(chǎn)品中的業(yè)務(wù)主流程在執(zhí)行的過程中會(huì)有哪些對(duì)象參與

什么是UML?

統(tǒng)一建模語言(UML拓哺,UnifiedModelingLanguage)是面向?qū)ο筌浖臉?biāo)準(zhǔn)化建模語言士鸥。UML因其簡(jiǎn)單、統(tǒng)一的特點(diǎn)讼积,而且能表達(dá)軟件設(shè)計(jì)中的動(dòng)態(tài)和靜態(tài)信息脚仔,目前已成為可視化建模語言的工業(yè)標(biāo)準(zhǔn)。在軟件無線電系統(tǒng)的開發(fā)過程中们颜,統(tǒng)一建模語言可以在整個(gè)設(shè)計(jì)周期中使用猎醇,幫助設(shè)計(jì)者縮短設(shè)計(jì)時(shí)間,減少改進(jìn)的成本阻问,使軟硬件分割最優(yōu)称近。

簡(jiǎn)而言之就是一種語言煌茬,一種規(guī)范彻桃。
就好像音樂用五線譜邻眷、簡(jiǎn)譜表達(dá)肆饶,數(shù)學(xué)用公式表達(dá)驯镊,需求模型用UML來表達(dá)。
曾經(jīng)有的人希望在需求階段將UML做的很規(guī)范橄镜,并可以由此直接生成代碼冯乘。就像現(xiàn)在的原型可以直接生成頁面代碼一樣洽胶。
現(xiàn)在已經(jīng)有很多工具可以做到這些了,雖然生成的代碼不是那么的讓人滿意裆馒。
但是不排除未來掌握UML和業(yè)務(wù)的人員直接跳過程序員編寫軟件產(chǎn)品。

UML帶給需求分析什么喷好?

以小婧使用UML的經(jīng)驗(yàn)來看翔横,UML會(huì)給需求分析及需求相關(guān)人員提供更清晰梗搅、明確的目標(biāo)禾唁。

我經(jīng)常說,用UML重點(diǎn)是要充分應(yīng)用它面向?qū)ο蟮姆治龇椒ā?br> 也就是在做業(yè)務(wù)分析的時(shí)候些膨,將信息抽象成對(duì)象進(jìn)行分析,可以使得自己避開“干擾”信息订雾,抓住“主線”肢预。

你會(huì)對(duì)你的解決方案更加有信心洼哎,知道哪些地方存在改善的空間烫映,會(huì)給用戶帶來什么價(jià)值。
如果發(fā)生需求變更,你也會(huì)很清晰的識(shí)別出影響點(diǎn)识补。
你設(shè)計(jì)出來的產(chǎn)品和業(yè)務(wù)流程會(huì)更加連貫、合理切油、有邏輯性,模塊及功能之間的耦合關(guān)聯(lián)也非常清晰娩鹉。

就好像你看蜘蛛網(wǎng)仿佛毫無章法,但是仔細(xì)看來卻是一件完美的藝術(shù)品稚伍。

UML適用于哪些階段弯予?

我們從UML的定義也可以看出,UML主要是服務(wù)于設(shè)計(jì)的槐瑞。在需求分析階段熙涤,我們?nèi)绻芎芎玫氖褂肬ML,將會(huì)為代碼設(shè)計(jì)提供很好的支持困檩。
UMLChina在《軟件方法》一書中提出了一個(gè)概念叫核心工作流祠挫。使用核心工作流可實(shí)現(xiàn)“低成本制造好賣的產(chǎn)品”。

1 業(yè)務(wù)建牡垦兀——組織要解決什么問題

做產(chǎn)品需求的人都知道等舔,我們需要去找甲方的痛點(diǎn)也就是問題,如果我們的產(chǎn)品可以很好的解決問題糟趾,那么人家就愿意付錢慌植,我們就能盈利。
而你的產(chǎn)品能帶給用戶什么價(jià)值义郑,這個(gè)價(jià)值到底是否足夠大到吸引用戶來付費(fèi)蝶柿。你可以通過業(yè)務(wù)建模來進(jìn)行分析。要知道引進(jìn)一個(gè)軟件系統(tǒng)非驮,和招聘一名新員工沒有本質(zhì)的區(qū)別交汤。我以前經(jīng)常會(huì)被challenge的問題是:我為什么要買你們的系統(tǒng),我用Excel也管的挺好的劫笙。

業(yè)務(wù)建模階段思考的焦點(diǎn)是:組織內(nèi)系統(tǒng)之間
推薦UML元素:用例圖芙扎、類圖、序列圖

2需求——為了解決組織的問題填大,待開發(fā)系統(tǒng)應(yīng)該提供什么功能和性能

這里強(qiáng)迫我們從“賣”的角度思考哪些是干系人在意的戒洼,哪些不是。
需求階段思考的焦點(diǎn)是:系統(tǒng)邊界
推薦的UML元素:用例圖允华、文本

3分析——為了提供功能圈浇,系統(tǒng)內(nèi)部應(yīng)該有什么樣的核心機(jī)制

在用戶的整個(gè)業(yè)務(wù)流程中,你的產(chǎn)品是在哪個(gè)部分起什么作用的靴寂。大部分的軟件產(chǎn)品的作用就是取代人工磷蜀,實(shí)現(xiàn)自動(dòng)化。以前我們?nèi)ゲ宛^點(diǎn)菜需要服務(wù)員拿個(gè)小單子來寫你點(diǎn)了哪些菜榨汤,或者直接人腦記憶;付款的時(shí)候怎茫,老板要收集小單子或者記錄在小本子上收壕,以便休息的時(shí)候計(jì)算營(yíng)業(yè)額妓灌。但是現(xiàn)在我們?nèi)コ燥垼苯右粋€(gè)IPAD蜜宪,菜單虫埂、點(diǎn)菜、消費(fèi)記錄全部自動(dòng)化圃验。裝在IPAD里的系統(tǒng)是通過分析得到的掉伏。
在分解階段思考的焦點(diǎn)是:系統(tǒng)內(nèi)核心域
推薦的UML元素:類圖、序列圖澳窑、狀態(tài)機(jī)圖

4設(shè)計(jì)——試了提供性能斧散,系統(tǒng)的核心機(jī)制如何選定技術(shù)實(shí)現(xiàn)

主要聚焦:系統(tǒng)內(nèi)各域之間
UML:不畫,代碼即設(shè)計(jì)

從上面幾個(gè)階段我們可以看出摊聋,對(duì)于我們產(chǎn)品需求人員需要掌握的UML其實(shí)只有那么幾種:用例圖鸡捐、序列圖、類圖麻裁、狀態(tài)圖箍镜。

有人會(huì)問,為什么沒有活動(dòng)圖(流程圖)煎源?
我覺得如果你和用戶或者業(yè)務(wù)人員溝通色迂,可以使用活動(dòng)圖、但是如果你是為研發(fā)手销、設(shè)計(jì)服務(wù)歇僧,建議使用序列圖。因?yàn)?strong>序列圖會(huì)強(qiáng)迫你去思考所有的動(dòng)作背后的目的原献。

2016-10-21_16-27-10.jpg

怎么畫UML馏慨?

關(guān)于各種圖的具體畫法我覺得大家去問度娘會(huì)得到比我這有限篇幅更詳細(xì)的信息。
而針對(duì)用例圖姑隅,我最近看到一種說法写隶,覺得很有意思,在本文中做一個(gè)分享讲仰。

潘加宇老師在《軟件方法》中提到了兩種用例圖:業(yè)務(wù)用例圖和系統(tǒng)用例圖慕趴。

之前有小伙伴說,測(cè)試和開發(fā)看不懂他畫的用例圖鄙陡,很苦惱冕房。我仔細(xì)看了下,確實(shí)是有些表述不清趁矾。因?yàn)樗褬I(yè)務(wù)用例圖和系統(tǒng)用例圖弄在一起了耙册。

業(yè)務(wù)用例圖

業(yè)務(wù)用例圖主要是用在業(yè)務(wù)建模的階段,目的是從甲方的角度來定位系統(tǒng)應(yīng)該提供的價(jià)值毫捣。

所以業(yè)務(wù)用例圖研究的對(duì)象是甲方組織详拙。甲方的組織里面包括哪些角色帝际,哪些軟件系統(tǒng),哪些部門饶辙?而我們的系統(tǒng)將承擔(dān)這些對(duì)象中的哪些對(duì)象的大部分職責(zé)蹲诀?

另外一方面,業(yè)務(wù)用例圖的Actor執(zhí)行者是業(yè)務(wù)執(zhí)行者弃揽,即組織外與組織交互的人群或組織脯爪。
比如你的甲方是某商業(yè)銀行,其Actor是儲(chǔ)戶矿微、企業(yè)用戶痕慢、人民銀行。研究的是他們將會(huì)與商業(yè)銀行產(chǎn)品什么用例冷冗。

系統(tǒng)用例圖

系統(tǒng)用例圖主要使用在需求階段守屉,我們其實(shí)最常用的是系統(tǒng)用例圖。系統(tǒng)用例圖的主要研究對(duì)象是系統(tǒng)蒿辙,也就是我們待開發(fā)的軟件系統(tǒng)拇泛。

系統(tǒng)用例圖的執(zhí)行者是在系統(tǒng)外與系統(tǒng)發(fā)生功能性交互的其他系統(tǒng)。所以重點(diǎn)在于這個(gè)執(zhí)行者與系統(tǒng)發(fā)生功能性交互思灌。
比如前些日子小婧的身份證過期了去辦身份證(我又暴露年齡了)俺叭。身份證辦理系統(tǒng)的執(zhí)行者包括:辦證人員、數(shù)碼相機(jī)泰偿、指紋采集儀熄守。這里要注意的是我并不是系統(tǒng)的執(zhí)行者,至少在這個(gè)非自助的系統(tǒng)中耗跛,我不是裕照。


寫在最后

在實(shí)際的產(chǎn)品需求分析過程中使用UML,不論對(duì)你的產(chǎn)品還是你自己而言都會(huì)收益頗多调塌。
但是和所有的方法一樣晋南,在學(xué)習(xí)和實(shí)踐一種新的方法時(shí)會(huì)面臨很多的挑戰(zhàn),也會(huì)有很多的問題羔砾。
單純就從UML的角度來說负间,我覺得有這樣幾個(gè)方法可以來學(xué)習(xí)實(shí)踐:

  • 對(duì)自己產(chǎn)品進(jìn)行梳理,嘗試用UML的用例圖姜凄、序列圖(時(shí)序圖)繪制現(xiàn)有系統(tǒng)業(yè)務(wù)政溃,并與開發(fā)人員討論。通常來說态秧,開發(fā)對(duì)UML的了解會(huì)更深入董虱,這可能是和現(xiàn)在常見的開發(fā)語言,比如C系列申鱼、Java等也是面向?qū)ο蟮恼Z言有關(guān)愤诱。
  • 度娘UML的繪制方法〔厝担現(xiàn)在很多文章和博客都介紹的很詳細(xì)。
  • 通過閱讀一些比較經(jīng)典的UML書籍转锈。
  • 歡迎和小婧進(jìn)行溝通交流。

小婧是一名行走在產(chǎn)品路上的資深業(yè)務(wù)分析師(BA)楚殿,如果想與我同行撮慨,就請(qǐng)關(guān)注我吧!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末脆粥,一起剝皮案震驚了整個(gè)濱河市砌溺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌变隔,老刑警劉巖规伐,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異匣缘,居然都是意外死亡猖闪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門肌厨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來培慌,“玉大人,你說我怎么就攤上這事柑爸〕郴ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵表鳍,是天一觀的道長(zhǎng)馅而。 經(jīng)常有香客問我,道長(zhǎng)譬圣,這世上最難降的妖魔是什么瓮恭? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮胁镐,結(jié)果婚禮上偎血,老公的妹妹穿的比我還像新娘。我一直安慰自己盯漂,他們只是感情好颇玷,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著就缆,像睡著了一般帖渠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上竭宰,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天空郊,我揣著相機(jī)與錄音份招,去河邊找鬼。 笑死狞甚,一個(gè)胖子當(dāng)著我的面吹牛念赶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播哥艇,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼显设,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了涩盾?” 一聲冷哼從身側(cè)響起十气,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎春霍,沒想到半個(gè)月后砸西,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡址儒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年芹枷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片莲趣。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡杖狼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出妖爷,到底是詐尸還是另有隱情蝶涩,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布絮识,位于F島的核電站绿聘,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏次舌。R本人自食惡果不足惜熄攘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望彼念。 院中可真熱鬧挪圾,春花似錦、人聲如沸逐沙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽吩案。三九已至棚赔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背靠益。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工丧肴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胧后。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓芋浮,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親壳快。 傳聞我的和親對(duì)象是個(gè)殘疾皇子途样,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容