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

圖形用戶界面軟件功能獲取方法及裝置的制造方法

文檔序號:8361214閱讀:287來源:國知局
圖形用戶界面軟件功能獲取方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及軟件工程技術(shù)領(lǐng)域,尤其涉及一種圖形用戶界面軟件功能獲取方法及 裝直。
【背景技術(shù)】
[0002] 圖形用戶界面軟件以其操作簡單、直觀、方便得到廣泛應(yīng)用,與嵌入式軟件相比, 圖形用戶界面軟件包含很多的窗口,每一個窗口中又包含很多控件,這些窗口和控件的不 同組合構(gòu)成了軟件不同的功能,用戶通過操作界面上的控件,實現(xiàn)規(guī)定的功能。窗口和控件 的多樣性以及組合的復(fù)雜性,導(dǎo)致難以用常規(guī)的方法獲取軟件所設(shè)計的功能,即使能夠做 至IJ,其工作量也非常大。
[0003] 軟件功能是軟件的重要屬性,是軟件規(guī)模度量、軟件開發(fā)和測試工作量估計等工 作的基礎(chǔ)。目前,軟件需求主要來自于軟件需求規(guī)格說明文檔,按照傳統(tǒng)的軟件開發(fā)V模 型,軟件開發(fā)需要經(jīng)過需求分析一概要設(shè)計一詳細設(shè)計一編碼一測試等幾個階段,其中,軟 件需求分析是首先需要開展的工作,在軟件需求分析階段,明確軟件的需求。這種開發(fā)模式 所確定的軟件需求存在如下問題:1、一致性差,理論上講,軟件需求規(guī)格說明等文檔應(yīng)該與 軟件版本保持一致,但在具體項目中,由于各種原因,開發(fā)人員難以及時更新軟件需求,導(dǎo) 致軟件需求與實際的軟件存在較大差異;2、軟件功能獲取工作量大。圖形用戶界面軟件功 能繁多而復(fù)雜,無論是通過閱讀相關(guān)軟件文檔還是通過實際執(zhí)行軟件,工作量都很大。
[0004] 隨著快速原型開發(fā)等新的軟件開發(fā)模式的廣泛使用,軟件開發(fā)進入了快速迭代的 時代,開發(fā)人員對軟件需求的依賴程度發(fā)生了變化,已不再要求首先明確詳細的軟件需求 后才能啟動編程工作。
[0005] 有鑒于此,為填補現(xiàn)有軟件工程技術(shù)領(lǐng)域的功能自動獲取技術(shù)的空白,并且針對 圖形用戶界面獲取軟件功能中存在的技術(shù)問題,有必要提供一種新的圖形用戶界面軟件功 能獲取方法及裝置,能夠自動、快速、準確地獲取圖形用戶界面軟件所具有的功能。

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

[0006] 為了解決上述問題,本發(fā)明提供的一種圖形用戶界面軟件功能獲取方法及裝置, 能夠自動、快速、準確地獲取圖形用戶界面軟件所具有的功能。
[0007] 本發(fā)明提供了一種圖形用戶界面軟件功能獲取方法,包括:S1、利用Windows操作 系統(tǒng)提供的微軟用戶交互自動化MS-UIA框架,對被測軟件的用戶界面進行分析,獲取主界 面中的菜單類和對話框類控件元素;S2、通過自動觸發(fā)菜單和控件的點擊事件,得到次級菜 單或次級對話框窗口,依此方式,遞歸找出被測軟件所有層級的菜單類或?qū)υ捒蝾惪丶?包含的元素;S3、通過分析菜單層級關(guān)系或?qū)υ捒虼翱谡{(diào)用關(guān)系,得出被測軟件的功能組成 結(jié)構(gòu)。
[0008] 作為一種實施例,所述步驟Sl進一步包括:通過當前窗口句柄構(gòu)建窗口中控件樹 的根結(jié)點,使用UIA框架提供的TreeWalker類,采用深度遍歷算法遞歸構(gòu)造以當前窗口為 根結(jié)點的控件樹,從而獲取窗口中所有控件及其信息。
[0009] 作為一種實施例,所述采用深度遍歷算法遞歸構(gòu)造以當前窗口為根結(jié)點的控件 樹,進一步包括:將被測程序的主窗口參數(shù)rootElement作為遍歷的起點;遍歷時首先找到 rootElement的第一個子結(jié)點,如果該結(jié)點是菜單控件,則需要遍歷當前結(jié)點的所有子結(jié) 點,這時,先將菜單展開,然后調(diào)用展開后的子結(jié)點的Invoke控件模式,其他結(jié)點類型在 這里不做處理;遞歸遍歷當前結(jié)點的子結(jié)點控件,處理完子結(jié)點控件后,處理當前結(jié)點的兄 弟結(jié)點。
[0010] 作為一種實施例,所述菜單或?qū)υ捒虻膶蛹夑P(guān)系獲取,進一步包括:獲得到被測軟 件主界面窗口的所有控件及其信息,該信息以樹形結(jié)構(gòu)展示;根據(jù)控件類型ControlType 屬性進行過濾得到控件類型為菜單或?qū)υ捒虻慕缑嬖?;當控件類型為菜單界面元素時, 獲取主菜單,通過調(diào)用invoke控件模式觸發(fā)GUI事件,模擬人工點擊菜單項的操作,遞歸查 找當前菜單的子菜單項,并保存主菜單與子菜單的層級關(guān)系;當控件類型為對話框界面元 素時,獲取主窗口,通過調(diào)用invoke控件模式觸發(fā)CTI事件,模擬人工點擊各按鈕的操作, 遞歸查找當前窗口的子窗口,以獲取窗口間的調(diào)用關(guān)系,并將窗口間的調(diào)用關(guān)系保存為主 窗口與子窗口的層級關(guān)系。
[0011] 作為一種實施例,所述遞歸查找當前菜單的子菜單項,并保存主菜單與子菜單的 層級關(guān)系,進一步包括:傳入主窗口節(jié)點,并獲取第一個孩子節(jié)點;判斷該節(jié)點是否為空, 若該節(jié)點為非空,則進一步判斷該節(jié)點是否為菜單,若該節(jié)點是菜單,進入Invoke控件模 式,并遞歸遍歷子節(jié)點,若該節(jié)點不是菜單,遞歸遍歷子節(jié)點;若該節(jié)點不是菜單,遞歸遍歷 子節(jié)點;遞歸之后,處理兄弟節(jié)點;若該節(jié)點為空則結(jié)束。
[0012] 作為一種實施例,所述遞歸查找當前窗口的子窗口,以獲取窗口間的調(diào)用關(guān)系,并 將窗口間的調(diào)用關(guān)系保存為主窗口與子窗口的層級關(guān)系,進一步包括:傳入主窗口節(jié)點; 獲取第一個孩子節(jié)點;判斷該節(jié)點是否為空,若該節(jié)點為非空,進一步判斷該節(jié)點是否為按 鈕,若該節(jié)點是按鈕,則進入Invoke控件模式,并遞歸遍歷子節(jié)點,隨后處理兄弟節(jié)點;若 該節(jié)點不是按鈕則結(jié)束;若該節(jié)點為空則結(jié)束。
[0013] 作為一種實施例,所述S3進一步包括:菜單層級調(diào)用關(guān)系鏈表和窗口調(diào)用鏈表中 包含了軟件的功能要素,從鏈表的起始結(jié)點到某個終止結(jié)點構(gòu)成了軟件的一個功能,鏈表 的所有路徑構(gòu)成了軟件所具有的功能;在分別獲取了菜單和窗口及其層級調(diào)用關(guān)系之后, 先找到功能的所有子結(jié)點,通過回溯找到從該子結(jié)點向上的功能調(diào)用關(guān)系,通過遍歷菜單 層級調(diào)用關(guān)系鏈表和窗口調(diào)用鏈表,并將遍歷結(jié)果分別轉(zhuǎn)換為文本顯示方式和圖形顯示方 式,以得到被測軟件的所有功能和功能組成結(jié)構(gòu)圖。
[0014] 本發(fā)明還提供了一種圖形用戶界面軟件功能獲取裝置,包括:元素分析模塊,用于 利用Windows操作系統(tǒng)提供的微軟用戶交互自動化MS-UIA框架,對被測軟件的用戶界面進 行分析,獲取主界面中的菜單類和對話框類控件元素;層級分析模塊,用于通過自動觸發(fā)菜 單和控件的點擊事件,得到次級菜單或次級對話框窗口,依此方式,遞歸找出被測軟件所有 層級的菜單類或?qū)υ捒蝾惪丶邪脑?;結(jié)構(gòu)生成模塊,用于通過分析菜單層級關(guān)系 或?qū)υ捒虼翱谡{(diào)用關(guān)系,得出被測軟件的功能組成結(jié)構(gòu)。
[0015] 由上述本發(fā)明的實施例提供的技術(shù)方案可以看出,采用本發(fā)明所提出的方法及裝 置,可以直接從軟件界面中提取軟件所設(shè)計的功能,徹底改變了軟件功能的獲取方式。這種 方法一方面可以減少開發(fā)人員的工作量,開發(fā)人員可以將編寫軟件需求文檔的時間更多地 用于軟件功能實現(xiàn),提高軟件開發(fā)效率;另一方面可以保證軟件需求與最終軟件的一致性。 由于軟件需求來源于最終軟件的執(zhí)行結(jié)果界面,開發(fā)人員不再需要手工頻繁更新軟件需求 文檔,從根本上解決軟件功能需求與軟件實現(xiàn)不一致的難題。
[0016] 本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,這些將從下面的描述中變 得明顯,或通過本發(fā)明的實踐了解到。
【附圖說明】
[0017] 為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用 的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于 本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其 他的附圖。
[0018] 圖1為本發(fā)明一實施例的圖形用戶界面軟件功能獲取方法的流程示意圖;
[0019] 圖2為本發(fā)明一實施例的獲取窗口控件及其信息的流程示意圖;
[0020] 圖3為本發(fā)明一實施例的獲取菜單層級調(diào)用關(guān)系的流程示意圖;
[0021] 圖4為本發(fā)明一實施例的獲取窗口調(diào)用關(guān)系的流程不意圖;
[0022] 圖5為本發(fā)明一實施例的針對菜單類軟件場景獲取功能的流程示意圖;
[0023] 圖6為本發(fā)明一實施例的菜單類軟件界面控件樹的結(jié)構(gòu)示意圖;
[0024] 圖7為本發(fā)明一實施例的菜單類軟件菜單層級調(diào)用關(guān)系的結(jié)構(gòu)示意圖;
[0025] 圖8為本發(fā)明一實施例的學(xué)生管理系統(tǒng)軟件的功能組成圖;
[0026] 圖9為本發(fā)明一實施例的學(xué)生管理系統(tǒng)軟件的功能路徑圖;
[0027] 圖10為本發(fā)明一實施例的圖形用戶界面軟件功能獲取方法的流程示意圖。
【具體實施方式】
[0028] 下面詳細描述本發(fā)明的實施方式,所述實施方式的示例在附圖中示出,其中自始 至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參 考附圖描述的實施方式是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
[0029] 本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式"一"、"一 個"、"所述"和"該"也可包括復(fù)數(shù)形式。應(yīng)該進一步理解的是,本發(fā)明的說明書中使用的措 辭"包括"是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加 一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當我們稱元 件被"連接"或"耦接"到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存 在中間元件。此外,這里使用的"連接"或"耦接"可以包括無線連接或耦接。這里使用的 措辭"和/或"包括一個或更多個相關(guān)聯(lián)的列出項的任一單元和全部組合。
[0030] 本技術(shù)領(lǐng)域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(包括技術(shù) 術(shù)語和科學(xué)術(shù)語)具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng) 該理解的是,諸如通用字典中定義的那些術(shù)語應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的 意義一致的意義,并且除非像這里一樣定義,不會用理想化或過于正式的含義來解釋。
[0031] 為便于對本發(fā)明實施例的理解,下面將結(jié)合附圖以幾個具體實施例為例做進一步 的解釋說明,且各個實施例并不構(gòu)成對本發(fā)明實施例的限定。
[0032] 針對這種情況以及目前所面臨的上述問題,本發(fā)明提出了通過分析軟件的圖形用 戶界面獲取軟件功能的方法,主要解決如何快速、準確地獲取軟件所具有的功能技術(shù)問題。
[0033] 圖形用戶界
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
越西县| 大悟县| 仁寿县| 措勤县| 岗巴县| 澄城县| 南涧| 仁怀市| 文成县| 万宁市| 鄂托克旗| 南投县| 琼结县| 阿拉尔市| 禹城市| 和顺县| 孙吴县| 临西县| 犍为县| 明溪县| 房产| 盱眙县| 蛟河市| 汉源县| 汽车| 拜城县| 定南县| 台北市| 麟游县| 哈尔滨市| 岳西县| 石阡县| 长白| 体育| 庐江县| 松阳县| 阜阳市| 建宁县| 东乌珠穆沁旗| 松潘县| 东丽区|