宋曉偉 曹毅
摘 要:隨著計算機技術(shù)的發(fā)展,軟件工程技術(shù)已經(jīng)進入了一個新的階段,人們開始使用面向?qū)ο蟮募夹g(shù),同時UML融合了多種面向?qū)ο蠼7椒ㄒ约岸喾N軟件工程方法,成為軟件系統(tǒng)設(shè)計建模的主要工具,該文從軟件工程和UML概念出發(fā),以UML在軟件工程的應(yīng)用為基礎(chǔ),重點對軟件工程與UML技術(shù)進行了闡述和分析。
關(guān)鍵詞:軟件工程:UML建模;架構(gòu)實現(xiàn)
20世紀90年代中期,軟件工程領(lǐng)域取得重要進展和成就的重要標志之一是統(tǒng)一建模語言UML(Unified Modeling Language)的誕生。UML作為一個通用的、標準的建模語言,融合了面向?qū)ο箝_發(fā)方法的主要概念和技術(shù)。UML提供了一系列標準化圖形符號,所建立的模型清晰完整,便于理解;它所提供的豐富視圖從多個視角描述系統(tǒng)的不同側(cè)面,可以有效地運用于從需求分析到系統(tǒng)實現(xiàn)的軟件建模,并有助于用戶及軟件開發(fā)人員間的交流和協(xié)商。UML是一種定義良好、易于表達、功能強大且普遍適用的建模語言。它溶入了軟件工程領(lǐng)域的新思想、新方法和新技術(shù)。它的作用域不限于支持面向?qū)ο蟮姆治雠c設(shè)計,還支持從需求分析開始的軟件開發(fā)的全過程。
1、UML在軟件工程中的作用
UML的用例試圖可以表示客戶的需求,對外部的角色以及它們所需要的系統(tǒng)功能建模是通過用例建模來完成的。它們之間的關(guān)系建模被用于角色和用例。每個用例都指定了客戶的需求,需求分析不僅要對軟件系統(tǒng)進行而且對商業(yè)過程也要進行??紤]要解決的問題是分析階段要做的工作,其描述可用UML的邏輯視圖和動態(tài)視圖來進行。系統(tǒng)的靜態(tài)結(jié)構(gòu)由類圖進行描述,系統(tǒng)的動態(tài)特征由協(xié)作圖、狀態(tài)圖、序列圖、活動圖和狀態(tài)圖進行描述。在分析階段,不定義軟件系統(tǒng)的解決方案的細節(jié),只為問題領(lǐng)域的類建模。把分析階段的結(jié)果擴展成技術(shù)解決方案是設(shè)計階段主要的工作,提供技術(shù)基礎(chǔ)結(jié)構(gòu)用戶接口,數(shù)據(jù)庫操作等是采用加入新的類完成的。在這個技術(shù)基礎(chǔ)結(jié)構(gòu)中,分析階段的領(lǐng)域問題類被嵌入在其中,構(gòu)造階段的詳細的規(guī)格說明是設(shè)計階段的結(jié)果。把設(shè)計階段的類轉(zhuǎn)換成某種面向?qū)ο蟪绦蛟O(shè)計語言的代碼,這是構(gòu)造階段的工作。在對UML表述的分析和設(shè)計模型進行轉(zhuǎn)換時,最好不要直接把模型轉(zhuǎn)化成代碼。在早期階段,模型是理解系統(tǒng)并對系統(tǒng)進行結(jié)構(gòu)化的手段。單元測試、集成測試、系統(tǒng)測試和接受測試為系統(tǒng)測試的幾個不同級別。不同的測試采用不同的UML圖作為工作的基礎(chǔ)。使用類圖和類的規(guī)格說明是單元測試,典型地使用組件圖和協(xié)作圖的是集成測試,而系統(tǒng)測試實現(xiàn)用例圖來確認系統(tǒng)的行為符合這些圖中的定義。在系統(tǒng)測試階段,UML模型還可以作為測試階段的依據(jù)。軟件工程是從結(jié)構(gòu)化程序設(shè)計到面向?qū)ο蟪绦蛟O(shè)計轉(zhuǎn)變的一個過渡。
2、UML的系統(tǒng)建模步驟
2.1系統(tǒng)的需求分析階段
建立系統(tǒng)需求模型,根據(jù)用戶初始需求,在用戶的參與下,寫出問題陳述;定義執(zhí)行者在用戶的參與下定義系統(tǒng)的執(zhí)行者,利用UML中的角色、用例、關(guān)系、注釋等表達法,建立系統(tǒng)的用例模型;利用邏輯視圖建立系統(tǒng)的靜態(tài)、動態(tài)模型。靜態(tài)模型是根據(jù)用例圖建立類圖,這里的類圖主要關(guān)注應(yīng)用域中實體的概念及結(jié)構(gòu),此類的表示只給出類名即可,這是類的簡單表示。動態(tài)模型包括順序圖(協(xié)作圖)、狀態(tài)圖、活動圖,但它們的側(cè)重點各自有所不同。順序圖描述對象之間動態(tài)行為的交互關(guān)系,著重體現(xiàn)對象之間消息傳遞的時間順序;狀態(tài)圖主要描述系統(tǒng)的動態(tài)行為和控制結(jié)構(gòu);活動圖既可以描述操作的行為,也可以描述用例和對象內(nèi)部的工作過程。設(shè)計者要根據(jù)系統(tǒng)的實際情況來分析,建立一個或多個動態(tài)模型來描述系統(tǒng)的動態(tài)行為。
2.2系統(tǒng)的設(shè)計實現(xiàn)階段
根據(jù)實際問題和建立動態(tài)模型,詳細分析類,得到類在系統(tǒng)中的基本屬性和行為,完善類框圖;識別類之間的關(guān)系,即識別類結(jié)構(gòu)關(guān)系,如類的擴展、組成、泛化等關(guān)系;確立類之間存在的協(xié)作關(guān)系,即類圖中各個類之間的交互關(guān)系,如傳遞信息、修改、添加、啟動等關(guān)系;創(chuàng)建組件并選擇某種面向?qū)ο缶幊陶Z言作為開發(fā)的工具,將類(或接口)分配給組件。組件可看作是包與類對應(yīng)的最終子系統(tǒng)模塊,邏輯上與包、類對應(yīng),實際上是一個文件,可以是源代碼組件、二進制組件(庫文件)、可執(zhí)行組件(1exe或1com文件)。建立組件圖,描述系統(tǒng)組件間的結(jié)構(gòu)關(guān)系,并按對應(yīng)關(guān)系進行連接;建立部署圖,用來描述和定義系統(tǒng)中硬件的物理拓撲結(jié)構(gòu)以及在此結(jié)構(gòu)上執(zhí)行的軟件。
3、系統(tǒng)的詳細設(shè)計分析
3.1 類圖設(shè)計
類圖是描述類、接口、協(xié)作以及它們之間的關(guān)系的圖,用來顯示系統(tǒng)中各個類的靜態(tài)結(jié)構(gòu)。一個類圖根據(jù)系統(tǒng)中類以及各個類之間的關(guān)系描述系統(tǒng)的靜態(tài)視圖。本文以CRM 系統(tǒng)中的售后管理模塊類為例說明類圖的設(shè)計過程。售后管理模塊中的類包括:服務(wù)信息、售后服務(wù)信息、服務(wù)跟蹤信息、售后處理信息、售后服務(wù)圖片信息、常見問題信息、產(chǎn)品缺陷信息、咨詢信息。
3.2 順序圖設(shè)計
順序圖描述對象之間的動態(tài)交互關(guān)系,描述對象之間傳遞消息和時間順序,它用來表示用例中的行為順序。順序圖描述了類圖中類和類之間的關(guān)系,時序圖中包括4 個元素:對象、生命線、激活和消息。
3.3 組件配置圖
組件是定義了良好接口的物理實現(xiàn)單元,是系統(tǒng)中可替換的物理部件。組件圖描述了軟件的各種組件和它們之間的依賴關(guān)系。配置圖顯示運行系統(tǒng)的物理硬件,以及如何將軟件配置到硬件上。配置圖描述了系統(tǒng)資源的配置情況以及軟件到這些資源上的映射。
4、結(jié)束語
從上面的討論得出的結(jié)論是:UML 是功能強大的建模工具。本文通過UML用例圖、類圖、順序圖、組件圖、配置圖建立了系統(tǒng)的靜態(tài)模型和動態(tài)模型。UML 可視化建模使得系統(tǒng)的結(jié)構(gòu)更容易理解,降低了系統(tǒng)開發(fā)的難度,提高了系統(tǒng)開發(fā)效率。下一步主要的工作是研究UML 模型如何精確地描述,以及UML的類圖與順序圖自動轉(zhuǎn)換成代碼。
參考文獻:
[1]唐翠娥.UML建模技術(shù)綜述[J].電子世界.2013
[2]王景光.信息系統(tǒng)建模與結(jié)構(gòu)復(fù)雜性[J].機械技術(shù),2012