欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種適用于軟件可視化過程的圖形布局方法

文檔序號:6486078閱讀:359來源:國知局
專利名稱:一種適用于軟件可視化過程的圖形布局方法
技術(shù)領(lǐng)域
本發(fā)明涉及圖形布局方法,特別涉及一種適用于軟件可視化過程的圖形布局方 法,屬于軟件可視化技術(shù)領(lǐng)域。
背景技術(shù)
軟件可視化通常采用軟件自動化方式將軟件系統(tǒng)的各種屬性(包括關(guān)鍵字、類間 關(guān)系等)或者各種屬性的相關(guān)統(tǒng)計信息,通過靜態(tài)或者動態(tài)的2D或3D的圖形加以概括表 示,從而展示軟件系統(tǒng)的內(nèi)部結(jié)構(gòu),軟件的演化信息,和軟件的行為特性,實現(xiàn)對源碼的自 動分析和抽象,產(chǎn)生能反映軟件內(nèi)部結(jié)構(gòu)或者其他度量信息的高度概括的圖形表示。通過 對軟件系統(tǒng)進行可視化可以獲得軟件的高級抽象,便于快速獲得軟件設計層次上的理解。軟件可視化的意義在于①通過對軟件進行可視化獲得對軟件系統(tǒng)設計層次上的 抽象,便于系統(tǒng)的維護、鞏固、移植和改進,為軟件系統(tǒng)尤其是遺產(chǎn)系統(tǒng)的重構(gòu)、再工程以及 設計的恢復提供有力的幫助;②隨著開源社區(qū)的發(fā)展和完善,開源系統(tǒng)尤其是基于Java代 碼的開源系統(tǒng)種類日臻完善和豐富,且代碼量也在飛速增加,但其文檔化往往又嚴重滯后 甚至缺乏,所以軟件可視化的作用也變的尤為重要。文獻《針對面向?qū)ο蟪绦蛟O計語言源代碼的軟件可視化方法》(國家專利,專利號 201010266831. 5)公開了一種針對面向?qū)ο蟪绦蛟O計語言源代碼的軟件可視化方法,其主 要步驟為步驟一、從源代碼中提取關(guān)鍵信息。關(guān)鍵信息包括類所在的包、類名、父類、繼承方式、類的類型、類的修飾符、類所包 含的嵌套類、類屬性的類型、類屬性的修飾符、類構(gòu)造函數(shù)參數(shù)、類方法的名字、類方法的參 數(shù)、類方法的返回值類型以及類方法的修飾符。步驟二、獲取原始圖數(shù)據(jù)信息。將步驟一得到的關(guān)鍵信息按照表2所示的圖的屬性、表3所示的邊的屬性、表4所 示的節(jié)點的屬性的數(shù)據(jù)結(jié)構(gòu)進行存儲,即可得到一個僅包含節(jié)點名稱和邊名稱的原始圖數(shù) 據(jù)信息。表2存儲關(guān)鍵信息的數(shù)據(jù)結(jié)構(gòu)設計表1-圖的屬性
權(quán)利要求
一種適用于軟件可視化過程的圖形布局方法,其特征在于其具體步驟為步驟1設定畫布的左上角為坐標原點;步驟2對軟件可視化過程中得到的待處理有向圖進行深度搜索,得到其最大深度d、層序號i、每層所包含的節(jié)點集合Vi、集合Vi所包含的節(jié)點的個數(shù)numi以及所有節(jié)點各自所在的層數(shù)deep;其中,d,i均為正整數(shù)且1≤i≤d;步驟3根據(jù)步驟2得到的結(jié)果,計算出每個節(jié)點邊框的左上角的縱坐標y和橫坐標x的值,獲得每個節(jié)點邊框的左上角的坐標;①計算出每個節(jié)點邊框的左上角的縱坐標y的值;②計算出每個節(jié)點邊框的左上角的橫坐標x的值,其計算方法如下第a步將第1層中的節(jié)點按照字母表升序排序;第b步對第2層中的節(jié)點做以下處理按照入度從大到小的順序?qū)Φ?層中的節(jié)點進行排序,當有多于1個的節(jié)點的入度相同時,按字母表序排序;排序后的節(jié)點用qj表示;其中,1≤j≤num2,qj∈V2,且j為正整數(shù);由q1節(jié)點得到指向該節(jié)點的前驅(qū)節(jié)點集合Vq1和數(shù)量zq1,zq1為正整數(shù),將前驅(qū)節(jié)點集合Vq1中的節(jié)點按照出度從小到大在第1層中從第1個位置開始重新排序,節(jié)點集合v∈(V1 Vq1)中受影響的節(jié)點的位置依次后置,并將q1排在第二層的第一位;然后取q2節(jié)點,得到指向該節(jié)點的前驅(qū)節(jié)點集合Vq2和數(shù)量zq2,如果則將q2置于第2層的第2位,即正向排序,從前向后排;同時,集合中的節(jié)點按照出度從小到大在第一層中從zq1+1處開始從前向后重新排序,集合v∈(V1 (Vq1∪Vq2))中受影響的節(jié)點的位置依次后置;否則,即則將節(jié)點q2置于第2層的最后,即反向排序,從后向前排,并將集合Vq2中的節(jié)點從第1層的最后位置開始從后向前按照出度由小到大重新排序,集合v∈(V1 (Vq1∪Vq2))中受影響的節(jié)點的位置依次前置;當存在q3時,如果則排序繼續(xù)按照q2中相關(guān)的排序方向進行第1層和第2層的排序;否則,變換排序方向;其他操作同q2中相關(guān)操作;以此類推,處理第2層中的其它未處理的節(jié)點;第c步如果存在第p層,p≥3且p為正整數(shù),則依次對第p層節(jié)點做以下處理,否則直接執(zhí)行步驟4;用Nk表示p 1層經(jīng)排序后的第k個節(jié)點,k=1、2、......nump 1且k為正整數(shù),依次得到第p 1層中從第1個到第nump 1個節(jié)點中的第k個節(jié)點Nk的后繼節(jié)點集合Vk;如果并且k=1時,則將集合Vk∩Vp中的節(jié)點在第p層按照入度從小到大從第1個位置開始進行排序;如果并且k≠1時,則將集合Vk∩Vp中還未排序的節(jié)點按照入度從小到大依次排在已排序節(jié)點之后;最后,開始處理p 1層中的下一個節(jié)點的后繼集合;依次循環(huán),直到將p 1層中所有節(jié)點的后繼節(jié)點集合處理完畢則退出循環(huán);層數(shù)p每自增一層,重復執(zhí)行第c步;第d步通過公式(3)得到同一層中兩個相鄰節(jié)點的距離w,通過公式(4)得到第s層,第t個節(jié)點的橫坐標值x,其中,3≤s≤d,1≤t≤nums且s、t均為正整數(shù);w=(W x1 x2)/(nums 1+2)(3)x=x1+t×w(4)其中,W為畫布的寬度,x1,x2分別為第s層左右兩邊的留白;步驟4此外根據(jù)每個節(jié)點上已設定好的文本的內(nèi)容和樣式,得到每個節(jié)點的邊框長寬信息;步驟5根據(jù)步驟3得到的每個節(jié)點邊框的左上角的坐標及步驟4得到的節(jié)點邊框長寬信息即得到邊框矩形的中心點坐標;經(jīng)過上述操作,由步驟3得到每個邊框的左上角坐標,步驟4得到邊框的長寬值,步驟5得到節(jié)點間連線的開始和結(jié)束坐標,即完成了所需的圖形布局方法。FSA00000298365300011.tif,FSA00000298365300012.tif,FSA00000298365300013.tif,FSA00000298365300014.tif,FSA00000298365300021.tif,FSA00000298365300022.tif,FSA00000298365300023.tif
2.如權(quán)利要求1所述的一種適用于軟件可視化過程的圖形布局方法,其特征在于每 個節(jié)點邊框的左上角的縱坐標y的值的計算方法為設定H為畫布的高度,根據(jù)公式1可得到有向圖中每一層的高度差h h = (Η )/((1-1) (1)其中,Ill和h2分別為畫布的上、下留白高度;根據(jù)公式2可得到該節(jié)點的左上角的縱坐標y y = ^+(i-l) Xh (2)
全文摘要
本發(fā)明涉及一種適用于軟件可視化過程的圖形布局方法,屬于軟件可視化技術(shù)領(lǐng)域。首先設定畫布的左上角為坐標原點,其次對軟件可視化過程中得到的待處理有向圖進行深度搜索,根據(jù)搜索結(jié)果獲得每個節(jié)點邊框的左上角的坐標;此外根據(jù)每個節(jié)點上已設定好的文本的內(nèi)容和樣式,得到每個節(jié)點的邊框長寬信息;根據(jù)每個節(jié)點邊框的左上角的坐標及每個節(jié)點邊框長寬信息即得到邊框矩形的中心點坐標。本發(fā)明在圖中的節(jié)點較多時,可盡量減少圖中的交叉線;并且充分考慮到與某一個節(jié)點相連接的其它多個節(jié)點在幾何空間上的布局,使這些節(jié)點在圖中的位置相對集中,使層次化系統(tǒng)結(jié)構(gòu)圖的可讀性比好。
文檔編號G06F9/44GK101957757SQ20101050330
公開日2011年1月26日 申請日期2010年9月30日 優(yōu)先權(quán)日2010年9月30日
發(fā)明者萬穎, 洪孝金, 王國強, 王崑聲, 王志剛, 胡昌振, 郭剛 申請人:北京理工大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
淮南市| 通化市| 武安市| 达州市| 同仁县| 邵阳市| 石首市| 曲靖市| 宁化县| 陆川县| 木兰县| 始兴县| 大港区| 新宁县| 泽州县| 永年县| 侯马市| 乌拉特中旗| 明溪县| 临漳县| 固镇县| 诸暨市| 金沙县| 肥乡县| 大余县| 新竹市| 东明县| 丰都县| 玉林市| 嘉义市| 毕节市| 河西区| 平江县| 如皋市| 丰顺县| 吴忠市| 南雄市| 监利县| 黄浦区| 绩溪县| 鸡西市|