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