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

狀態(tài)圖及狀態(tài)表在軟件建模中的適用場(chǎng)景分析

2018-03-01 08:26:08姚紅巖李佳琦馬云吉
信息記錄材料 2018年4期
關(guān)鍵詞:電梯模型設(shè)計(jì)

姚紅巖,李佳琦,馬云吉

(遼寧科技大學(xué) 遼寧 鞍山 114051)

1 引言

2 刻畫狀態(tài)遷移的兩種手段

通過(guò)狀態(tài)的變化來(lái)考量對(duì)象的屬性數(shù)據(jù)集合、評(píng)估對(duì)象的行為是最為細(xì)微全面的[1,2]。在軟件建模范疇,針對(duì)某級(jí)別的對(duì)象為其進(jìn)行狀態(tài)建模,是全面把握對(duì)象行為的關(guān)鍵。目前在工程領(lǐng)域,為對(duì)象進(jìn)行狀態(tài)建模時(shí),狀態(tài)圖和狀態(tài)表是兩種常見手段[3-7]。如何選用這兩種手段將關(guān)乎到設(shè)計(jì)思想的清晰表達(dá)以及模型的代碼轉(zhuǎn)化,目前在這方面鮮有分析。本文通過(guò)一個(gè)電梯模擬系統(tǒng)的驗(yàn)證,對(duì)這兩種手段進(jìn)行分析,探討在不同場(chǎng)景下,狀態(tài)圖和狀態(tài)表哪個(gè)更利于設(shè)計(jì)。

形式化的有限狀態(tài)機(jī)在模型上可定義為四元組:M ={S,S0,X,Transition}。S是一個(gè)對(duì)象的有限狀態(tài)集合;S0∈S,是初始狀態(tài);X是對(duì)象的有限事件的集合;Transition:S*X→S是狀態(tài)轉(zhuǎn)移函數(shù)。

2.1 狀態(tài)圖

狀態(tài)圖是狀態(tài)機(jī)的一種直觀的圖形化表達(dá),狀態(tài)圖應(yīng)至少表達(dá)出與狀態(tài)機(jī)對(duì)應(yīng)的信息,如各狀態(tài)的名稱、響應(yīng)的事件、遷移函數(shù)等。圖1的左半部分是對(duì)應(yīng)四元組的描述狀態(tài)的基本圖形,右半部分是設(shè)計(jì)模型時(shí)實(shí)際用到的簡(jiǎn)化版本,其中“活動(dòng)”即是表達(dá)狀態(tài)變化的遷移函數(shù)。“事件/活動(dòng)”表達(dá)的語(yǔ)義是針對(duì)某個(gè)事件,引發(fā)哪些對(duì)應(yīng)的活動(dòng)。

圖3 為電梯設(shè)計(jì)的狀態(tài)轉(zhuǎn)換圖

圖1中的狀態(tài)圖在遇到復(fù)雜的狀態(tài)表達(dá)時(shí),有兩類數(shù)據(jù)表達(dá)缺失:一是不能表達(dá)守衛(wèi)條件;二是缺少表達(dá)狀態(tài)特征的屬性數(shù)據(jù)。這兩類信息的缺失不利于設(shè)計(jì)思路的圖形化表達(dá),往往會(huì)使整個(gè)狀態(tài)圖細(xì)化的狀態(tài)頗多,語(yǔ)義晦澀。改進(jìn)后的基本狀態(tài)圖形如圖2所示。

圖1 圖形化的基本狀態(tài)元素

圖2 改進(jìn)后的基本狀態(tài)元素

利用圖2進(jìn)行狀態(tài)建模時(shí),不必針對(duì)特征數(shù)據(jù)或者守衛(wèi)條件對(duì)狀態(tài)做過(guò)細(xì)的劃分。這能極大地減少狀態(tài)圖中基本狀態(tài)的數(shù)目,使?fàn)顟B(tài)圖更清晰、語(yǔ)義更流暢。

2.2 狀態(tài)表

狀態(tài)表是狀態(tài)建模的另一種形式。結(jié)合圖2的說(shuō)明,定義狀態(tài)表的字段如表1所示。對(duì)應(yīng)該表的一個(gè)示例參見表2。

?

?

3 基于狀態(tài)的電梯模擬實(shí)驗(yàn)

電梯是典型的需建模狀態(tài)的對(duì)象。下面將先后使用改進(jìn)后的狀態(tài)圖、表對(duì)電梯系統(tǒng)進(jìn)行狀態(tài)建模,然后對(duì)比兩種建模方法的適用性。

3.1 應(yīng)用狀態(tài)圖為電梯建模

建模電梯狀態(tài)的狀態(tài)圖見圖3。對(duì)圖3的說(shuō)明如下:

(1)基礎(chǔ)狀態(tài)有6個(gè),分別是movedown_straight_for_pickup(下行接人),move_up_for_dump_and_pickup(上行接/送人),idle(靜止),stop_and_open(暫停并開/關(guān)門),moveup_straight_for_pickup(上行接人),move_down_for_dump_and_pickup(下行接/送人)。

(2)以moveup_straight_for_pickup(上行接人)為例,該狀態(tài)的語(yǔ)義描述是:狀態(tài)名,moveup_straight_for_pickup;特征數(shù)據(jù),“電梯方向:向上”。該狀態(tài)有兩個(gè)事件/活動(dòng),一個(gè)是:守衛(wèi)條件G1,無(wú);活動(dòng),“向上移動(dòng)一層”;守衛(wèi)條件G2,“未到達(dá)目標(biāo)樓層”;箭頭指向遷移后的狀態(tài)moveup_straight_for_pickup。另一個(gè)是:守衛(wèi)條件G1,“到達(dá)目標(biāo)樓層”;活動(dòng),“開門/關(guān)門、設(shè)定相反方向”;守衛(wèi)條件G2,無(wú);箭頭指向目標(biāo)狀態(tài)為move_down_for_dump_and_pickup。圖3中的其它基本狀態(tài)在語(yǔ)義上與此類似,不贅述。

(3)初始時(shí),電梯處于idle狀態(tài),根據(jù)目的表是否為空,從idle狀態(tài)存在8條遷移路線:首先是目的表非空(意味著有人在轎廂內(nèi)點(diǎn)擊了按鈕)的情況,如首個(gè)目的樓層大于當(dāng)前樓層,則遷移至move_up_for_dump_and_pickup狀態(tài),如小于當(dāng)前樓層則遷移至move_down_for_dump_and_pickup,如等于當(dāng)前樓層則進(jìn)入狀態(tài)stop_and_open;其次是目的表為空的情況(轎廂內(nèi)沒(méi)人點(diǎn)擊按鈕),如有人在更高的樓層傳喚電梯且要上樓,則電梯轉(zhuǎn)入move_up_for_dump_and_pickup狀態(tài),如有人在更低的樓層傳喚電梯且要下樓,則電梯轉(zhuǎn)入move_down_for_dump_and_pickup狀態(tài),如有人在更高的樓層傳喚電梯并要下樓,則轉(zhuǎn)入moveup_straight_for_pickup,如有人在更低的樓層傳喚電梯并要上樓,則轉(zhuǎn)入movedown_straight_for_pickup狀態(tài)。如有人在當(dāng)前樓層傳喚電梯,則轉(zhuǎn)入stop_and_open狀態(tài)并開/關(guān)門。

(4)當(dāng)電梯處于move_up_for_dump_and_pickup和move_down_for_dump_and_pickup狀態(tài)時(shí),在當(dāng)前移動(dòng)方向上,既可以在傳喚樓層接人,也可以在目的樓層送人;但當(dāng)電梯處于moveup_straight_for_pickup和movedown_straight_for_pickup時(shí),在到達(dá)指定傳喚樓層接人期間,如A層,中途不能再接人(因?yàn)闊o(wú)法預(yù)測(cè)中途進(jìn)入轎廂的人它的目的樓層是高于還是低于A層),但可以在到達(dá)目的樓層時(shí)送人。

(6)如電梯處于move_up_for_dump_and_pickup狀態(tài),在有人呼叫上行或者仍有上行目的樓層時(shí)(守衛(wèi)條件G1),要上行一層,如當(dāng)前樓層有上行傳喚要求或者目的樓層正是當(dāng)前層(守衛(wèi)條件G2),則轉(zhuǎn)入stop_and_open狀態(tài)。在stop_and_open狀態(tài)時(shí),電梯開/關(guān)門時(shí)間是8秒,之后根據(jù)電梯當(dāng)前運(yùn)行方向,如向上,則重新轉(zhuǎn)入move_up_for_dump_and_pickup狀態(tài)。如在move_up_for_dump_and_pickup狀態(tài)時(shí),在滿足守衛(wèi)條件G1:“沒(méi)有待接送的貨物”時(shí),自行轉(zhuǎn)入狀態(tài)idle,特征數(shù)據(jù)重置為無(wú)方向。

電梯在move_down_for_dump_and_pickup狀態(tài)與move_up_for_dump_and_pickup狀態(tài)下的行為類似,不再贅述。

3.2 應(yīng)用狀態(tài)表為電梯建模

下表2是遵照表1給出的電梯狀態(tài)的轉(zhuǎn)換表。該表清楚記錄狀態(tài)遷移時(shí)需考慮的守衛(wèi)條件和進(jìn)行的活動(dòng)。該表明顯沒(méi)有狀態(tài)圖直觀,不易形成電梯運(yùn)行的直觀印象。對(duì)于大家都熟悉的電梯尚且如此,如果直接給出一個(gè)陌生系統(tǒng)的狀態(tài)表,要深入理解各狀態(tài)遷移的合理性將更為費(fèi)力。

3.3 對(duì)狀態(tài)圖模型和狀態(tài)表模型的分析

(1)增加了守衛(wèi)條件的狀態(tài)圖,能大幅減少基本狀態(tài)的數(shù)目。(參見圖3)試想如果不在遷移箭線上注明各種守衛(wèi)條件,那么勢(shì)必要對(duì)應(yīng)這些條件細(xì)化出若干子狀態(tài)或衍生出新的狀態(tài)。整個(gè)狀態(tài)圖將涵蓋更多狀態(tài),使得主體狀態(tài)之間的遷移路線不清晰且狀態(tài)圖很“臟”。

(2)雖然狀態(tài)圖在表達(dá)設(shè)計(jì)路線上有優(yōu)勢(shì),但也應(yīng)注意到,箭線上的守衛(wèi)條件的性質(zhì)表達(dá)的不夠明顯,不能直觀有效地區(qū)分GC1和GC2。當(dāng)守衛(wèi)條件更復(fù)雜時(shí),狀態(tài)遷移在語(yǔ)義上較為含混,不利于指導(dǎo)編碼人員有效地進(jìn)行模型的代碼轉(zhuǎn)化。

(3)狀態(tài)表能清晰地指出源狀態(tài)和目標(biāo)狀態(tài),遷移時(shí)需考量的守衛(wèi)條件GC1、GC2以及對(duì)應(yīng)的活動(dòng)也是一目了然。但是,如果直接用狀態(tài)表建模,建模的思路相比于狀態(tài)圖而言,表達(dá)的不直觀、不利于設(shè)計(jì)路線的展示。同時(shí)從表2中難于體會(huì)圖3中體現(xiàn)出的設(shè)計(jì)上的對(duì)稱性,這會(huì)增加理解狀態(tài)遷移的難度。

(4)狀態(tài)表能有效指導(dǎo)模型的代碼轉(zhuǎn)化。參照表2能直接針對(duì)特定的源狀態(tài)進(jìn)行編碼且在編碼時(shí)不必額外考慮狀態(tài)遷移的合理性。

綜上,在設(shè)計(jì)狀態(tài)模型時(shí),狀態(tài)圖在表達(dá)主體狀態(tài)遷移上更有優(yōu)勢(shì),編排良好的狀態(tài)繪圖能最大程度提升設(shè)計(jì)思路的表現(xiàn)力。而在代碼化狀態(tài)模型時(shí),狀態(tài)表則能更有秩序地指導(dǎo)編碼意圖。

4 結(jié)語(yǔ)

應(yīng)用改進(jìn)的基本狀態(tài)元素的圖形表達(dá)方式,可將復(fù)雜的遷移條件和活動(dòng)表示在遷移路線上,這能極大地減少細(xì)粒度狀態(tài)的數(shù)目,同時(shí)能清晰表現(xiàn)主干狀態(tài)的遷移,防止出現(xiàn)子狀態(tài)。設(shè)計(jì)給出的電梯系統(tǒng)的狀態(tài)圖同時(shí)也證明了沒(méi)有子狀態(tài)的狀態(tài)圖是清晰可辨的,有設(shè)計(jì)美感。此外,根據(jù)電梯系統(tǒng)的狀態(tài)表也能得出另外一個(gè)結(jié)論:直接給出狀態(tài)表不便于設(shè)計(jì)思想的表達(dá)。狀態(tài)和遷移路線較多的狀態(tài)表,除了有利于指導(dǎo)編碼之外,在表現(xiàn)設(shè)計(jì)思路上并不適合。因此在面對(duì)狀態(tài)較多的復(fù)雜系統(tǒng),建模狀態(tài)時(shí)應(yīng)首先使用狀態(tài)圖表現(xiàn)設(shè)計(jì)思路,在指導(dǎo)模型編碼時(shí)才應(yīng)轉(zhuǎn)化為狀態(tài)表。

[1]徐寶文,周毓明,盧紅敏.UML與軟件建模[M].清華大學(xué)出版社,2013.

[2] R o b e r t C.M a r t i n,M i c a h M a r t i n.A g i l e Principles,Patterns,and Practices in C#[M].Prentice Hall,July 2006,ISBN:0131857258.

[3] Hongyan Yao,Xuebo Sun,Han Bao.A New Notation TN for Expressing Concurrency in Program Design[J].ICIC Express Letters,2017(11)2:285-290.

[4] 劉忠,鄧蘇,沙基昌,張維明.基于狀態(tài)圖的對(duì)象行為建模[J].計(jì)算機(jī)工程與設(shè)計(jì),2001,22(2):9-12.

[5] Jilong CHEN,Quanli YANG,F(xiàn)ang ZHANG,Xiong WU.Research and Design of Simulative System of Elevators Based on Java[J],Agricultural Science &Technology,2014,15(2):307-309.

[6]陳紀(jì)龍,孟洪兵,吳剛,六層電梯模擬系統(tǒng)的研究與實(shí)現(xiàn)[J].伊犁師范學(xué)院學(xué)報(bào),2014,8(1):57-62.

[7]陳紀(jì)龍,孟洪兵,利用OO方法實(shí)現(xiàn)電梯控制系統(tǒng)的模擬[J],塔里木大學(xué)學(xué)報(bào),2014,(26)1:128-132.

猜你喜歡
電梯模型設(shè)計(jì)
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
瞞天過(guò)海——仿生設(shè)計(jì)萌到家
被困電梯以后
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計(jì)叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
3D打印中的模型分割與打包
電梯不吃人
乘電梯
主站蜘蛛池模板: 四虎精品免费久久| 伊人无码视屏| 亚洲精品卡2卡3卡4卡5卡区| 精品国产美女福到在线直播| 中文字幕资源站| 午夜国产精品视频| 国产亚洲第一页| 孕妇高潮太爽了在线观看免费| 欧美精品伊人久久| 92午夜福利影院一区二区三区| 亚洲无码高清一区二区| 性色一区| 蜜桃视频一区| 欧美专区日韩专区| 青青青草国产| 国产一级做美女做受视频| 欧美三级视频网站| 91在线免费公开视频| 国产亚洲一区二区三区在线| 男女猛烈无遮挡午夜视频| 伊人婷婷色香五月综合缴缴情| 亚洲无线视频| 国产欧美亚洲精品第3页在线| 99久久无色码中文字幕| 免费午夜无码18禁无码影院| 美女扒开下面流白浆在线试听| 女人毛片a级大学毛片免费| 欧美激情视频一区二区三区免费| 亚洲性网站| 久久性视频| 91黄视频在线观看| 久久影院一区二区h| 成人午夜天| 狠狠躁天天躁夜夜躁婷婷| 国产一级片网址| 亚洲激情区| 亚洲国产欧美自拍| 精品无码专区亚洲| 天天摸天天操免费播放小视频| 国产精品爆乳99久久| 欧美精品啪啪一区二区三区| julia中文字幕久久亚洲| 欧美亚洲香蕉| 久草性视频| 99精品热视频这里只有精品7 | 五月激情婷婷综合| 欧美一级在线| 国产你懂得| 91九色最新地址| 亚洲开心婷婷中文字幕| 午夜性刺激在线观看免费| 亚洲欧美自拍中文| 99精品免费在线| 91精品专区| a网站在线观看| 9啪在线视频| 国产h视频在线观看视频| 蜜桃视频一区二区| 亚洲男人天堂网址| 超碰免费91| 欧美精品另类| 亚洲激情区| 亚洲国产精品国自产拍A| 日本在线免费网站| 欧美日韩免费| 国产凹凸一区在线观看视频| 夜色爽爽影院18禁妓女影院| 久草视频一区| 在线观看无码a∨| 91无码视频在线观看| 思思热在线视频精品| 9999在线视频| 欧美视频在线播放观看免费福利资源| 58av国产精品| 亚洲天堂精品视频| 精品视频91| 五月六月伊人狠狠丁香网| 亚洲国内精品自在自线官| 亚洲九九视频| 激情国产精品一区| 日韩欧美视频第一区在线观看| AV不卡国产在线观看|