999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

順序圖在軟件工程實踐中的演化作用分析

2011-09-29 02:39:10
關鍵詞:設計

何 鋒

(云南財經大學信息學院,云南昆明 650221)

順序圖在軟件工程實踐中的演化作用分析

何 鋒

(云南財經大學信息學院,云南昆明 650221)

以苗圃管理系統的設計為例,從類圖及其對應的程序代碼引申出順序圖,再進一步演化出協作圖、活動圖、狀態圖和部署圖,為軟件工程設計的實踐化方法提供了有效的途徑,有利于設計工作的開展.

軟件工程;苗圃管理系統;順序圖;演化式設計

軟件工程包含了技術和管理 2個方面的內容,是管理與技術的緊密結合[1].其本身的特點決定了它不是完全可以從書本和課堂上學會,理解和實踐是非常重要的.在實際的“動手做”和“真正練”中體會和掌握軟件工程的設計思想,將當前軟件企業的實際案例融入在基本原理的學習和設計之中,才能縮短與實際的軟件工程實踐的明顯差距.

目前,使用的最廣泛的軟件工程方法學主要是傳統方法學和面向對象方法學.傳統方法學在分析和設計上主要用到了 E-R圖、DFD圖、IPO表和數據字典卡片;而面向對象方法學在分析和設計上主要采用的是 UML圖.隨著面向對象方法學在軟件研發過程中的越來越深入人心,面向對象技術也就成為當前最好的軟件開發技術,而由此也使得 UML圖的作用也就越來越重要了.

1 順序圖概述

UML(Unified Modeling Language)是一種標準的圖形化 (即可視化)建模語言,它可以為具有靜態結構和動態行為的系統建立模型.它的重要性在于表示方法的標準化有效地促進了不同背景的人們的交流,有效地促進了軟件分析、設計、編碼和測試人員的相互理解[1].

UML由圖和元模型組成.圖是 UML的語法,而元模型給出圖的含義,是 UML的語義.其中,UML的主要內容可以用 5類圖 (共 9種圖形)來定義[1],即:①用例圖 (Use-Case Diagram);②靜態圖 (Static Diagram),包括:類圖 (Class Diagram)和對象圖 (ObjectDiagram);③行為圖 (Behavior Diagram),包括:狀態圖 (State Diagram)和活動圖 (ActivityDiagram);④交互圖 (Interactive Diagram),包括:順序圖 (Sequence Diagram)和協作圖 (Collaboration Diagram);⑤實現圖 ( Implementation Diagram),包括:構件圖(Component Diagram)和配置圖 (Deployment Diagram).這里主要關注的是順序圖.

順序圖描述對象之間的動態交互關系,著重表現對象間消息傳遞的時間順序.順序圖的縱向表示時間,橫向表示不同的對象.瀏覽順序圖的方法是,由上至下 (按時間順序)、從左到右地查看對象間交換的消息.

對象間的通信用對象生命線之間的水平消息線來表示,消息箭頭的形狀表示消息的類型 (同步、異步或簡單).當收到消息時,接收對象立即開始執行活動,即對象被激活了.激活用對象生命線上的細長矩形框表示.消息通常用消息名和參數表來標識.消息還可以帶有條件表達式,用以表示分支或決定是否發消息.如果用條件表達式表示分支,則會有若干個互斥的箭頭,也就是說,在某一時刻盡可發送分支中的 1個消息.

在面向對象建模技術中,將建立起 3種模型:對象模型、動態模型和功能模型.其中的動態模型表示了瞬時的、行為化的系統的“控制”性質,它規定了對象模型中的對象的合法變化序列.而順序圖在其中就起著至關重要的作用,它將顯示若干個對象之間的協作關系,強調對象之間發送消息的先后順序,描述對象間的交互過程.同時,根據順序圖,我們還可以演化出狀態圖和活動圖來.

順序圖在面向對象動態建模技術中占至關重要的作用,它著重表現對象間消息傳遞的時間順序,這對軟件項目的進度控制和里程碑管理起到很好的指導作用.本文以苗圃管理系統的設計為例,從類圖及其對應的程序代碼引申出順序圖,再進一步演化出協作圖、活動圖、狀態圖和部署圖,這為軟件工程設計的實踐化方法提供了有效的途徑,有利于設計工作的開展.

2 用于程序描述的順序圖

在苗圃管理系統的分析設計中,可以把參與者分為 3個大類:客戶大類、苗圃員丁大類和苗木大類.其中,客戶大類可分為:新客戶和老客戶;苗圃員丁大類又分為:普通員工類、主管員工類和系統管理員類;苗木大類可分為:喬灌木類、移栽大樹類、扦插小苗類、樹樁盆景類、竹類植物類、藤本植物類、草本花卉類、草皮草種類、造林苗類、新優果苗類和種籽種苗類等.為了講解方便,這里主要關注苗木大類中的喬灌木類 (以銀杏為例)、樹樁盆景類 (以羅漢松為例)和造林苗類 (以馬尾松為例).

在苗木類 (Seedlings)的設計中,應該有 2個可訪問性為 private的數據成員 input和 seedlingsName,分別用于存儲苗木的投入和苗木的名稱,因為該私有成員僅供在 Seedlings類內部使用,所以受到嚴格的保護.Seedlings類的函數成員包括:構造函數 Seedlings和 3個方法 grow、harvest和 gain,他們是公有成員,可訪問性為 public,可以被外部其他對象調用.Grow和 harvest方法實現了苗木生長和收獲的操作.Gain方法則計算并返回培育苗木的收益(這里假設收益是投入的 2倍).

另外,還需要設計有 1個園丁類 (Gardener),它顯示了園丁的工作是培育喬灌木中的銀杏 (ginkgo)、樹樁盆景中的羅漢松 (podocarpus)和造林苗中的馬尾松 (pinus)等苗木.Plant和 gain方法是私有方法,說明它只能在 Gardener類中內部使用;work方法是公有的,它可以對外公開,它調用了私有的plant和 gain方法作為其工作的一部分.Gardener的gardenerName是私有的,該信息對外部是隱匿的,不能隨意修改.所設計的園丁類 (Gardener)和苗木類(Seedlings)見圖 1所示.

在設計過程中,一個苗圃管理系統程序雖然是由Gardener和 Seedlings這 2個類組成,但是卻產生了gardener,ginkgo,podocarpus和 pinus 4個交互對象,因此苗圃管理系統程序是這 4個交互對象集合.他們的交互過程可以由UML順序圖來表示,見圖2所示.

順序圖給出了一組對象之間發生的交互順序,標出了涉及對象以及這些對象之間傳遞的消息類型.順序圖的水平軸表示不同的對象,垂直軸表示時間.順序圖用帶標簽的矩形表示對象,對象可以接受和發送消息.每個對象下方顯示一個虛線標出的對象生命線,表示該對象的生存時間.生命線上包括有一些矩形的激活,表示對象某個交互動作的活動時間.對象與對象生命線之間的箭頭表示對象間的消息發送.

在圖2中,gardener對象向 ginkgo對象發送 1條 grow消息,則表示為從 gardener對象生命線指向ginkgo對象生命線的標記為 grow的箭頭.這也可以理解成 gardener對象調用了 ginkgo對象的 grow方法,因為方法調用是對象間傳遞消息的機制.如果對象是與自身通信而發送消息,則箭頭指向自己的生命線,例如 gardener對象發送給自己的 plant消息,即 gardener對象調用了自己的 plant方法.另外順序圖中還可以看出對象的依存關系.在圖2中,gardener對象通過構造函數創建了 ginkgo對象,在圖上表示為 ginkgo對象收到消息后被創建激活.最后,我們還注意到順序圖有一個 actor角色,該角色是系統外部的使用者,負責激活系統對象.在圖中,該角色名為 main,即指啟動程序的 main方法.

3 用于宏觀描述的順序圖

我們除了把順序圖設計得很詳細,讓它與程序代碼對應起來之外,還要把順序圖設計得很抽象,讓它對苗圃管理系統中的一些典型的工作流程進行描述.有了這樣的既宏觀,又微觀地設計順序圖之后,對開發后繼設計過程的理解是相當有幫助的.

以客戶訂購苗木以例,其工作流程為:客戶在瀏覽器上,進入相應的苗圃管理系統網站,瀏覽相關的苗木列表,選擇所需的苗木,其訂購信息就會通過網絡傳遞到Web/App應用服務器,到 DBMS數據庫服務器中進行存儲,并把存儲后的確認信息顯示到客戶所在的瀏覽器界面上.客戶再通過手機等通訊工具提醒苗圃的管理人員,并把相應的款項劃撥到苗圃的銀行賬號上.苗圃的管理人員收到這些信息后,對苗圃管理系統中的相關信息進行登記、編輯、統計、審核和確認,直到整個交易的完成.其所對應的順序圖見圖3所示.

4 由順序圖演化出其它的UML圖

順序圖在動態建模過程中意義重大,我們在描述 Gardener類的基礎上建立了順序圖,描述了類實例的生命周期運行情況,由于順序圖和協作圖是可以相互轉化的,故可以很快地設計出相應的協作圖來,見圖4所示.協作圖則描述了對象按照消息順序進行的相互協作過程.協作圖的重點是通過消息流的形式給出了對象之間的交互細節.在從順序圖中演化出狀態圖和活動圖的過程中,對象與對象生命線之間的箭頭 (即為對象間的消息)表示的是一個個的活動,從順序圖中當前所考慮的激活上射出的箭頭線 (即消息),是這條激活上的對象達到某個狀態時所做的行為.每一條消息就是一個活動或事件,由此,在 Gardener類的基礎上再結合 Seedlings類,參照實際苗木的生長周期和培育工作流程,可以設計出活動圖來,見圖5所示.

由于 2個事件之間的間隔就是 1個狀態,同一個對象對相同的事件有不同的響應,則對象所處的狀態也不同,故也可以結合活動圖,設計出狀態圖,見圖6所示.

同樣,結合圖3所設計的比較宏觀抽象的順序圖,也可以設計出部署圖,見圖7所示.由以上各種UML圖的演化過程中,我們可以發現到這樣的一些規則:在經過可行性論證和對用戶的需求進行深入分析后,設計出系統的用例圖和類圖 /對象圖后,將工作重點逐漸移向順序圖的設計上.隨后,根據對象按照消息順序進行的相互協作過程,將順序圖中的各個對象由時間關系映射到空間關系,建立起協作圖來.再關注過程中各個對象的狀態演變和各個狀態切換之間的動作,設計出狀態圖和活動圖來.最后,結合基于計算機系統的各種組成元素和Web工程設計的理念,構建出宏觀意義上的順序圖和部署圖來.

5 結語

總之,在軟件系統的開發設計過程中,通過順序圖,逐步從抽象的 UML圖到具體的代碼實現,再由具體的代碼演化出其它更高層次抽象的UML圖來,達到了舉一反三的演化效果,這有利于軟件工程過程在執行過程中的前后連貫和融會貫通.

[1]張海藩.軟件工程 [M].2版.北京:人民郵電出版社,2009.

[2]劉藝.Java程序設計大學教程[M].北京:機械工業出版社,2006.

[3]冀振燕.UML系統分析與設計教程 [M].北京:人民郵電出版社,2009.

[4]賁可榮,何智勇.軟件工程—基于項目的面向對象研究方法[M].北京:機械工業出版社,2009.

[5]鄭人杰,馬素霞,殷人昆,等.軟件工程概述 [M].北京:機械工業出版社,2010.

[6]何偉,趙昆.基于UML的超市移動商務系統分析與設計[J].云南民族大學學報:自然科學版,2009,18(4):372-374,382.

[7]吳波,郭素敏.工作流技術在軟件測試中的應用 [J].云南民族大學學報:自然科學版,2009,18(2):169-172.

[8]陳江,陳建國,陸慧娟,等.UML時間順序圖的實時系統建模及驗證[J].中國計量學院學報,2010,21(1):46-51.

[9]張敏輝,唐慧佳,楊劍.基于網絡的采購系統的設計與實現[J].云南民族大學學報:自然科學版,2005,14(4):346-348.

[10]侯劍,李斌,潘文林.WEB網絡考試系統實現技術研究[J].云南民族大學學報:自然科學版,2004,13(2):116-117,121.

[11]劉會然,潘文林.云南民族大學科技處經費管理系統設計[J].云南民族大學學報:自然科學版,2004,13(1):68-69,72.

[12]趙波,張玉琢,夏幼明.基于 UML的整體與部分關系的可視化表示研究 [J].云南師范大學學報:自然科學版,2007,27(5):25-29.

(責任編輯莊紅林)

The Evolutionary Role of Sequence Diagram in Software Engineering Application

HE Feng
(Information College,Yunnan University of Finance and Economics,Kunming 650221,China)

This paper uses the nursery management system as a case study, and then goes through the class diagram and derives the corresponding code sequence diagram , collaboration diagram , activity diagram , state diagram and dep loyment p lan, which help s imp rove the software engineering app lication.

software engineering; nursery management system; sequence diagram; evolutionary designing

TP 311.5

A

1672-8513(2011)01-0058-05

10.3969/j.issn.1672-8513.2011.01.014

2010-09-25.

云南省自然科學基金 (2006F0047M).

何鋒 (1973-),男 (白族),碩士,講師.主要研究方向:軟件工程與計算智能.

猜你喜歡
設計
二十四節氣在平面廣告設計中的應用
河北畫報(2020年8期)2020-10-27 02:54:06
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于PWM的伺服控制系統設計
電子制作(2019年19期)2019-11-23 08:41:36
基于89C52的32只三色LED搖搖棒設計
電子制作(2019年15期)2019-08-27 01:11:50
基于ICL8038的波形發生器仿真設計
電子制作(2019年7期)2019-04-25 13:18:16
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
從平面設計到“設計健康”
商周刊(2017年26期)2017-04-25 08:13:04
主站蜘蛛池模板: 欧美日韩导航| 亚洲天堂高清| 国产福利在线观看精品| 日韩人妻无码制服丝袜视频| 国产肉感大码AV无码| 免费看一级毛片波多结衣| 亚洲精品手机在线| 久久婷婷色综合老司机| 国产精品亚洲天堂| 亚洲无码不卡网| 久久综合丝袜日本网| 四虎影视库国产精品一区| 日韩123欧美字幕| 中文国产成人精品久久| 国产区人妖精品人妖精品视频| 丁香综合在线| 亚洲嫩模喷白浆| 天天躁夜夜躁狠狠躁躁88| 无码专区在线观看| 国产成人av大片在线播放| 欧美www在线观看| 一本一道波多野结衣av黑人在线| 热久久综合这里只有精品电影| 拍国产真实乱人偷精品| 欧美天堂久久| 在线免费看片a| 欧美国产日韩在线观看| 色综合五月婷婷| 日本福利视频网站| 亚洲国产精品成人久久综合影院 | 亚欧美国产综合| 草草线在成年免费视频2| 黄色福利在线| 日韩免费视频播播| 欧美精品成人一区二区在线观看| 国产综合精品日本亚洲777| 欧美精品H在线播放| 亚洲性网站| 国产精品亚洲一区二区三区在线观看| 国产日韩久久久久无码精品| 国产成人精品亚洲77美色| 在线另类稀缺国产呦| 中文字幕亚洲乱码熟女1区2区| 久久精品人人做人人综合试看| 无码精品国产dvd在线观看9久| 亚洲日韩AV无码一区二区三区人| 欧美成人二区| 在线欧美一区| 啪啪永久免费av| 国产日本一区二区三区| 女人爽到高潮免费视频大全| 午夜毛片免费观看视频 | 欧美伊人色综合久久天天| 欧美特黄一级大黄录像| www.youjizz.com久久| 99热这里只有精品久久免费| 欧美一级在线| 亚洲男人在线天堂| 国内熟女少妇一线天| 99热这里只有精品在线观看| 91精品国产福利| 91在线播放免费不卡无毒| 欧洲亚洲欧美国产日本高清| 人妻无码中文字幕一区二区三区| 亚洲色图综合在线| 色天堂无毒不卡| 98精品全国免费观看视频| 色婷婷丁香| 成人一级免费视频| 久久伊人操| 久久香蕉国产线看观看亚洲片| 老色鬼久久亚洲AV综合| 欧美啪啪网| 欧美人在线一区二区三区| 久久天天躁夜夜躁狠狠| 色偷偷av男人的天堂不卡| 一边摸一边做爽的视频17国产 | 亚洲欧美成人| 国产日本一线在线观看免费| 久热99这里只有精品视频6| 国产成在线观看免费视频| 3344在线观看无码|