软件可视建模中连接树路由的计算机方法、装置以及系统的制作方法

文档序号:6563622阅读:130来源:国知局
专利名称:软件可视建模中连接树路由的计算机方法、装置以及系统的制作方法
技术领域
本发明涉及用于软件可视建模中连接树路由的方法、装置以及系统。
背景技术
在计算机编程领域,有各种工具来辅助软件程序(例如应用程序)的设计。此类程序设计工具的一个类型为可视建模类型。UML为一种示例可视建模语言(具有形式语法与语义),用于交流模型或者概念化。建模语言规范规定了建模元素、符号表示方法和用法指南而非活动的次序、伪像的规范、资料档案库接口、存储、运行时性态等等。
一般地,在建模层上,就客户的需要与要求提出“问题”,并且可以称为业务问题系统。软件设计者开发处理该问题的“解决方案”软件产品和/或服务。UML语法使软件设计者能够以标准化的方式表达(描述并且建档)主题问题与解决方案,而UML语义使之能够获得关于在问题解决过程期间要获取和支持的主题系统的知识。参见Simon Si Alhir所著并且由O’Reilly&Associates于1998年9月出版的《UML in a Nutshell》。由此,在设计软件产品的迭代的问题解决过程中,UML使之能够共享信息(包括现有解决方案部分)与核心面向对象概念(分析与设计)的扩展(没有再实现)。
可视建摸语言中的连接树路由为连通/边以直角方式路由并且连接到公共树主干中。其外观为连通表现为从一组节点到以单个节点为目标的“主干”的分支。
简单地说,“倾斜路由”指未以直角方式约束的连接路由。“弯曲点”为线路由经过的连接中的点的位置。“路由器”为管理约束到弯曲点的连接布局的类。“节点”为图示上可以通过连接(connection)而连接到其它节点的形状。“连接”为图示上将两个节点连接在一起的线。
连接树路由为用于可视建模图示的技术,其中必须有图示上节点的分层视图。节点之间关系的定向必须使得当在遍历节点时不存储循环。另外,对于任意给定节点,进入边只能是
,即没有或者一个。其中使用这种格局的路由的例子出现在UML类图示中,其中节点为类,并且连接表示图示上类之间的一般化。
这一般在存储器中表示为每个连接都连接到的中心主干元素。如图1所示,实现部分表示“主干”19,虚线连接13附接于主干19,以形成连接树路由17。
其问题出现许多方面1、确保那些连接响应于在用户所加入的连接的一或多个中的移动而保持同步。移动树中的连接之一可能会破坏树的完整性。处理这一问题的实现经常通过中心“主干”元素来管理树,从而使对于树中加入连接的重新定向与删除的使用情况过于复杂。“主干”元素过多地承担以下责任其必须监听所有加入的连接,并且管理附接位置,以及当附接时改变连接弯曲点。这易于引起实现中的错误,并且由于所需监听器的数目-O(n)而具有潜在的性能缺点。
2、对多树连接结构的支持不是自动的——即,每个树必须被手工地移动与操纵以免妨碍其它树。上述中心“主干”元素需要关于其它加入的“主干”的知识,并且相应地调整自身。这样,问题在于将哪个树主干元素指定为首要的,以调整主干之间的重叠。
3、相对于逻辑上连接所连接到的实际视图来说,该连接必须在作为其目标(“主干”)的视图的方向上。必须安排特殊代码以理解真实语义目标为主干连接到的节点,而非“主干”。
4、该结构的持久性不直观,从而造成潜在的团队情景问题。在模型文件中持久存在的“主干”是什么?是节点还是连接的特殊情况?这也会造成基于情景的团队问题,其中两个或更多个团队成员正在修改同一图示文件。如果一个团队成员将路由器改变为“倾斜”格局、而另一个团队成员将路由器改变为“树”,则这两项文件改变之间的结果的文件差异不会小(新元素+新目标视图),并且不容易被合并整合者理解。直观改变将为不大的格局改变以便不同地路由连接。

发明内容
本发明处理现有技术的上述问题。
在优选实施例中,提供了用于软件可视建模中连接树路由的计算机方法与装置。树路由格局被表示为面对的连接的属性。路由器对象管理连接树中面对的连接的弯曲点的位置。面对的连接保持末端节点作为其目标而非连接树的主干。然后,可以相应地在可视建模图示中显示连接树。
路由器对象由路由器分层形成。优选地,该分层包括分支路由器、树路由器、以及森林路由器。不同的路由器管理形成在可视建模图示中连接树的显示的树数据的不同方面。


从以下对本发明优选实施例的更具体的描述,可以清楚看出本发明有以上以及其它目的、特征、以及优点,在附图中显示了本发明优选实施例,其中相同的附图标记表示相同的元素。附图不一定遵照比例,重点在于说明本发明的原理。
图1为具有树路由一般化的UML类图示的示意图。
图2为说明连接结构的UML类图示的示意图。
图3为说明路由器分层的UML类图示的示意图。
图4为本发明实施例中用于树路由的交互流的示意图。
图5为其中部署本发明实施例的计算机网络环境的示意图。
图6为图5网络的计算机节点的方框图。
具体实施例方式
以下为本发明优选实施例的描述。
本发明提供了以下的对现有技术问题的解决方案。在本发明中,树路由格局被认为是连接自身的属性,并且路由器对象管理弯曲点的位置以有利于树的外形。路由器是理解如何根据约束修改连接的弯曲点的类。约束经常只是用户已经通过在建模图示上的示意而定义的另一组弯曲点。使用该路由器概念,连接保持其目标作为末端节点而非该中间的“主干”元素。这样就不需要对重新定向与删除的定制处理,这是因为性态与只利用不同算法路由(即“倾斜路由”)的连接相同。另外,因为连接被存储为弯曲点列表,所以给予了文件持久性,而不需要冗余的“主干”元素,因而解决了现有技术中的许多团队问题。作为冲突的结果,文件只合并标志,文件整合者可以容易地解决的路由格局的改变。
但是,路由器管理连接的弯曲点的概念不是唯一的。生产图示框架融入了这一思想。问题在于个别路由器自身需要被管理,以保持连接同步在一起,以形成树的外形。这通过容纳一系列的路由器实现,这些路由器管理树数据的不同方面以形成连接树。在最低层上,“分支”路由器知道如何路由树中直角的连接。“分支”路由器了解诸如主干的位置一样的“树”属性并且相应地路由。
分层中的下一个为“树”路由器。“树”路由器保持主干的位置,并且知道哪些连接加入“树”。
最后,“森林”路由器保证连接到特定目标的所有“树”结构都没有重叠主干,从而围绕特定连接的源与目标不会有混淆。
参照图2,并且作为介绍,首先进行关于连接13是什么以及其如何被保持的某些假定,然后为本发明优选实施例的具体细节。连接13具有(i)其所附接的源节点与目标节点。
(ii)一般表示为(x,y)位置的弯曲点的列表。
(iii)给予路由器制作者提示以返回私有存储的特定路由器类的路由格局。
例如,这表示为图2所示的UML类图示。
上述的本发明的解决方案具有路由器的包容分层21,其中三个层的路由器管理树连接结构。这三个层被称为“森林”路由器23、“树”路由器25、以及“分支”路由器27,其中每一个负责管理(多个)树连接结构17的不同方面。“森林”路由器23了解“树”路由器25,但是“树”路由器25不一定要具有“森林”路由器23的知识。换言之,“树”路由器25不关心其是否在森林中,并且可以独立地使用。但是,“分支”路由器27必须了解它的“树”路由器25,并且不能独立地存在以路由到主干位置。
图3所示的另一UML类图示显示了路由器的分层21。
为了正确地将连接13在连接树结构17中路由,存在可能会发生的几种交互。首先为创建使用情形,其中连接13首次参加树结构17,并且需要改变其路由格局及其所有弯曲点。第二为用户改变树结构17中连接13的位置,这可能会使树相应地调整树17中所有其它连接13。这两者的唯一区别在于在创建使用情形中,“分支”路由器27从“树”路由器25检索主干顶点位置,以重新创建分支点。在第二种情形中,“分支”路由器27根据路由器29中的用户约束计算主干顶点位置,然后通知“树”路由器25新值,从而“树”路由器25然后可以更新连接树结构17中的其它分支。
在图4中(大致)显示并且在以下描述树路由的交互。在交互中,通过用户示意31设置(步骤1)路由格局为“树路由”,或者移动连接13从而产生对路由器29的调用。连接13利用根据用户示意计算的约束(或者空约束),对其所拥有的路由器29调用“路由”方法(步骤2)。如果用户将线段上移,则本发明的系统33改变点,并且将控制传递给路由器分层21的路由器方法。
作为顶层路由器,调用ForestRouter(森林路由器)23的“route”(路由)方法,其然后根据连接13的某些属性(类型、提示等等),利用“getSubRouter”(获得子路由器)计算使用哪个树路由器(步骤3)。
接着,调用TreeRouter(树路由器)25的“route”(路由)方法(步骤4),TreeRouter 25然后检查(步骤5)是否存在当前主干顶点值集合(“checkTrunkVertex”(检查主干顶点)),并且根据源形状的方向设置缺省值。
调用BranchRouter(分支路由器)27的“route”(路由)方法(步骤6),如果是相同的,BranchRouter 27首先从传递进来的约束中获得主干位置值(步骤7),否则使用在TreeRouter 25中存储的值。然后在步骤8将新值向上传递给TreeRouter 25,TreeRouter 25确定是否需要通知加入树结构的其它连接。接着,在步骤9,根据约束或者使用缺省值,计算分支的源位置。源位置与主干位置的组合被传递给“recreateBranch”(重新创建分支)(步骤10),以根据这两个值生成分支点。结果,显示对应的连接树或者以其它方式响应于用户31在可视建模图示中绘制连接树。
最终,执行返回到ForestRouter 23,其基于新主干值确定是否发生与其它树的重叠,并且如果发生,则采取纠正措施。
图5显示其中可以实现本发明的计算机网络或者类似的数字处理环境。
(多个)客户端计算机/设备50与(多个)服务器计算机60提供处理、存储、以及输入/输出设备,用来执行应用程序等等。(多个)客户端计算机/设备50也可以通过通信网络70链接到其它计算设备,包括其它客户端计算机/设备50与(多个)服务器计算机60。通信网络70可以为远程访问网络、全球网络(例如因特网)、全球计算机集合、局域或广域网、以及网关的一部分,其当前使用相应的协议(TCP/IP、蓝牙等等)来相互通信。其它电子设备/计算机网络体系结构也是适合的。
图6为图5计算机系统中的计算机(例如客户端计算机/设备50或服务器计算机60)的内部结构的图示。每个计算机50、60都包含系统总线79,其中总线为用于计算机或者处理系统的组件之间数据传送的一组硬件线路。总线79在实质上为连接计算机系统的不同元件(例如处理器、磁盘存储、存储器、输入/输出端口、网络端口等等)的共享导体,其使之能够在元件之间传送信息。I/O设备接口82附接到系统总线79,用来将各种输入与输出设备(例如,键盘、鼠标、显示器、打印机、扬声器等等)连接到计算机50、60。网络接口86允许计算机连接到附接到网络(例如图5的网络70)的各种其它设备。存储器90提供用于实现本发明实施例(例如路由器分层21、路由器对象29、以及以上详述的系统例程/程序33的交互方法与操作)的计算机软件指令92与数据94的易失存储。磁盘存储器95提供用于实现本发明实施例的计算机软件指令92与数据94的非易失存储。中央处理单元84也附接到系统总线79,并且提供对计算机指令的执行。
在一种实施例中,处理器例程92与数据94为计算机程序产品(总体标记为92),包括计算机可读介质(例如可去除存储介质,例如一或多个DVD-ROM、CD-ROM、小盘、磁带等等),其提供至少一部分的软件指令用于本发明系统。计算机程序产品92可以由本领域公知的任何可用的软件安装程序安装。在另一实施例中,至少一部分软件指令也可以通过线缆、通信和/或无线连接下载。在其它实施例中,本发明程序为在传播介质(例如通过全球网络(例如因特网)或者(多个)其它网络传播的无线电波、红外线波、激光波、声波、和电波)上的传播信号上承载的计算机程序被传播的信号产品107。此类载波介质或者信号提供至少一部分用于本发明例程/程序92的软件指令。
在可替换实施例中,传播信号为模拟载波或者在传播介质上运送的数字信号。例如,传播信号可以为在全球网络(例如因特网)、电信网络、或者其它网络上传播的数字化信号。在一种实施例中,传播信号为通过传播介质在一段时间内传送的信号,例如用于以数据分组在网络上在毫秒、秒、分钟或者更长的周期内发送的软件应用的指令。在另一实施例中,如上针对计算机程序传播的信号产品所述,计算机程序产品92的计算可读介质为计算机系统可以接收与读取的传播介质,例如通过接收传播介质并且识别在传播介质中承载的传播信号。
一般地说,术语“载波介质”或者瞬间载波包含以上瞬间信号、传播信号、传播介质、存储介质等等。
本发明可以采用全部硬件实现、全部软件实现、或者包含软件与硬件元件两者的实现的形式。在优选实施例中,本发明以软件实现,其包含但不限于固件、驻留软件、微代码等等。
另外,本发明可以采用可以从提供程序代码以由计算机或任何指令执行系统使用或者与其联合使用的计算机可用或者计算机可读介质访问的计算机程序产品的形式。对于本说明书,计算机可用或者计算机可读介质可以为可以包含、存储、交流、传播、或者传输由指令执行系统、装置、或者设备使用或者与其联合使用的程序的任何装置。
介质可以为电子、磁、光学、电磁、红外线、或者半导体系统(或者装置或者设备)或者传播介质。计算机可读介质的例子包括半导体或者固态存储器,磁带、可去除计算机小盘、随机访问存储器(RAM)、只读存储器(ROM)、硬磁盘、与光盘。光盘的当前例子包括密致盘-只读存储器(CD-ROM)、密致盘-读/写(CD-R/W)与DVD。
适合于存储和/或执行程序的代码的数据处理系统包括通过系统总线直接或者间接耦合到存储器元件的至少一个处理器。存储器元件可以包括在实际执行程序代码期间使用的本地存储器、海量存储器、以及高速缓存存储器,其提供对至少某些程序代码的暂时存储,以减少在执行期间必须从海量存储器中检索的次数。
输入/输出或I/O设备(包括但不限于键盘、显示器、定点设备等等)可以直接或者通过中间I/O控制器耦合至该系统。
网络适配器可以耦合至该系统以使数据处理系统能够通过中间的私有或者公共网络耦合到其它数据处理系统或者远程打印机或者存储设备。调制解调器、电缆调制解调器、与以太网卡只是几种当前可用的网络适配器类型。
虽然具体显示并且参照其优选实施例描述了本发明,但是本领域技术人员应该理解在不脱离权利要求限定的本发明的范围的前提下,可以对形式与细节进行各种修改。
权利要求
1.一种用于软件可视建模中连接树路由的方法,包括以下计算机实现的步骤将树路由格局表示为当前面对的连接的属性,该面对的连接具有各自的末端节点;使用路由器对象,管理在相应的连接树中所述面对的连接的弯曲点的位置,其中以使所述面对的连接能够保持末端节点作为其目标而非所述相应的连接树的主干元素的方式进行所述管理;以及向用户绘制所述连接树的显示。
2.如权利要求1所述的方法,其中所述路由器对象根据约束修改弯曲点的位置。
3.如权利要求2所述的方法,其中所述约束为用户通过在可视建模图示上的示意来定义的。
4.如权利要求1所述的方法,其中所述路由器对象由路由器分层形成,其中不同的路由器管理连接树的不同方面。
5.如权利要求4所述的方法,其中所述路由器分层包括该分层的最低层上的分支路由器,用来路由在连接树中成直角的所述面对的连接;该分层的中间层上的树路由器,用来保持连接树主干的位置;以及该分层的最高层上的森林路由器,用来防止连接到相同目标的连接树的主干的重叠。
6.如权利要求5所述的方法,其中所述树路由器还监控哪些连接正在加入连接树。
7.一种用于可视建模系统中连接树路由的计算机装置,包括面对的连接,具有弯曲点与各自的末端节点、表示为所述面对的连接的属性的树路由格局;路由器对象,管理在相应的连接树中面对的连接的弯曲点的位置,其中以使所述面对的连接能够保持末端节点作为其目标而非相应的连接树的主干元素的方式进行所述管理;和显示生成器,用来在可视建模图示中绘制所述连接树的显示。
8.如权利要求7所述的计算机装置,其中所述路由器对象根据约束修改弯曲点的位置。
9.如权利要求8所述的计算机装置,其中所述约束为用户通过在可视建模图示上的示意来定义的。
10.如权利要求7所述的计算机装置,其中所述路由器对象由路由器分层形成,其中不同的路由器管理连接树的不同方面。
11.如权利要求10所述的计算机装置,其中所述路由器分层包括该分层的最低层上的分支路由器,用来路由在连接树中成直角的面对的连接;该分层的中间层上的树路由器,用来保持连接树的主干的位置;以及该分层的最高层上的森林路由器,用来防止连接到相同目标的连接树的主干的重叠。
12.如权利要求11所述的计算机装置,其中所述树路由器还监控哪些连接正在加入连接树。
13.如权利要求11所述的计算机装置,其中所述分支路由器还保持对于连接树的一或多个属性的指示。
14.如权利要求13所述的计算机装置,其中一个属性是连接树的主干的位置。
15.一种用于软件可视建模中连接树路由的计算机系统,包括用来将树路由格局表示为面对的连接的属性的部件,该面对的连接具有弯曲点与各自的末端节点;编程对象部件,用来管理在相应的连接树中的面对的连接的弯曲点的位置,其中以使面对的连接能够保持末端节点作为其目标而非相应的连接树的主干元素的方式进行所述管理;和显示部件,用来在可视建模图示中绘制所述连接树的显示。
16.如权利要求15所述的计算机系统,其中所述编程对象部件根据包括用户定义的约束的输入约束来修改弯曲点的位置。
17.如权利要求15所述的计算机系统,其中所述编程对象部件包括路由器分层,其中不同的路由器管理连接树的不同方面。
18.如权利要求17所述的计算机系统,其中所述路由器分层包括该分层的最低层上的分支路由器,用来路由在连接树中成直角的面对的连接;该分层的中间层上的树路由器,用来保持连接树主干的位置;以及该分层的最高层上的森林路由器,用来防止连接到相同目标的连接树的主干的重叠。
19.如权利要求18所述的计算机系统,其中所述路由器还监控哪些连接正在加入连接树。
20.一种计算机程序产品,包括具有用于连接树路由的计算机可读程序的计算机可用介质,其中该计算机可读程序当被计算机执行时使计算机将树路由格局表示为面对的连接的属性,该面对的连接具有各自的末端节点;使用路由器对象,管理在相应的连接树中的面对的连接的弯曲点的位置,其中以使面对的连接能够保持末端节点作为其目标而非相应的连接树的主干元素的方式进行所述管理;和在可视建模图示中绘制所述连接树的显示。
全文摘要
公开了用于软件可视建模中连接树路由的计算机方法与装置。树路由格局被表示为面对的连接的属性。路由器对象管理连接树中面对的连接的弯曲点的位置。面对的连接保持末端节点作为其目标而非连接树的主干元素。路由器对象由路由器分层形成,包括分支路由器、树路由器、以及森林路由器。不同的路由器保持形成连接树的显示的树数据的不同方面。
文档编号G06F9/44GK1983175SQ200610160398
公开日2007年6月20日 申请日期2006年11月15日 优先权日2005年12月15日
发明者史蒂文·R·肖 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1