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

基于WPF的結構化建模工具設計與實現(xiàn)

2019-11-18 07:04:04王瑞平孫高飛
電子技術與軟件工程 2019年18期
關鍵詞:模型設計

文/王瑞平 孫高飛

1 概述

在當前軟件開發(fā)技術中,軟件開發(fā)方法主要有結構化開發(fā)方法和面向?qū)ο箝_發(fā)方法,其中結構化開發(fā)方法是采用模塊化、自頂向下逐步細化的方法,方法簡潔、易掌握,廣泛應用于實時嵌入式系統(tǒng)、過程控制、科學與工程計算等領域。面向?qū)ο箝_發(fā)方法則主要以對象為核心,設計完善對象模型、功能模型和行為模型。相對面向?qū)ο笤O計方法,結構化設計方更加簡單,容易掌握。

在結構化設計階段,軟件體系結構是對軟件各個組成部分的總體設計,主要通過軟件結構圖或軟件層次圖表示。其中結構圖中由模塊、以及模塊與模塊之間的關系構成,其中模塊在代碼實現(xiàn)時可以是函數(shù)、過程等。層次圖與結構圖類似,主要由模塊及模塊之間的關系構成,相對結構圖層次圖更加簡潔,結構圖較為詳細,但容易造成制圖繁瑣不易讀。無論是結構圖還是層次圖都不能夠直接轉(zhuǎn)換為代碼,由設計模型到源代碼實現(xiàn)階段有間隔。需要構建一種建模工具,實現(xiàn)模型圖到代碼轉(zhuǎn)換,將大大縮減模型到實現(xiàn)的距離,提高工作效率。當前對軟件建模進行研究主要集中在需求分析階段的建模,由設計到實現(xiàn)研究較少。在由設計模型轉(zhuǎn)換為代碼框架實現(xiàn)的系統(tǒng)也大多在支持面向?qū)ο蟮脑O計方法,例如IBM Rational Rose支持由類圖轉(zhuǎn)換為面向?qū)ο蟪绦蛟O計語言的類代碼框架,結構化設計到代碼編寫研究和實現(xiàn)較少。雖然現(xiàn)在開發(fā)的大部分交互性極強的大型軟件系統(tǒng)多采用面向?qū)ο蟮某绦蛘Z言實現(xiàn),但對流程明顯、科學計算要求高、交互少的小型軟件項目采用結構化設計,結合面向?qū)ο笳Z言實現(xiàn)也是非常方便快捷的。

為解決上述問題,設計一種建模工具軟件,結合層次圖和結構圖改進設計模型元素,在模塊中增加設置模塊的接口信息,繪制簡單的模型圖,實現(xiàn)由模型圖直接轉(zhuǎn)換為源程序代碼框架,并可以讀寫模型圖,實現(xiàn)模型圖的再編輯。軟件設計者不僅能通過工具可視化創(chuàng)建軟件模型圖,對系統(tǒng)進行總體認識,模塊之間關系層次分明,模塊傳遞參數(shù)明了,而且能快速生成相應的函數(shù)或過程調(diào)用代碼框架,將為后期代碼準確實現(xiàn)提供基礎。此建模工具不僅可以用于軟件開發(fā)的系統(tǒng)結構建模,而且可以用于程序設計教學,提高教學質(zhì)量。

圖1:模型圖示例

圖2:結構化建模工具系統(tǒng)層次圖

圖3:結構化建模工具系統(tǒng)核心類圖

2 結構化建模工具設計與實現(xiàn)

結構化建模工具系統(tǒng)從模型圖設計、系統(tǒng)體系結構、核心類設計、系統(tǒng)實現(xiàn)等四個方面設計實現(xiàn)。

2.1 模型圖設計

結構化建模工具中模型體系,吸收層次圖和結構圖的優(yōu)點,在新模型中基本元素是模塊,模塊由矩形框表示,框內(nèi)有模塊名稱、參數(shù)和返回值三類信息,通過設置模塊屬性,細節(jié)化模塊的信息,方便轉(zhuǎn)換代碼。模塊信息有內(nèi)碼和外碼,其中外碼顯示模塊信息,如漢字顯示,方便用戶閱讀;內(nèi)碼信息(符合編程語言要求的標識符名稱),用于轉(zhuǎn)換源程序代碼。模塊之間連線采用無箭頭的直線表示,表示位置在上層的模塊調(diào)用位置在下層的模塊。新模型圖擴充了層次圖的表示,同時也把結構圖中的接口信息放入了矩形框內(nèi),這樣的模型圖簡潔明了。模型圖示例如圖1所示。

2.2 系統(tǒng)體系結構

結構化建模工具系統(tǒng)根據(jù)需求可以分為四個模塊,分別為模型圖繪制模塊、模塊屬性設置模塊、模型到源代碼轉(zhuǎn)換模塊、模型圖讀寫模塊。其中模型圖繪制模塊主要實現(xiàn)在可視化界面上通過拖放方式繪制模型圖;模塊屬性設置模塊主要實現(xiàn)界面上模塊的屬性詳細設置,包括模塊的名稱代碼、入口/出口參數(shù)、調(diào)用信息等;模型到源代碼轉(zhuǎn)換模塊實現(xiàn)根據(jù)選擇的程序設計語言生成源代碼框架預覽和源代碼文件;模型圖讀寫模塊主要實現(xiàn)把模型圖保存到文件,并可讀取模型圖文件,繼續(xù)編輯模型圖。結構化建模工具系統(tǒng)的軟件層次圖如圖2所示。

圖4:結構化建模工具主界面

圖5:程序源代碼預覽

2.3 核心類設計

在結構化建模工具系統(tǒng)中,系統(tǒng)中以父模塊類(FatherModule)為核心,派生有C函數(shù)模塊類(CFuntionModule)、Python函數(shù)模塊類(PythonFunctionModule)和存儲模塊類(SaveModule),其中SaveModule用于存儲模型時轉(zhuǎn)換JSON格式,參數(shù)類(Parameters)為模塊中參數(shù)的類型。結構化建模工具系統(tǒng)核心類圖如圖3所示。

2.4 系統(tǒng)實現(xiàn)

結構化建模工具系統(tǒng)采用WPF(Windows Presentation Foundation,Windows呈現(xiàn)基礎)技術實現(xiàn)。WPF是微軟公司推出的基于DirectX和GPU加速來實現(xiàn)的圖形界面顯示技術,使用XAML描述界面,后臺代碼由C#語言實現(xiàn),界面與代碼實現(xiàn)分離,顯示速度和效果優(yōu)于Win Form技術。

2.4.1 模型圖繪制模塊

模型圖繪制模塊,首先選擇轉(zhuǎn)換目標語言,然后在繪圖區(qū)繪制模型圖。模塊元素表示為具有名稱的方框,包括模塊名稱、參數(shù)和返回值三項內(nèi)容,模塊與模塊之間的關系為連線。在實現(xiàn)上通過鏈表存儲當前模型圖的模型信息,即在圖形界面上添加或刪除模型元素的同時,系統(tǒng)相應在鏈表中添加或刪除模型元素對象。設計主界面如圖4所示。

2.4.2 模塊屬性設置模塊

模塊屬性設置模塊,可以根據(jù)在圖形界面上選擇的模型元素設置模塊的屬性,包括模塊的名稱、代碼、注釋、參數(shù)名列表、參數(shù)代碼列表、返回值列表、返回值代碼列表等,也可以查看模塊的子模塊、父模塊和當前模塊的源代碼預覽等信息。設置屬性完成后系統(tǒng)自動更新對應模型元素對象鏈表信息和界面上顯示信息。

2.4.3 模型到代碼轉(zhuǎn)換模塊

模型到代碼轉(zhuǎn)換模塊,根據(jù)圖形界面上的模型圖對應的模型元素鏈表信息轉(zhuǎn)換為相應程序源代碼框架,提供給用戶預覽,并可以在計算機文件系統(tǒng)保存源代碼文件。根據(jù)在模型圖中模塊的屬性設置和調(diào)用關系就可以創(chuàng)建源代碼框架,內(nèi)容包括函數(shù)聲明、函數(shù)定義及函數(shù)調(diào)用。支持的程序設計語言有C和Python,C和Python的模塊對應都是函數(shù),但語法格式不同。C語言是結構化程序設計語言,完全符合結構化設計的要求;Python雖然是面向?qū)ο蟪绦蛟O計語言,但可以采用函數(shù)式編程,把程序過程寫成一系列的函數(shù)調(diào)用,通過函數(shù)調(diào)用提高封裝級別,非常易用理解和使用,在如機器學習算法、網(wǎng)絡爬蟲等在小規(guī)模項目廣泛使用。轉(zhuǎn)換代碼預覽效果如圖5所示。

2.4.4 模型圖讀寫模塊

根據(jù)圖形界面上的模型元素對象鏈表信息,把鏈表中的模塊對象轉(zhuǎn)換為JSON格式保存至計算機文件系統(tǒng)。JSON(JavaScript Object Notation)能夠以一種完全獨立于編程語言的文本格式來存儲和表示數(shù)據(jù),非常方便數(shù)據(jù)對象的操作。在存儲數(shù)據(jù)時,需要把對象的孩子鏈表和父親鏈表對象信息轉(zhuǎn)成字符串格式,其余屬性信息直接轉(zhuǎn)換存儲即可。

模型圖文件讀取模塊,讀取計算機文件系統(tǒng)中已存在的模型文件,根據(jù)文件內(nèi)容轉(zhuǎn)換為對應模型元素對象鏈表,然后把模型元素對象鏈表中的元素在圖形界面上創(chuàng)建相應的圖形,實現(xiàn)模型圖的再現(xiàn),可以對模型圖再編輯。

3 總結

結構化建模工具作為一種CASE工具,它不僅能構建系統(tǒng)體系模型,展現(xiàn)模型中模塊組成和模塊之間的接口,而且可把模型圖轉(zhuǎn)換成相應的程序代碼框架,實現(xiàn)由模型到代碼實現(xiàn)的無縫連接。該系統(tǒng)設計不僅能夠應用于軟件開發(fā)企業(yè)進行軟件體系結構設計、方便代碼開發(fā)工作分解,而且能夠應用于學校軟件設計類課程訓練,幫助學生理解和掌握結構化設計。

猜你喜歡
模型設計
一半模型
重要模型『一線三等角』
何為設計的守護之道?
重尾非線性自回歸模型自加權M-估計的漸近分布
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
瞞天過海——仿生設計萌到家
藝術啟蒙(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
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
主站蜘蛛池模板: 国产日本视频91| 免费人成又黄又爽的视频网站| 国产人在线成免费视频| 无码网站免费观看| 国产美女一级毛片| 亚洲日本www| 一级福利视频| 91破解版在线亚洲| 欧美成人精品高清在线下载| 91外围女在线观看| 伊人大杳蕉中文无码| 激情综合婷婷丁香五月尤物| av一区二区无码在线| 台湾AV国片精品女同性| 伊人久综合| 日本欧美在线观看| 国产又粗又猛又爽| 欧美不卡视频一区发布| 国内精品久久久久鸭| 国产精品一区二区不卡的视频| 91人妻在线视频| 日韩毛片在线播放| 国产精品永久免费嫩草研究院| 国产久草视频| 一级毛片免费不卡在线 | 99这里只有精品免费视频| 国产欧美视频在线观看| 毛片免费高清免费| 99精品国产高清一区二区| 成人免费黄色小视频| 国产簧片免费在线播放| 久久激情影院| 欧美精品v| 99re精彩视频| 久久视精品| 再看日本中文字幕在线观看| 亚洲男人天堂2018| 少妇精品在线| 国产91精选在线观看| 久久亚洲国产一区二区| 2020亚洲精品无码| 精品无码视频在线观看| 毛片卡一卡二| 野花国产精品入口| 在线观看精品国产入口| 欧美在线观看不卡| 亚洲大学生视频在线播放| 69av免费视频| 亚洲手机在线| 国产无遮挡裸体免费视频| 精品亚洲欧美中文字幕在线看| 久久一级电影| 日韩在线网址| 国产精品对白刺激| 亚洲成人精品| 热这里只有精品国产热门精品| 狼友视频国产精品首页| 国产老女人精品免费视频| 高潮爽到爆的喷水女主播视频 | 亚洲最黄视频| AV无码一区二区三区四区| 天堂网国产| 亚洲中文字幕在线精品一区| 亚洲天堂免费在线视频| 亚洲码一区二区三区| 国产丝袜啪啪| 热99精品视频| 亚洲国产精品无码久久一线| 亚洲精品人成网线在线| 亚洲精品视频免费观看| 欧美日韩国产综合视频在线观看| 凹凸国产熟女精品视频| 亚洲日韩高清无码| 亚洲欧美自拍中文| 亚洲色图欧美视频| 亚洲成年人网| 欧美色伊人| 亚洲手机在线| 亚洲综合狠狠| 亚洲天堂日韩av电影| 国产区人妖精品人妖精品视频| 久久伊人操|