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