溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

發(fā)布時(shí)間:2020-05-05 12:31:12 來源:網(wǎng)絡(luò) 閱讀:1220 作者:oyojie 欄目:軟件技術(shù)

一、Usecase圖的歷史與黑盒視角

1.用況圖的歷史

l1987年,I.Jacbson首先提出

l得到了許多方法學(xué)的采納

l90年代末被UML采納并標(biāo)準(zhǔn)化

2.系統(tǒng)邊界

l黑盒:系統(tǒng)對(duì)外部的客觀世界發(fā)揮什么作用,提供什么業(yè)務(wù)功能來展現(xiàn)系統(tǒng)

l白盒:系統(tǒng)如何提供業(yè)務(wù)功能的。

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

n問題的提出:在系統(tǒng)尚未存在時(shí),如何描繪用戶需要一個(gè)什么樣的系統(tǒng)?如何規(guī)范地定義用戶需求?

n考慮問題的思路:把系統(tǒng)看作一個(gè)黑箱,看它對(duì)外部的客觀世界發(fā)揮什么作用,描述它外部可見的行為。

系統(tǒng)邊界與參與者

l系統(tǒng)邊界:一個(gè)系統(tǒng)所包含的所有系統(tǒng)成分與系統(tǒng)以外各種事物的分界線。

l系統(tǒng):是由“用戶”使用的軟件,以及所有與其相關(guān)的硬件。指被開發(fā)的計(jì)算機(jī)軟硬件系統(tǒng),不是指現(xiàn)實(shí)世界的系統(tǒng)。

l系統(tǒng)成分:在OOAOOD中定義,在編程時(shí)加以實(shí)現(xiàn)的系統(tǒng)元素——對(duì)象系統(tǒng)邊界與參與者

l參與者:在系統(tǒng)邊界以外,與系統(tǒng)進(jìn)行交互的事物——人員、設(shè)備、外系統(tǒng)

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

   注意問題:

 l系統(tǒng)是指被開發(fā)的計(jì)算機(jī)軟硬件系統(tǒng)自身。

 l問題域中的某些事物將作為參與者處理。

 l原來已經(jīng)存在的系統(tǒng),看作是一個(gè)外系統(tǒng)。

 l子系統(tǒng)彼此之間都可以互為外系統(tǒng)。

   現(xiàn)實(shí)世界中的事物與系統(tǒng)的關(guān)系包括如下幾種情況:

 l某些事物位于系統(tǒng)邊界內(nèi),作為系統(tǒng)成分。

 l某些事物位于系統(tǒng)邊界外,作為參與者。

 l某些事物可能既作為參與者,有作為系統(tǒng)成分。

 l某些事物既不作為參與者,又不作為系統(tǒng)成分。

二、參與者的概念、分類與關(guān)系

   參與者

 l簡(jiǎn)而言之,參與者是在系統(tǒng)之外的與系統(tǒng)進(jìn)行交互的任何事物。

 l定義:參與者模型系統(tǒng)之外的實(shí)體,當(dāng)外部實(shí)體與系統(tǒng)交互時(shí),它就扮演某一特定參與者的角色。

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

n參與者可以發(fā)出對(duì)系統(tǒng)服務(wù)的請(qǐng)求

n按系統(tǒng)的要求提供服務(wù)

n通過參與者和系統(tǒng)之間服務(wù)請(qǐng)求的復(fù)雜對(duì)話與系統(tǒng)交互

n所有參與者的請(qǐng)求/響應(yīng)的完全集構(gòu)成了可以察覺到的系統(tǒng)的問題域邊界。

n一個(gè)參與者的一個(gè)實(shí)例代表以一種特定的方式與系統(tǒng)進(jìn)行的單獨(dú)的交互。

n盡管在模型中使用參與者,但參與者實(shí)際上并不是系統(tǒng)的一部分。它們存在于系統(tǒng)之外。

   參與者之間的泛化關(guān)系

 2一些參與者可能具有共同的對(duì)系統(tǒng)調(diào)用的請(qǐng)求。

一種做法是顯式地將這樣相同的每一個(gè)請(qǐng)求與每一個(gè)參與者相關(guān)聯(lián)。(不推薦)

 2如果一組參與者具有共同的性質(zhì),可以把這些性質(zhì)抽取出來放在另一個(gè)參與者中,它們?cè)購闹欣^承,把這種關(guān)系稱為參與者之間的泛化關(guān)系。

 2定義:從參與者A到參與者B之間的泛化關(guān)系是指,A的實(shí)例能與和B實(shí)例進(jìn)行通訊的用況實(shí)例進(jìn)行通信。

       450面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

三、識(shí)別參與者的策略與技巧

   識(shí)別參與者

   1.首先將精力集中于啟動(dòng)系統(tǒng)行為的參與者。

   2.從用戶、外部系統(tǒng)和設(shè)備三個(gè)方面發(fā)現(xiàn)參與者。

   3.通過識(shí)別一般的或較特殊的角色來組織參與者。

   用戶、外部系統(tǒng)與設(shè)備

   用戶

從直接使用系統(tǒng)的人員中發(fā)現(xiàn)參與者

這里強(qiáng)調(diào)的是直接使用,而不是間接的。

特定的人,在系統(tǒng)中可扮演不同的角色。

是用戶角色的類別

   外部系統(tǒng)

所有與系統(tǒng)交互的外部應(yīng)用系統(tǒng)都是參與者

ü外部應(yīng)用系統(tǒng)可以是其他子系統(tǒng),上級(jí)系統(tǒng)或任何與它進(jìn)行協(xié)作的系統(tǒng)。

   設(shè)備

識(shí)別所有與系統(tǒng)交互的設(shè)備

ü與系統(tǒng)相連的設(shè)備

ü向系統(tǒng)提供外界信息或系統(tǒng)的控制下運(yùn)行。

ü通常,不包括監(jiān)視器、鍵盤、鼠標(biāo)和其他的標(biāo)準(zhǔn)的用戶接口類型設(shè)備。

ü考慮外部傳感器(輸入信息)和受控馬達(dá)(輸出信息)。

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

       外部事件

 l當(dāng)我們構(gòu)造實(shí)時(shí)和異步交互的系統(tǒng)時(shí),將外部事件識(shí)別為潛在的參與者就變的更加重要。

   例如,由時(shí)間的流逝而激發(fā)系統(tǒng)的活動(dòng)是常見的情況。可以把時(shí)間事件作為一個(gè)參與者,也可以把時(shí)間事件作為系統(tǒng)的一部分。

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

四、用況與簡(jiǎn)單案例

   用況

   定義:用況是對(duì)參與者使用系統(tǒng)的一項(xiàng)功能時(shí)所進(jìn)行的交互過程的描述。

   A use case is a special sequence of transactions, performed by auser and a system in a dialogue.[Jacobson 1987]

   使用用況的原因

ü用況是對(duì)用戶需求(主要是功能需求)的規(guī)范化的描述。

ü為領(lǐng)域?qū)<?、最終用戶和開發(fā)者提供一種相互交流的手段。

ü為開發(fā)者提供一種認(rèn)識(shí)和理解系統(tǒng)的方法。

ü用況是開發(fā)期間隨著演化而測(cè)試每個(gè)元素的基礎(chǔ)。

   用況與參與者之間的關(guān)系

       定義:關(guān)聯(lián)是參與者在用況中的參與(也就是參與者實(shí)例與用況實(shí)例之間的相互通信)。

       若沒有進(jìn)行特殊的說明,任何一方都可以發(fā)送和接受消息。

       這是參與者和用況之間的唯一關(guān)系。交互是雙向的,參與者能夠產(chǎn)生對(duì)系統(tǒng)的請(qǐng)求,或系統(tǒng)要求參與者采取的某些動(dòng)作。

       把參與者和用況之間的關(guān)聯(lián)表示成參與者和用況之間的一條實(shí)線。

   例1:語音郵件系統(tǒng)

       在語音郵件系統(tǒng)中,當(dāng)有人撥打一個(gè)號(hào)碼時(shí),如果沒有人接聽此電話,此人便留下信息。以后,該信息那個(gè)被另一個(gè)人檢索到并進(jìn)行保留或刪除。

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

    一個(gè)用況可能同多個(gè)參與者交互

       參與者之間通過系統(tǒng)實(shí)時(shí)交互

       參與者之間與系統(tǒng)處于同一控制流

   例2:選課系統(tǒng)

   在選課系統(tǒng)中,學(xué)生登錄后可以查詢所有的課程,并選擇所要修的課程,也可以放棄已經(jīng)選擇的課程,教務(wù)員登錄后可以加入新的課程,刪除一門課程,并可以與指導(dǎo)者一起審查學(xué)生所選的課程,如果不合適,則取消其所選的課程。

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

五、用況參與者及用況之間的關(guān)系與案例

   用況之間的關(guān)系——擴(kuò)展關(guān)系

定義:從用況A到用況B的擴(kuò)展關(guān)系是指,用況B的實(shí)例是可以被用況A指定的行為擴(kuò)充(服從于在擴(kuò)展中指定的特殊條件)。行為被插入到由B中的擴(kuò)展點(diǎn)定義的位置。

通過敞開的虛線箭頭表示用況之間的擴(kuò)展關(guān)系,該箭頭從提供擴(kuò)展的用況指向基用況。這個(gè)箭頭用關(guān)鍵字<<extend>>標(biāo)記。可以在這個(gè)關(guān)鍵字附近表示這個(gè)關(guān)系的條件。

擴(kuò)展點(diǎn)是用況中的一個(gè)位置,在該位置上,可以插入另外一些用況的動(dòng)作序列。

在一個(gè)用況中,每一個(gè)擴(kuò)展點(diǎn)的名字是唯一。

可以把擴(kuò)展點(diǎn)列在用況中的一個(gè)題頭為“擴(kuò)展點(diǎn)”的分欄中。以一種適當(dāng)?shù)姆绞浇o出擴(kuò)展點(diǎn)的位置描述,通常采用普通的文本。

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

   用況之間的關(guān)系——包含關(guān)系

定義:從用況A到用況B的包含關(guān)系表明,用況A的一個(gè)實(shí)例也包含了用況B所指向的行為。在用況A中定義的位置包含該行為。

通過一個(gè)敞開的虛線箭頭表示用況之間的包含關(guān)系,該箭頭從基用況指向被包含的用況。這個(gè)箭頭用關(guān)鍵字<<include>>標(biāo)記。

包含關(guān)系使得我們?cè)谝粋€(gè)用況中局部化多個(gè)用況中共同的活動(dòng)序列。這樣,可以避免多次描述同一事件流;當(dāng)這個(gè)共同的序列發(fā)生變化時(shí),這樣就顯示出優(yōu)勢(shì),即只需要在一個(gè)地方進(jìn)行改動(dòng)。

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

六、不同學(xué)者對(duì)包含關(guān)系與擴(kuò)展關(guān)系的區(qū)別

   觀點(diǎn)1

       相同點(diǎn)

n都是不完整的

n都離不開基本用況

n都可實(shí)現(xiàn)為子程序

   不同點(diǎn)

n方向不同

n1對(duì)多選包含關(guān)系(1個(gè)子用況,多個(gè)主用況)

n多對(duì)1選擴(kuò)展(多個(gè)子用況,1個(gè)主用況)

n包含處理一般的情況(調(diào)用時(shí),為無條件調(diào)用)

n擴(kuò)展處理特殊的情況(調(diào)用時(shí),為有條件調(diào)用)

   觀點(diǎn)2

        Maksimchuk &Naiburg, UML for Mere Mortals,2005


include

Extend

這個(gè)usecase是可選的嗎

沒有這個(gè)usecase,基本usecase是否完整

這個(gè)usecase的執(zhí)行是有條件的嗎

這個(gè)usecase改變了基本usecase的行為嗎

   觀點(diǎn)3

        Usecases-Yesterday, today, and tomorrow, Ivar Jacobson

       相同點(diǎn)

nExtensions/inclusions that are concrete use cases.(擴(kuò)展/包含是具體的用況)

nExtensions/inclusions that are just fragments of a use case.(擴(kuò)展/包含是用況的一部分)

nExtensions/inclusions use cases are both related to a base use case.(擴(kuò)展/包含相關(guān)的用況都是基本用況)

nWhen the usecase instance has come to the end of the extension orthe inclusion use case, it will return to the base use case and to the positionin the flow described in the base use case, where it left off.

   不同點(diǎn)

nThe major difference between extension and inclusion use cases isthe way that use case instance is instructed to interrupt the base use case andinstead follow the extension or inclusion use case.

nIn the case of inclusion, the base flow itself explicitly instructsthe use-case instance to obey the inclusion use case.

nIn the case of extension, the base flow doesn’t specify theinterruption; instead, the extension use case specifies where in the base usecase the use case instance shall make the interruption.

   觀點(diǎn)4

        UML Distilled,MartinFowler

        當(dāng)在兩個(gè)或多個(gè)獨(dú)立usecase中重復(fù)自己并希望避免重復(fù)時(shí),使用包含。

        當(dāng)表述關(guān)于正常行為的一個(gè)變化情形并希望臨時(shí)表述時(shí),使用泛化。

        當(dāng)表述正常行為的一個(gè)變化情形并希望使用更為受控的形式在基本usecase中說明擴(kuò)展點(diǎn)時(shí),使用擴(kuò)展。

   觀點(diǎn)5

        面向?qū)ο蟮南到y(tǒng)分析,邵維忠,楊芙清

        語義差別甚微

        實(shí)踐中很容易相混

        為什么沒有包含點(diǎn)

        方向不同

七、用況之間的泛化關(guān)系、用況的詳細(xì)描述、識(shí)別策略與注意問題

   泛化關(guān)系

子用況繼承父用況的行為和含義。

子用況還可以增加或覆蓋父用況的行為。

子用況可以出現(xiàn)在父用況出現(xiàn)的任何位置。

用一個(gè)指向父用況的帶有封閉的空心箭頭的實(shí)線來表示用況之間的泛化關(guān)系。

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

參與者泛化與用況泛化的混合使用

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

       用況分類

 l高層用況和低層用況

  2高層用況描述對(duì)有價(jià)值的功能所提供的要素做了總的、簡(jiǎn)要的描述,并不考慮這些有價(jià)值的功能是怎樣獲得的。(usecase圖)

  2低層用況描述提供了表示活動(dòng)、任務(wù)或變化的確切順序的業(yè)務(wù)細(xì)節(jié)。(用況的詳細(xì)描述)

 l本質(zhì)用況和具體用況

  2本質(zhì)用況是獨(dú)立于實(shí)現(xiàn)的(硬件的和軟件的)業(yè)務(wù)解;

  2具體用況是依賴設(shè)計(jì)的。

 l主要用況與次要用況

  2主要用況捕獲系統(tǒng)的主要業(yè)務(wù)功能。

  2次要用況處理不常見的和例外的情況。可選用況表示可以處理也可以不處理的用況。

   用況是對(duì)場(chǎng)景的概括

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

   捕捉用況的策略

   1.首先寫下兩個(gè)或三個(gè)最常見的簡(jiǎn)單場(chǎng)景(用況)。

   2.當(dāng)有兩個(gè)或三個(gè)場(chǎng)景看上去很相似的時(shí)候,就試著產(chǎn)生更“抽象”的場(chǎng)景(用況)。

   3.應(yīng)謹(jǐn)慎選擇用于不常見時(shí)間的附加的用況,并保持在可管理的數(shù)量上。

   4.以增量的方式進(jìn)行分析。

  2首先開發(fā)主要的、高層的用況模型。

  2然后使用該模型開發(fā)主要的、本質(zhì)的用況模型。

  2進(jìn)一步地使用所得到的模型指導(dǎo)開發(fā)次要的、本質(zhì)的用況。

  2……

  2最后,使用該模型開發(fā)次要的、具體的用況。

   用況文檔模版

       用況名

       描述:對(duì)該用況的一句或兩句的描述。

       參與者:識(shí)別參與用況的參與者。

       包含:識(shí)別該用況所包含的用況。

       擴(kuò)展:識(shí)別該用況可以擴(kuò)展的用況。

       泛化:若該用況是子用況,則要說明它的父用況。

       前置條件:?jiǎn)?dòng)此用況所必須具備的條件。

       細(xì)節(jié):識(shí)別該用況的細(xì)節(jié)。

       后置條件:識(shí)別在該用況結(jié)束時(shí)確保成立的條件。

       例外:識(shí)別在該用況的執(zhí)行的過程中可能引起的例外。

       限制:識(shí)別在應(yīng)用中可能出現(xiàn)的任何限制。

       注釋:提供可能對(duì)該用況是重要的任何附加信息。

   舉例:

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

   例:網(wǎng)上職位分布系統(tǒng)

       網(wǎng)上職位發(fā)布系統(tǒng)中,職位發(fā)布員編輯準(zhǔn)備發(fā)布的職位名稱,職位要求,招聘人數(shù)等信息,預(yù)覽一下其發(fā)布職位的版式,在通過權(quán)限檢查后,方可在網(wǎng)上發(fā)布。除了一般類型的職位發(fā)布外,還有一種特效職位發(fā)布,允許職位發(fā)布員發(fā)布自定制的圖片/頁面等。

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

   用況詳細(xì)描述

   用況詳細(xì)描述的三種方式

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

   詳細(xì)描述用況的問題

 2沒有系統(tǒng)

 2沒有參與者

 2過多的用戶界面細(xì)節(jié)

 2過低的目標(biāo)級(jí)別

八、用況圖的應(yīng)用場(chǎng)合、復(fù)雜案例與建模要點(diǎn)

   用況圖在軟件生命周期中的運(yùn)用

 2主要用來明確需求

 2用來輔助分析

 2用來輔助設(shè)計(jì),特別是用戶界面的設(shè)計(jì)

 2用來測(cè)試

   用況分組

   當(dāng)許多用況具有同樣的功能或者以同樣的方式相互聯(lián)系,就將它們歸在一起。UML的包表示了用況的聚類。

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

   分組的依據(jù)

 2同樣的參與者

 2共同的實(shí)體

   書:讀者管理員

 2特定的工作流

   審查

 2參與者

確定系統(tǒng)環(huán)境中的所有角色,并都?xì)w入了相應(yīng)的參與者。

每個(gè)參與者都至少和一個(gè)用況關(guān)聯(lián);

若一個(gè)參與者是另一個(gè)參與者的一部分,把它們合并;

若兩個(gè)參與者相對(duì)于系統(tǒng)而言,扮演了類似的角色,應(yīng)該在它們之間使用泛化關(guān)系。

 2用況

每個(gè)用況都至少和一個(gè)參與者關(guān)聯(lián);

若兩個(gè)用況有相同或相似的序列,可能需要合并它們,或抽取出一個(gè)新用況,在它們之間使用包含、擴(kuò)展或泛化關(guān)系。

若用況過于復(fù)雜,為了易于理解,考慮進(jìn)行分解;若一個(gè)用況中有完全不同的事件流,最好把她分解成不同的用況。

    例:

       持卡用戶在銀行ATM機(jī)上進(jìn)行查詢/取款/轉(zhuǎn)賬等業(yè)務(wù)。若ATM發(fā)現(xiàn)用戶連輸三次密碼不對(duì),該卡已經(jīng)掛失或忘記取卡,則吞卡。檢測(cè)到無效卡則退卡。每到午夜12點(diǎn)。統(tǒng)計(jì)該日的取款總額并發(fā)送到總部系統(tǒng),機(jī)內(nèi)無現(xiàn)金是幾時(shí)通知總部系統(tǒng)。

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

   用況建模的注意事項(xiàng)

 2應(yīng)確保不僅領(lǐng)域?qū)<叶页绦騿T都能夠理解每一種用況所描述的系統(tǒng)使用的重要意義。

 2定義用況文本時(shí),應(yīng)準(zhǔn)確和一致地使用名詞和動(dòng)詞

 2區(qū)分出在用況之間/參與者之間的關(guān)系

 2大量的用況應(yīng)該組織為包

九、用況驅(qū)動(dòng)的方法研究,及用況與用戶故事、場(chǎng)景、業(yè)務(wù)用況的比較研究

   用況圖的研究

       用況驅(qū)動(dòng)的軟件開發(fā)

面向?qū)ο蠹夹g(shù)之需求分析:usecase圖

2積極意義

有助于分析模型、設(shè)計(jì)模型的建立

有助于改進(jìn)分析、設(shè)計(jì)以及實(shí)現(xiàn)與測(cè)試

2問題

對(duì)用況依賴過高

導(dǎo)致功能分解的老路


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI