亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于原型仿真的架構(gòu)評(píng)價(jià)方法

文檔序號(hào):6549844閱讀:154來源:國知局
一種基于原型仿真的架構(gòu)評(píng)價(jià)方法
【專利摘要】本發(fā)明公布了一種基于原型仿真的架構(gòu)評(píng)價(jià)方法,借助架構(gòu)的UML系統(tǒng)順序圖、順序圖,對(duì)架構(gòu)進(jìn)行模擬執(zhí)行,追蹤架構(gòu)的時(shí)間、內(nèi)存和CPU這些性能消耗,從而對(duì)架構(gòu)進(jìn)行定量分析。首先通過EA工具構(gòu)建架構(gòu)順序圖和系統(tǒng)順序圖,其次對(duì)架構(gòu)順序圖進(jìn)行解析,將其轉(zhuǎn)化為執(zhí)行圖,借助仿真信息知識(shí)庫中的數(shù)據(jù),運(yùn)行執(zhí)行圖,從而對(duì)順序圖進(jìn)行仿真;然后,對(duì)架構(gòu)系統(tǒng)順序圖進(jìn)行解析,將其轉(zhuǎn)化為執(zhí)行圖,借助順序圖的仿真結(jié)果,運(yùn)行執(zhí)行圖,從而對(duì)系統(tǒng)順序圖進(jìn)行仿真;最后將兩類仿真結(jié)果用界面展示,作為架構(gòu)師評(píng)估架構(gòu)時(shí)間資源消耗的依據(jù)。
【專利說明】一種基于原型仿真的架構(gòu)評(píng)價(jià)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明提出了一種基于原型仿真的架構(gòu)評(píng)價(jià)方法,主要是借助軟件架構(gòu)描述語言,通過仿真的方法來評(píng)價(jià)軟件架構(gòu),屬于軟件架構(gòu)評(píng)估的【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]軟件架構(gòu),作為早期的軟件開發(fā)產(chǎn)物,是在高層次上對(duì)軟件進(jìn)行描述,便于軟件開發(fā)過程中各個(gè)視角的統(tǒng)一,能夠及早發(fā)現(xiàn)開發(fā)中的問題并支持各種解決方案的評(píng)估和預(yù)測(cè)。軟件架構(gòu)解決了軟件結(jié)構(gòu)問題,隨著軟件規(guī)模及復(fù)雜度的提升,設(shè)計(jì)一個(gè)好的軟件架構(gòu)
意義重大。
[0003]軟件架構(gòu)設(shè)計(jì)層的分析包括定量分析和定性分析兩種方法,其中定性分析處理軟件系統(tǒng)的功能特性,如有無死鎖或者安全性狀況。定量分析是通過對(duì)軟件度量或者軟件建模,從而獲得軟件的內(nèi)存執(zhí)行等的概要信息。仿真正是一種重要的建模技術(shù),它允許對(duì)一般的系統(tǒng)進(jìn)行建模,得到的仿真模型能夠表示現(xiàn)實(shí)世界中任意復(fù)雜度的場(chǎng)景,甚至能表示不能利用分析工具表示的場(chǎng)景。
[0004]在軟件架構(gòu)領(lǐng)域,仿真有助于軟件架構(gòu)師利用架構(gòu)模型的原型,檢測(cè)架構(gòu)決策的不一致性,改善架構(gòu)設(shè)計(jì)模型。這樣的好處在于:當(dāng)有許多可能的架構(gòu)設(shè)計(jì)決策時(shí),每個(gè)架構(gòu)的利弊都可以很容易通過仿真加以預(yù)測(cè)。架構(gòu)師可以快速對(duì)一個(gè)架構(gòu)更改的影響進(jìn)行分析,從而了解整個(gè)系統(tǒng)在性能和行為等方面的性質(zhì),有助于對(duì)系統(tǒng)構(gòu)件、系統(tǒng)延遲和系統(tǒng)資源進(jìn)行評(píng)估,從而避免系統(tǒng)開發(fā)的失敗。

【發(fā)明內(nèi)容】

[0005]技術(shù)問題:本發(fā)明的目的是提供一種自動(dòng)化程度高、靈活方便,通過不同的交互場(chǎng)景,能夠反映軟件架構(gòu)在不同情況下的性能狀況,從而全面體現(xiàn)軟件架構(gòu)性能信息的基于原型仿真的架構(gòu)評(píng)價(jià)方法。
[0006]技術(shù)方案:本發(fā)明的基于原型仿真的架構(gòu)評(píng)價(jià)方法,包括如下步驟:
[0007]步驟I)用統(tǒng)一建模語言工具Enterprise Architect設(shè)計(jì)軟件架構(gòu)的順序圖與系統(tǒng)順序圖,并將所述軟件架構(gòu)的順序圖與系統(tǒng)順序圖導(dǎo)出為XMI文件;
[0008]步驟2)對(duì)所述步驟I)導(dǎo)出的順序圖XMI文件進(jìn)行解析,得到每一幅順序圖的特征信息,即模塊名、模塊間的消息傳遞邊、消息傳遞邊的順序、組合片段類型、組合片段內(nèi)部包含的消息傳遞邊;
[0009]同時(shí)對(duì)所述步驟I)導(dǎo)出的系統(tǒng)順序圖XMI文件進(jìn)行解析,得到系統(tǒng)順序圖的特征信息,即模塊名、模塊間的消息傳遞邊、消息傳遞邊的順序、組合片段類型、組合片段內(nèi)部包含的消息傳遞邊;
[0010]步驟3)基于所述步驟2)解析得到的順序圖的特征信息,將每個(gè)順序圖分別轉(zhuǎn)化成執(zhí)行圖,并從仿真信息知識(shí)庫中讀取順序圖各個(gè)操作所對(duì)應(yīng)的時(shí)間、資源數(shù)以及組合片段信息,然后對(duì)生成的執(zhí)行圖進(jìn)行仿真執(zhí)行,并根據(jù)順序圖仿真原理,獲得順序圖的時(shí)間資源消耗信息;
[0011]步驟4)基于系統(tǒng)順序圖仿真用于仿真用戶和系統(tǒng)的交互場(chǎng)景,具體為:基于所述步驟2)解析得到的系統(tǒng)順序圖的特征信息,將系統(tǒng)順序圖轉(zhuǎn)化為執(zhí)行圖,并從所述步驟3)得到的順序圖的時(shí)間資源消耗信息中獲取系統(tǒng)順序圖所需要的仿真信息,進(jìn)而對(duì)生成的執(zhí)行圖進(jìn)行仿真執(zhí)行,并根據(jù)系統(tǒng)順序圖仿真原理,獲得該系統(tǒng)順序圖的時(shí)間資源信息。
[0012]本發(fā)明方法的優(yōu)選方案中,步驟3)中,將順序圖轉(zhuǎn)化為執(zhí)行圖的具體方法如下:
[0013]首先,將順序圖中消息傳遞邊轉(zhuǎn)化成執(zhí)行圖的消息傳遞節(jié)點(diǎn),同時(shí)將順序圖中的組合片段轉(zhuǎn)化為組合片段開始節(jié)點(diǎn)和組合片段結(jié)束節(jié)點(diǎn);
[0014]然后對(duì)每個(gè)組合片段內(nèi)部的節(jié)點(diǎn)進(jìn)行連接,如果連接過程中遇到其他組合片段的開始節(jié)點(diǎn),即組合片段之間存在嵌套關(guān)系時(shí),則忽略這些其他組合片段的內(nèi)部節(jié)點(diǎn),從其結(jié)束節(jié)點(diǎn)處繼續(xù)進(jìn)行下一步連接;
[0015]最后對(duì)執(zhí)行圖的所有節(jié)點(diǎn)進(jìn)行連接,在連接過程中,當(dāng)連接到一個(gè)組合片段開始節(jié)點(diǎn),則忽略該組合片段的內(nèi)部節(jié)點(diǎn),直接從該組合片段的結(jié)束節(jié)點(diǎn)處進(jìn)行下一步的連接。
[0016]本發(fā)明方法的優(yōu)選方案中,步驟3)和步驟4)中對(duì)生成的執(zhí)行圖進(jìn)行仿真執(zhí)行的具體方法為:
[0017]首先執(zhí)行入度為零的節(jié)點(diǎn),然后根據(jù)以下情況和原則進(jìn)行后繼執(zhí)行:
[0018]a)后繼節(jié)點(diǎn)為空,則執(zhí)行圖仿真執(zhí)行結(jié)束;
[0019]b)后繼節(jié)點(diǎn)為消息傳遞節(jié)點(diǎn),則執(zhí)行該消息傳遞節(jié)點(diǎn),下一個(gè)執(zhí)行節(jié)點(diǎn)為該消息傳遞節(jié)點(diǎn)的后繼節(jié)點(diǎn);
[0020]c)后繼節(jié)點(diǎn)為選擇組合片段開始節(jié)點(diǎn),則該節(jié)點(diǎn)不予執(zhí)行,下一個(gè)執(zhí)行節(jié)點(diǎn)是隨機(jī)選擇的一個(gè)組合片段開始節(jié)點(diǎn)的后繼節(jié)點(diǎn);
[0021]d)后繼節(jié)點(diǎn)為并發(fā)組合片段開始節(jié)點(diǎn),則不予執(zhí)行,下一個(gè)執(zhí)行節(jié)點(diǎn)為并發(fā)組合片段開始節(jié)點(diǎn)的后繼節(jié)點(diǎn);
[0022]e)后繼節(jié)點(diǎn)為循環(huán)組合片段開始節(jié)點(diǎn),則不予執(zhí)行,下一個(gè)執(zhí)行節(jié)點(diǎn)為循環(huán)組合片段開始節(jié)點(diǎn)的后繼節(jié)點(diǎn);
[0023]f)如后繼節(jié)點(diǎn)為循環(huán)組合片段結(jié)束節(jié)點(diǎn),則不予執(zhí)行,并且:
[0024]如果其前一個(gè)節(jié)點(diǎn)的遍歷次數(shù)不大于循環(huán)組合片段的循環(huán)次數(shù),則下一個(gè)執(zhí)行節(jié)點(diǎn)為該循環(huán)組合片段開始節(jié)點(diǎn),否則,下一個(gè)執(zhí)行節(jié)點(diǎn)為循環(huán)組合片段結(jié)束節(jié)點(diǎn)的后繼節(jié)
占.[0025]g)如后繼節(jié)點(diǎn)為選擇組合片段結(jié)束節(jié)點(diǎn)或并發(fā)組合片段結(jié)束節(jié)點(diǎn),則不予執(zhí)行,下一個(gè)執(zhí)行節(jié)點(diǎn)為該組合片段結(jié)束節(jié)點(diǎn)的后繼節(jié)點(diǎn)。
[0026]本發(fā)明方法的優(yōu)選方案中,步驟4)中,根據(jù)以下規(guī)則,從所述步驟3)得到的順序圖的時(shí)間資源消耗信息中獲取系統(tǒng)順序圖所需要的仿真信息:
[0027]a)順序圖仿真得到的最大運(yùn)行時(shí)間用于交互場(chǎng)景最大運(yùn)行時(shí)間仿真以及最大響應(yīng)時(shí)間仿真;
[0028]b)順序圖仿真得到的平均運(yùn)行時(shí)間用于交互場(chǎng)景的平均運(yùn)行時(shí)間仿真以及平均響應(yīng)時(shí)間仿真;
[0029]c)順序圖累計(jì)資源利用量用于交互場(chǎng)景的單位時(shí)間資源利用量仿真;
[0030]d)順序圖最大資源利用量用于交互場(chǎng)景的最大資源利用量仿真;[0031]e)將順序圖最大資源利用量與順序圖執(zhí)行結(jié)束時(shí)資源未釋放數(shù)的差,映射為交互場(chǎng)景中對(duì)應(yīng)操作的資源釋放數(shù)。
[0032]UML作為一種可視化描述語言,在目前依然沒有統(tǒng)一的文件存儲(chǔ)規(guī)范,因此本發(fā)明方法使用的是專業(yè)軟件架構(gòu)建模工具EA對(duì)UML的存儲(chǔ)規(guī)范。首先對(duì)EA產(chǎn)生的XMI文件進(jìn)行解析,獲得架構(gòu)描述文檔中所有順序圖包含的信息,再將其轉(zhuǎn)化為執(zhí)行圖,借助仿真信息知識(shí)庫對(duì)執(zhí)行圖進(jìn)行仿真,將仿真所得的數(shù)據(jù)用于系統(tǒng)順序圖的仿真,最終得出架構(gòu)層面的性能信息。本發(fā)明使用原型仿真技術(shù),對(duì)軟件架構(gòu)的性能做出評(píng)價(jià),將系統(tǒng)內(nèi)部交互邏輯、用戶和系統(tǒng)的交互場(chǎng)景相結(jié)合,從而對(duì)軟件架構(gòu)進(jìn)行評(píng)價(jià)。
[0033]有益效果:本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):
[0034]現(xiàn)有的架構(gòu)仿真方法首先輸入端沒有提出正規(guī)的建模工具,有的是自己制作UML存儲(chǔ)文檔,有的是自己設(shè)計(jì)UML制作工具,導(dǎo)致功能不全并且過于簡單。其次仿真所需的數(shù)據(jù)都是手動(dòng)編寫類似XML格式的性能信息文件,不僅不靈活而且不具有可復(fù)用性,最后現(xiàn)有的基于順序圖仿真方法將用戶和系統(tǒng)交互以及系統(tǒng)與系統(tǒng)交互都放在一張圖中,缺少靈活性,而本發(fā)明方法針對(duì)這三點(diǎn)弊端具有如下三個(gè)改進(jìn)。
[0035](I)該方法的輸入是EA (Enterprise Architect)工具建模產(chǎn)生的XMI文件,之后的處理都是程序?qū)崿F(xiàn),這種方式極大提高了這套仿真的自動(dòng)化水平。架構(gòu)師只需要借助EA可視化編輯器設(shè)計(jì)軟件架構(gòu),將其產(chǎn)生的XMI文件作為原型仿真的輸入,而無需關(guān)注后面仿真的具體細(xì)節(jié)。此外,該方法也做到架構(gòu)設(shè)計(jì)與仿真相結(jié)合的效果,將架構(gòu)設(shè)計(jì)的產(chǎn)物直接用于仿真,而無需單獨(dú)設(shè)計(jì)一套仿真輸入。
[0036](2)該方法將系統(tǒng)內(nèi)部方法調(diào)用的時(shí)間資源等信息構(gòu)建成一個(gè)仿真信息知識(shí)庫,通過對(duì)數(shù)據(jù)不斷的完善和積累,構(gòu)建出一個(gè)全面而準(zhǔn)確的仿真信息知識(shí)庫,不但方便仿真過程中對(duì)仿真所需的數(shù)據(jù)進(jìn)行管理及修改,而且可以復(fù)用于其他仿真環(huán)境。
[0037](3)將順序圖與系統(tǒng)順序圖結(jié)合,可以把系統(tǒng)內(nèi)部邏輯,用戶與系統(tǒng)交互兩者分離。對(duì)于一個(gè)系統(tǒng)架構(gòu),其內(nèi)部一系列操作都可以確定,但用戶與系統(tǒng)的交互由用戶人為控制,無法準(zhǔn)確得出用戶與系統(tǒng)的交互模式。通過將兩類交互分離,使得交互場(chǎng)景的設(shè)計(jì)更加靈活。架構(gòu)師可以設(shè)計(jì)各種用戶與系統(tǒng)的交互場(chǎng)景,而無需修改系統(tǒng)的內(nèi)部交互邏輯。此夕卜,架構(gòu)師在設(shè)計(jì)另一種交互場(chǎng)景時(shí),如果某些用戶操作已經(jīng)有相應(yīng)的順序圖對(duì)應(yīng),則無需再設(shè)計(jì)該操作順序圖,從而增加了順序圖的復(fù)用性。
【專利附圖】

【附圖說明】
[0038]圖1是本發(fā)明中系統(tǒng)順序圖和順序圖的一個(gè)簡單對(duì)應(yīng)關(guān)系不意圖。
[0039]圖2是本發(fā)明所提出的基于原型仿真的架構(gòu)評(píng)價(jià)方法流程圖。
[0040]圖3是實(shí)施例中ATM啟動(dòng)操作的順序圖。
[0041]圖4是實(shí)施例中ATM關(guān)閉操作的順序圖。
[0042]圖5是實(shí)施例中人與ATM交互的系統(tǒng)順序圖。
[0043]圖6是實(shí)施例中ATM啟動(dòng)操作的執(zhí)行圖。
[0044]圖7是實(shí)施例中ATM關(guān)閉操作的執(zhí)行圖。
[0045]圖8是實(shí)施例中人與ATM交互的執(zhí)行圖?!揪唧w實(shí)施方式】
[0046]下面結(jié)合實(shí)施例和說明書附圖對(duì)發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明:
[0047]圖1簡單展示了本發(fā)明中系統(tǒng)順序圖和順序圖的對(duì)應(yīng)關(guān)系。系統(tǒng)順序圖中用戶對(duì)系統(tǒng)的每次操作都映射出系統(tǒng)內(nèi)部一系列的交互邏輯。這一系列系統(tǒng)內(nèi)部的交互邏輯用順序圖描述。圖2描述了本發(fā)明提出的基于原型仿真的架構(gòu)評(píng)價(jià)方法流程圖:首先需要一套以EA建模工具制作的軟件架構(gòu)描述文檔,這邊必須要有的描述文檔為系統(tǒng)順序圖和順序圖。其次,還需要構(gòu)建一個(gè)仿真信息知識(shí)庫,架構(gòu)師可以反復(fù)迭代這個(gè)仿真信息知識(shí)庫,不斷對(duì)數(shù)據(jù)進(jìn)行增加和完善。其中仿真信息知識(shí)庫中的數(shù)據(jù)可以由性能專家給出,也可以是歷史經(jīng)驗(yàn)給出。仿真信息知識(shí)庫數(shù)據(jù)的構(gòu)建最終還是一個(gè)反復(fù)迭代的過程。上述兩個(gè)步驟也是仿真的前提。仿真的核心主要包含三部分:(I)對(duì)架構(gòu)描述文檔的解析;(2)順序圖的仿真;(3)系統(tǒng)順序圖的仿真。下面給出幾個(gè)部分的具體說明。
[0048]一、EA建模及仿真信息知識(shí)庫構(gòu)建
[0049]EA是一套由Sparx Systems公司開發(fā)的輕量級(jí)、高集成的架構(gòu)建模工具。它為用戶提供一個(gè)高性能、直觀的工作界面,聯(lián)合UML2.0最新規(guī)范,為桌面電腦工作人員、開發(fā)和應(yīng)用團(tuán)隊(duì)打造先進(jìn)的軟件建模方案,是一個(gè)完全的UML分析和設(shè)計(jì)工具,能完成從需求收集經(jīng)步驟分析、模型設(shè)計(jì)到測(cè)試和維護(hù)的整個(gè)軟件開發(fā)過程。EA工具網(wǎng)上提供下載,并且有詳細(xì)的說明文檔。用戶只需要拖拽EA上的順序圖元素即可拼裝出自己想要的順序圖。本發(fā)明方法借助EA工具制作架構(gòu)描述文檔,將描述文檔導(dǎo)出成XMI文件作為本發(fā)明方法的輸入。
[0050]構(gòu)建仿真信息知識(shí)庫主要目的是能夠形成一套仿真所需數(shù)據(jù)的管理模式。仿真信息知識(shí)庫中主要存儲(chǔ)了系統(tǒng)內(nèi)部方法調(diào)用所需的時(shí)間、資源消耗,以及順序圖中組合片段的一些額外信息,如選擇分支的概率,循環(huán)塊的循環(huán)次數(shù)。隨著項(xiàng)目開發(fā)的積累,仿真信息知識(shí)庫也能跟著不斷迭代完善,仿真信息知識(shí)庫中的數(shù)據(jù)會(huì)變得越來越準(zhǔn)確,最終滿足仿真的要求。
[0051]二、架構(gòu)描述文檔的解析方法
[0052]XMI文件是一種XML格式的文件,因此對(duì)其解析主要是解析該XML文件中關(guān)鍵元素,具體解析步驟如下:
[0053]a).找到XMI文件中UML: Diagram標(biāo)簽,獲取其子節(jié)點(diǎn)UML: Diagram, element標(biāo)簽信息,用于對(duì)不同的UML圖進(jìn)行分類;
[0054]b).獲取XMI中SequenceDiagram圖類型,定位順序圖信息;
[0055]c).找到UML: Actor元素標(biāo)簽,解析出Actor元素,讀取其XMI中的id和name,并將它們存儲(chǔ)于SequenceEntity映射表;
[0056]d).找到UML = ClassifierRole元素標(biāo)簽,解析出模塊元素,讀取其XMI中的id和name,并將它們存儲(chǔ)于SequenceEntity映射表;
[0057]e).找到UML = Class元素標(biāo)簽,解析出組合片段信息,讀取其XMI中的id、name和ea_stype,并將它們存儲(chǔ)于SeqFragment映射表,其中ea_stype中主要記錄了該組合片段是何種類型,如循環(huán)、選擇、并發(fā)等;
[0058]f).找到UML = Message元素標(biāo)簽,解析順序圖中所有的消息信息,讀取其XMI中的id、name、sender、receiver以及由關(guān)系坐標(biāo)組成的字符串coordinate,并將它們存儲(chǔ)于SeqRelation映射表中,其中sender表示消息發(fā)出的模塊,receiver表示消息接收的模塊,coordinate表示消息邊在順序圖中的位置;
[0059]g).解析模塊關(guān)聯(lián)的邊。通過前面幾步獲得的一系列映射表,總結(jié)出各個(gè)模塊關(guān)聯(lián)的邊。
[0060]h).解析消息被哪些組合片段包含,以及組合片段內(nèi)含有的所有消息;
[0061]i).解析組合片段內(nèi)包含的組合片段,以及組合片段被哪些組合片段包含;
[0062]j).至此,架構(gòu)描述文檔解析完畢。
[0063]三、順序圖仿真
[0064]順序圖主要描述了系統(tǒng)內(nèi)部的交互邏輯,這一系列邏輯對(duì)于用戶是黑盒的。因此順序圖的仿真主要仿真系統(tǒng)內(nèi)部邏輯的時(shí)間資源消耗,其中資源主要分為內(nèi)存和CPU。順序圖仿真首先需要將順序圖轉(zhuǎn)化成執(zhí)行圖,轉(zhuǎn)化步驟如下:
[0065]a).從上到下遍歷順序圖,將順序圖中消息傳遞邊轉(zhuǎn)化成執(zhí)行圖的消息傳遞節(jié)點(diǎn)。
[0066]b).如果遇到組合片段,則將其分為組合片段開始節(jié)點(diǎn)、組合片段結(jié)束節(jié)點(diǎn)。
[0067]c).對(duì)節(jié)點(diǎn)中每個(gè)組合片段內(nèi)部進(jìn)行連接,內(nèi)部連接過程中遇到其他組合片段的開始節(jié)點(diǎn)(即組合片段包含 嵌套關(guān)系),則直接跳到這些組合片段的結(jié)束節(jié)點(diǎn)處進(jìn)行下一步連接。因?yàn)槊總€(gè)組合片段都會(huì)內(nèi)部連接一遍,所以不存在未連接的組合片段。
[0068]d).對(duì)執(zhí)行圖的所有節(jié)點(diǎn)進(jìn)行連接,此時(shí)如果連接的是組合片段開始節(jié)點(diǎn),則下一步直接跳到組合片段結(jié)束節(jié)點(diǎn)處進(jìn)行下一個(gè)節(jié)點(diǎn)的連接。最終整個(gè)順序圖合理轉(zhuǎn)化為執(zhí)行圖。
[0069]最終轉(zhuǎn)化得到的執(zhí)行圖等價(jià)于一個(gè)帶環(huán)有向圖,該有向圖的一條完整路徑即順序圖的一種執(zhí)行情況,其中每個(gè)環(huán)路對(duì)應(yīng)循環(huán)組合片段,根據(jù)循環(huán)的次數(shù)適時(shí)跳出循環(huán);選擇分支對(duì)應(yīng)選擇組合片段,選擇組合片段的每一條分支都具有執(zhí)行概率,根據(jù)這些執(zhí)行概率來選擇所要執(zhí)行的分支;并發(fā)分支對(duì)應(yīng)并發(fā)組合片段,由于并發(fā)的不確定性,目前方法用最壞情況代替并發(fā)執(zhí)行情況,最壞情況即為所有路徑按順序一次執(zhí)行。執(zhí)行圖中的消息傳遞節(jié)點(diǎn)具有時(shí)間和資源屬性,在執(zhí)行該節(jié)點(diǎn)時(shí),需要統(tǒng)計(jì)執(zhí)行該節(jié)點(diǎn)時(shí)消耗的時(shí)間數(shù)、執(zhí)行該節(jié)點(diǎn)需要申請(qǐng)的內(nèi)存數(shù)、CPU數(shù),執(zhí)行完該節(jié)點(diǎn)釋放的內(nèi)存數(shù)、CPU數(shù)。
[0070]然后運(yùn)行這個(gè)執(zhí)行圖,獲得該順序圖的時(shí)間資源消耗信息,這些信息包括如下內(nèi)容,時(shí)間方面結(jié)果:
[0071]?最大運(yùn)行時(shí)間:所有事件序列中最大運(yùn)行時(shí)間;
[0072]?平均運(yùn)行時(shí)間:所有事件序列運(yùn)行時(shí)間的平均值;
[0073]?最大響應(yīng)時(shí)間:所有事件序列中,模塊間最大的響應(yīng)時(shí)間;
[0074]?平均響應(yīng)時(shí)間:所有事件序列中,模塊間的響應(yīng)時(shí)間平均值;
[0075]?時(shí)間消耗最大的模塊:所有事件序列中,消耗時(shí)間最大的模塊。
[0076]資源(分為CPU和內(nèi)存)方面結(jié)果:
[0077]?累計(jì)資源利用量:所有事件序列資源利用量的平均值;
[0078]?資源利用平衡率:模塊間累計(jì)資源利用量的方差;
[0079]?最大資源利用量及步驟:所有事件序列執(zhí)行過程中,資源最大利用量及其執(zhí)行步驟(考慮資源的申請(qǐng)及釋放),該執(zhí)行步驟是某個(gè)事件序列的子集;
[0080]?單位時(shí)間資源利用量:所有事件序列平均單位時(shí)間資源利用量。[0081]其中一個(gè)事件序列表示執(zhí)行圖的一種執(zhí)行情況,也即順序圖的一種仿真情況。
[0082]順序圖仿真結(jié)果的作用:(I)為系統(tǒng)順序圖仿真提供仿真信息;(2)借助仿真信息,可以定位該系統(tǒng)的性能瓶頸,從而為架構(gòu)性能提升提供幫助。
[0083]四、系統(tǒng)順序圖仿真
[0084]系統(tǒng)順序圖主要描述用戶和整個(gè)系統(tǒng)間的交互,這一系列交互對(duì)于用戶是可見的,并且是由用戶主導(dǎo)交互的執(zhí)行順序。基于系統(tǒng)順序圖仿真用于仿真用戶和系統(tǒng)的交互場(chǎng)景,該仿真過程與基于順序圖仿真類似,區(qū)別在于交互場(chǎng)景的仿真數(shù)據(jù)是由基于順序圖仿真結(jié)果提供。首先將系統(tǒng)順序圖轉(zhuǎn)化為執(zhí)行圖,該轉(zhuǎn)化方法與順序圖轉(zhuǎn)化為執(zhí)行圖方法一樣。
[0085]然后運(yùn)行這個(gè)執(zhí)行圖,獲得該系統(tǒng)順序圖的時(shí)間資源消耗信息,這些信息包括如下內(nèi)容,時(shí)間方面結(jié)果:
[0086]?最大運(yùn)行時(shí)間:所有交互序列中,用戶與系統(tǒng)交互的最長時(shí)間;
[0087]?平均運(yùn)行時(shí)間:所有交互序列所需要的平均時(shí)間;
[0088]?最大響應(yīng)時(shí)間:所有用戶操作中,系統(tǒng)對(duì)用戶的最大響應(yīng)時(shí)間;
[0089]?平均響應(yīng)時(shí)間:所有用戶操作中,系統(tǒng)對(duì)用戶的平均響應(yīng)時(shí)間。
[0090]資源(分為CPU和內(nèi)存)方面結(jié)果:
[0091]?最大資源利用量:所有交互序列執(zhí)行過程中,資源最大利用量,即找出當(dāng)用戶執(zhí)行某一操作時(shí),系統(tǒng)利用的資源數(shù)最大,該最大值即最大資源利用量;
[0092]?單位時(shí)間資源利用量:所有交互序列平均單位時(shí)間資源利用量。
[0093]其中每個(gè)交互序列由一系列用戶操作組成,是系統(tǒng)順序圖的一種仿真情況。運(yùn)行時(shí)間針對(duì)該場(chǎng)景整體時(shí)間消耗,響應(yīng)時(shí)間針對(duì)組成該場(chǎng)景的各個(gè)操作時(shí)間消耗。
[0094]實(shí)施例:
[0095]為了方便描述,我們假定有如下的應(yīng)用實(shí)施例:
[0096]本實(shí)施例仿真信息知識(shí)庫的數(shù)據(jù)庫表設(shè)計(jì)如下:
[0097]
【權(quán)利要求】
1.一種基于原型仿真的架構(gòu)評(píng)價(jià)方法,其特征在于,該方法包括如下步驟: 步驟I)用統(tǒng)一建模語言工具Enterprise Architect設(shè)計(jì)軟件架構(gòu)的順序圖與系統(tǒng)順序圖,并將所述軟件架構(gòu)的順序圖與系統(tǒng)順序圖導(dǎo)出為XMI文件; 步驟2)對(duì)所述步驟I)導(dǎo)出的順序圖XMI文件進(jìn)行解析,得到每一幅順序圖的特征信息,即模塊名、模塊間的消息傳遞邊、消息傳遞邊的順序、組合片段類型、組合片段內(nèi)部包含的消息傳遞邊; 同時(shí)對(duì)所 述步驟I)導(dǎo)出的系統(tǒng)順序圖XMI文件進(jìn)行解析,得到系統(tǒng)順序圖的特征信息,即模塊名、模塊間的消息傳遞邊、消息傳遞邊的順序、組合片段類型、組合片段內(nèi)部包含的消息傳遞邊; 步驟3)基于所述步驟2)解析得到的順序圖的特征信息,將每個(gè)順序圖分別轉(zhuǎn)化成執(zhí)行圖,并從仿真信息知識(shí)庫中讀取順序圖各個(gè)操作所對(duì)應(yīng)的時(shí)間、資源數(shù)以及組合片段信息,然后對(duì)生成的執(zhí)行圖進(jìn)行仿真執(zhí)行,并根據(jù)順序圖仿真原理,獲得順序圖的時(shí)間資源消耗信息; 步驟4)基于系統(tǒng)順序圖仿真用于仿真用戶和系統(tǒng)的交互場(chǎng)景,具體為:基于所述步驟2)解析得到的系統(tǒng)順序圖的特征信息,將系統(tǒng)順序圖轉(zhuǎn)化為執(zhí)行圖,并從所述步驟3)得到的順序圖的時(shí)間資源消耗信息中獲取系統(tǒng)順序圖所需要的仿真信息,進(jìn)而對(duì)生成的執(zhí)行圖進(jìn)行仿真執(zhí)行,并根據(jù)系統(tǒng)順序圖仿真原理,獲得該系統(tǒng)順序圖的時(shí)間資源信息。
2.根據(jù)權(quán)利要求1所述的基于原型仿真的架構(gòu)評(píng)價(jià)方法,其特征在于,所述的步驟3)中,將順序圖轉(zhuǎn)化為執(zhí)行圖的具體方法如下: 首先,將順序圖中消息傳遞邊轉(zhuǎn)化成執(zhí)行圖的消息傳遞節(jié)點(diǎn),同時(shí)將順序圖中的組合片段轉(zhuǎn)化為組合片段開始節(jié)點(diǎn)和組合片段結(jié)束節(jié)點(diǎn); 然后對(duì)每個(gè)組合片段內(nèi)部的節(jié)點(diǎn)進(jìn)行連接,如果連接過程中遇到其他組合片段的開始節(jié)點(diǎn),即組合片段之間存在嵌套關(guān)系時(shí),則忽略這些其他組合片段的內(nèi)部節(jié)點(diǎn),從其結(jié)束節(jié)點(diǎn)處繼續(xù)進(jìn)行下一步連接; 最后對(duì)執(zhí)行圖的所有節(jié)點(diǎn)進(jìn)行連接,在連接過程中,當(dāng)連接到一個(gè)組合片段開始節(jié)點(diǎn),則忽略該組合片段的內(nèi)部節(jié)點(diǎn),直接從該組合片段的結(jié)束節(jié)點(diǎn)處進(jìn)行下一步的連接。
3.根據(jù)權(quán)利要求1或2所述的基于原型仿真的架構(gòu)評(píng)價(jià)方法,其特征在于,所述的步驟3)和步驟4)中對(duì)生成的執(zhí)行圖進(jìn)行仿真執(zhí)行的具體方法為: 首先執(zhí)行入度為零的節(jié)點(diǎn),然后根據(jù)以下情況和原則進(jìn)行后繼執(zhí)行: a)后繼節(jié)點(diǎn)為空,則執(zhí)行圖仿真執(zhí)行結(jié)束; b)后繼節(jié)點(diǎn)為消息傳遞節(jié)點(diǎn),則執(zhí)行該消息傳遞節(jié)點(diǎn),下一個(gè)執(zhí)行節(jié)點(diǎn)為該消息傳遞節(jié)點(diǎn)的后繼節(jié)點(diǎn); c)后繼節(jié)點(diǎn)為選擇組合片段開始節(jié)點(diǎn),則該節(jié)點(diǎn)不予執(zhí)行,下一個(gè)執(zhí)行節(jié)點(diǎn)是隨機(jī)選擇的一個(gè)組合片段開始節(jié)點(diǎn)的后繼節(jié)點(diǎn); d)后繼節(jié)點(diǎn)為并發(fā)組合片段開始節(jié)點(diǎn),則不予執(zhí)行,下一個(gè)執(zhí)行節(jié)點(diǎn)為并發(fā)組合片段開始節(jié)點(diǎn)的后繼節(jié)點(diǎn); e)后繼節(jié)點(diǎn)為循環(huán)組合片段開始節(jié)點(diǎn),則不予執(zhí)行,下一個(gè)執(zhí)行節(jié)點(diǎn)為循環(huán)組合片段開始節(jié)點(diǎn)的后繼節(jié)點(diǎn); f)如后繼節(jié)點(diǎn)為循環(huán)組合片段結(jié)束節(jié)點(diǎn),則不予執(zhí)行,并且:如果其前一個(gè)節(jié)點(diǎn)的遍歷次數(shù)不大于循環(huán)組合片段的循環(huán)次數(shù),則下一個(gè)執(zhí)行節(jié)點(diǎn)為該循環(huán)組合片段開始節(jié)點(diǎn),否則,下一個(gè)執(zhí)行節(jié)點(diǎn)為循環(huán)組合片段結(jié)束節(jié)點(diǎn)的后繼節(jié)點(diǎn); g)如后繼節(jié)點(diǎn)為選擇組合片段結(jié)束節(jié)點(diǎn)或并發(fā)組合片段結(jié)束節(jié)點(diǎn),則不予執(zhí)行,下一個(gè)執(zhí)行節(jié)點(diǎn)為該組合片段結(jié)束節(jié)點(diǎn)的后繼節(jié)點(diǎn)。
4.根據(jù)權(quán)利要求1或2所述的基于原型仿真的架構(gòu)評(píng)價(jià)方法,其特征在于,所述的步驟4)中,根據(jù)以下規(guī)則,從所述步驟3)得到的順序圖的時(shí)間資源消耗信息中獲取系統(tǒng)順序圖所需要的仿真信息: a)順序圖仿真得到的最大運(yùn)行時(shí)間用于交互場(chǎng)景最大運(yùn)行時(shí)間仿真以及最大響應(yīng)時(shí)間仿真; b)順序圖仿真得到的平均運(yùn)行時(shí)間用于交互場(chǎng)景的平均運(yùn)行時(shí)間仿真以及平均響應(yīng)時(shí)間仿真; c)順序圖累計(jì)資源利用量用于交互場(chǎng)景的單位時(shí)間資源利用量仿真; d)順序圖最大資源利用量用于交互場(chǎng)景的最大資源利用量仿真; e)將順序圖最大資源利用量與順序圖執(zhí)行結(jié)束時(shí)資源未釋放數(shù)的差,映射為交互場(chǎng)景中對(duì)應(yīng)操作的資源 釋放數(shù)。
【文檔編號(hào)】G06F11/36GK104008058SQ201410268692
【公開日】2014年8月27日 申請(qǐng)日期:2014年6月16日 優(yōu)先權(quán)日:2014年6月16日
【發(fā)明者】李必信, 陳藝, 司靜文, 孔祥龍, 苗意盎 申請(qǐng)人:東南大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1