CN104350475A - 可视化的代码审阅 - Google Patents

可视化的代码审阅 Download PDF

Info

Publication number
CN104350475A
CN104350475A CN201380029866.9A CN201380029866A CN104350475A CN 104350475 A CN104350475 A CN 104350475A CN 201380029866 A CN201380029866 A CN 201380029866A CN 104350475 A CN104350475 A CN 104350475A
Authority
CN
China
Prior art keywords
code
visual
user interface
assembly
difference
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380029866.9A
Other languages
English (en)
Other versions
CN104350475B (zh
Inventor
J·王
L·唐
Y·宣
R·L·达玛塔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN104350475A publication Critical patent/CN104350475A/zh
Application granted granted Critical
Publication of CN104350475B publication Critical patent/CN104350475B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Abstract

在代码审阅的上下文中提供对用户界面代码结果的可视化。能够对用户界面代码的改变可视化以使得代码审阅者能够容易地理解这些改变的效果。此外,可视化或视图向用户提供用于向开发者提供精确反馈的表面。

Description

可视化的代码审阅
背景
软件开发过程通常包括在初始开发阶段期间及之后以及在测试之前的代码审阅。代码审阅(即同行审阅)是检查计算机源代码并且向开发者提供反馈的过程。目的在于在开发过程中的早期(与开发的较晚阶段(例如,测试、剖析……)相比在定位和解决问题方面相对成本较低时)为标识和纠正软件中的缺陷和漏洞提供实施方法。审阅涉及对代码的逐行检查以检查缺陷、与设计要求的相符性、以及遵循代码编写标准等。存在多种工具用于实现代码作者与审阅者之间的协调以及自动化审阅过程。一般而言,这些工具比较源代码的各版本、在每行的基础上标识代码中的文本差别、并且管理评论。
发明内容
下面呈现了简化的发明内容,以便提供对所公开主题的某些方面的基本概念。本发明内容不是广泛性的概观。它并不旨在标识关键/重要元素,也不旨在划定所要求保护主题的范围。其唯一目的是以简化形式呈现一些概念,作为稍后呈现的更具体实施例的序言。
简言之,本发明涉及可视化的代码审阅。可视化可被呈现关于用户界面代码在包括用户界面代码的源代码的执行期间创建了什么。例如,用户界面代码从第一版本到第二版本的改变也可被可视化,从而允许代码审阅者毫无困难地识别出这些改变的结果。代码审阅者还可向代码创作者提供对于可视化或视图的精确反馈。换言之,视图提供了接受来自代码审阅者的评论并将该评论传达给开发者的表面。
为实现上述及相关目的,在此结合以下描述和附图描述了所要求保护主题的某些说明性方面。这些方面指示可实践本主题的各种方式,它们均落在所要求保护主题的范围之内。当结合附图阅读以下详细描述时,本发明的其他优点和新颖特征将变得显而易见。
附图说明
图1是可视化的代码审阅系统的框图。
图2示出了示例性可视化。
图3是包括建议组件的可视化的代码审阅系统的框图。
图4是代码审阅的方法的流程图示。
图5是自动化代码审阅的流程图示。
图6是示出用于本公开各方面的合适操作环境的示意性框图。
具体实施方式
常规地,差别/比较工具可用于帮助代码审阅。然而,这样的工具对于要检查代码行的代码审阅者而言是繁重且低效的,尤其在试图确定对用户界面的改变(包括自动创建的代码)是对用户界面的提升还是使得用户界面更糟的情况下。此外,如果代码审阅者标识出一问题,难以向代码创作者提供精确反馈。
以下的详细描述一般涉及可视化的代码审阅。与常规的逐行检查代码相反或与之相结合,用户界面代码的结果被可视化以便于代码审阅。例如,用户界面代码跨版本的改变也可被可视化,从而允许代码审阅者毫无困难地识别出这些改变的结果。代码审阅者还可向代码创作者提供对于可视化或视图的精确反馈。此外,可自动地根据已知的要求(例如,设计、代码标准……)来分析代码,并且可经由关于视图的建议或与视图无关的建议来向代码审阅者通知该分析的结果。尽管未对其作出限制,但本文公开的功能中的至少一子集可被注入差别/比较工具从而导得到增强的差别/比较工具。
现在参考附图更详细地描述本发明的各个方面,在全部附图中用相似的标记来指示相似或相应的元素。然而应该理解,附图及其相关详细描述不旨在将所要求保护的主题限于所公开的具体形式。相反,其意图是覆盖落在所要求保护主题的精神和范围之内的所有修改、等价物和替换的方案。
首先参考图1,示出了可视化的代码审阅系统100。系统100包括代码标识组件110、可视化组件120、反馈组件130和差别组件140。代码标识组件110被配置为接收、检索或以其他方式获得或获取源代码或仅仅以特定计算机编程语言编写的代码。在获取代码之后,代码标识组件110被配置为标识用户界面代码,或换言之,在执行时产生图形元件(例如,窗口、菜单、图标……)和文本的各种组合以与终端用户通信的代码。将代码标识组件110的输出,即用户界面代码,提供给可视化组件120或以其他方式使其对可视化组件120可用。
可视化组件120被配置为可视化用户界面代码的结果。更具体地,可视化组件120被配置为呈现一组一个或多个可视化或视图,在用户界面代码在程序执行的上下文中被执行时将产生该组可视化或视图。此处,呈现指的是生成稍后可在连接到计算机或其他基于处理器的设备的物理显示器(例如,LCD、触摸屏……)上呈现的显示格式的内容。代码审阅常常关注代码或代码状态的差别。由此,可视化组件120可生成两个视图,一个表示第一状态而另一个表示第二状态。以此方式,代码审阅者可在视觉上比较两个视图并容易地标识出两个视图之间的差别。
反馈组件130被配置为接受输入,诸如来自代码审阅者的反馈,并且与可视化组件120交互来可视化关于特定视图的反馈。例如,反馈组件130可发起对视图的再次呈现以包括其上覆盖的反馈。根据一实施例,反馈组件130可使代码审阅者能够直接将反馈插入到可视化上。反馈可包括文本评论、链接和/或图形等。作为示例,代码审阅者可在视图上标识出关于用户界面代码的问题或作出文本注释,并且包括前往标识出与特定要求不相符的设计文档的超链接。
差别组件140被配置为比较用户界面代码的各版本并标识出这些版本之间的差别。差别组件140可从代码标识组件110获取各代码版本并且标识差别。在一个实例中,差别组件140可以采用与常规差别/比较工具相关联的技术。在确定差别之后,差别组件140可与可视化组件120交互,以使得在视图上用图形标注这些差别。例如,可视化组件120结合差别组件140可产生突出显示或以某种方式(例如,颜色、下划线、边框……)表明用户界面代码的各版本之间的差别的可视化或视图。
以下是可由可视化组件120产生的可视化的一个示例。可视化的目的是便于清楚和理解本发明的各方面并且不限制所附权利要求的范围。在阅读具体实施方式时本领域技术人员将认识到,可视化可采取许多不同的形式并且包括多种类似和相异的元素。
图2示出了示例性可视化200。示例性可视化200示出了一种特定的实施例,其中本文描述的功能形成增强的差别/比较工具(即diff工具)的一部分。第一用户界面210对应于用户界面源代码的第一版本。第二用户界面220对应于用户界面代码的第二版本或状态。第一用户界面210和第二用户界面220被并排地呈现以实现视觉比较。然而,为了进一步帮助审阅者,两个用户界面之间的差别由第二用户界面220上的框230标注。该示例中的差别对应于被添加的控件。还在第二用户界面220上提供反馈240,并用框230标注差别。此处,反馈仅仅是文本评论。注意反馈240是如何覆盖在第二用户界面220上的。可视化200还包括与用户界面相关联的特定文本代码。此处,存在三个类别,即,添加的控件、移除的控件和改变的控件。添加的控件包括代码250,它描述了被添加到用户界面、在框230中被可视地标注的控件。尽管未示出,但应当领会,示例性可视化200可以结合其中在代码层示出差别的常规差别/比较功能来采用。
返回图1,简言之,在一种情况下,可视化组件120可生成或呈现静态可视化,诸如模拟屏幕截图。然而,可视化组件120不限于静态的可视化或视图。根据一实施例,可视化组件120可生成动画。这在标识例如关于用户界面之间的过渡或单个用户界面的元素之间的过渡的问题方面可能是有用的。此外,与用户界面相关联的音频可伴随一个或多个可视化。另外,可视化可以在至少某种程度上是可交互的,以进一步便于经由与界面的交互来进行代码审阅。
图3示出了可视化的代码审阅系统300。如上所述,系统300包括图1的系统100的所有组件以及建议组件310。根据一实施例,代码审阅过程可被自动化。建议组件310被配置为向代码审阅者建议问题。建议组件310可将关于代码标准的设计文档和/或信息等作为输入,并且可输出关于相符性/遵守性的信息。在一种情况下,建议组件310可在用户界面代码上操作和/或在标识出当前版本的代码和先前版本的代码之间的差别的差别代码上操作。建议组件310可自动地确定例如用户界面代码是否符合设计文档的要求。如果检测到任何不符合,则建议组件310可通知代码审阅者。在一种情况下,可视化组件120所产生的可视化可被修改以标注符合性问题。换言之,可呈现问题的可视表示。另选地,建议组件310可独立于可视化或视图来通知代码审阅者。例如,该建议组件310可与反馈组件130交互。在这种情况下,可向代码审阅者提供建议以帮助提供反馈。在一特定实施例中,建议能够被接受或拒绝。另外,反馈可基于建议被自动地插入到可视化中。例如,如果特定建议被接受,则可将预定的评论插入到可视化中。
系统100和系统300可用多种不同的方式来实现。在一种情况下,系统可在差别/比较工具内集成,以使得例如与用户界面代码对齐地产生一个或多个可视化。在另一情况下,系统可供作为现有的差别/比较工具的插件或扩展。另外,系统可作为独立的工具与差别/比较工具分开地实现,或者作为某一其他代码审阅进程管理系统的一部分来实现。
参考若干组件之间的交互已经描述了上述系统、架构、环境等。应该理解,这样的系统和组件可以包括其中指定的那些组件或子组件,某些指定的组件或子组件,和/或附加的组件。子组件也可以被实现为在通信上被耦合到其他组件而不是被包括在父组件中的组件。此外,一个或多个组件和/或子组件可以组合成提供聚集功能的单个组件。系统、组件、和/或子组件之间的通信可以根据推送(push)和/或拉取(pull)模型来实现。各组件也可以与一个或多个其他组件进行交互,出于简要考虑在此未具体描述其他组件,但本领域的技术人员均已知。
此外,以上公开系统以及以下方法的各个部分可以包括或采用基于人工智能、机器学习或知识或规则的组件、子组件、进程、装置、方法或机制(例如,支持向量机、神经网络、专家系统、贝叶斯信任网络、模糊逻辑、数据融合引擎、分类器等)。这样的组件和其它组件可以自动化其执行的某些机制或过程,由此使得系统和方法的各部分更为自适应以及高效及智能。作为示例而非限制,建议组件310可采用这些功能以推断与特定要求的符合或不符合。
考虑到以上描述的示例性系统,参考图4和5的流程图将可以更好地理解根据所公开的主题实现的方法。尽管为了说明简洁起见,按照一系列框示出和描述了方法,但是,应该理解和知道,所要求保护的主题不限于框的顺序,因为一些框可以按与此处所描绘和描述的不同的顺序进行和/或与其它框并发地进行。此外,并非全部所示出的框都是实现下面所描述的方法所必需的。
参考图4,示出代码审阅的方法400。在标号410处,要求源代码以供查看。在一种情况下,源代码可作为向开发者请求代码审阅的一部分来提供。在标号420处作出关于是否有任何用户界面代码存在于源代码中的判断。如果不存在用户界面代码(“否”),则方法终止。在这种情况下,可采用常规代码审阅。如果存在用户界面代码(“是”),则方法在标号430处继续,在那里为用户界面代码生成可视化或视图。在标号440处,可从审阅者获取输入。在标号450处,作出关于输入是否是反馈的判断。如果输入不是反馈(“否”),例如,审阅者仅仅认可代码,则方法终止。或者,如果输入是反馈(“是”),诸如评论,则方法在460处继续,在那里将反馈添加到用户界面代码的视图。在470处,可在方法终止之前将包括反馈的视图提供给开发者,诸如发起代码审阅的开发者。
图5是自动化代码审阅的方法的流程图示500。在标号510处,根据审阅要求来自动地检查用户界面代码,这些审阅要求诸如但不限于与设计以及一组偏好代码编写习惯的相符性。这样的检查可包括例如体现各种要求并在代码上执行的多个测试。在520处作出关于用户界面代码是否通过或换言之满足所有要求的判断。如果代码通过(“是”),则方法可简单地终止。或者,如果代码未通过(“否”),则方法可在标号530处继续,在那里向代码审阅者通知代码中不能满足要求的一个或多个问题。根据一实施例,可经由用户界面代码的视图上的可视指示符或信号来通知代码审阅者这些问题。在另一实施例中,通知可以在视图外部但在那里驱动反馈。
在本文中使用的词语“示例性”或其各种形式意味着用作示例、实例或说明。在此被描述为“示例性”的任何方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。此外,各示例只是出于清楚和理解的目的来提供的并且并不意味着以任何方式限制或约束所要求保护主题或本发明的相关部分。可以理解,本来可呈现不同范围的多个附加或替换示例,但出于简明的目的已被省略。
此处使用的术语“组件”和“系统”及其各种形式(例如,组件、系统、子系统等)旨在表示与计算机相关的实体,其可以是硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是但不限于是,在处理器上运行的进程、处理器、对象、实例、可执行程序、执行的线程、程序和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可以驻留在进程和/或执行线程中,并且组件可以位于一个计算机内和/或分布在两个或更多计算机之间。
本描述和所附权利要求书中使用的连接词“或”旨在意味着包括性“或”而非互斥性“或”,除非另有指定或从上下文中清晰可见。换言之,“X”或“Y”旨在意味着“X”和“Y”的任何包括性排列。例如,如果“‘A’采用‘X’”,“‘A’采用‘Y’”或“‘A’采用‘X’和‘Y’两者”,则在任何上述情况下都满足“‘A’采用‘X’或‘Y’”。
如此处所使用,术语“推论”或“推断”通常指的是从经由事件和/或数据捕捉的一组观察结果来推理或推断系统、环境、和/或用户状态的过程。可以使用推断来标识特定上下文或动作,也可以生成例如状态上的概率分布。推断可以是概率性的,即,基于对数据和事件的考虑,计算在感兴趣状态上的概率分布。推断也可以是指用于从一组事件和/或数据构成较高级别的事件的技术。这样的推断导致从一组观察到的事件和/或存储的事件数据构建新的事件或动作,不管事件在时间上是否紧密相关,以及事件和数据是来自一个还是多个事件和数据源。可采用各种分类方案和/或系统(例如,支持向量机、神经网络、专家系统、贝叶斯信任网络、模糊逻辑、数据融合引擎……)来执行关于所要求保护的主题的自动化和/或推断的动作。
而且,对于在详细描述或权利要求书中使用术语“包括”、“包含”、“具有”、“含有”或其它形式的变型而言,这样的术语旨在以类似于术语“包括”的方式体现包含性,如同“包括”在用作权利要求书中的过渡词时所解释的那样。
为了为所要求保护主题提供上下文,图6以及以下讨论旨在提供对其中可以实现本主题的各方面的合适环境的简要、概括描述。然而,合适的环境只是示例并且并非旨在对使用范围或功能提出任何限制。
尽管能够在可以在一台或多台计算机上运行的程序的计算机可执行指令的一般上下文中描述以上公开的系统和方法,但是,本领域的技术人员将认识到,各方面也可以与其他程序模块等相结合地实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件和数据结构等。此外,本领域技术人员可以理解,上述系统和方法可用各种计算机系统配置实现,包括单处理器、多处理器或多核处理器计算机系统、小型计算设备、大型计算机、虚拟化环境中的虚拟机、以及个人计算机、手持式计算设备(例如,个人数字助理(PDA)、电话、手表……)、基于微处理器或可编程消费或工业电子设备等。各方面也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。然而,所要求保护主题的某些方面,如果不是所有方面的话,可以在独立计算机上实施。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中的一个或两者中。
参考图6,示出了示例通用计算机610或计算设备(例如,台式机、膝上型计算机、平板计算机、服务器、手持式设备、可编程消费或工业电子产品、机顶盒、游戏系统……)。计算机610包括一个或多个处理器620、存储器630、系统总线640、大容量存储650、以及一个或多个接口组件670。系统总线640与至少上述系统组件通信地耦合。然而,可以理解,在其最简单的形式中,计算机610可包括耦合到存储器620的一个或多个处理器630,该一个或多个处理器630执行存储在存储器1030中的各种计算机可执行动作、指令和/或组件。
处理器620可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件或被设计为执行此处描述的功能的其任意组合来实现。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何处理器、控制器、微控制器、或状态机。处理器620还可被实现为计算设备的组合,例如DSP和微处理器的组合、多个微处理器、多核处理器、结合DSP核的一个或多个微处理器、或任何其它这种配置。
计算机610可包括各种计算机可读介质或以其他方式与各种计算机可读介质交互以便于控制计算机610来实现所要求保护主题的一个或多个方面。计算机可读介质可以是能由计算机610访问的任何可用介质,并包含易失性和非易失性介质以及可移动和不可移动介质。作为示例,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任意方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,存储器设备(例如,随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)……)、磁存储设备(例如,硬盘、软盘、磁带盒、磁带……)、光盘(例如,紧致盘(CD)、数字多功能盘(DVD)……)、以及固态设备(例如,固态驱动器(SSD)、闪存驱动器(例如,卡、棒、键驱动器……)……)、或者可用于存储所需信息并且可由计算机610访问的任何其他类似介质。此外,计算机存储介质不包括信号。
通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息传送介质。术语“已调制数据信号”是指具有以在信号中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。
存储器630和大容量存储650是计算机可读存储介质的示例。取决于计算设备的确切配置和类型,存储器630可以是易失性的(例如RAM)、非易失性的(例如ROM、闪存……)或是两者的某种组合。作为示例,包括诸如在启动期间在计算机610内的元件之间传输信息的基本例程的基本输入/输出系统(BIOS)可被存储在非易失性存储器中,而易失性存储器可担当外部高速缓存存储器以便于处理器620的处理等。
大容量存储650包括相对于存储器630用于存储大量数据的可移动/不可移动、易失性/非易失性计算机存储介质。例如,大容量存储650包括但不限于,诸如磁盘或光盘驱动器、软盘驱动器、闪存存储器、固态驱动器、或记忆棒的一个或多个设备。
存储器630和大容量存储650可包括或其中存储有操作系统660、一个或多个应用662、一个或多个程序模块664和数据666。操作系统660用于控制和分配计算机610的资源。应用662包括系统和应用软件之一或两者,并且可利用操作系统660对资源的管理通过存储在存储器630和/或大容量存储650中的程序模块664和数据666来执行一个或多个动作。因此,应用662可根据由此提供的逻辑来将通用计算机610变成专用机器。
所要求保护主题的全部或各部分可以使用产生控制计算机以实现所公开功能的软件、固件、硬件或其任意组合的标准编程和/或工程技术来实现。作为示例而非限制,可视化的代码审阅系统100或其部分可以是或形成应用662的一部分,并且包括一个或多个模块664以及存储在在由一个或多个处理器620执行时其功能可被实现的存储器和/或海量存储650中的数据666。
根据一个特定实施例,处理器620可与片上系统(SOC)或在单个集成电路基座上包括或换言之集成硬件和软件的类似架构相对应。此处,处理器620可包括至少与处理器620和存储器630相似的一个或多个处理器以及存储器等。常规处理器包括最少量的硬件和软件并且广泛依赖于外部硬件和软件。作为对比,处理器的SOC实现更强大,因为它将硬件和软件嵌入其中以能够用最少的硬件和软件或不依赖于外部硬件和软件来启用特定功能。例如,可视化的代码审阅系统100和/或相关联的功能可被嵌入到SOC体系结构中的硬件内。
计算机610还包括通信地耦合到系统总线640并方便与计算机610的交互的一个或多个接口组件670。作为示例,接口组件670可以是端口(例如,串行、并行、PCMCIA、USB、火线……)或接口卡(例如,声音、视频……)等等。在一个示例实现中,接口组件670可被具体化为用户输入/输出接口,该用户输入/输出接口使得用户能够通过一个或多个输入设备(例如,诸如鼠标的指向设备、跟踪球、指示笔、触摸垫、键盘、话筒、触摸屏、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、相机、其他计算机……)来将命令和信息输入到计算机610中。在另一示例实现中,接口组件670可被具体化为输出外围接口,该输出外围接口向显示器(例如,CRT、LCD、等离子……)、扬声器、打印机和/或其他计算机等提供输出。此外,接口组件670可被具体化为网络接口,该网络接口使得能够诸如通过有线或无线通信链路与其他计算设备(未示出)通信。
以上所已经描述的内容包括所要求保护主题的各方面的示例。当然,出于描绘所要求保护主题的目的而描述每一个可以想到的组件或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,所要求保护主题的许多进一步的组合和排列都是可能的。从而,所公开的主题旨在涵盖落入所附权利要求书的精神和范围内的所有这样的变更、修改和变化。

Claims (10)

1.一种可视化的代码审阅方法,包括:
在计算设备(610)的显示器上呈现用户界面的第一可视化和所述用户界面的第二可视化,所述第一可视化由源代码的当前版本指定,而所述第二可视化由所述源代码的先前版本指定。
2.如权利要求1所述的方法,其特征在于,进一步包括在所述第一可视化和所述第二可视化中的至少一者上在视觉上标识所述第一可视化和所述第二可视化之间的至少一个差别。
3.如权利要求1所述的方法,其特征在于,进一步包括呈现覆盖在所述第一可视化上的相对于所述第一可视化被接受的输入。
4.如权利要求1所述的方法,其特征在于,进一步包括呈现所述源代码。
5.如权利要求1所述的方法,其特征在于,进一步包括结合所述第一可视化向代码的审阅者呈现一个或多个建议。
6.一种系统(100),包括:
耦合到存储器(620)的处理器(630),所述处理器(620)被配置来执行存储在所述存储器(630)中的以下计算机可执行组件:
第一组件(120),其被配置成呈现从正在审阅的两个不同版本的源代码得到的用户界面的两个视图。
7.如权利要求6所述的系统,其特征在于,进一步包括第二组件,其被配置成自动检测所述源代码中与所述用户界面相对应的行。
8.如权利要求6所述的系统,其特征在于,进一步包括第二组件,其被配置成标识两个版本的源代码之间的一个或多个差别。
9.如权利要求8所述的系统,其特征在于,所述第一组件被进一步配置成在视觉上标识视图中的一个或多个差别。
10.如权利要求6所述的系统,其特征在于,所述第一组件被进一步配置成在视觉上呈现由一个或多个代码审阅者提供的反馈。
CN201380029866.9A 2012-06-07 2013-05-23 可视化的代码审阅 Active CN104350475B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/491,554 US9594544B2 (en) 2012-06-07 2012-06-07 Visualized code review
US13/491,554 2012-06-07
PCT/US2013/042325 WO2013184364A2 (en) 2012-06-07 2013-05-23 Visualized code review

Publications (2)

Publication Number Publication Date
CN104350475A true CN104350475A (zh) 2015-02-11
CN104350475B CN104350475B (zh) 2017-09-12

Family

ID=48579497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380029866.9A Active CN104350475B (zh) 2012-06-07 2013-05-23 可视化的代码审阅

Country Status (4)

Country Link
US (1) US9594544B2 (zh)
EP (1) EP2859452A2 (zh)
CN (1) CN104350475B (zh)
WO (1) WO2013184364A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109002294A (zh) * 2018-07-16 2018-12-14 浪潮电子信息产业股份有限公司 一种代码审查方法、装置、设备及可读存储介质
CN111475070A (zh) * 2020-04-01 2020-07-31 维沃移动通信有限公司 一种应用界面的显示方法及电子设备
CN111602114A (zh) * 2017-08-22 2020-08-28 切普泰克有限责任公司 用于在集成开发环境内提供即时通信信道的系统和方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430180B2 (en) * 2010-05-26 2019-10-01 Automation Anywhere, Inc. System and method for resilient automation upgrade
CN103425572B (zh) * 2012-05-24 2016-04-13 腾讯科技(深圳)有限公司 代码分析方法及代码分析系统
US9037994B2 (en) * 2012-06-26 2015-05-19 International Business Machines Corporation Navigation to a data definition in a diff context
CN105094780A (zh) 2014-05-14 2015-11-25 国际商业机器公司 一种信息关联的方法和装置
US9600275B2 (en) 2015-03-12 2017-03-21 International Business Machines Corporation Smart source code review system
US10698794B1 (en) * 2015-12-15 2020-06-30 EMC IP Holding Company LLC Application container and application service system
US10175979B1 (en) * 2017-01-27 2019-01-08 Intuit Inc. Defect ownership assignment system and predictive analysis for codebases
US10402311B2 (en) * 2017-06-29 2019-09-03 Microsoft Technology Licensing, Llc Code review rebase diffing
CN107783780B (zh) * 2017-11-21 2021-04-20 中国银行股份有限公司 一种代码复查方法和系统
US10147461B1 (en) * 2017-12-29 2018-12-04 Rovi Guides, Inc. Systems and methods for alerting users to differences between different media versions of a story
US10459697B1 (en) * 2018-05-03 2019-10-29 Microsoft Technology Licensing, Llc Difference view mode for integrated development environments
US10936307B2 (en) * 2018-11-26 2021-03-02 International Business Machines Corporation Highlight source code changes in user interface
KR102213959B1 (ko) * 2018-12-26 2021-02-09 (주)씽크포비엘 크라우드소싱 기반 소스코드 안정성 확보 방법
US11513499B2 (en) 2020-08-28 2022-11-29 UiPath, Inc. Web based viewing of robotic process automation (RPA) packages and workflows
US11900105B2 (en) * 2020-11-25 2024-02-13 Red Hat, Inc. Code review system with development environment integration
US11726779B2 (en) * 2021-11-03 2023-08-15 Sap Se Code simplification system

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6889374B1 (en) * 1998-10-23 2005-05-03 Autodesk, Inc. Using context prefixes that correspond to user input modes to control execution of scripting language
US7386831B2 (en) 2002-01-09 2008-06-10 Siemens Communications, Inc. Interactive collaborative facility for inspection and review of software products
US7331042B2 (en) * 2002-12-21 2008-02-12 International Business Machines Corporation Fault-tolerant dynamic editing of GUI display and source code
US7225357B2 (en) * 2003-01-21 2007-05-29 Zentek Technology Japan, Inc. SDIO card development system
WO2005045673A2 (en) * 2003-11-04 2005-05-19 Kimberly-Clark Worldwide, Inc. Testing tool for complex component based software systems
US7379600B2 (en) * 2004-01-28 2008-05-27 Microsoft Corporation Method and system for automatically determining differences in a user interface throughout a development cycle
JP4634049B2 (ja) * 2004-02-04 2011-02-16 株式会社日立製作所 ディスクアレイ装置における異常通知制御
US7653893B2 (en) * 2005-03-04 2010-01-26 Microsoft Corporation Methods and apparatus for implementing checkin policies in source code control systems
US7904802B1 (en) 2005-08-31 2011-03-08 Parasoft Corporation System and method for software code review
US20070234316A1 (en) * 2006-03-07 2007-10-04 Sap Ag Methods and systems for development of software for complex systems
US20080052684A1 (en) 2006-08-04 2008-02-28 Robert Bowdidge Stepwise source code refactoring
US7714864B2 (en) * 2006-11-16 2010-05-11 Microsoft Corporation Visual resource profiler for graphical applications
US7908588B2 (en) 2006-12-18 2011-03-15 International Business Machines Corporation Program presentation with reviewer feedback maintenance
US8099673B2 (en) * 2007-02-26 2012-01-17 Red Hat, Inc. User interface annotations
US20080250325A1 (en) * 2007-04-03 2008-10-09 Feigenbaum Barry A Integrated Development Environment with Object-Oriented GUI Rendering Feature
US20080295085A1 (en) 2007-05-25 2008-11-27 Microsoft Corporation Integrated code review tool
US20080310736A1 (en) 2007-06-15 2008-12-18 Microsoft Corporation Smart visual comparison of graphical user interfaces
US8341600B2 (en) * 2008-02-15 2012-12-25 Microsoft Corporation Tagging and logical grouping of items in source code change lists
US8185917B2 (en) * 2008-02-27 2012-05-22 Accenture Global Services Limited Graphical user interface application comparator
US8762950B2 (en) 2008-07-24 2014-06-24 Alcatel Lucent Software tool for scenario-based code inspections
US8370811B2 (en) * 2009-07-16 2013-02-05 Accenture Global Services Limited Modularizing and aspectizing graphical user interface directed test scripts
US8578341B2 (en) * 2009-09-11 2013-11-05 International Business Machines Corporation System and method to map defect reduction data to organizational maturity profiles for defect projection modeling
US20110090236A1 (en) * 2009-10-15 2011-04-21 Microsoft Corporation Graphic Object Data Binding
US10095485B2 (en) 2009-12-29 2018-10-09 International Business Machines Corporation Analyzing objects from a graphical interface for standards verification
US20110214107A1 (en) * 2010-03-01 2011-09-01 Experitest, Ltd. Method and system for testing graphical user interfaces

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111602114A (zh) * 2017-08-22 2020-08-28 切普泰克有限责任公司 用于在集成开发环境内提供即时通信信道的系统和方法
CN111602114B (zh) * 2017-08-22 2023-12-12 切普泰克有限责任公司 用于在集成开发环境内提供即时通信信道的系统和方法
CN109002294A (zh) * 2018-07-16 2018-12-14 浪潮电子信息产业股份有限公司 一种代码审查方法、装置、设备及可读存储介质
CN111475070A (zh) * 2020-04-01 2020-07-31 维沃移动通信有限公司 一种应用界面的显示方法及电子设备
CN111475070B (zh) * 2020-04-01 2022-04-01 维沃移动通信有限公司 一种应用界面的显示方法及电子设备

Also Published As

Publication number Publication date
CN104350475B (zh) 2017-09-12
EP2859452A2 (en) 2015-04-15
WO2013184364A2 (en) 2013-12-12
WO2013184364A3 (en) 2014-02-27
US20130332902A1 (en) 2013-12-12
US9594544B2 (en) 2017-03-14

Similar Documents

Publication Publication Date Title
CN104350475A (zh) 可视化的代码审阅
US11934301B2 (en) System and method for automated software testing
US20240037020A1 (en) System and Method for Automated Software Testing
US8726226B2 (en) Integrated work lists for engineering project change management
WO2021091918A1 (en) Systems and methods for model monitoring
US20140173563A1 (en) Editor visualizations
US20180129482A1 (en) Generation of application behaviors
CN103518393A (zh) 检测移动通信设备内容的系统和方法
US20130290944A1 (en) Method and apparatus for recommending product features in a software application in real time
CN107958321A (zh) 模型验证系统和方法
US11763201B1 (en) System and methods for model management
US20230008198A1 (en) Methods, systems, articles of manufacture and apparatus to label text on images
CN102693154A (zh) 动态惰性类型系统
CN103677806A (zh) 用于系统管理的方法和系统
US10572247B2 (en) Prototype management system
US8296726B2 (en) Representation of software application functionality
CN107257968A (zh) 发现电子表格中的独特公式集
CN113434542B (zh) 数据关系识别方法、装置、电子设备及存储介质
US8813036B2 (en) Visual representation of a difference between Cartesian product models
Mainkar Expert Android Programming: Master skills to build enterprise grade Android applications
US20130263028A1 (en) Designing a GUI Development Toolkit
Delima et al. Automatic Requirements Engineering: Activities, Methods, Tools, and Domains–A Systematic Literature Review
US20070299705A1 (en) Method and apparatus for observation model validation
US11119761B2 (en) Identifying implicit dependencies between code artifacts
JP6869082B2 (ja) テストケースを選択する計算機及びテストケースの選択方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150416

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150416

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant