国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于控制流的盒圖動態(tài)建模與測試

2020-01-07 08:07孔令東
軟件工程 2020年12期
關(guān)鍵詞:控制流工作流

摘 ?要:為解決傳統(tǒng)盒圖靜態(tài)過程描述缺少動態(tài)邏輯關(guān)系驗證問題,研究工作流中控制流的可視化建模與實現(xiàn);通過分析盒圖和控制流的轉(zhuǎn)換關(guān)系,將靜態(tài)的盒圖無縫地轉(zhuǎn)換成可視化的動態(tài)控制流模型,完成從盒圖靜態(tài)過程描述到控制流的可視化動態(tài)建模、實現(xiàn)、測試和驗證;實現(xiàn)快速構(gòu)建復(fù)雜業(yè)務(wù)流程的可視化分析模型并提前驗證,解決了復(fù)雜業(yè)務(wù)過程模型在編碼之前的邏輯驗證,在實際的建模中,邏輯關(guān)系清晰,便于驗證。

關(guān)鍵詞:工作流;盒圖;控制流;動態(tài)建模與測試

中圖分類號:TP311.51 ? ? 文獻標(biāo)識碼:A

Abstract: This paper studies visualization modeling and implementation of control flow as there is no dynamic logical relation verification in static process description of traditional N-S (Nassi Shneiderman) Diagram. Static N-S diagram is seamlessly transformed into visual dynamic model of control flow by analyzing the relationship between N-S diagram and control flow. Visual dynamic modeling, implementation, testing and verification method are completed from N-S static process description to control flow. The visual analysis model of complex business process can be quickly built and verified in advance. This study realizes the dynamic logic verification of complex business process model before coding. In actual modeling, the logical relationship is clear and easy to verify.

Keywords: workflow; N-S diagram; control flow; dynamic modeling and testing

1 ? 引言(Introduction)

模塊或者算法的詳細設(shè)計,描述了業(yè)務(wù)邏輯實現(xiàn)的方法和步驟,其結(jié)果基本上決定了最終的程序代碼的質(zhì)量。N-S圖也稱為盒圖,作為過程詳細設(shè)計的工具,在算法和程序之間充當(dāng)橋梁的角色,可以指明控制流程、處理功能、數(shù)據(jù)組織及實現(xiàn)細節(jié),從而保證程序代碼的正確性[1-3]。然而,對于復(fù)雜的業(yè)務(wù)邏輯,在代碼實現(xiàn)之前僅僅使用N-S圖的靜態(tài)過程描述,無法快速完成邏輯關(guān)系的動態(tài)測試和驗證,期望尋求一種簡明、快速、可視化的動態(tài)建模與測試方案。

WF(Workflow Foundation)是一種可視化的工作流編程引擎,其過程控制流C-F(Control Flow),可以直觀地描述復(fù)雜的業(yè)務(wù)邏輯過程,實現(xiàn)對流程控制的可視化建模。借助WF的過程工作流,可以實現(xiàn)從N-S到C-F的無縫轉(zhuǎn)換,通過建模轉(zhuǎn)換不僅可以可視化地展示模塊的業(yè)務(wù)邏輯,而且可以動態(tài)的完成測試以及實現(xiàn)[4-8]。如圖1本文技術(shù)路線所示,在算法分析到程序?qū)崿F(xiàn)之間,探索一種從N-S靜態(tài)過程描述到C-F的可視化動態(tài)建模、測試和驗證方式,解決復(fù)雜業(yè)務(wù)過程模型在編碼之前的邏輯驗證,實現(xiàn)快速構(gòu)建復(fù)雜業(yè)務(wù)流程的可視化分析模型并提前驗證,具有實際意義。

2 ? N-S圖和控制流的轉(zhuǎn)換(Transform between N-S diagram and control flow)

如圖2N-S和C-F控制流之間的結(jié)構(gòu)轉(zhuǎn)換圖所示,圖中我們典型地給出了順序、選擇、循環(huán)結(jié)構(gòu)的圖形表示和邏輯轉(zhuǎn)換,可以看出,N-S圖的基本結(jié)構(gòu)和C-F控制流在可視化靜態(tài)建模上具有一一轉(zhuǎn)換對應(yīng)關(guān)系,邏輯實現(xiàn)具有一致性。如圖2(b)中所示,對于選擇條件結(jié)構(gòu),N-S圖只能夠靜態(tài)地描述條件判斷任務(wù),而C-F控制流在顯式地描述靜態(tài)邏輯判斷結(jié)構(gòu)的同時,可以方便地借助WF引擎,動態(tài)的運行給出的“Condition”或參數(shù),快速的驗證邏輯關(guān)系和算法;同時,在實際的算法描述中C-F控制流的規(guī)范性和可視化,也帶來建模的便利性和清晰性,尤其對于較為復(fù)雜的算法和邏輯關(guān)系分析,更具備優(yōu)勢。N-S優(yōu)勢在于靜態(tài)的過程設(shè)計和描述,C-F的控制流可以在可視化描述業(yè)務(wù)過程的同時,進一步的快速實現(xiàn)動態(tài)測試驗證,這將在后面的建模與集成應(yīng)用中詳細描述。

3 ? 可視化建模與實現(xiàn)(Visualization modeling and implementing)

3.1 ? 順序結(jié)構(gòu)的建模與實現(xiàn)

如圖3所示C-F的順序結(jié)構(gòu)建模與實現(xiàn),在Sequence控制流中顯式地完成了Sequence_Activity_1、Sequence_Activity_2、Sequence_Activity_3順序過程建模,其中Sequence_Activity_1給出了相關(guān)的順序說明,Sequence_Activity_2活動任務(wù)中給出了可以動態(tài)測試的變量variable1,可以完成模型的動態(tài)業(yè)務(wù)邏輯測試,Sequence_Activity_3顯式地給出了測試的輸出結(jié)果。在實際的測試中,變量的輸入可以方便的設(shè)置變量類型和作用域,可視化的模型一目了然,且邏輯關(guān)系清晰,我們會在隨后的集成測試中給出測試結(jié)果。相比較N-S圖中的靜態(tài)描述和直接的編碼實現(xiàn),C-F圖給了我們快速可視化的邏輯展示。

3.2 ? 選擇結(jié)構(gòu)的建模與實現(xiàn)

如圖4所示C-F的選擇結(jié)構(gòu)。其中4(a)圖為IF選擇結(jié)構(gòu),判斷條件“Condition”可以動態(tài)的設(shè)置,根據(jù)判斷的條件可以顯式地執(zhí)行“Then”和“Else”業(yè)務(wù)邏輯,同時,對于每一個“Then”和“Else”分支都可以顯式地嵌入更復(fù)雜的業(yè)務(wù)邏輯或算法分析,非常容易擴展。圖4(b)為Switch-Case結(jié)構(gòu),可以根據(jù)“Expression”條件表達式,顯式地確定“Case”執(zhí)行的對應(yīng)任務(wù),對于每個“Case”也同樣可以嵌入復(fù)雜的過程描述。在細節(jié)之處,我們可以看到C-F控制流中也默認給出了“Default”分支。在實際的建模中,對于Case結(jié)構(gòu),C-F控制流以縱向分布,多判斷的擴展遠比N-S圖的橫向布局清晰。

3.3 ? 循環(huán)結(jié)構(gòu)的建模與實現(xiàn)

如圖5所示C-F的循環(huán)結(jié)構(gòu),其中圖5(a)為While循環(huán)結(jié)構(gòu),圖5(b)為DoWhile循環(huán)結(jié)構(gòu),可以直觀顯式地完成N-S的While循環(huán)條件和Until循環(huán)條件的建模,同時可以根據(jù)不同的參數(shù)和變量完成動態(tài)測試,我們在后面的集成動態(tài)測試中給出案例分析。此外WF控制流中也給出了ForEach的建模方法。

4 ? 集成動態(tài)測試(Integrated dynamic testing)

前面我們分析了C-F可視化建模的基本結(jié)構(gòu),下面將以一個典型的登錄測試過程完成測試應(yīng)用。主要關(guān)注集成應(yīng)用的可視化便捷性、動態(tài)測試的參數(shù)、作用域和執(zhí)行的過程。更為方便的是對于復(fù)雜業(yè)務(wù)邏輯,每一個控制流都可以作為集成的組件,直接進行可視化再集成。如圖6控制流的集成應(yīng)用所示,集成使用了C-F控制流的基本結(jié)構(gòu),最外圍是一個順序結(jié)構(gòu)(Sequence),在此內(nèi)部順序地完成“inputPassword”變量的賦值和If結(jié)構(gòu);進入If結(jié)構(gòu)中可視化地給出了“inputPassword==password”判斷條件,可以根據(jù)動態(tài)測試的需要,靈活的修改判斷條件,條件滿足輸出“welcome!”,否則進入Else任務(wù);在Else任務(wù)中,又采用了一個Sequence結(jié)構(gòu)用于嵌入復(fù)雜的DoWhile循環(huán)結(jié)構(gòu)和順序執(zhí)行最后的提示信息“please enter next day!”;在嵌入的DoWhile循環(huán)結(jié)構(gòu)中順序的執(zhí)行判斷密碼輸入的次數(shù)“inputCounter = inputCounter +1”語句,用于計算輸入密碼的次數(shù)和頻率,并順序地給出每次輸入的提示信息。至此,一個顯式的N-S圖靜態(tài)過程設(shè)計被可視化地建模完成,根據(jù)模型的邏輯結(jié)構(gòu)可以靜態(tài)地分析邏輯關(guān)系,但對于復(fù)雜的業(yè)務(wù)流程顯然是不夠的,于是我們試圖引入動態(tài)的測試和分析。

如圖7所示C-F組件動態(tài)測試,借助WF的可視化實現(xiàn),可以很方便地實現(xiàn)集成動態(tài)測試。在圖7(a)中給出了項目集成的更高層級的集成組件單元,將C-F中的過程流程封裝成可以進一步可視化建模的組件,相當(dāng)于一個功能黑盒參與更復(fù)雜的業(yè)務(wù)過程測試。圖7(b)所示采用組件化的可視化建模,圖中的Sequence_Workflow、If_Condition_Activity、Case_Condition_Activity、While_Activity等不再是基本的結(jié)構(gòu),而是可以包含復(fù)雜業(yè)務(wù)邏輯的組件功能單元,比如可以是一個疫情狀態(tài)檢查的組件“YiQingStateChecking_Activity”或者完成訂單任務(wù)的“Order_Activity”等等,都可以在可視化建模完成后進行集成封裝??梢暬膭討B(tài)集成測試,需要方便的可視化的動態(tài)參數(shù)修改,在圖7(d)中,不僅可以動態(tài)的設(shè)置參數(shù)的變量類型和值,也可以隨時設(shè)置并查看變量的作用域,比如password和inputPassword的作用域在Sequence基本結(jié)構(gòu)中,而inputCounter變量的作用域在DoWhile基本結(jié)構(gòu)中,同時還可以可視化的輸入或?qū)雱討B(tài)的參數(shù)和變量,可以方便地實現(xiàn)可視化的動態(tài)測試。圖7(c)給出了集成動態(tài)測試的結(jié)果,每一個過程和組件執(zhí)行都顯式可見,可以有效地幫助復(fù)雜業(yè)務(wù)邏輯的驗證和測試,達到了預(yù)期的效果。

5 ? 結(jié)論(Conclusion)

通過N-S和C-F可視化建模分析,我們將靜態(tài)的N-S圖無縫地轉(zhuǎn)換成動態(tài)可視化的C-F圖,顯式地實現(xiàn)參數(shù)的輸入、輸出和處理過程,實現(xiàn)了業(yè)務(wù)邏輯和算法的正確性和有效性驗證。對于較為復(fù)雜的業(yè)務(wù)流程,提供快速可視化的清晰驗證,可以及時發(fā)現(xiàn)算法分析的錯誤。解決了傳統(tǒng)N-S圖的靜態(tài)過程描述,缺少動態(tài)可視化的邏輯關(guān)系驗證問題,在N-S圖和編碼之間起到橋梁作用。在實際的建模實現(xiàn)過程,快速清晰、高效,易于理解和應(yīng)用,具有實際意義。

參考文獻(References)

[1] 張海藩,牟永敏.軟件工程導(dǎo)論(第6版)[M].北京:清華大學(xué)出版社, 2013:117-128.

[2] 鄧德祥.結(jié)構(gòu)化控制流程圖(N-S圖)的改進與模塊化程序設(shè)計的設(shè)想[J].計算機研究與發(fā)展,1995,32(12):21-26.

[3] 劉正余,蘇守寶,楊洋,等.N-S流程圖分析及其在算法描述中的應(yīng)用[J].井岡山大學(xué)學(xué)報(自然科學(xué)版),2010,31(06):70-72;81.

[4] Yongliang Li, Huaiqing Zhang, Hongbo Ju, et al. Visual simulation of quantitative thinning in a Chinese fir plantation based on workflow foundation[J]. Applied Engineering in Agriculture, 2015,31(3):339-349.

[5] Microsoft. WindowsWorkflowFoundation[EB/OL]. https://docs.microsoft.com/en-us/dotnet/framework/windows-workflow-foundation, 2017-03-30.

[6] Microsoft. ProceduralWorkflows[EB/OL]. https://docs.microsoft.com/en-us/dotnet/framework/windows-workflow-foundation/procedural-workflows#controlling-execution-flow, 2017-03-30.

[7] 何隆.基于WF的工作流框架的設(shè)計和應(yīng)用[D].重慶大學(xué),2015.

[8] 鐘委明.基于WF可視化工作流編輯器的設(shè)計與實現(xiàn)[D].中山大學(xué),2012.

作者簡介:

孔令東(1973-),男,博士,講師.研究領(lǐng)域:軟件工程和工作流技術(shù).

猜你喜歡
控制流工作流
抵御控制流分析的Python 程序混淆算法
工控系統(tǒng)中PLC安全漏洞及控制流完整性研究
基于返回地址簽名的控制流攻擊檢測方法
抵御控制流分析的程序混淆算法
基于Petri網(wǎng)數(shù)據(jù)流約束下的業(yè)務(wù)流程變化域分析
基于工作流2.0的智慧教室設(shè)計與研究
工作流在電力生產(chǎn)管理信息系統(tǒng)中的設(shè)計和應(yīng)用
“奔向共贏、做到最好”行業(yè)信息化研究方法論
工作流技術(shù)在醫(yī)療信息整合工程中的應(yīng)用分析
基于工作流的水運應(yīng)急信息管理平臺設(shè)計 
安图县| 沿河| 金门县| 泗阳县| 济宁市| 西乡县| 莆田市| 普兰县| 台山市| 大城县| 资溪县| 宕昌县| 玉田县| 黑龙江省| 辰溪县| 沂南县| 长沙市| 安阳县| 佛冈县| 民权县| 永康市| 义乌市| 正蓝旗| 辽宁省| 灵寿县| 嘉黎县| 苍山县| 阜平县| 三门峡市| 阜城县| 罗甸县| 宜春市| 洛川县| 长泰县| 平远县| 科技| 福建省| 恩平市| 枣阳市| 延寿县| 海兴县|