專利名稱:對象模型樹圖表的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖表的顯示,尤其涉及在軟件相關(guān)工具中類圖表的顯示。
背景技術(shù):
隨著軟件的戰(zhàn)略價值對于許多公司在增加,軟件銷售商不斷地尋求新技術(shù)來自動化軟件生產(chǎn)和提高質(zhì)量并減少成本與面市的時間。這些技術(shù)包括組件技術(shù)、可視編程、模式和框架。隨著軟件系統(tǒng)復(fù)雜性在范圍與規(guī)模上的增加,公司尋找管理和解決這種復(fù)雜性的技術(shù),包括再生體系結(jié)構(gòu)問題,諸如物理分發(fā)、容錯、復(fù)制、安全、并發(fā)和負(fù)載平衡。另外,對因特網(wǎng)的開發(fā)盡管使某些通信交換更簡單,卻加劇了這些體系結(jié)構(gòu)的挑戰(zhàn)。
響應(yīng)于這些需求,設(shè)計了一種稱為統(tǒng)一建模語言(UML)的常規(guī)技術(shù)。UML是一種標(biāo)準(zhǔn)語言,用于指定、可視化、構(gòu)造和文檔化軟件系統(tǒng)的人工產(chǎn)物,以及用于商務(wù)建模和其它非軟件系統(tǒng)。UML工具用于開發(fā)面向?qū)ο蟮能浖蛙浖_發(fā)過程,并且使用圖形符號來表示軟件項目的設(shè)計。
一種有用的軟件體系結(jié)構(gòu)表示是類圖表。類圖表提供一種圖形顯示,它描述系統(tǒng)中符號的靜態(tài)結(jié)構(gòu),并且顯示說明性(靜態(tài)的)模型元素,諸如類、類型和它們的內(nèi)容與關(guān)系。將類安排在共享公共結(jié)構(gòu)和行為的分層結(jié)構(gòu)中,并且與其它類相關(guān)聯(lián)。類圖表模型使用諸如類、包和對象等設(shè)計元素來對類結(jié)構(gòu)和內(nèi)容進(jìn)行建模,并且還顯示諸如容器、繼承、關(guān)聯(lián)和其它等關(guān)系。在面向?qū)ο蟮男g(shù)語中,類是在面向?qū)ο蟪绦蛑卸x一組對象的結(jié)構(gòu)和行為的元素。在面向?qū)ο蟮膽?yīng)用程序中,類具有屬性(成員變量)、操作(成員函數(shù))和與其它類的關(guān)系。
使用UML來描繪類圖表具有幾種限制,如下自動地布局UML類圖表是一個困難的算法問題,它很少給出非常滿意的結(jié)果;手工布局UML類圖表是耗時的,尤其是有關(guān)限制線交叉,以及在放置語義明顯的裝飾使得它們的意義容易明白的時候;一組類的UML圖表在有關(guān)如下所述事實方面付出很少這些類可自然地組織在樹結(jié)構(gòu)中;并且最后,沒有語義方法來展開和折疊UML圖表的區(qū)域。
定義語法的另一個流行的方法是巴克斯-諾爾形式(BNF)。BNF及其擴(kuò)展,即擴(kuò)展的BNF(EBNF)是在編程語言的形式化中廣泛使用的用于語法定義的文本方法。然而,諸如UML、BNF和EBNF等這樣的常規(guī)開發(fā)工具例如充滿了這樣的限制,即未能滿足開發(fā)工具領(lǐng)域中實質(zhì)性未滿足的需求。
發(fā)明內(nèi)容
下面提供本發(fā)明的簡化概要,以便提供對本發(fā)明一些方面的基本理解。這個概要不是本發(fā)明的全面概觀。它并非要標(biāo)識本發(fā)明的關(guān)鍵/重要元素或者描繪本發(fā)明的范圍。其唯一目的是以簡化形式提供本發(fā)明的一些概念,作為稍后提供的更詳細(xì)的描述的序言。
在此揭示和要求保護(hù)的本發(fā)明的一個方面包括一種體系結(jié)構(gòu),該體系結(jié)構(gòu)將對象(例如,類)圖形的計算機(jī)可讀表示用作輸入,并且自動創(chuàng)建一個或多個圖表來將這些類描繪成顯示它們的關(guān)系和特性的可編輯樹。該方法特別是供類圖形的定義使用的,類圖形表示定義域?qū)S谜Z言的概念。這樣的圖形常稱為對象模型、域模型、元模型、抽象句法或語法。這些圖形自然具有該方法可使用的類似樹的結(jié)構(gòu)。該方法也可以應(yīng)用于其中有向關(guān)系很重要的任何種類的對象模型。而且,提供實質(zhì)上同時地處理不同種類的有向關(guān)系的能力,例如,嵌入、引用、繼承和其它諸如相關(guān)性。
本發(fā)明考慮現(xiàn)代計算機(jī)系統(tǒng)的交互能力,以協(xié)助形式化語法的過程。這些交互能力寬泛地落在三個方面重新組織圖表以看到所希望的部分(例如,通過展開/折疊、在對象周圍移動和顯示工具提示)、搜索、以及使用在打印出的介質(zhì)中不同的線索(例如顏色)。該方法至少提供下列好處自動而非手工地布局圖表;圖表在它們對顯示屏幕資源的使用方面是緊湊而高效的;線交叉被避免;圖表的各部分可被擴(kuò)展和折疊;線裝飾的整齊和可讀放置是自動的;圖表示出了底層圖形的自然類似樹的結(jié)構(gòu);以及編輯是直接了當(dāng)?shù)摹?br>
為支持這些特征,提供了按照本發(fā)明便于設(shè)計對象模型的設(shè)計工具系統(tǒng)。給出包括有向關(guān)系的對象(例如類)的一個或多個圖形的計算機(jī)可讀表示,系統(tǒng)自動創(chuàng)建一個或多個對象圖表(例如,類圖表),它們將這些對象圖表描繪成顯示對象關(guān)系和特性的可編輯類似樹的結(jié)構(gòu)。系統(tǒng)還包括一個布局組件,它接收一個或多個圖形作為輸入,并且將這一個或多個圖形轉(zhuǎn)換成可編輯的類似樹的結(jié)構(gòu)??梢允褂蔑@示組件來將可編輯的類似樹的結(jié)構(gòu)顯示為類似樹的結(jié)構(gòu)圖表,并且便于用戶與其的交互。該工具可以用于打開、編輯和保存現(xiàn)有的對象模型文件或者創(chuàng)建新的對象模型文件。
在本發(fā)明的又一個方面,可以使用人工智能組件來執(zhí)行基于概率和/或統(tǒng)計的分析來預(yù)測或推斷用戶希望自動執(zhí)行的動作。
為完成前述或相關(guān)目標(biāo),這里結(jié)合下面的描述和附圖描述本發(fā)明的某些方面。然而,這些方面表示可以使用本發(fā)明的原理的各種方法中的一些,并且本發(fā)明旨在包括所有這樣的方面及其等價方案。本發(fā)明的其它優(yōu)點和新穎性在結(jié)合附圖通過下面本發(fā)明的詳細(xì)描述將變得顯而易見。
圖1例示按照本發(fā)明便于設(shè)計對象模型的設(shè)計工具系統(tǒng)。
圖2例示按照本發(fā)明便于設(shè)計對象模型的方法。
圖3例示本發(fā)明的設(shè)計器工具的屬性。
圖4例示可以使用本發(fā)明的設(shè)計器工具執(zhí)行的操作。
圖5例示按照本發(fā)明的類的示例性類似樹的結(jié)構(gòu)的布局,它構(gòu)成組織圖的語言的抽象句法。
圖6例示按照本發(fā)明的類似樹的結(jié)構(gòu)圖表的設(shè)計器屏幕截圖。
圖7例示按照本發(fā)明作為多個圖表的類似樹的結(jié)構(gòu)的顯示。
圖8例示使用人工智能組件的設(shè)計器工具系統(tǒng),它便于本發(fā)明方法的一個或多個學(xué)得特征的自動化。
圖9例示可用于執(zhí)行所揭示的體系結(jié)構(gòu)的計算機(jī)的框圖。
圖10例示按照本發(fā)明的示例性計算環(huán)境的示意框圖。
具體實施例方式
現(xiàn)在參考附圖描述本發(fā)明,在全部附圖中,相同的參考標(biāo)號用于指相同的元素。在下面的描述中,為了說明起見,闡述了許多具體細(xì)節(jié),以便提供對本發(fā)明的全面理解。然而顯然的是,本發(fā)明可以在沒有這些具體細(xì)節(jié)的情況下實踐。在其它實例中,眾所周知的結(jié)構(gòu)和設(shè)備以方框圖形式示出,以便于描述本發(fā)明。
如在本申請中使用的,術(shù)語“組件”和“系統(tǒng)”指的是計算機(jī)相關(guān)的實體,或者是硬件、軟硬件的組合、軟件、或者是執(zhí)行中的軟件。例如,組件可以是,但不限于,運行于處理器上的進(jìn)程、處理器、對象、可執(zhí)行代碼、執(zhí)行的線程、程序和/或計算機(jī)。作為說明,運行于服務(wù)器上的應(yīng)用程序和服務(wù)器都可以是組件。一個或多個組件可以駐留在進(jìn)程和/或執(zhí)行的線程內(nèi),并且一個組件可以定位在一個計算機(jī)內(nèi)和/或分布在兩個或多個計算機(jī)之間。
如在此使用的,術(shù)語“推斷”和“推論”一般指根據(jù)一組通過事件和/或數(shù)據(jù)捕捉的觀察資料推理或推斷系統(tǒng)、環(huán)境和/或用戶的狀態(tài)的過程。例如,推論可以用于標(biāo)識特定的上下文或動作,或者可以產(chǎn)生狀態(tài)上的概率分布。推論可以是概率性的,即基于對數(shù)據(jù)和事件的考慮,計算感興趣的狀態(tài)上的概率分布。推論也可以指用于從一組事件和/或數(shù)據(jù)組成較高級事件的技術(shù)。這樣的推論其結(jié)果是從一組觀察的事件和/或存儲的事件數(shù)據(jù)構(gòu)建新的事件或動作,無論這些事件是否在時間上緊密相關(guān),以及這些事件和數(shù)據(jù)是來自一個還是若干個事件和數(shù)據(jù)源。
盡管示出并且參考附圖描述了向用戶顯示信息的某些方法,但相關(guān)領(lǐng)域的技術(shù)人員將認(rèn)識到,可以使用各種其它替換方案。在這里可交換地使用術(shù)語“屏幕”、“網(wǎng)頁”和“頁面”。頁面或屏幕作為顯示描述、作為圖形用戶界面、或者通過在屏幕(例如,個人計算機(jī)、PDA、移動電話或者其它合適的設(shè)備)上描繪信息的其它方法來存儲和/或傳輸,其中要在頁面上顯示的布局和信息或內(nèi)容存儲在存儲器、數(shù)據(jù)庫或其它存儲設(shè)備中。
先參考附圖,圖1例示按照本發(fā)明便于設(shè)計對象模型的設(shè)計工具系統(tǒng)100。給定包括有向關(guān)系的對象(例如類)的一個或多個圖形的計算機(jī)可讀表示,系統(tǒng)100自動創(chuàng)建一個或多個對象圖表(例如,類圖表),它們將這些對象圖表描繪成顯示對象關(guān)系和屬性的可編輯的類似樹的結(jié)構(gòu)。為支持這些,系統(tǒng)100還包括一個布局組件102,它接收一個或多個圖形作為輸入,并且將這一個或多個圖形轉(zhuǎn)換成可編輯的類似樹的結(jié)構(gòu)104。系統(tǒng)100還包括顯示組件106,它將可編輯的類似樹的結(jié)構(gòu)104顯示為類似樹的結(jié)構(gòu)圖表108,并且便于用戶與其交互。該工具可以用于打開、編輯和保存現(xiàn)有的對象模型文件和/或創(chuàng)建新對象模型文件。
這種新穎方法對于表示定義域?qū)S谜Z言的概念的類的圖形定義特別有用。這樣的圖形經(jīng)常被稱為對象模型、元模型、域模型、抽象句法或語法。這些圖形自然地具有所使用的類似樹的結(jié)構(gòu)。本領(lǐng)域的技術(shù)人員要意識到,所揭示的新穎方法可以應(yīng)用于其中有向關(guān)系很重要的任何種類的對象模型。
圖2例示按照本發(fā)明便于設(shè)計對象模型的一種方法。盡管為了說明的簡單起見,在此例如以流程圖形式所示的一個或多個方法被顯示或描述成一系列動作,但應(yīng)該理解和意識到,本發(fā)明不受動作順序的限制,因為按照本發(fā)明,有些動作可以按不同的順序和/或與在此所示和描述的其它動作同時發(fā)生。例如,本領(lǐng)域的技術(shù)人員將理解和意識到,方法可替換地表示為諸如狀態(tài)圖中的一系列相關(guān)的狀態(tài)或事件。而且,并非所有例示的動作都是實現(xiàn)按照本發(fā)明的方法所必需的。
在200,該設(shè)計器工具系統(tǒng)接收圖形形式的對象模型的計算機(jī)可讀表示,這些圖形包括一種或多種不同的有向關(guān)系。在202,設(shè)計器工具利用該圖形低層的類似樹的結(jié)構(gòu),并且將這些圖形和關(guān)系處理成對象(例如類對象)的單個可編輯的類似樹的結(jié)構(gòu)。在204,該結(jié)構(gòu)描繪對象的關(guān)系和特性。在206,對象的類似樹的結(jié)構(gòu)可以作為單個對象圖表被呈現(xiàn)給用戶,或者部分地在用戶訪問的若干圖表上呈現(xiàn)給用戶。
例如,該結(jié)構(gòu)可以被剖析成分離的圖表、引用和嵌入的圖表以及其它繼承的圖表??商鎿Q地,單個結(jié)構(gòu)可以被剖析成在相應(yīng)圖表上顯示的兩個子結(jié)構(gòu)。在208,使類似樹的結(jié)構(gòu)成為交互式的,使得用戶可以執(zhí)行許多不同操作。這些操作包括添加和刪除對象(例如類),處理對象的二元和繼承關(guān)系、折疊(或收縮)與展開關(guān)系層次、與特性交互、重新定位對象和對象特性、以及在這些對象之間搜索與導(dǎo)航。
現(xiàn)在參考圖3,例示了本發(fā)明的設(shè)計器工具的屬性。它們的每一個將在下面另外結(jié)合圖5來描述。在300,自動而非象在常規(guī)系統(tǒng)中那樣手工地布局圖表。用戶的主要任務(wù)是輸入對象是什么(例如類)及其關(guān)系,并且該工具相應(yīng)地布局結(jié)構(gòu)。然而,用戶可以作出一些布局的重新安排。例如,用戶可以指示什么對象要顯示在結(jié)構(gòu)的左邊,以及以輔助節(jié)點要以什么順序出現(xiàn)。其它的每一件事,諸如間距、標(biāo)簽的定位、對象和結(jié)構(gòu)的大小以及線的形狀是自動確定的。組織自然地從類似樹的結(jié)構(gòu)左上角的根節(jié)點(或?qū)ο?流出。通過這么做,該結(jié)構(gòu)表示一個對象可以包含其它對象。類似樹的結(jié)構(gòu)的從左至右流動是由諸如嵌入、引用或繼承關(guān)系等有向關(guān)系來驅(qū)動的。在整個描繪上可以有許多這樣的樹。語言定義尤其具有那種結(jié)構(gòu)。因而,所揭示的設(shè)計器工具支持這樣的語言開發(fā)。
將這與常規(guī)的統(tǒng)一建模語言(UML)工具對比,UML沒有類似樹的結(jié)構(gòu)的概念,但在對象及對象之間關(guān)系方面較簡單。UML顯示相同的節(jié)點以及節(jié)點之間的線。然而,從左上角的根節(jié)點起發(fā)出張開的線,其下的節(jié)點必須被手工輸入,并且按照用戶手工定義的順序。
在302,另一個工具屬性是按照顯示屏幕資源以緊湊和有效的方式顯示結(jié)構(gòu)圖表。這可以自動完成的一種原因是在各種節(jié)點之間的線是通道化的。通過將標(biāo)簽和其它裝飾放置在線的中間而不是靠近或處于線端就使之成為可能。例如,根節(jié)點在單個點處連接到其它節(jié)點,類似樹的結(jié)構(gòu)的其它節(jié)點也是如此。另外,標(biāo)簽(線裝飾)被安排在線上,以進(jìn)一步促進(jìn)圖表的緊湊化。
在304,節(jié)點(或?qū)ο?是不相互交叉的線的互連。這是通過在結(jié)構(gòu)中提供一個定義對象的位置,且隨后在其它結(jié)構(gòu)位置復(fù)制該節(jié)點來實現(xiàn)的。這些其它位置隨后引用對象定義位置。在每個節(jié)點處提供單個引用節(jié)點來減少通常與UML相關(guān)聯(lián)的線混亂,而非從任何節(jié)點繪制回到單個節(jié)點的線。如在常規(guī)工具的情況下注意到的,當(dāng)多條線開始或終止于一個節(jié)點的多個點時,線交叉的可能性大大增加。
該設(shè)計器工具的另一個屬性是結(jié)構(gòu)的諸部分可以展開或折疊,如在306所示,這是交互式方面的一部分。這使用戶能夠以不同方式查看結(jié)構(gòu),例如,聚焦于一部分而非另一部分。從節(jié)點之一路由出來的任何線從一個圖形符號(在下文中稱為分支符(twicky))發(fā)出。用戶只需要選擇該分支符來展開或折疊下面的子樹部分。
在308,該工具促進(jìn)線裝飾的整齊和可讀放置。例如,諸如Employees(職員)、Leader(領(lǐng)導(dǎo))和Team(團(tuán)隊)等線標(biāo)簽自動地定位在靠近相應(yīng)的線處。而且,角色關(guān)系符號(“類似二極管”的符號)是從終止線端移開的。常規(guī)的工具對于每條終止線將符號推到靠近終止節(jié)點。因而,按照慣例,終止節(jié)點與線裝飾混在一起,使查看非常困難。這里,裝飾聚集在連接線的中央,使更多信息能夠被包括在裝飾中。
在一個實現(xiàn)中,不允許用戶調(diào)整線裝飾的定位。在另一個實現(xiàn)中,構(gòu)想該工具基于圖表屏幕資源自動將裝飾調(diào)整到最佳位置。在又一實施例中,還構(gòu)想允許用戶選擇裝飾(或者成組地或者單獨地)并且沿著相關(guān)聯(lián)的線拖到所希望的位置。
由該設(shè)計器工具顯示的圖表說明了低層圖形的自然樹結(jié)構(gòu),這是在310所示的屬性。例如,圖表可以描繪語法、對象模型、域模型、元模型或模式??梢岳L制包括整個類似樹的結(jié)構(gòu)或其子樹的不同圖表,稱為實例圖表。整個類似樹的結(jié)構(gòu)規(guī)定實例圖表將具有的形狀。UML提供方框與線的完全任意的呈現(xiàn),該呈現(xiàn)可以一點也不象實例的結(jié)構(gòu)。因而,本發(fā)明的設(shè)計器工具幫助語言設(shè)計者更好地理解圖表所表示的內(nèi)容。
該設(shè)計器工具的另一個屬性是編輯是直接了當(dāng)?shù)?,如?12所示。設(shè)計器不需要在編輯圖表的布局方面浪費時間。相反,常規(guī)工具可能要求用戶決定節(jié)點如何連接、節(jié)點和線相對于其它節(jié)點的排列等等。
在314,該工具是可伸縮的,使得較大的對象模型可以被呈現(xiàn)為單個森林(它是樹的集合),并且在大多數(shù)情況下,呈現(xiàn)在單個圖表中。該設(shè)計器工具是經(jīng)濟(jì)的,具有重復(fù)的符號和節(jié)點。節(jié)點可以被添加或追加到現(xiàn)有的樹分支,本質(zhì)上向下擠推新節(jié)點并且橫過該樹而不增加混亂。按照慣例,非結(jié)構(gòu)化的圖形在添加更多的線和節(jié)點時以混亂方式擴(kuò)展。本發(fā)明的工具利用GUI特征并且以有效方式擴(kuò)展這些圖表。例如,該工具提供滾動條、窗口尺寸調(diào)整和打印分頁,以使用戶更有效和生產(chǎn)性地進(jìn)行交互。
另一個屬性是設(shè)計器工具顯示條理清楚的結(jié)構(gòu),它捕捉低層繼承與關(guān)系圖形的樹結(jié)構(gòu),如在316所示。
圖4例示可以使用本發(fā)明的設(shè)計器工具來執(zhí)行的操作。在400,對象(例如類)可以被添加或刪除。盡管該描述指的是類對象,但要意識到,這些操作可以在任何類型的對象上執(zhí)行。可以在結(jié)構(gòu)的左邊任何現(xiàn)有類之下添加新類。當(dāng)被刪除時,類及其所有相關(guān)聯(lián)的關(guān)系從結(jié)構(gòu)中移除。
在402,該工具可以在類的二元關(guān)系上處理操作??梢栽诂F(xiàn)有類之間添加二元關(guān)系。關(guān)系是有向的。使用從源節(jié)點(或類)到目標(biāo)節(jié)點(或類)的線,在源類之下以“L”形狀繪制關(guān)系。該線與來自該源類的任何其它關(guān)系線通道化在一起。目標(biāo)類的嵌入顯示在關(guān)系的另一端。二元關(guān)系也可以在現(xiàn)有類與結(jié)構(gòu)背景之間添加。創(chuàng)建新的目標(biāo)類并且在源與目標(biāo)類之間創(chuàng)建新的關(guān)系。
當(dāng)刪除關(guān)系時,從結(jié)構(gòu)中移除它。所有其它結(jié)構(gòu)元素保持在適當(dāng)位置。然而應(yīng)該注意,可以執(zhí)行整理操作,它啟動可以將樹重新結(jié)構(gòu)化為更有效的描繪的重新布局操作。
關(guān)系操作還包括將嵌入關(guān)系切換到引用關(guān)系,和將引用關(guān)系切換回嵌入關(guān)系,服從多樣性的約束。嵌入父節(jié)點具有為一的最大多樣性。這或者可以驅(qū)動用戶交互,從而防止創(chuàng)建無效的圖表,或者可以由后續(xù)的確認(rèn)步驟來檢測。另外,定義和嵌入關(guān)系對于相同的類可以交換。
在404,可以處理類的繼承關(guān)系??梢栽诂F(xiàn)有類之間添加繼承關(guān)系。注意,繼承關(guān)系被約束為非循環(huán)的,無論在編輯時還是在以后。子類的用法在父類之下的繼承箭頭的頭部示出。繼承關(guān)系可以在現(xiàn)有類與圖表背景之間添加。新的子類與繼承關(guān)系一起創(chuàng)建。繼承關(guān)系也可被刪除,且一旦執(zhí)行,該關(guān)系就從結(jié)構(gòu)中移除。所有其它結(jié)構(gòu)關(guān)系保持。
如下所示,可以執(zhí)行結(jié)構(gòu)的重新布局操作,如在406所示,這使所有定義移動到服從當(dāng)前選項的最優(yōu)位置,并且相應(yīng)地組織類的所有其它描繪。
在408,其中繼承層次當(dāng)前是展開的,如由第一個分支符中的減“-”符號所示,繼承層次可以通過選擇第一個分支符來折疊。在類之下的全部繼承層次是折疊的,且由分支符中的“+”符號來代替。折疊的繼承層次可以通過隨后選擇第一個分支符來展開。
在先前展開的地方,如由帶有減“-”符號的第二個分支符表示的,可以通過點擊第二個分支符來折疊關(guān)系層次。經(jīng)由該關(guān)系到達(dá)的全部層次被折疊,并且第二個分支符被“+”符號代替。關(guān)系層次隨后可以通過在顯示加“+”符號時選擇第二個分支符來展開。
在410,也可以處理對象特性。類的特性可以通過選擇第三個分支符(在該分支符指減號時)在一個附著的“片(flap)”中顯露出來。當(dāng)特性片被打開時,在片中顯示特性的類型和名稱。特性片在再次被選擇時消失,并且第三個分支符顯示“+”符號。另外,當(dāng)鼠標(biāo)指針懸浮在類對象上時,例如,直接在顯露特性片之處上方的區(qū)域,則臨時打開特性片。特性也可以被添加到類或者從類中刪除,使得特性在片打開時或者出現(xiàn)或者不出現(xiàn)。
在412,類和屬性可以被重新定位。毗鄰于圖表左邊的類可以被選擇并且垂直地重新定位。這將對象按結(jié)構(gòu)的從上至下順序移動到新位置。另外,作為嵌入或引用關(guān)系的目標(biāo)節(jié)點出現(xiàn)的類對象可以通過在源類的關(guān)系集合中垂直拖動來重新定位。其它方法也是可能的,例如,后移、前移、移到第一個、移到最后一個和移到這里。作為繼承關(guān)系的子節(jié)點出現(xiàn)的類節(jié)點可以通過在源類的子節(jié)點集合中垂直地拖動來重新定位。其它方法也是可能的,例如,后移、前移、移到第一個、移到最后一個和移到這里。在另外的操作中,特性片內(nèi)的特性可以被選擇并且可以通過在該類對象列出的特性內(nèi)垂直地拖動所選擇的特性來重新定位。其它方法也是可能的,例如,后移、前移、移到第一個、移到最后一個和移到這里。
在414,該工具便于搜索操作。給出其用法之一,可以通過至少兩種方法來搜索類的定義或使用。首先,選擇類的任何描繪,并且隨后調(diào)用一個操作來加亮其定義,并且在必要時滾動顯示。其次,顯示“邊連接(side link)”,這是在圖表的右手邊處的一組線,它們將所選擇的一個或多個類對象的定義連接到各自的用法。當(dāng)用戶將鼠標(biāo)指針懸浮在一個用法上時,邊連接臨時地出現(xiàn)在圖表的右手邊,并且在對定義的引用之間指引用戶。這利用了樹結(jié)構(gòu)化的布局和該工具的交互能力兩者。
圖5例示按照本發(fā)明的類的示例性類似樹的結(jié)構(gòu)500的布局,這些類構(gòu)成組織圖的語言的抽象句法。給出類對象Organization(組織)、Employee(職員)、Team(團(tuán)隊)的初始用戶輸入,其中職員有以下幾種Consultant(顧問)、Manager(經(jīng)理)、Executive(主管)和VacantPosition(空位)。該工具自動地按照預(yù)定義的關(guān)系繪制彼此互連的線,其結(jié)果是自動生成的結(jié)構(gòu)500。
結(jié)構(gòu)500從左上角位置的根類對象“Organization”開始。在這個實現(xiàn)中,每個節(jié)點包括沿下邊緣的三個小分支符符號502,它們便于相關(guān)聯(lián)節(jié)點上的展開/折疊操作。在這種情況下,第一個且最左邊的分支符(由類似于[-]的符號表示)允許繼承層次的展開和折疊;第二個(或中間的)分支符允許關(guān)系的展開和折疊;以及第三個(或最右邊的)分支符允許特性片的展開和折疊。要意識到,每個節(jié)點可以使用較大數(shù)量的這類分支符操作及其不同表示。例如,可以提供第四個分支符(圓形幾何形狀的)來顯露與節(jié)點或元數(shù)據(jù)相關(guān)聯(lián)的用戶注釋,諸如節(jié)點何時最后一次被修改??商鎿Q地,可以提供更少量的分支符符號,但它們是多功能的,例如鍵擊組合或者鼠標(biāo)指針結(jié)合右擊從同一分支符調(diào)用不同的操作。
在本例中,關(guān)系層次是展開的,因為已經(jīng)選擇了第二個分支符用于展開。從根節(jié)點發(fā)出的是Employee和Team節(jié)點,它們使用線通道化技術(shù)連接到Organization根節(jié)點,以定義對應(yīng)于低層關(guān)系和繼承圖形的關(guān)系和繼承。
Organization類節(jié)點通過利用本發(fā)明的通道化能力在單個點處連接,這與如UML等常規(guī)工具正相反。而且,Employees、Leaders和Teams的線裝飾標(biāo)簽按照慣例是在線端處提供的,因此用線接觸目標(biāo)節(jié)點必須在目標(biāo)節(jié)點上的不同點處發(fā)生,這造成在該節(jié)點處的文本和對象的潛在的混亂呈現(xiàn)。
注意,在圖表上有若干標(biāo)簽為Employee的節(jié)點泡。來自根節(jié)點的分支Employees、Leaders和Teams各自具有Employee節(jié)點。本發(fā)明的設(shè)計工具自動將Employee節(jié)點放在定義性Employee類被定義處(即504的情形,其中Employee節(jié)點是粗體的)。為支持消除線交叉,在結(jié)構(gòu)500中只引用定義性Employee類504的其它節(jié)點是由非粗體(或變灰)的節(jié)點或圖形來表示的,例如Employee節(jié)點506。如在此使用的,術(shù)語定義性和非定義性應(yīng)用于節(jié)點,并且術(shù)語嵌入和引用應(yīng)用于弧線。還有該工具提供的其它操作,用于將定義從某個別的地方帶到非定義節(jié)點,并且用于在定義性節(jié)點被移到的該位置處創(chuàng)建根節(jié)點。這些特征在布局上提供很大的控制,而不需要進(jìn)行另外的工作。
注意,在主定義性Employee節(jié)點504之下,描繪了特性片508,它顯露了稱為String Title(串職務(wù))和StringName(串名字)的屬性特性。在本例中,定義性Employee節(jié)點504是結(jié)合這兩個特性來定義的。在特性片508中可以使用和顯露更多或更少數(shù)量的特性。這簡單地意味著每個職員有一個職務(wù)和名字。默認(rèn)地,當(dāng)用戶選擇查看語法的全部結(jié)構(gòu)時,不顯露特性片。因而,在一個實現(xiàn)中,用戶必須選擇第三個(或右邊的)分支符來顯露相關(guān)聯(lián)的特性。在另一個實現(xiàn)中,當(dāng)用戶將鼠標(biāo)指針懸浮在第三個分支符符號上時,特性片臨時出現(xiàn)以顯露特性。隨后可以通過選擇第三個分支符來使這些特性永久地出現(xiàn)。因而,在定義語言和類似樹的結(jié)構(gòu)時,該設(shè)計器工具便于聚集在用戶認(rèn)為很重要的方面上。
該設(shè)計器工具使用角色符號510(與“二極管”符號相似)來提供關(guān)系角色的顯式表示。這是符號裝飾的自然位置,它們給出對于關(guān)系的附加意義。例如,在根Organization節(jié)點和非定義性Employee節(jié)點512之間的關(guān)系具有名為Employees(職員)的角色510。這個角色510用加號“+”來標(biāo)記,表示該組織具有一個或多個Employee實例來擔(dān)任稱為Employees的角色。這個反白的角色標(biāo)記為“1”,表示每個Employee精確地由一個組織使用。
該工具還使用圖表慣例(例如彩色密度和/或虛或點劃線)來區(qū)分類的定義、類在嵌入或繼承關(guān)系中的用法和類在引用關(guān)系中的用法。例如,如果Employee類512通過引用關(guān)系連接到根類Organization 502,如由互連虛線表示的。可替換地,Employee類504通過嵌入關(guān)系連接到根類Organization 502,如由互連實線表示的。
在示例圖表中,非定義性(或使用)類描繪被呈現(xiàn)為淡灰,而定義性類被顯示得更明顯(例如深藍(lán))。定義性和非定義性類描繪可以通過分支符的不存在與存在來決定性地區(qū)分,使得定義性類包括分支符而非定義性類不包括。線的密度可以表示一種關(guān)系是嵌入的而另一種是引用。在本例中,不同種類關(guān)系中的差異可以通過例如使用點劃線用于引用關(guān)系來表示。要意識到,這些表示可以按照許多不同定義的慣例,諸如顏色、線型和粗細(xì)以及其它圖形標(biāo)記來作出。
角色符號被填充或未被填充。當(dāng)從該圖表產(chǎn)生代碼(例如在C#中)時,如果角色符號被填充,則在對應(yīng)于該角色的類和方法上生成一個特性。該設(shè)計器工具便于只顯示關(guān)系的重要特性,例如,在根節(jié)點Organization 502與引用節(jié)點Employee512之間表示的線。因而,線端的描繪結(jié)合符號(例如角色符號)使用戶能夠顯示附加的屬性。而且,這些裝置(標(biāo)簽Employees和角色符號510)定位在線中間附近的事實便于對它們的顏色和形狀進(jìn)行改變以表示角色本身的若干特性,因為在它們周圍有大量空間。
經(jīng)理可以有許多向他或她匯報的職員。在標(biāo)簽IndirectReports(間接報告)的例子里,職員可以間接地向許多經(jīng)理匯報,如在角色符號514的右手邊上非粗體方框中的星號所示。在下面是Reports(報告)標(biāo)簽和帶有“0”的粗體化方框。這意味著職員可以或者不可以直接向經(jīng)理匯報。因此在這個例子中,使用四個符號“0”表示可以/不可以;“1”表示總是具有這種關(guān)系;星號“*”表示可具有任意數(shù)量;以及加號“+”表示至少一個,但可以有更多。
注意,定義性Employee節(jié)點504的第一和第三個分支符被選擇,第三個分支符顯露與其相關(guān)量的特性。第一個分支符將繼承關(guān)系擴(kuò)展到定義性Consultant節(jié)點、定義性Manager節(jié)點和定義性VacantPosition節(jié)點。這些是父Employee節(jié)點504的子定義性節(jié)點,如由粗體和通道化線516所示,并且箭頭端指向父Employee節(jié)點504。同樣,如由父定義性Manager節(jié)點的第一個分支符擴(kuò)展的繼承關(guān)系顯露子定義性Executive節(jié)點,如由粗體和互連線518的箭頭端所示。
現(xiàn)在參考圖6,例示了按照本發(fā)明的類似樹的結(jié)構(gòu)圖表602的設(shè)計器屏幕截圖600。設(shè)計器的中央?yún)^(qū)域或工作空間604顯示要編輯的類似樹的結(jié)構(gòu)圖表602。工作空間604的左邊是工具箱606,它提供一組可被拖到工作空間604上并放在合適的位置的元素。工作空間604的右邊是提供一種替換方法來查看模型602的資源管理器606,以及顯示所選擇元素的詳細(xì)特性的特性網(wǎng)格610。
為更好地理解符號的操作,提供下列定義來區(qū)分下列類的描繪定義-一種描繪,示出類的完整定義,并且一個類只能有一個定義;使用-任何非定義性使用,例如,一種示出通過嵌入、繼承或引用相關(guān)的類的描繪,如另一個類的子類,并且在圖表中一個給定類可以有許多這樣的描繪。
當(dāng)布局圖表時,該工具自動確定定義性類的最優(yōu)位置。對此有若干選項,它們適用于不同目的。這些選項中有幾個經(jīng)??赏瑫r應(yīng)用如何排列這些選項的優(yōu)先順序和選擇它們?nèi)Q于該工具的用戶。這些選項或規(guī)則是在頂層處朝圖表的左邊顯示定義;當(dāng)一個類只嵌入在一個父類中時,顯示嵌入在父類中的定義;當(dāng)一個類嵌入在重要的父類中時,現(xiàn)時嵌入在該父類中的定義;當(dāng)一個類具有超類時,顯示作為從超類繼承的定義;當(dāng)一個類具有重要的子類時,顯示作為重要子類的超類的定義;以及可通過象這樣標(biāo)記一個類來將這個類確定為“重要的”。
在一個組內(nèi)垂直順序可以由用戶明確地改變。然而,一個規(guī)則可以是最初是字母順序的,或者從用戶選擇的替換計算中得到的順序。
還提供容易地從非定義性類導(dǎo)航到其定義性類的能力。這可以通過強(qiáng)制標(biāo)記(例如加亮)與定義性類相關(guān)聯(lián)的所有類來完成。例如,當(dāng)用戶選擇一個非定義性類時,該工具自動加標(biāo)簽于或加亮定義性類、其它非定義性類或兩者。另一個示例,例如涉及與變灰的使用節(jié)點,如Employees交互。如果用戶想要被帶往相應(yīng)的定義性Employee節(jié)點,則一種方法是將鼠標(biāo)指針懸浮在其上、顯示一個菜單、選擇該選項、并且到達(dá)所希望的點。
另一種方法是在用戶懸浮在一個使用上時顯示邊連接,其中邊連接指引用戶的眼睛至定義性對象。在一個實施例中,用戶可以用將用戶帶到定義性對象的實際連接代替灰色的非定義性節(jié)點。在另一個實現(xiàn)中,與邊連接一起使用變灰的非定義性節(jié)點。在又一個實現(xiàn)中,例如,可以臨時啟用邊連接3-5秒鐘,以協(xié)助用戶找到定義性節(jié)點。
僅作為一個示例,加亮或者其它圖形指示也可以用于指示刪除信息的傳播。例如,當(dāng)用戶已經(jīng)選擇了一個節(jié)點要刪除時,可以在所選擇的節(jié)點和所有相關(guān)聯(lián)節(jié)點、線和其它有關(guān)對象和符號上強(qiáng)制加亮,以給用戶提供刪除所選擇節(jié)點或?qū)ο蟮慕Y(jié)果的反饋。在另一個示例中,假定正在使用該技術(shù)來描繪動畫人物的全部部件結(jié)構(gòu)。那么運動的傳播扮演重要的角色。在描繪汽車的設(shè)計的又一個示例中,顏色的傳播是一個重要特征。通常,各種種類的信息可以沿弧線傳播。
圖7例示按照本發(fā)明作為多個圖表的類似樹的結(jié)構(gòu)顯示。工具100還便于處理較大結(jié)構(gòu),使得其顯示在使用多個圖表時更方便。布局組件102與前面一樣處理輸入,并且輸出結(jié)構(gòu)至顯示組件104。之后,顯示組件104處理所接收的結(jié)構(gòu),并且確定如何在該工具內(nèi)作為圖表來顯示該結(jié)構(gòu)。在這種情況下,將該結(jié)構(gòu)顯示為多個圖表(表示為圖表1,圖表2,...,圖表N)??梢栽趦蓚€分開的圖表中顯示該結(jié)構(gòu),例如,第一個圖表700和第二個圖表702。
顯示選項或規(guī)則可以包括,作為示例而非限制,繼承和關(guān)系層次可以獨立地顯示在圖表的不同區(qū)域或者不同圖表中。其它子選項可以包括所有類定義出現(xiàn)在關(guān)系層次上并且繼承層次只包括類的使用;在關(guān)系層次中,相關(guān)的較先選項適用;以及所有類定義出現(xiàn)在繼承層次上,且關(guān)系層次只包括使用和引用。
在一個更健壯的實現(xiàn)中,顯示組件104與布局組件102通信以由布局組件102分析和協(xié)調(diào)類似樹的結(jié)構(gòu)的結(jié)構(gòu)化。例如,如果在由布局組件102準(zhǔn)備期間結(jié)構(gòu)的初步“屏幕截圖”發(fā)送到顯示組件104,并且顯示組件104處理該屏幕截圖并估計該初步布局將需要五個單獨的圖表,這樣的信息可以被反饋回布局組件102,以重新結(jié)構(gòu)化樹來減少顯示所需要的圖表數(shù)量。與這樣的特征有關(guān)的進(jìn)一步優(yōu)化將在下面參考人工智能(AI)組件的實現(xiàn)來描述。
設(shè)計器工具還支持指定要在特定圖表或圖表的特定區(qū)域上集中注意力的特定類。這是通過標(biāo)記或加標(biāo)簽于焦點類和相關(guān)類為重要的,并且以所選擇的優(yōu)先級應(yīng)用上述選項來完成的。
圖8例示使用AI組件802的設(shè)計器工具系統(tǒng)800,AI組件802便于本發(fā)明方法對一個或多個學(xué)得特征的自動化。本發(fā)明(例如,結(jié)合選擇)可以使用各種基于AI的方案來完成其各種方面。例如,確定給定用戶如何更喜歡讓類似樹的結(jié)構(gòu)顯示為圖表的過程可以通過自動分類器系統(tǒng)或過程來促進(jìn)。
分類器是一個函數(shù),它將輸入屬性矢量x=(x1,x2,x3,x4,xn)映射到該輸入屬于一個類的置信度,即f(x)=confidence(class)。這樣的分類可以使用基于概率和/或統(tǒng)計的分析(例如,分解成分析效用和成本)來預(yù)測或推斷用戶希望自動執(zhí)行的動作。
支持矢量機(jī)(SVM)是可以使用的分類器的一個示例。SVM通過在可能輸入的空間中找出超曲面來操作,其中超曲面試圖將觸發(fā)準(zhǔn)則從非觸發(fā)事件中分離。直觀上,這使分類對于接近但不同于訓(xùn)練數(shù)據(jù)的測試數(shù)據(jù)是正確的。其它有向和無向模型分類方法包括,例如,單純貝葉斯、貝葉斯網(wǎng)絡(luò)、決策樹、神經(jīng)網(wǎng)絡(luò)、模糊邏輯模型和提供可以使用的不同獨立性模式的概率分類模型。如在此使用的分類也包括用于開發(fā)優(yōu)先級模型的統(tǒng)計回歸。
如從本發(fā)明說明書中容易意識到的,本發(fā)明可以使用顯式訓(xùn)練(例如通過一般訓(xùn)練數(shù)據(jù))的分類器和隱式訓(xùn)練(例如通過觀察用戶行為、接收外來信息)的分類器。例如,SVM通過分類器構(gòu)造器和特征選擇模塊內(nèi)的學(xué)習(xí)或訓(xùn)練階段來配置。因而,分類器可以用于自動學(xué)習(xí)和執(zhí)行許多功能,包括但不限制于下列。
在一個實現(xiàn)中,AI組件802便于按照預(yù)定準(zhǔn)則確定要將結(jié)構(gòu)劃分成多少圖表用于顯示。這可以基于在結(jié)構(gòu)中使用的數(shù)據(jù)類型。例如,在一個共享環(huán)境中,其中若干開發(fā)者正在同一文件上工作,每個開發(fā)者集中于該文件的不同方面,并且如果類似樹的結(jié)構(gòu)使用各種團(tuán)隊和功能的大組織圖,則得到的圖表可以基于開發(fā)者的給定焦點來確定。如果第一個開發(fā)者的焦點是財務(wù),例如,將第一個開發(fā)者的登錄信息或財務(wù)項輸入該工具將自動使該工具在創(chuàng)建顯示圖表時重新結(jié)構(gòu)化(例如,展開或收縮)樹來強(qiáng)調(diào)結(jié)構(gòu)的財務(wù)方面。
沿著同一條自動化線,可以為其焦點集中在與登錄信息或其它輸入項有關(guān)的特定類對象上的顯示重新結(jié)構(gòu)化樹。如果第二個開發(fā)者正在與管理相關(guān)聯(lián)的類對象上工作,則加標(biāo)簽于該類對象上的元數(shù)據(jù)可以用于基于某個輸入數(shù)據(jù)自動打開模型文件至第二個開發(fā)者的該位置。
適當(dāng)?shù)卦O(shè)計AI組件802,使得該工具可以例如通過觀察用戶過去所作的布局選擇來學(xué)習(xí)用戶偏好,并且在與該用戶將來的交互期間應(yīng)用相似的重新布局算法。不同用戶可具有布局規(guī)則的不同偏好。
另外,可以學(xué)習(xí)各種自動重新布局或整理算法。當(dāng)用戶首先布局圖表時,這默認(rèn)地可以是自動的。之后,可以為結(jié)構(gòu)的最終整理而選擇整理選項。另外,可以有用于支持該整理規(guī)則。一個用戶可能更喜歡一組規(guī)則而不是另一組。而且,可以在圖表層次處強(qiáng)制該規(guī)則,使圖表在屏幕資源中更緊湊。例如,該工具在AI組件802的協(xié)助下可以學(xué)習(xí)按照先前用戶的移動,或者例如按照平衡移動對象與對象的顯示的成本的成本分析決定來將對象移動到空白處。
現(xiàn)在參考圖9,例示了用于執(zhí)行所揭示的體系結(jié)構(gòu)的計算機(jī)的框圖。為了給本發(fā)明的各種方面提供附加的環(huán)境,圖9和下面的討論旨在提供適合于實現(xiàn)本發(fā)明各種方面的計算環(huán)境900的簡要概括描述。盡管已經(jīng)在上面在可以在一個或多個計算機(jī)上運行的計算機(jī)可執(zhí)行指令的一般上下文中描述了本發(fā)明,本領(lǐng)域的技術(shù)人員將認(rèn)識到,本發(fā)明還可以結(jié)合其它程序模塊和/或作為軟硬件組合來實現(xiàn)。
通常,程序模塊包括例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)等等,它們執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。而且,本領(lǐng)域的技術(shù)人員將意識到,本發(fā)明方法可以用其它計算機(jī)系統(tǒng)配置來實踐,包括單處理器或多處理器計算機(jī)系統(tǒng)、小型機(jī)、大型機(jī)、以及個人計算機(jī)、手持式計算設(shè)備、基于微處理器的或可編程消費電子產(chǎn)品等等,它們都可以有效地耦合到一個或多個相關(guān)聯(lián)的設(shè)備。
本發(fā)明的說明性方面還可以在分布式計算環(huán)境中實踐,其中某些任務(wù)是由通過通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備來執(zhí)行的。在分布式計算環(huán)境中,程序模塊可以位于本地或遠(yuǎn)程存儲器存儲設(shè)備中。
計算機(jī)一般包括各種各樣計算機(jī)可讀介質(zhì)。計算機(jī)可讀介質(zhì)可以是可以由計算機(jī)訪問的任何可用介質(zhì),并且包括易失性和非易失性介質(zhì)、可移動和不可移動介質(zhì)。作為示例而非限制,計算機(jī)可讀介質(zhì)可以包括計算機(jī)存儲介質(zhì)和通信介質(zhì)。計算機(jī)存儲介質(zhì)包括以用于存儲信息的方法和技術(shù)實現(xiàn)的任何易失性和非易失性、可移動和不可移動介質(zhì),這些信息諸如計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)。計算機(jī)存儲介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字視頻盤(DVD)或其它光盤存儲、磁帶盒、磁帶、磁盤存儲或其它磁存儲設(shè)備,或者任何可以用于存儲所需信息并可以由計算機(jī)訪問的其它介質(zhì)。
通信介質(zhì)一般具體化為諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號中的計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),并且包括任何信息傳輸介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”指以將信息編碼在信號中的方式設(shè)置或改變其一個或多個特性的信號。作為示例,而非限制,通信介質(zhì)包括有線介質(zhì),諸如有線網(wǎng)絡(luò)或直接線連接,以及無線介質(zhì),諸如聲學(xué)、RF、紅外或其它無線介質(zhì)。任何上述各項的組合也應(yīng)該包括在計算機(jī)可讀介質(zhì)的范圍內(nèi)。
再次參考圖9,例示了用于實現(xiàn)本發(fā)明各方面的示例性環(huán)境900,它包括計算機(jī)902,計算機(jī)902包括處理單元904、系統(tǒng)存儲器906和系統(tǒng)總線908。系統(tǒng)總線908將包括但不限于系統(tǒng)總線906在內(nèi)的系統(tǒng)組件耦合到處理單元904。處理單元904可以是任何各種市場上可購買的處理器。雙微處理器和其它多處理器體系結(jié)構(gòu)也可作為處理單元904使用。
系統(tǒng)總線908可以是若干類型總線結(jié)構(gòu)中的任一種,它們可進(jìn)一步與存儲器總線(帶有或不帶有存儲器控制器)、外設(shè)總線和使用各種各樣市場上可購買的總線體系結(jié)構(gòu)的局部總線互連。系統(tǒng)存儲器906包括只讀存儲器(ROM)910和隨機(jī)存取存儲器(RAM)912?;据斎?輸出系統(tǒng)(BIOS)存儲在諸如ROM、EPROM、EEPROM等非易失性存儲器910中,其中BIOS包含如在啟動期間幫助在計算機(jī)902內(nèi)的元素之間傳送信息的基本例程。RAM 912還可以包括高速RAM,如靜態(tài)RAM,用于高速緩存數(shù)據(jù)。
計算機(jī)902還包括內(nèi)部硬盤驅(qū)動器(HDD)914(例如EIDE、SATA),其中內(nèi)部硬盤驅(qū)動器914也可被配置為在合適的機(jī)箱(未示出)中供外部使用;磁軟盤驅(qū)動器(FDD)916(例如讀寫可移動盤918);以及光盤驅(qū)動器920(例如讀CD-ROM盤922,或者讀寫其它高容量光介質(zhì),如DVD)。硬盤驅(qū)動器914、磁盤驅(qū)動器916和光盤驅(qū)動器920可以分別通過硬盤驅(qū)動器接口924、磁盤驅(qū)動器接口926和光盤驅(qū)動器接口928連接到系統(tǒng)總線908。例如,用于外部驅(qū)動器實現(xiàn)的接口924包括通用串行總線(USB)和IEEE 1394接口技術(shù)的至少之一或兩者。其它外部驅(qū)動器連接技術(shù)都是本發(fā)明所構(gòu)想的。
驅(qū)動器及其相關(guān)聯(lián)的計算機(jī)可讀介質(zhì)提供數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)、計算機(jī)可執(zhí)行指令等等的非易失性存儲。對于計算機(jī)902,驅(qū)動器和介質(zhì)容納以合適數(shù)字格式的任何數(shù)據(jù)的存儲。盡管上面的計算機(jī)可讀介質(zhì)的描述提到了HDD、可移動磁盤和可移動光介質(zhì)如CD或DVD,但本領(lǐng)域的技術(shù)人員應(yīng)該意識到,計算機(jī)可讀的其它類型的介質(zhì),諸如zip驅(qū)動器、磁帶盒、閃存卡、盤式磁帶等等,也可以在示例性操作環(huán)境中使用,并且進(jìn)一步,任何這樣的介質(zhì)可包含用于執(zhí)行本發(fā)明方法的計算機(jī)可執(zhí)行指令。
許多程序模塊可存儲在驅(qū)動器和RAM 912中,包括操作系統(tǒng)930、一個或多個應(yīng)用程序932、其它程序模塊934和程序數(shù)據(jù)936。操作系統(tǒng)、應(yīng)用程序、模塊和/或數(shù)據(jù)的全部或部分也可以高速緩存在RAM 912中。要意識到,本發(fā)明可以用各種市場上可購買的操作系統(tǒng)或者操作系統(tǒng)的組合來實現(xiàn)。
用戶可以通過一個或多個有線/無線輸入設(shè)備,例如鍵盤938和定點設(shè)備(如鼠標(biāo)940)來將命令和信息輸入到計算機(jī)902。其它輸入設(shè)備(未示出)可包括話筒、IR遙控器、操縱桿、游戲墊、輸入筆、觸摸屏等等。這些和其它輸入設(shè)備常常通過輸入設(shè)備接口942(它耦合到系統(tǒng)總線908)連接到處理單元942,諸如并行端口、IEEE 1394串行端口、游戲端口、USB端口、IR接口等等。
監(jiān)示器944或其它類型的顯示設(shè)備也通過接口,如視頻適配器946連接到系統(tǒng)總線908。除監(jiān)示器944之外,計算機(jī)一般包括其它外設(shè)輸出設(shè)備(未示出),諸如揚聲器、打印機(jī)等等。
計算機(jī)902可使用通過有線和/或無線通信到一個或多個遠(yuǎn)程計算機(jī),如遠(yuǎn)程計算機(jī)948的邏輯連接在網(wǎng)絡(luò)化環(huán)境中運行。遠(yuǎn)程計算機(jī)948可以是工作站、服務(wù)器計算機(jī)、路由器、個人計算機(jī)、便攜式計算機(jī)、基于微處理器的娛樂設(shè)備、對等設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點,并且一般包括相對于計算機(jī)932所述的許多或全部元素,為了簡單起見,只例示了存儲器存儲設(shè)備950。所描繪的邏輯連接包括到局域網(wǎng)(LAN)952和/或較大網(wǎng)絡(luò),例如廣域網(wǎng)(WAN)954的有線/無線連接。這樣的LAN和WAN網(wǎng)絡(luò)環(huán)境在辦公室和公司中是很常見的,并且促進(jìn)企業(yè)級網(wǎng)絡(luò),如企業(yè)內(nèi)部互聯(lián)網(wǎng),它們?nèi)慷伎蛇B接到全球通信網(wǎng)絡(luò),例如因特網(wǎng)。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時,計算機(jī)902通過有線和/或無線通信網(wǎng)絡(luò)接口或適配器956連接到局域網(wǎng)952。適配器956可促進(jìn)到LAN 952的有線或無線通信,LAN925也可包括布置在其上的用于與無線適配器956通信的無線接入點。
當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時,計算機(jī)902可以包括調(diào)制解調(diào)器958,或者連接到WAN 954上的通信服務(wù)器,或者具有用于通過WAN 954,諸如通過因特網(wǎng)建立通信的其它裝置。調(diào)制解調(diào)器958可以是內(nèi)置或外置的和有線或無線設(shè)備,它通過串行端口接口942連接到系統(tǒng)總線908。在網(wǎng)絡(luò)化環(huán)境中,相對于計算機(jī)902描繪的程序模塊或者其部分可以存儲在遠(yuǎn)程存儲器/存儲設(shè)備950中。將意識到,所示的網(wǎng)絡(luò)連接是示例性的,并且可以使用在計算機(jī)之間建立通信鏈路的其它手段。
計算機(jī)902可以用于與操作上布置在無線通信中的任何無線設(shè)備或?qū)嶓w通信,例如,打印機(jī)、掃描儀、臺式和/或便攜式計算機(jī)、便攜式數(shù)據(jù)助理、通信衛(wèi)星、與無線可檢測標(biāo)簽(例如公共電話亭、報亭、休息室)相關(guān)聯(lián)的任何設(shè)備部分或位置、以及電話。這至少包括Wi-Fi和BluetoothTM(藍(lán)牙)無線技術(shù)。因而,通信可以是有關(guān)常規(guī)網(wǎng)絡(luò)的預(yù)定義結(jié)構(gòu),或僅僅是至少兩個設(shè)備之間的特別通信。
Wi-Fi或無線保真允許從家里的睡椅、旅館房間中的床或單位的會議室無線地連接到因特網(wǎng)。Wi-Fi是與蜂窩電話中使用的技術(shù)相似的無線技術(shù),它使例如計算機(jī)等設(shè)備能夠在戶內(nèi)外基站范圍內(nèi)的任何地方收發(fā)數(shù)據(jù)。Wi-Fi網(wǎng)絡(luò)使用稱為IEEE802.11(a,b,g等)的無線電技術(shù)來提供安全可靠的快速無線連接。Wi-Fi網(wǎng)絡(luò)可以用于將計算機(jī)相互連接、連接到因特網(wǎng)、以及連接到有線網(wǎng)絡(luò)(它使用IEEE 802.3或以太網(wǎng))。Wi-Fi網(wǎng)絡(luò)在非特許的2.4和5GHz無線電波段中例如以11Mbps(802.1a)或54Mbps(802.11b)數(shù)據(jù)速率運行,或者帶有包括兩種波段(雙波段)的產(chǎn)品,因此網(wǎng)絡(luò)可以提供與在許多辦公室中使用的基本10BaseT有線以太網(wǎng)網(wǎng)絡(luò)相似的真實世界性能。
現(xiàn)在參考圖10,例示了按照本發(fā)明的示例性計算環(huán)境1000的示意框圖。系統(tǒng)1000包括一個或多個客戶機(jī)1002。客戶機(jī)1002可以是硬件和/或軟件(例如,線程、進(jìn)程、計算設(shè)備)。例如,客戶機(jī)1002可以通過使用本發(fā)明容納cookie和/或相關(guān)聯(lián)的上下文信息。
系統(tǒng)1000還包括一個或多個服務(wù)器1004。服務(wù)器1004也可以是硬件和/或軟件(例如,線程、進(jìn)程、計算設(shè)備)。例如,服務(wù)器1004可以通過使用本發(fā)明容納執(zhí)行變換的線程。在客戶機(jī)1002與服務(wù)器1004之間的一種可能的通信可以是適用于在兩個或多個計算機(jī)進(jìn)程之間傳輸?shù)臄?shù)據(jù)包的形式。例如,數(shù)據(jù)包可包括cookie和/或相關(guān)聯(lián)的上下文信息。系統(tǒng)1000包括通信框架1006(例如,全球通信網(wǎng)絡(luò),諸如因特網(wǎng)),它可以用于促進(jìn)客戶機(jī)1002與服務(wù)器1004之間的通信。
通信可以通過有線(包括光纖)和/或無線技術(shù)來促進(jìn)??蛻魴C(jī)1002操作上連接到一個或多個客戶機(jī)數(shù)據(jù)存儲1008,它們可以用于存儲對客戶機(jī)1002本地的信息(例如,cookie和/或相關(guān)聯(lián)的上下文信息)。同樣,服務(wù)器1004操作上連接到一個或多個服務(wù)器數(shù)據(jù)存儲1010,它們可以用于存儲對服務(wù)器1004本地的信息。
上面已經(jīng)描述的內(nèi)容包括本發(fā)明的示例。當(dāng)然,不可能為了描述本發(fā)明而描述所有可能的組件或方法組合,但本領(lǐng)域的技術(shù)人員可認(rèn)識到,本發(fā)明的許多其它組合和改變是可能的。因此,本發(fā)明旨在包括落在所附權(quán)利要求書的精神和范圍內(nèi)的所有這樣的改變、修改和變體。而且,對于在詳細(xì)描述或權(quán)利要求書中使用的術(shù)語“包括”,要以與術(shù)語“包含”在權(quán)利要求中作為過渡詞解釋時相似的方式來包括。
權(quán)利要求
1.一種便于設(shè)計對象模型的系統(tǒng),包括布局組件,它接收具有不同種類的有向關(guān)系的一個或多個對象圖形作為輸入,并且將所述一個或多個圖形轉(zhuǎn)換成可編輯的類似樹的結(jié)構(gòu);以及顯示組件,它顯示所述可編輯的類似樹的結(jié)構(gòu)并且便于用戶與其交互。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述布局組件自動調(diào)整與所述類似樹的結(jié)構(gòu)的圖形符號相關(guān)聯(lián)的特征,其中,所述特征包括間距、位置、大小和形狀的至少之一。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述布局組件自動評估顯示屏幕資源并且為查看而調(diào)整所述類似樹的結(jié)構(gòu)。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述布局組件便于線的輸入,其中沒有線是相互交叉的。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述布局組件便于所述類似樹的結(jié)構(gòu)的全部或部分的展開和收縮。
6.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述布局組件便于放置圖形標(biāo)記作為裝飾,其中,放置在空間上是與所述類似樹的結(jié)構(gòu)的其它圖形標(biāo)記不同的。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述類似樹的結(jié)構(gòu)包括類對象。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述布局組件便于使用圖表慣例來區(qū)別以下各項至少之一類對象的定義、在嵌入或繼承關(guān)系中的類對象的使用、以及在引用關(guān)系中類對象的使用。
9.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述布局組件便于加亮所述類似樹的結(jié)構(gòu)的給定對象的所有描述,并且加亮以表示信息沿一條弧線的傳播。
10.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述布局組件便于在類對象的非定義性符號與相關(guān)聯(lián)的定義性符號之間導(dǎo)航。
11.一種具有存儲在其上的用于實現(xiàn)權(quán)利要求1所述的系統(tǒng)的計算機(jī)可執(zhí)行指令的計算機(jī)可讀介質(zhì)。
12.一種具有處理對象模型的方法的計算機(jī)可執(zhí)行指令的計算機(jī)可讀介質(zhì),所述方法包括接收類對象的有向關(guān)系;將所述有向關(guān)系處理成樹結(jié)構(gòu),所述樹結(jié)構(gòu)至少描繪所述類對象的關(guān)系和特性;以及將所述樹結(jié)構(gòu)顯示為交互式圖表。
13.如權(quán)利要求12所述的方法,其特征在于,還包括描繪帶有相關(guān)聯(lián)的符號的類對象,所述符號便于,展開和折疊所述樹結(jié)構(gòu)的繼承層次;展開和折疊所述樹結(jié)構(gòu)的關(guān)系;以及顯露和隱藏所述類對象的特性信息。
14.如權(quán)利要求12所述的方法,其特征在于,還包括提供圖表慣例,所述圖表慣例將特定類對象判別為定義性類;區(qū)別特定類對象在嵌入關(guān)系與繼承關(guān)系至少之一中的使用;以及顯露和隱藏特定類對象的特性。
15.如權(quán)利要求12所述的方法,其特征在于,還包括將多條線通道化成所述樹結(jié)構(gòu)的單一線,所述線在單點處連接特定類對象。
16.如權(quán)利要求12所述的方法,其特征在于,還包括在角色關(guān)系的樹結(jié)構(gòu)中顯示明確的代表性符號。
17.如權(quán)利要求12所述的方法,其特征在于,還包括在非性定義類對象與定義性類對象之間導(dǎo)航。
18.如權(quán)利要求12所述的方法,其特征在于,還包括加亮表示同一個類的所有節(jié)點。
19.如權(quán)利要求12所述的方法,其特征在于,還包括加亮所述樹結(jié)構(gòu)中它表示特性的跨關(guān)系傳播的一部分。
20.一種便于開發(fā)類圖表的系統(tǒng),所述系統(tǒng)包括用于接收包括具有一個或多個有向關(guān)系的對象的圖形的裝置;用于將所述圖形處理成描繪對象關(guān)系和對象特性的默認(rèn)樹結(jié)構(gòu)的裝置;用于將所述默認(rèn)樹結(jié)構(gòu)顯示為便于用戶編輯的交互式圖表的裝置;用于通過移動一個或多個對象將所述默認(rèn)樹結(jié)構(gòu)重新排序成新的樹結(jié)構(gòu)的裝置;用于基于定義性對象位置來優(yōu)化所述新樹結(jié)構(gòu)的顯示的裝置;以及用于將經(jīng)優(yōu)化的顯示呈現(xiàn)為一個或多個交互式圖表的裝置。
全文摘要
一種便于設(shè)計對象模型的設(shè)計工具。該工具將對象(例如類)圖形的計算機(jī)可讀表示作為輸入,并且自動地創(chuàng)建一個或多個圖表來將這些類描繪成可編輯的、顯示它們之間關(guān)系和特性的樹。這些圖形自然具有類似樹的結(jié)構(gòu),并由該方法來使用這種結(jié)構(gòu)。該設(shè)計工具系統(tǒng)包括一個布局組件,它接收一個或多個圖形作為輸入,并且將一個或多個圖形轉(zhuǎn)換成可編輯的類似樹的結(jié)構(gòu)。該系統(tǒng)還包括一個顯示組件,它將可編輯的類似樹的結(jié)構(gòu)顯示為類似樹的結(jié)構(gòu)圖表,并且便于用戶與其交互。該工具可以用于打開、編輯和保存現(xiàn)有的對象模型文件或創(chuàng)建新的對象模型文件。
文檔編號G06F17/50GK1801151SQ20051012909
公開日2006年7月12日 申請日期2005年12月6日 優(yōu)先權(quán)日2005年1月5日
發(fā)明者A·C·威爾斯, G·A·瓊斯, S·J·庫克, S·J·H·肯特 申請人:微軟公司