張景峰 胡曉紅 陳海燕 ?,? 張燕寧
摘要:用例視圖是其他視圖的核心,因?yàn)橛美晥D描述了系統(tǒng)應(yīng)該具備的主要功能,系統(tǒng)要提供的功能都要在用例視圖中具體描述。并且用例視圖如有修改,那么都會(huì)對(duì)其他所有視圖產(chǎn)生直接影響。該文主要介紹用例視圖在軟件工程設(shè)計(jì)中的地位和作用。結(jié)合實(shí)際案例分析用例圖的設(shè)計(jì)角度,組成元素,和構(gòu)造原理以及各元素之間的獨(dú)特關(guān)系。通過(guò)圖書管理系統(tǒng)的實(shí)際案例進(jìn)行說(shuō)明。
關(guān)鍵詞:軟件工程;Rose軟件;視圖分析;模型設(shè)計(jì)
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2019)32-0104-02
1引入
軟件工程的模型設(shè)計(jì)有多種形式,UML的視圖就包括五種,有邏輯視圖、組件視圖、并發(fā)視圖、配置視圖和用例視圖。其中,用例視圖是其他視圖的核心,因?yàn)橛美晥D描述了系統(tǒng)應(yīng)該具備的主要功能,系統(tǒng)要提供的功能都要在用例視圖中具體描述。并且用例視圖如有修改,那么都會(huì)對(duì)其他所有視圖產(chǎn)生直接影響。用例視圖強(qiáng)調(diào)的是從用戶的角度看系統(tǒng)所需要的功能。它描述了用戶希望如何使用一個(gè)系統(tǒng),用戶希望系統(tǒng)提供什么服務(wù)。軟件工程的產(chǎn)品通常主要是通過(guò)外部特性動(dòng)態(tài)的呈現(xiàn)給用戶,至于系統(tǒng)是怎樣實(shí)現(xiàn)的,系統(tǒng)內(nèi)部的結(jié)構(gòu)如何,并不是他們所關(guān)心的內(nèi)容。所以,在整個(gè)軟件工程的開發(fā)過(guò)程中,用例圖的制作情況最為重要,因此,它的合理性和正確與否直接影響到用戶對(duì)最終產(chǎn)品的滿意度。
2用例圖的構(gòu)造原理與創(chuàng)建
2.1用例圖的構(gòu)成原理
UML中,用例圖是由參與者(actor)、用例(use case)、和他們之間的關(guān)系(relationships)等元素構(gòu)成的。
1)其中,參與者通過(guò)向系統(tǒng)輸入或者是請(qǐng)求系統(tǒng)輸人某個(gè)需求,來(lái)觸發(fā)系統(tǒng)完成預(yù)想事件。參與者不僅僅代表人,還可以代表事物或者是進(jìn)程。比如,人們?cè)谌】顧C(jī)上取款的過(guò)程中,人是參與者,取款機(jī)是參與者,安裝在取款機(jī)中軟件系統(tǒng)同樣是參與者。
還有一種參與者比較隱秘,只有在特定時(shí)刻才能產(chǎn)生作用。舉個(gè)例子,學(xué)生去圖書館借書,假設(shè)是一個(gè)月的期限,就需要學(xué)生在一個(gè)月之內(nèi)及時(shí)把書還了,如果超出一個(gè)月不還,那么從超出一個(gè)月的時(shí)刻開始,系統(tǒng)就會(huì)提示你要提交罰款。在這個(gè)過(guò)程中,時(shí)間所推動(dòng)的進(jìn)程,就是一個(gè)系統(tǒng)參與者。所以,綜合來(lái)說(shuō),參與者包括人、相關(guān)事物和時(shí)間進(jìn)程。
2)在用例視圖中,另一個(gè)重要的組成元素是“用例”。它是一個(gè)敘述型的對(duì)象,主要描述了“做什么”的問(wèn)題。是活動(dòng)者在與系統(tǒng)對(duì)話過(guò)程中對(duì)所執(zhí)行的行為的描述序列。用例表達(dá)了系統(tǒng)的功能和所提供的服務(wù)。它是系統(tǒng)參與者與系統(tǒng)在交互過(guò)程中需要完成的工作,識(shí)別用例的最好的辦法就是從分析參與者開始,分析系統(tǒng)參與者是如何使用系統(tǒng)的,比如:參與者希望系統(tǒng)提供什么功能;系統(tǒng)是否需要存儲(chǔ),是否要進(jìn)行信息檢索,如果需要,是由哪個(gè)參與者觸發(fā)的;還有當(dāng)系統(tǒng)狀態(tài)改變時(shí),是否通知參與者;是哪些參與者通知系統(tǒng)相關(guān)事件;以及是否存在影響系統(tǒng)的外部事件等等。根據(jù)存在的參與者不同,可以將系統(tǒng)分為不同的用例圖分別加以描述。
3)用例視圖中第三個(gè)重要的元素就是參與者與用例之間的關(guān)系。因?yàn)橛辛四撤N關(guān)系,才會(huì)觸發(fā)特定事件的產(chǎn)生。在用例視圖中,參與者與用例的關(guān)系主要有四種:關(guān)聯(lián)關(guān)系、泛化關(guān)系、包含關(guān)系、擴(kuò)展關(guān)系。
關(guān)聯(lián)關(guān)系:泛指兩個(gè)對(duì)象之間發(fā)生聯(lián)系。比如一個(gè)對(duì)象訪問(wèn)另一個(gè)對(duì)象。而且在參與者與用例之間的關(guān)聯(lián)關(guān)系是有方向的。
泛化關(guān)系:是定義了一般元素和特殊元素的分類關(guān)系。比如,“交通工具”與“汽車”“火車”“自行車”之間;再比如,“圖書借閱者”與“學(xué)生”和“老師”之間。
包含關(guān)系:包含關(guān)系是用例視圖中特有的一種關(guān)系。是指一個(gè)用例的行為包含了另一個(gè)用例的行為。比如,“查詢用戶”與“修改用戶信息”和“刪除用戶信息”之間就是這樣。在用例圖中,泛化關(guān)系主要描述多個(gè)參與者之間的公共行為。如果一個(gè)系統(tǒng)中存在幾個(gè)參與者,既扮演自身,同時(shí)也扮演一般化的角色,那么特殊化的參與者與一般化的角色之間就可以用泛化關(guān)系來(lái)描述他們。
擴(kuò)展關(guān)系:是指在已有用例基礎(chǔ)上,由于某個(gè)事件的觸發(fā),而產(chǎn)生了新的用例,就像在某一個(gè)節(jié)點(diǎn)上又生出了新的節(jié)點(diǎn)。比如,在圖書館還書時(shí),因?yàn)槌隽似谙?,又要額外交罰款。這就是擴(kuò)展關(guān)系。
4)用例圖建模技術(shù)
對(duì)于一個(gè)軟件工程系統(tǒng)而言,有些事物是存在于系統(tǒng)的內(nèi)部,他們的任務(wù)是完成工程所期望的系統(tǒng)行為;而有些事物是存在于系統(tǒng)的外部,即構(gòu)成了系統(tǒng)存在的環(huán)境。所以,在uML建模過(guò)程中,用例視圖是對(duì)工程系統(tǒng)的語(yǔ)境進(jìn)行建模,它主要考慮系統(tǒng)做什么,而基本不考慮系統(tǒng)怎么做。根據(jù)用戶對(duì)產(chǎn)品功能的期望,提出產(chǎn)品外部功能描述。用例圖是表達(dá)和管理系統(tǒng)主要的功能需求。在對(duì)系統(tǒng)外部語(yǔ)境建模的過(guò)程中,首先要識(shí)別系統(tǒng)外部的參與者。如:誰(shuí)使用該系統(tǒng);為什么使用;交互中,他們扮演什么角色;誰(shuí)安裝系統(tǒng);誰(shuí)從系統(tǒng)中獲取信息;誰(shuí)維護(hù)系統(tǒng);誰(shuí)啟動(dòng)和關(guān)閉系統(tǒng);誰(shuí)提供信息給系統(tǒng)等等。
在參與者的建模中,還有幾個(gè)要點(diǎn)需要注意:
每個(gè)參與者需要具有一個(gè)有針對(duì)含義的名字,不要使用模糊含義的名字。
參與者在系統(tǒng)外部,直接與系統(tǒng)交互,容易定義系統(tǒng)范圍。
參與者是交互時(shí)扮演的角色,不是特定的人或特定的事物。
一個(gè)對(duì)象在與系統(tǒng)交互過(guò)程中,可以扮演多個(gè)角色。
2.2用例圖的創(chuàng)建
為了更深入的理解用例圖的構(gòu)造原理,下面引用一個(gè)實(shí)際案例來(lái)具體說(shuō)明。以大學(xué)圖書館的圖書管理系統(tǒng)為例,運(yùn)用Rational Rose建立圖書管理系統(tǒng)用例圖。
大學(xué)圖書館圖書管理系統(tǒng)軟件是一套功能強(qiáng)大,操作方便簡(jiǎn)單、實(shí)用的自動(dòng)化管理軟件,大學(xué)圖書館專業(yè)圖書和其他各種圖書眾多,從師生等讀者角度,會(huì)經(jīng)常頻繁的進(jìn)行圖書查詢、借閱、歸還等等;從圖書管理員角度,需要進(jìn)行借書處理,還書處理等等;從系統(tǒng)管理員的角度,需要進(jìn)行圖書系統(tǒng)維護(hù)、增加新書目刪除舊書目、管理讀者信息等等。所以,應(yīng)該包括用戶信息管理、系統(tǒng)參數(shù)設(shè)置、圖書數(shù)據(jù)錄入、圖書數(shù)據(jù)查詢、借閱管理、歸還管理、系統(tǒng)維護(hù)等等。系統(tǒng)應(yīng)該具備較好的功能擴(kuò)充。開發(fā)圖書管理系統(tǒng)軟件,是為了滿足廣大師生查閱和借閱圖書方便的要求,以高效率、現(xiàn)代化的模式進(jìn)行學(xué)習(xí)和工作。
圖書管理系統(tǒng)應(yīng)該具備主要的功能需求:
1)用戶登錄:首先要求用戶進(jìn)行注冊(cè)和登錄。要求用戶名和密碼匹配,驗(yàn)證通過(guò)才能允許用戶進(jìn)入系統(tǒng)。
2)修改注冊(cè)信息:登錄后,可以重新修改密碼等信息。
3)權(quán)限設(shè)置:系統(tǒng)管理員進(jìn)行。
4)圖書信息錄入:錄人新圖書的相關(guān)信息。
5)數(shù)據(jù)查詢:根據(jù)用戶輸入的條件進(jìn)行相應(yīng)查詢。
6)數(shù)據(jù)修改:增加圖書、刪除圖書、圖書輔助信息的調(diào)整(且有管理權(quán)限的用戶可以操作。)
7)圖書借閱:外借登記、歸還記錄等(具有管理權(quán)限的用戶可以操作)
8)數(shù)據(jù)備份:實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)的備份和恢復(fù)機(jī)制。
9)數(shù)據(jù)維護(hù):系統(tǒng)管理人員操作。
10)查閱操作日志:具有權(quán)限的用戶操作。
確定系統(tǒng)的主要參與者:
首先,有借閱者的參與。借閱者登錄系統(tǒng),瀏覽查詢圖書,選定并借閱圖書,最后歸還圖書。
第二,有圖書館管理人員的參與。處理借書、還書的操作
第三,有系統(tǒng)管理員的參與。增加圖書、刪除圖書、更新圖書、還有借閱者信息的管理等工作。
圖書管理系統(tǒng)的用例確定:
1)借閱者用例:登錄系統(tǒng)、查詢信息、預(yù)定圖書、借閱圖書、歸還圖書。
2)圖書館工作人員用例:處理圖書借閱、處理圖書歸還
3)系統(tǒng)管理人員:查詢圖書信息、增加圖書信息、刪除圖書信息、更新圖書信息、管理借閱者信息。
運(yùn)用Rational Rose制作用例圖:
1)借閱者用例圖:用泛化關(guān)系將參與者進(jìn)行連接,“學(xué)生”“教師”屬于特殊化角色,“借閱者”是一般化角色,關(guān)系的方向指向一般角色。由于設(shè)計(jì)思路和設(shè)計(jì)理念的不同,用例圖呈現(xiàn)的最終結(jié)果也不盡相同,有的設(shè)計(jì),涉及的所有查詢借閱工作,都是在成功登錄系統(tǒng)之后才能進(jìn)行。而有的設(shè)計(jì)是查詢查閱不需要登錄就能進(jìn)行。在這里,提供一種設(shè)計(jì)形式。
2)圖書館工作人員的用例圖:在這個(gè)用例圖中,參與者一個(gè),就是“圖書管理員”。主要的用例有三個(gè),即“圖書借出”“圖書歸還”“處理預(yù)約”。其中,在“圖書借出”之前,工作人員需要首先“檢查讀者賬戶”信息,看是否超出借閱數(shù)量或者是其他情況不能繼續(xù)借閱,所以這兩個(gè)人用例之間是包含關(guān)系。另外,在“圖書歸還”之前,管理員也要檢查是否超出期限,如果是,則需要增加新的用例“收取罰款”,所以,兩者之間是擴(kuò)展關(guān)系。
3)系統(tǒng)管理員的用例圖:參與者是“系統(tǒng)管理員”。主要用例是:“系統(tǒng)維護(hù)”“圖書管理”“用戶管理”。其中,在“圖書管理”中,包括“添加圖書信息”“編輯圖書信息”“刪除圖書信息”等子用例;在“用戶管理”用例中,包括“添加用戶信息”“修改用戶信息”“查詢用戶信息”等子用例。
3總結(jié)
用例視圖是UML所有視圖中最重要的視圖,它的設(shè)計(jì)優(yōu)劣直接影響到用戶對(duì)工程產(chǎn)品的滿意度。盡管每個(gè)模型都有不同的設(shè)計(jì)方案和表達(dá)形式,但是最好的模型總是能夠最大可能的切合實(shí)際,節(jié)約成本。而且,越龐大的項(xiàng)目,建模的重要性越大。只有好的模型的幫助,才能更好地理解和完成項(xiàng)目。
【通聯(lián)編輯:王力】