当前位置: 首页 > 专利查询>微软公司专利>正文

跨动态边界的运行时分析的可视化制造技术

技术编号:6827169 阅读:202 留言:0更新日期:2012-04-11 18:40
通过将运行时和静态信息进行相关来导出增强软件体系结构图表,从而允许执行图表跨越运行时确定边界。运行时确定边界由在运行时作出的决策来定义,例如客户机-服务器边界、机器-机器边界、数据库-查询程序边界、web服务提供者-消费者边界、工厂调用程序-实例边界、接口调用-实现类边界、以及反射边界。相关可以涉及例如标识类型的实例、跟踪注入到通信信道的标识符、使用因果关系挂钩、和/或将离开调用程序的消息与进入被调用程序的消息进行比较。

【技术实现步骤摘要】
跨动态边界的运行时分析的可视化背景各种工具和技术被用于计算机程序分析。部分或完全自动化的程序分析可以帮助进行程序优化、程序验证、程序实现(初始创建和/或后续修改)、程序缺陷检测、程序移植(porting)、以及其他努力。在分析计算机程序的行为时,给定方法可以检查和/或利用类型系统、源代码注释、模型检验、体系结构图表、性能配置文件(profile)、探测工具 (instrumentation)、程序切片、继承/依存关系图、和/或其他工具和技术。在程序分析中采用的两种不同的方法是动态程序分析和静态程序分析。动态程序分析是通过在真实和/或虚拟处理器上执行程序来执行的。可以选择测试输入以产生感兴趣的程序行为来进行动态分析;在一些情况下,也可使用来自实况生产服务器的输入。诸如代码覆盖等技术可以帮助确保获得被测试的程序的可能行为的代表性样本。然而,用来获得动态测试数据的探测工具可以更改被测试程序的执行速度和/或其他特性。静态代码分析是在不执行被分析的程序的情况下执行的。静态分析可以针对源代码、中间代码或其他目标代码、或这两者执行。例如,静态分析的深度和广度在只考虑各单独语句和声明的分析与考虑程序的完整源代码的分析之间变化。概述一些软件应用程序对提供不同角色、使用不同的技术、来自不同的供应商、和/或在其他方面彼此不同的片段进行组合。结果,可以定义软件应用程序的各部分之间的边界。 然而,用来生成体系结构图表的分析工具通常不能自动地跨越这些边界,因而开发人员缺少可帮助改进或改编该应用程序的信息。本文描述的一些实施例提供用于使用运行时所生成的数据来将各软件体系结构图表进行相关以提供横跨运行时确定边界的增强体系结构图表的一种或多种方法。“运行时确定边界”是在体系结构中至少部分地由在运行时作出并且因此不服从纯粹静态程序分析的决策所定义的边界。运行时确定边界的一些示例包括客户机-服务器边界、机器-机器边界、数据库-查询程序边界、web服务提供者-消费者边界、工厂调用程序-实例边界、 接口调用-实现类边界、以及反射边界。本文提供的一些方法定位软件体系结构中的运行时确定边界,获取程序(即软件体系结构的实例)的执行的运行时信息,以及将该运行时信息与静态软件体系结构图表进行相关。例如,运行时信息可以与顺序图表、分层图表、活动图表、类图表、和/或依存关系图表相关。相关可以通过例如标识类型的实例、通过跟踪注入到通信信道的标识符、通过使用因果关系挂钩、和/或通过将离开调用程序的消息与进入被调用程序的消息进行比较来实现。本文描述的方法产生对跨运行时确定边界的执行历史进行记录(document)的增强体系结构图表。程序随后可被再次执行,并且可以产生第二增强体系结构图表以记录跨运行时确定边界的第二执行历史。这两个增强体系结构图表的比较可帮助开发人员更好地理解该程序。类似地,可以执行该程序的不同版本,并且该运行时信息可以被用来产生横跨运行时确定边界的另一增强体系结构图表。元数据也可被附加到数据源并且跨运行时确定边界来传播。给出的示例仅是说明性的。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。相反,提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的某些概念。本专利技术用权利要求书来定义,且在本概述与权利要求书冲突的情况下,应以权利要求书为准。附图说明将参考附图来给出更具体的描述。这些附图仅示出了所选方面,且因此未完全确定覆盖或范围。图1是示出具有至少一个处理器、至少一个存储器、诸如应用程序等软件体系结构的至少一个实例并具有可存在于多个网络节点上的操作环境中的其他项的计算机系统并且还示出配置的存储介质实施例的框图;图2是示出用于将软件体系结构的静态信息和运行时信息进行相关的示例方法的示图;图3是示出一些过程的步骤和配置的存储介质实施例的流程图;图4示出适于进行本文所教导的相关的静态体系结构图表的示例;图5示出适于进行本文所教导的相关的、图形式的静态体系结构的示例;图6示出通过将运行时信息与图4的静态体系结构图表进行相关来产生的增强体系结构图表;图7示出跨运行时确定边界的增强体系结构图表,它是通过将运行时信息与图4 的静态体系结构图表以及其他静态信息进行相关来产生的;以及图8示出跨运行时确定边界的增强体系结构图表,它是通过将运行时信息与图形式的静态信息进行相关来产生的。具体实施例方式概览当前软件应用程序使用各种技术和方法来帮助解除给定应用程序的各部分的耦合。解耦技术/方法的一些示例包括web服务以及其他远程过程/调用技术、数据库调用、 以及工厂模式。本文还描述了和/或开发人员也熟悉解耦组件的其他示例。解耦创建应用程序的各部分之间或不同的应用程序之间的明确定义的一组边界。在运行时通过诸如订单处理组件调用外部信用卡处理服务、库存系统调用库存数据库以检索数量信息、基于系统配置来创建图形用户界面(⑶I)等动作以及许多其他动作,跨越这些边界。为了理解该应用程序以使得它可被改进或维护,从现有应用程序生成体系结构图表通常是有用的,并且有时是至关重要的。然而,生成这样的图表通常因为上述边界而不完整。用来生成这些图表的静态分析工具没有适当的方式来自动地跨越这些系统边界并将结果进行记录。例如,在以上示例中的第一示例中,静态图表将示出订单处理系统内的所有调用,但没有示出对信用卡处理服务的调用及其后续处理。同样,在第二示例中,静态图表将示出库存逻辑,但不能示出数据库调用和任何后续处理。在第三示例中,代码的静态分析将不足以完全描绘创建哪一 GUI。本文描述的一些实施例提供一组特征,该组特征便于并支持生成跨经解耦的系统边界的体系结构图表。这些特征可以在开发工具中提供,如Microsoft Visual Studio Team System解决方案的一个版本,以及其他已授权工具(微软公司的标记)。这些特征中的一些包括对正在运行的应用程序的动态记录和跟踪、对应用程序的源代码的静态分析 (例如,从源代码生成顺序图表)、探测现有代码来产生运行时踪迹、能够将以上踪迹归并成一个数据图的分析引擎、以及使用这样的数据图来生成增强体系结构图表。各对应能力的一些示例在以下场景中示出。用户参与对要被分析的应用程序的一些或所有部分的动态记录。用户运行该应用程序以提供运行时数据以供分析。在运行该应用程序时,一实施例生成适当的日志和踪迹。这些踪迹可包含标识符,例如类型、方法、以及服务的统一资源标识符(URI)和其他ID。或者,可从对应用程序执行的仿真收集运行时数据的部分或全部,例如通过在硬件或软件仿真器上运行该应用程序。如本文所使用的,“执行”以产生运行时数据包括两种可能性,即实况执行和/或仿真执行。分析引擎构造踪迹和 /或其他运行时数据的数据图,并使用标识符将跨系统边界的调用缝合在一起。该实施例使用数据图来构造增强体系结构图表,例如与运行时信息相关并且由该运行时信息在视觉上增强的顺序图表。一些实施例为诸如类型、方法、以及这些方法之间的调用等应用程序人工产物提供公共寻址方案。这一寻址方案可由静态和动态分析代码来共享。一些实施例提供使用该共享的寻址方案来将这些多个图链接在一起的过程。在自动化链接不可能的情况下,一些实施例帮助用户将这些本文档来自技高网...

【技术保护点】
1.一种使用运行时生成的数据来将各软件体系结构图表进行相关的方法,该方法被用于设备中的可与至少一个逻辑处理器进行通信的存储器中,该方法包括以下步骤:定位(302)软件体系结构中的运行时确定边界,所述软件体系结构至少部分地由至少一个软件体系结构图表来表示;获取(304)所述软件体系结构的实例的至少一个执行的运行时信息;以及将所述运行时信息的至少一部分与至少一个软件体系结构图表进行相关(306),从而产生对跨所述运行时确定边界的执行历史进行记录的增强体系结构图表。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:S·杜塔B·克劳福德
申请(专利权)人:微软公司
类型:发明
国别省市:US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1