用例在需求分析中的使用
多年來(lái),分析者總是利用情節(jié)或經(jīng)歷來(lái)描述用戶和軟件系統(tǒng)的交互方式,從而獲取需求(McGraw and Harbison 1997)。Ivar Jacobson(1992)把這種看法系統(tǒng)地闡述成用例(用例)的方法進(jìn)行需求獲取和建模。雖然用例來(lái)源于面向?qū)ο蟮拈_發(fā)環(huán)境,但是它也能應(yīng)用在具有許多開發(fā)方法的項(xiàng)目中,因?yàn)橛脩舨⒉魂P(guān)心你是怎樣開發(fā)你的軟件。而最重要的,用例的觀點(diǎn)和思維過(guò)程帶給需求開發(fā)的改變比起是否畫正式的用例圖顯得更為重要。注意用戶要利用系統(tǒng)做什么遠(yuǎn)遠(yuǎn)強(qiáng)于詢問(wèn)用戶希望系統(tǒng)為他們做什么這一傳統(tǒng)方法。
用例的重要功能是用畫用例圖的功能來(lái)鑒別和劃分系統(tǒng)功能。它把系統(tǒng)分成角色(actor)和用例(用例)。角色(actor)表示系統(tǒng)用戶能扮演的角色(role)。這些用戶可能是人,可能是其他的計(jì)算機(jī)一些硬件或者甚至是其它軟件系統(tǒng),唯一的標(biāo)準(zhǔn)是它們必須要在被劃分進(jìn)用例的系統(tǒng)部分以外。它們必須能刺激系統(tǒng)部分并接收返回。用例描述了當(dāng)角色給系統(tǒng)特定的刺激時(shí)系統(tǒng)的活動(dòng)。這些活動(dòng)被文本描述。它描述了觸發(fā)用例的刺激的本質(zhì),輸入和輸出到其他活動(dòng)者,和轉(zhuǎn)換輸入到輸出的活動(dòng)。用例文本通常也描述每一個(gè)活動(dòng)在特殊的活動(dòng)線時(shí)可能的錯(cuò)誤和系統(tǒng)應(yīng)采取的補(bǔ)救措施。
這樣說(shuō)可能會(huì)非常復(fù)雜,其實(shí)一個(gè)用例描述了系統(tǒng)和一個(gè)角色(actor)的交互順序。用例被定義成系統(tǒng)執(zhí)行的一系列動(dòng)作,動(dòng)作執(zhí)行的結(jié)果能被指定角色察覺(jué)到。用例可以:
用例捕獲某些用戶可見(jiàn)的需求,實(shí)現(xiàn)一個(gè)具體的用戶目標(biāo)。
用例由角色激活,并提供確切的值給角色。
用例可大可小,但它必須是對(duì)一個(gè)具體的用戶目標(biāo)實(shí)現(xiàn)的完整描述。在UML中,用例表示為一個(gè)橢圓。
角色是指用戶在系統(tǒng)中所扮演的角色。其圖形化的表示是一個(gè)小人。在某些組織中很可能有許多角色實(shí)例(例如有很多個(gè)銷售員),但就該系統(tǒng)而言,他們均起著同一種作用,扮演著相同的角色,所以用一個(gè)角色表示。一個(gè)用戶也可以扮演多種角色。例如,一個(gè)高級(jí)營(yíng)銷人員既可以是貿(mào)易經(jīng)理,也可以是普通的營(yíng)銷人員;一個(gè)營(yíng)銷人員也可以是售貨員。在處理角色時(shí),應(yīng)考慮其作用,而不是人或工作名稱,這一點(diǎn)是很重要的。
我們使用不帶箭頭的線段將角色與用例連接到一起,表示兩者之間交換信息,稱之為通信聯(lián)系。角色觸發(fā)用例,并與用例進(jìn)行信息交換。單個(gè)角色可與多個(gè)用例聯(lián)系;反過(guò)來(lái),一個(gè)用例可與多個(gè)角色聯(lián)系。對(duì)同一個(gè)用例而言,不同角色有著不同的作用:他們可以從用例中取值,也可以參與到用例中。需要注意的是角色在用例圖中是用類似人的圖形來(lái)表示,盡管執(zhí)行的,但角色未必是人。例如,角色也可以是一個(gè)外界系統(tǒng),該外界系統(tǒng)可能需要從當(dāng)前系統(tǒng)中獲取信息,與當(dāng)前系統(tǒng)有進(jìn)行交互。
一個(gè)用例可能包括完成某項(xiàng)任務(wù)的許多邏輯相關(guān)任務(wù)和交互順序。因此,一個(gè)用例是相關(guān)的用法說(shuō)明的集合,并且一個(gè)說(shuō)明(scenario)是用例的實(shí)例。這種關(guān)系就像是類和對(duì)象的關(guān)系。在用例中,一個(gè)說(shuō)明被視為事件的普通過(guò)程(normal course),也叫作主過(guò)程,基本過(guò)程,普通流,或“滿意之路” (happy path)。在描述普通過(guò)程時(shí)列出執(zhí)行者和系統(tǒng)之間相互交互或?qū)υ挼捻樞?。?dāng)這種交互結(jié)束時(shí),執(zhí)行者也達(dá)到了預(yù)期的目的。
在用例中的其它說(shuō)明可以描述為可選過(guò)程(alternative coruse)??蛇x過(guò)程也可促進(jìn)成功地完成任務(wù),但它們代表了任務(wù)的細(xì)節(jié)或用于完成任務(wù)的途徑的變化部分。在交互序列中,普通過(guò)程可以在一些決策點(diǎn)上分解成可選過(guò)程,然后再重新匯成一個(gè)普通過(guò)程。
角色類和角色實(shí)例
軟件產(chǎn)品最終是給一些用戶來(lái)使用的,而用戶之間的差異是非常大的。造成差異的原因包括了對(duì)計(jì)算
項(xiàng)目經(jīng)理勝任力免費(fèi)測(cè)評(píng)PMQ上線啦!快來(lái)測(cè)測(cè)你排多少名吧~
http://m.opto-elec.com.cn/pmqhd/index.html