元数据与源代码的关联以及基于其的应用和服务制造技术

技术编号:12476291 阅读:49 留言:0更新日期:2015-12-10 12:14
描述了使得元数据能够在各个粒度级别与源代码相关联(例如,在文件、类、函数、行、语句和表达式的级别)以及使得这样的元数据能够独立于与其相关联的源代码被访问的系统和方法。这样的元数据可被用于在源代码储存库内和跨源代码储存库跟踪源代码的出处和历史,将质量或可靠性的评分或其他标记与源代码相关联,其中这样的评分可被展示给开发者并且其中这样的评分可被用于更好地管理对源代码的自动化的登入、测试和分析,以及促进借此管理源代码实体的组件被通知关于对相关源代码实体作出的更新以及借此类似的改变可按手动或自动化的方式对该源代码实体作出的过程。

【技术实现步骤摘要】
【国外来华专利技术】【专利说明】元数据与源代码的关联从及基于其的应用和服务 睛川宜量 在计算机科学中,术语"源代码"指使用某种人类可读计算机语言(通常为文本) 书写的计算机指令集合。计算机程序的源代码专口被设计来促进计算机程序员(在此也称 为"软件开发者"或简单而言"开发者")的工作,其中计算机程序员大部分通过书写源代码 来指定要由计算机执行的动作。源代码在某一时间点被自动地翻译成计算机可直接读取和 执行的机器代码。解释器将源代码翻译成机器代码并在程序运行时实时地执行它,而编译 器在它将源代码存储为可执行文件之前将源代码翻译成机器代码;运些接着可在分开的步 骤中执行。 构成计算机程序的源代码通常被保持在被存储在某种形式的持久存储中的一个 或多个文本文件中。例如,源代码可被至少暂时地存储在开发者的计算机的硬盘上。在现 代软件开发环境中,网络可访问的源控制系统通常被开发者用来将源代码存储在中央储存 库中,在此它能被其他开发者(例如,开发团队的其他成员)访问。源控制系统通常提供用 于将源代码登入和登出中央储存库的机制。运允许不同的开发者对同一项目进行操作,而 对丢失代码或盖写改变具有减少的担忧。源控制系统还通常包括能在开发生存周期期间管 理文件的版本控制系统,从而保持对作了哪些改变、谁作出运些改变、改变何时被作出W及 出于何种原因的跟踪。 一些源控制系统使得关于源代码的描述性信息能够与源代码相关联地存储。关于 源代码的运种描述性信息可被称为"元数据"。运样的元数据通常与源代码文件或文件组 相关联。常规的源控制系统通常不提供用于将元数据与比文件更细粒度的各种不同类型的 源代码实体(诸如包括在源代码文件内的类、函数、行、语句和表达式)相关联的方式。此 夕F,元数据通常被限为关于源代码的可W追溯到该源代码被首次登入到中央储存库中的时 间的历史信息。 阳〇化]开发者有时将评论嵌入到他们的源代码中。运样的评论可被用于提供关于源代码 的历史信息,描述源代码内某个功能的目的,解释源代码内使用的实体命名约定等。运样的 评论也可被认为是与源代码相关联的一种形式的元数据。然而,由于评论被嵌入在源代码 本身内,在不打开它们所位于的源代码文件的情况下,它们不能被访问或操纵。此外,运样 的评论必须按随编程语言变化的特定方式来被格式化,使得它们能被用于将源代码转换成 可执行形式的解释器或编译器正确地处理。最终,运样的评论通常包括非结构化数据。与 评论相关联的所有运些特征(即,嵌入在源代码中、特定于语言的格式化W及由非结构化 数据构成)限制了它们的有用性。 SM 在此描述使得元数据能够在各个粒度级别与源代码相关联(例如,在文件、类、函 数、行、语句和表达式的级别)的系统和方法。运样的系统和方法还可使得运样的元数据能 够独立于与其相关联的源代码被访问。运些系统和方法使得运样的元数据能被用在各种各 样的应用和服务中来实现非常强大的功能。例如但非限制,运样的元数据可被用于:在源代 码储存库内和跨源代码储存库跟踪源代码的出处和历史;将质量或可靠性的评分或其他标 记与源代码相关联,其中运样的评分可被展示给开发者并且其中运样的评分可被用于更好 地管理对源代码的自动化的登入、测试和分析;W及促进借此管理源代码实体的组件被通 知关于对相关源代码实体作出的更新W及借此类似的改变可按手动或自动化的方式对该 源代码实体作出的过程。 现在将作为示例而非限制来描述某些特定实施例。例如,本文描述了一种计算机 实现的方法。根据该方法,作出已经关于第一源代码实体执行了一动作的确定。第一源代 码实体包括源代码文件内的源代码项。基于该动作的执行,接着与该第一源代码实体相关 联地生成元数据。所生成的元数据接着与该源代码文件分开地存储。 根据W上的方法,确定已经关于第一源代码实体执行了一动作可包括确定已经关 于该源代码文件内的一个或多个类、函数、行、语句或表达式作执行了该动作。 进一步根据W上方法,确定已经关于第一源代码实体执行了一动作可包括确定第 一源代码实体已经被创建、修改或删除,并且生成元数据可包括生成与第一源代码实体相 关联的包括关于该创建、修改或删除的历史信息的元数据。 还进一步根据W上方法,确定已经关于第一源代码实体执行了一动作可包括确定 第一源代码实体已经从第二源代码实体复制,并且生成元数据可包括执行W下中的一个或 多个:通过复制与第二源代码实体相关联的元数据来生成与第一源代码实体相关联的元数 据,W及生成与第一源代码实体相关联的包括到第二源代码实体的链接的元数据。 在W上方法的一个实施例中,确定已经关于第一源代码实体执行了一动作包括确 定第二源代码实体已经从第一源代码实体复制,并且生成元数据包括生成与第一源代码实 体相关联的包括到第二源代码实体的链接的元数据。 在另一实施例中,W上方法还包括确定第二源代码实体类似于该第一源代码实 体,并且响应于确定该第二源代码实体类似于该第一源代码实体,执行W下中的一个或多 个:通过复制与第二源代码实体相关联的元数据来生成与第一源代码实体相关联的元数 据,生成与第一源代码实体相关联的包括到第二源代码实体的链接的元数据,通过复制与 第一源代码实体相关联的元数据来生成与第二源代码实体相关联的元数据,W及生成与第 二源代码实体相关联的包括到第一源代码实体的链接的元数据。 在W上方法的进一步的实施例中,生成元数据包括生成结构化数据和非结构化数 据中的一个或多个。运样的结构化数据可包括例如,一个或多个键/值对。 在W上方法的还一实施例中,与源代码文件分开地存储所生成的元数据包括将所 生成的元数据存储在W下之一中:与源代码文件相关联的元数据文件、与源代码文件相关 联的数据流、或数据库。 在此还描述了一种软件开发系统。该软件开发系统包括一个或多个计算机、存储 源代码文件的储存库和元数据管理器,当被一个或多个计算机中的至少一个执行时,该元 数据管理器将元数据与包括在源代码文件内的源代码实体相关联,与每个源代码实体相关 联的元数据指示对应的源代码实体的质量或可靠性。 W上系统还可包括将漏桐信息与每个源代码实体相关联的漏桐跟踪系统。根据运 样的实施例,与每个源代码实体相关联的元数据可至少部分基于与每个源代码实体相关联 的漏桐信息来生成。 W上系统还可包括分析引擎,该分析引擎标识在包括从源代码文件生成的可执行 代码的应用的部署期间发生的问题,将运样的问题与源代码实体相关联,W及至少部分基 于与源代码实体相关联的任意一个或多个问题来确定要与每个源代码实体相关联的元数 据。 在另一实施例中,W上系统包括自动化测试系统和分析引擎两者。自动化测试系 统自动地测试每个源代码实体并为之生成测试结果信息。分析引擎接收该测试结果信息并 至少部分基于为源代码实体生成的测试结果信息来确定要与每个源代码实体相关联的元 数据。 在进一步的实施例中,W上系统包括分析引擎,该分析引擎标识与源代码实体中 的每个相关联的开发者,获得被如此标识的每个开发者的信誉信息,并至少部分基于与源 代码实体相关联的开发者的信誉信息来确定要与每个源代码实体相关联的元数据。根据运 样的实施例,分析引擎可用于基于和与开发者相关联的源代码实体相关联的元数据来修改 至少一个开发者的信誉信息。W上系统还可包括本文档来自技高网...

【技术保护点】
一种计算机实现的方法,包括:确定已经关于第一源代码实体执行了一动作,所述第一源代码实体包括源代码文件内的一源代码项;基于所述动作的执行,生成与所述第一源代码实体相关联的元数据;以及将所生成的元数据与所述源代码文件分开地存储。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:S·H·托布
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

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

1