韓鵬飛
摘 要:在面向對象軟件開發(fā)中,軟件設計師們需要對實際需求進行抽象,也就是建模,來完成實際需求到軟件體系結構的映射。有一個好的模型或者軟件架構,在軟件開發(fā)中,尤為重要。UML(一種建模語言)技術可以清晰的描述模型體系,比如類的職責定義,對外的依賴關系,以及類之間的交互動作等,可以提高建模的準確性。因此,研究UML建模技術在軟件設計中具有指導價值。
關鍵詞:UML;軟件設計;建模;模型圖
UML(Unified Modeling Language)在軟件工程中得到了廣泛的應用。UML有嚴格的語法和語義規(guī)范,定義了標準的圖形符號,立足于對事物的實體、性質、關系、結構、狀態(tài)和動態(tài)變化過程的全程描述,構建了用例圖、類圖等各種各樣的圖,用于描述軟件的體系結構。軟件設計的過程中,UML可以很好的描述系統(tǒng)的結構,可以有效地指導軟件設計工作的進行。
一、UML建模技術概述
UML是一種標準的建模語言,用來描述軟件的設計。作為建模語言,UML擁有規(guī)范的定義,統(tǒng)一的符號以及語義,可以準確地表示和定義軟件項目中的概念。UML具備可視化的特點,UML不再是“文字”式的語言,構成元素分為模型元素、圖、視圖和通用機制等幾個部分,圖形相比于文字更具備直觀性,UML元素相互結合,以圖的形式將項目的流程,模塊,設計等以可視化的方式表現(xiàn)出來。語言本質是為了交流,而UML以其簡單、可視、規(guī)范、統(tǒng)一的特點,恰如其分的充當著這個交流的工具。一個軟件項目有產(chǎn)品,架構師,程序員,測試者等眾多參與者,UML語言使得參與者之間的交流更加簡單。到目前為止UML語言已經(jīng)發(fā)展到了2.5版本,已經(jīng)應用與電子、航天、金融等眾多領域。
二、UML建模技術
UML的精髓在于各種圖,圖是模型最直觀的表達,UML有以下各式各樣圖:用例圖、類圖、對象圖、包圖、狀態(tài)圖、活動圖、序列圖、通信圖、構件圖、部署圖等。每個圖都從一個方面反應這軟件的設計。用例圖描述系統(tǒng)功能職責及與用戶交互關系;通信圖描述對象間通過消息進行的交互;類圖描述類內部職責及類之間關系;包圖描述包之間關系;構件圖描述系統(tǒng)中的構件、接口及關系;對象圖描述系統(tǒng)對象之間的關系;活動圖描述活動的控制流程;部署圖描述在硬件節(jié)點上的軟件部署以及彼此通信。其中用例圖、類圖、和時序圖是最常使用的,這里以圖書館管理系統(tǒng)為例,重點說這三種圖。
首先是用例圖。用例圖用來描述軟件的執(zhí)行者和軟件的功能,它描述了一個用戶能夠觀察到的系統(tǒng)功能模型圖,在圖書館管理系統(tǒng)中,這里的用戶有管理員和借閱者,管理員對應的軟件功能有圖書借閱、圖書預約、圖書歸還、超期罰款等子功能,借閱者對應的軟件功能有借閱者信息、登錄、檢索、圖書借閱、圖書歸還、超期繳費等子功能,這些用戶與系統(tǒng)子功能之間的關系構成了用例圖。從用例圖中可以很清楚的理解軟件的整個系統(tǒng)需要哪些功能模塊,有哪些用戶,以及各個用戶所對應的功能,用例圖畫出來以后,就相當于界定了模塊之間的大致關系。
其次類圖。類圖描述了系統(tǒng)內部類與類之間的關系,是靜態(tài)的。實際開發(fā)過程中,就是根據(jù)類圖進行代碼編寫的。舉個例子,圖書館管理系統(tǒng)中,借閱者信息這一模塊可以抽象出一個類,那么這個類的職責可以有:修改個人信息,查閱個人信息,查閱借書信息,預約信息等。類不是孤立存在的,類與類之間需要交互。類圖中有6大關系:泛化、實現(xiàn)、組合、聚合、關聯(lián)、依賴。泛化表示一般和特殊的關系,實現(xiàn)是類與接口的問題,組合是整體與部分的關系且整體與部分不可單獨存在,聚合是整體與部分的關系且整體和部分可以單獨存在,關聯(lián)是擁有的關系,依賴是使用的關系。軟件設計的過程就是將實際場景中的功能抽像到類,并確定好類與類之間關系的過程,借助于UML的類圖,這個過程可以很準確而清晰的實現(xiàn)。
最后是序列圖。序列圖描述的是類與類之間動態(tài)交互的關系。序列圖按照時間順序,將這些類之間的交互信息依次排列。消息分為同步信息,異步信息和返回信息。序列圖的元素主要有角色,對象,生命線,焦點,信息等。舉個例子, 借閱者網(wǎng)上預約的簡單時序過程應該如下:1.調用登錄子系統(tǒng)身份驗證;2.經(jīng)過檢索系統(tǒng)獲取圖書信息;3.在預約系統(tǒng)完成預約;4.推出登錄系統(tǒng)。在這個簡單的訂閱過程中,借閱者依次與登錄、檢索、預約等子系統(tǒng)進行交互,和類圖純粹的靜態(tài)關系相比,這些信息是動態(tài)的,序列圖可以清晰的描述軟件內部的交互邏輯。
三、軟件設計中的UML建模技術應用流程
軟件工程的過程一般可分為的需求分析、架構設計、代碼實現(xiàn)、測試、后期維護等主要階段,其中UML的作用主要體現(xiàn)在需求分析和軟件設計階段。一旦設計完成,開發(fā)人員便可根據(jù)UML設計架構實施編碼。
1.需求分析環(huán)節(jié)。該環(huán)節(jié),設計者主要應用UML建模技術中的用例圖。用例是一個系統(tǒng)中所進行的一連串的處置活動,該活動主要是要能夠滿足系統(tǒng)外部的執(zhí)行者對于系統(tǒng)的某種期望。首先設計者需要了解系統(tǒng)的所有需求,并對需求進行相應的描述,劃分系統(tǒng)的功能子系統(tǒng)。然后設計者要提取系統(tǒng)中有哪些活動,活動的參與者有誰,活動需要哪些系統(tǒng)提供的服務,系統(tǒng)需要提供的服務有哪些等等。最后結合活動和系統(tǒng)的需求提取出用例,在UML中描繪出用戶與系統(tǒng)間的交互作用,子系統(tǒng)的劃分,子系統(tǒng)之間的關系,并表明用戶能夠實現(xiàn)的目標,便繪制出了用例圖。
2.架構設計環(huán)節(jié)。在架構設計中,設計者主要應用UML的類圖和序列圖。設計者需要對需求分析階段的系統(tǒng)模型進行進一步的擴展與細化,分離出具體的類,設計各個類的內部職責和外部依賴,然后結合系統(tǒng)現(xiàn)有需求及將來擴展的可能性,以及子系統(tǒng)的輸入數(shù)據(jù)與輸出數(shù)據(jù)等,對這些類進行進一步的優(yōu)化、分離或者合并。類設計完成后,還要完成數(shù)據(jù)庫,通信機制,系統(tǒng)流程調度等設計工作。最后對各個子系統(tǒng)的職責進行總結抽象,抽象出共同職責,分離抽象層和接口的設計,完成架構的高層設計。UML類圖中提供了各種抽象類,接口等機制,以及各種類之間的關系,可以簡單明明確地表達這些關系。UML類圖繪制完成,就代表著系統(tǒng)架構設計的基本完成,在UML類圖的指導下,開發(fā)者的編碼工作會變得非常清晰簡單,UML類圖不僅提高了而開發(fā)效率,還減少代碼中的漏洞,提高了代碼質量。由于類圖屬于靜態(tài)圖,只能描述類之間的靜態(tài)關系,無法體現(xiàn)流程的動態(tài)執(zhí)行過程,所以為了更清楚的體現(xiàn)架構的動態(tài)流程特性,還需要繪制UML序列圖。UML序列圖屬于動態(tài)視圖,主要用于描述系統(tǒng)中各個對象的交互以及通訊。設計者依次列出類之間的方法調用關系,根據(jù)時間順序,將系統(tǒng)中用例的活動行為在UML序列圖中繪制出來,便制作出了序列圖根據(jù)UML序列圖。根據(jù)序列圖,可以清晰地了解對象之間的消息的發(fā)送與接收詳情,獲知軟件系統(tǒng)內部動態(tài)的交互流程。
總之,UML建模技術可以提高軟件設計的效率和有效性,值得推廣應用。開發(fā)人員如果能深入了解UML建模技術的各種視圖及應用特點,在軟件設計中正確使用視圖,充分發(fā)揮出UML建模技術的作用,便可設計出高質量的軟件架構,保證軟件的質量。
參考文獻:
[1]駱元.軟件工程中的UML建模技術.2017.
[2]劉海生,探討UML在軟件工程中的應用.2018.