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