CN103890722A - 使用可追溯性链接强度以用于软件开发完整性监视 - Google Patents

使用可追溯性链接强度以用于软件开发完整性监视 Download PDF

Info

Publication number
CN103890722A
CN103890722A CN201280052338.0A CN201280052338A CN103890722A CN 103890722 A CN103890722 A CN 103890722A CN 201280052338 A CN201280052338 A CN 201280052338A CN 103890722 A CN103890722 A CN 103890722A
Authority
CN
China
Prior art keywords
demand
trackability
intensity
software code
application
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
CN201280052338.0A
Other languages
English (en)
Other versions
CN103890722B (zh
Inventor
Y·希米奥诺维希
M·尼森森
J·布纳亚胡
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103890722A publication Critical patent/CN103890722A/zh
Application granted granted Critical
Publication of CN103890722B publication Critical patent/CN103890722B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/77Software metrics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

一种用于监视需求完整性的方法。该方法包括:接收用于应用开发项目的多个需求,该应用开发项目具有多个代码要素,计算用于多个可追溯性链接中的每一个的第一强度,多个可追溯性链接中的每一个都在应用开发项目的当前软件代码版本中的特定代码要素和多个需求中的一个之间,计算用于新软件代码中的所述多个可追溯性链接中的每一个的第二强度,所述新软件代码包括对来自所述当前的软件版本的特定代码要素的修订,以及基于在所述第二强度和所述第一强度之间的偏差来生成不一致性通知。

Description

使用可追溯性链接强度以用于软件开发完整性监视
技术领域
本发明在其一些实施例中涉及软件开发,更具体地但不排他地涉及监视需求和/或代码要素的完整性。
背景技术
对于大的软件开发项目,容易丢失对需求及其代码实现的跟踪。在需求被实现之后,代码继续演进,并且支持该需求的逻辑可能被改变或移除。在这样的软件开发项目中,可以使用可追溯性链接来在诸如产品归档需求的需求和源代码或源代码的高级表示之间进行链接。具有在源代码和需求之间的可追溯性链接促进执行各种软件维护任务,包括影响分析、程序理解以及高质量系统的需求保证。对于观察器或文本分析模块,这些链接有助于解释特定功能或类为何存在于该程序中。
过去几年已经开发了各种系统和方法。例如,第7,640,532号美国专利描述了在软件系统的源代码和业务需求之间建立连接。使用本义和同义来扩展反映业务需求的用户指定的关键字。用户指定的关键字的补强列表与自动注释的源代码匹配。匹配的结果和源代码的调用图用于生成工作流,该工作流提供从源代码到业务逻辑的映射。
第2008/0263504号美国专利申请描述了允许项目需求与底层代码要素相关联的各种技术和技术方案。对特定的软件项目进行分析以生成包含在特定的软件项目中的代码要素的列表。从需求管理应用接收输入以将一个或多个项目需求与代码要素中的一个或多个相关联。项目需求和与所述一个或多个代码要素的关联被存储在数据存储库中以用于未来的取回。这些关联用于确定对于底层代码要素何时进行了可能影响项目的需求的改变。软件开发应用可操作为与数据存储库进行交互,并且向软件开发应用的用户提供对软件项目的特定代码要素的改变将影响一个或多个项目需求的通知。
发明内容
根据本发明的一些实施例,提供了一种用于监视应用开发项目的完整性的计算机化方法,该应用开发项目具有多个代码要素和多个需求。该方法包括:计算用于多个可追溯性链接中的每一个的第一强度,多个可追溯性链接中的每一个都在应用开发项目的当前软件代码版本中的多个代码要素的特定代码要素和多个需求中的一个之间,计算用于新软件代码中的所述多个可追溯性链接中的每一个的第二强度,所述新软件代码包括对来自当前的软件版本的特定代码要素的修订,以及基于在相应第二强度和第一强度之间的偏差来生成不一致性通知。
可选地,该方法进一步包括对应用开发项目和多个需求进行分析,以自动地识别多个可追溯性链接。
可选地,该方法进一步包括从用户接收指示多个可追溯性链接的手动输入。
可选地,该方法进一步包括提供不一致性通知阈值;其中,生成包括:如果偏差大于不一致性通知阈值,则生成不一致性通知。
可选地,该方法进一步包括提供相关性阈值;其中,新的软件代码版本包括新需求;其中,生成包括计算在特定代码要素和新的需求之间的另一可追溯性链接的第三强度,并且如果第三强度超过阈值,则执行该生成。
此外可选地,不一致性通知指示新需求和多个需求中的至少一个之间的一致性。
可选地,该计算根据对特定代码要素的语义分析来执行。
可选地,该计算根据对多个需求的语义分析来执行。
可选地,当前的软件代码版本和新软件代码二者被存储在公共数据库中,并且通过用户和对数据库中的记录的自动分析中的至少一项来选择。
可选地,对于应用开发项目的当前软件代码版本和新软件代码版本中的多个代码要素中的每一个执行该计算第一强度、该计算第二强度和该生成。
根据本发明的一些实施例,提供了一种用于监视具有多个代码要素和多个需求的应用开发项目的系统。该系统包括处理器、可追溯性链接强度模块以及警告模块,该可追溯性链接强度模块使用处理器来计算用于多个可追溯性链接中的每一个的第一强度以及用于新软件代码中的所述多个可追溯性链接中的每一个的第二强度,该多个可追溯性链接中的每一个都在应用开发项目的当前软件代码版本中的多个代码要素的特定代码要素和多个需求中的一个之间,该新软件代码包括对来自当前的软件版本的特定代码要素的修订,该警告模块基于在第二强度和第一强度之间的偏差来生成不一致性通知。
可选地,该系统进一步包括接口,该接口接入该多个需求和多个代码要素,以识别多个可追溯性链接。
此外可选地,该接口从软件开发工作空间接收多个需求。
可选地,该系统进一步包括可追溯性链接识别模块,该可追溯性链接识别模块对该多个需求和多个代码要素进行分析,以自动地识别多个可追溯性链接。
根据本发明的一些实施例,提供了一种用于识别在具有多个代码要素和多个需求的应用开发项目中的需求冲突的计算机化方法。该方法包括提供相关性阈值,提供多个可追溯性链接,该多个可追溯性链接的每一个都在应用开发项目的当前软件版本中的特定代码要素和该多个需求中的一个之间,识别在应用开发项目的新的软件代码版本中的特定代码要素和至少一个新需求之间的新可追溯性链接,计算用于新可追溯性链接的强度;以及如果强度超过相关性阈值,则生成指示需求冲突的通知。
可选地,相关性阈值由用户手动设置。
除非另外定义,这里使用的所有科技术语具有与本发明所属于的领域中的普通技术人员通常理解的相同的含义。虽然可以在本发明的实施例的实践或测试中使用与这里描述的类似或等同的方法和材料,但是以下描述了示例性方法和/或材料。在冲突的情况下,本包括限定的专利说明书将进行控制。此外,材料,方法和实施例仅是说明性的,而并非旨在必须进行限制。
附图说明
这里通过参考附图仅通过示例的方式描述了本发明的一些实施例。现在具体参考附图,强调了所示出的细节是示例的方式并且出于对本发明的实施例的说明性讨论的目的。在这点上,结合附图的描述使得对本领域的技术人员显而易见的是本发明的实施例将可以如何实现。
在附图中:
图1是根据本发明的一些实施例的用于监视需求完整性的方法的流程图;
图2是根据本发明的一些实施例的用于监视需求完整性的系统的软件和硬件组件的关系视图;
图3是根据本发明的一些实施例的用于测量在应用开发项目中的代码要素和需求之间连接的可追溯性链接的强度的过程的流程图;
图4-图6描绘了示例性应用开发项目的呈现代码要素的工具的截屏;
图7是根据本发明的一些实施例的在示例性应用开发项目的当前的软件代码版本中的可追溯性链接的强度和示例性应用开发项目的新的软件代码版本中的同一可追溯性链接的强度之间的匹配的示意性图示;
图8是根据本发明的一些实施例的基于可追溯性链接的强度来识别在应用开发项目的软件代码版本之间的冲突需求的流程图;以及
图9是根据本发明的一些实施例的在识别冲突需求和监视需求完整性之间进行组合的过程的示意性图示。
具体实施方式
本发明在其一些实施例中涉及软件开发,更具体地但不排他地涉及监视需求和/或代码要素的完整性。
根据本发明的一些实施例,提供了下述方法和系统,该方法和系统通过检测在应用开发项目的软件代码版本之间的一个或多个可追溯性链接的强度中的改变来监视具有多个需求的应用开发项目的完整性。
例如,该方法是基于计算应用开发项目的多个软件代码版本中的每一个中的代码要素之间的多个可追溯性链接中的每一个的强度,并且检测软件代码版本之间的一个或多个可追溯性链接的强度中的改变。基于这种改变,也称为偏差,可以生成和输出一个或多个不一致性通知,例如对软件开发工作空间的用户作为消息呈现。如上概述和如下所述的方法允许基于对可追溯性链接的分析来识别在项目的开发中的代码要素和需求之间的不一致性,并且自动地(可选为实时地)向用户报警。
根据本发明的一些实施例,提供了下述方法和系统,该方法和系统在应用开发项目的新的软件代码版本中的一个或多个新的可追溯性链接的强度超过相关性阈值时,检测应用开发项目中的需求冲突,该相关性阈值可选地是动态相关性阈值。
例如,该方法基于计算在现有的代码要素和新的需求之间的新的可追溯性链接的强度,并且确定其是否超过相关性阈值。基于该检测,一个或多个不一致性通知可以被生成并输出,例如对软件开发工作空间的用户作为消息呈现。
可选地,当与新的软件代码版本中的特定代码要素连接的新的可追溯性链接超过相关性阈值时,并且当与新的软件代码版本中的相同的特定代码连接的另一可追溯性链接的强度关于应用开发项目的先前软件代码版本有所改变时,检测到需求冲突。
如上概述和如下所述的方法允许基于对可追溯性链接的分析来确定开发项目的源代码版本中的需求冲突,并且可选地实时关于需求冲突而警告用户。
在详细解释本发明的至少一个实施例之前,应当理解,本发明在其申请中不必限于在下面的描述中阐述和/或在附图和/或示例中说明书的组件和/或方法的构造和布置的细节。本发明能够支持其他实施例或者以各种方式被实践和执行。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其他可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其他可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
现在参考图1,图1是根据本发明的一些实施例的用于监视这里被称为需求的开发需求的完整性的方法100的流程图。监视通过检测在应用开发项目的特定软件代码版本中的可追溯性链接的强度和应用开发项目的新的软件代码版本的该可追溯性链接的强度之间的偏差来进行。如这里使用的,应用开发项目指关于软件产品和/或硬件产品和/或服务和/或产品和/或服务的任何部分的开发项目。
还参考图2,图2是根据本发明的一些实施例的用于监视需求完整性和/或需求冲突的系统200的软件和硬件组件的关系视图。该系统200包括数据库201,该数据库201存储应用开发项目的一个或多个软件代码版本和/或应用开发项目的软件代码版本之间的修订。数据库201可选地管理软件代码版本的数据集和/或软件代码版本之间的修订的数据集。例如,可以使用一个或多个度量记载(metricsdocumenting)识别的版本。数据库201可以用于存储多个不同的应用开发项目的软件代码版本。该系统200还包括接口202、处理器203、链接强度模块204和警告单元205。为了简便,应该注意,可以使用处理器203来执行以下描述的计算功能。
首先,如101处所示,接口202获取,例如接收或接入,对于具有多个代码要素的特定应用开发项目的多个需求。该需求可选地是从定义产品或服务或对产品或服务的添加的产品需求文档(PRD)中提取的和/或其详细说明的需求。
多个需求可以作为文件被接收、从文档扫描、通过到文件的链接来指示、通过诸如文本分析的分析从源代码中提取、在工作空间中标记或选择等。
可选地,如102处所示,例如从数据库201提供特定应用开发的软件代码版本。
可选地,如103处所示,系统200(例如关联强度模块204)识别并标记在数据库201中的软件代码版本中的一个或多个的应用开发项目的需求中的每一个和每个代码要素之间的多个可追溯性链接,软件代码版本例如为至少应用开发项目的最新软件代码版本。可以由操作者手动地和/或通过例如本领域中公知的可追溯性链接取回和/或发现技术、模块和/或工具、通过软件代码的分析自动地识别和标记应用开发项目的多个可追溯性链接。
现在,如104处所示,系统200(例如可追溯性链接强度模块204)计算在当前的软件代码版本中的,例如最新的软件代码版本中的,可追溯性链接中的每一个的可追溯性链接强度。可选地,可以由系统200自动地识别和/或由工作空间的用户等选择当前软件代码版本。
例如,现在参考图3,图3是根据本发明的一些实施例的用于测量在应用开发项目中的代码要素和需求之间连接的可追溯性链接的强度的过程的流程图300,可追溯性链接诸如前述可追溯性链接。在该过程中,自动地识别需求和可追溯性链接。如301处所示,一个或多个需求文档被分段成各部分,其中,每个部分包含单个需求。
然后,如302处所示,使用诸如过滤停用词算法(filter stop words)和词干提取(stemming)的各种技术中的任何一个来预处理每个部分。然后,如303处所示,该部分被加索引并且被转发到搜索引擎,如304处所示。此外,如305处所示,特定应用开发的软件代码版本的每个代码要素被转换成用于识别其将遵循的一个或多个需求的查询。可选地,如306、307和308所示,提取、扩展和排序该代码要素中的字词。例如,对于Java类,从以下字段中的一个或多个中提取字词:类名称、常见名称、类注释、常见参数和返回类型、超类名称和所实现的接口、以及公共函数注释。然后,可以根据字词的源的语义来对该字词进行排序。例如,类名称被排序为高于注释。可选地,如309处所示,例如使用各种技术中的任何一个(诸如过滤停用词算法和词干提取)来对所提取和排序的字词进行预处理。在预处理期间或之前,可选地分离通过驼峰拼写法(CamelCase)(即中间大写)或下划线级联的字。
现在,如310处所示,查询被输入到搜索引擎,该搜索引擎检索已经从需求文档中提取的相关需求。在这样的实施例中,可追溯性链接可以在相应的代码要素和每个检索到的需求之间被标记,并且基于查询字的排序来得到可追溯性链接。
针对每个代码要素重复在305-309中描述的过程。
现在参考情境感知可追溯技术(CATT)工具中的图3中所描绘的过程的示例性实现。图4描绘了CATT工具的截屏,CATT工具呈现了Eclipse项目中的特定代码要素、类CVSProjectSetCapability。图5集中于类,并且示出了处理来自并发版本系统(CVS)的项目的签出的特定函数。在图4的左上角用圆圈401标有用于取回与代码要素相关的文档的链接。图6描绘了从上述过程得到的对于类CVSProjectSetCapability取回的结果。非常清楚的是,这是相关的结果,因为它完全作为集中于所给定的类的函数来处理对来自CVS的项目的签出。
如105处所示,新的软件代码版本被接收,例如,由工作空间的用户和/或用户从数据库201中选择、被识别为发送到编译和/或上传到工作空间的软件代码版本等。在新的软件代码版本中,例如在应用开发项目的实现过程期间,修订与必须及时更新的软件代码版本(这里还称为当前软件代码版本)相关的一个或多个代码要素。
现在,如106处所示,计算在新的软件代码版本中的至少修订的代码要素的可追溯性链接的强度。例如,该强度如以上关于框104所述的进行计算。
如107处所示,识别在当前软件代码版本中和新的软件代码版本中的特定可追溯性链接的强度之间的强度偏差。可以对于链接修订的代码要素的多个可追溯性链接重复该过程。
现在,如108所示,基于所识别的强度偏差,生成不一致性通知。该不一致性通知可以通知、注释、和/或在开发工作空间中存在的和/或作为备注添加到源代码的消息和/或发送到应用开发项目的代表的消息。不一致性通知可选地包括不一致性描述,例如指示需求和/或相应的代码要素的文本内容。可选地,只有偏差超过特定阈值和/或阈值范围时,才生成不一致性通知。
例如,现在参考图7,图7是在标记为v1的当前软件代码版本1.0中的需求k和代码要素类i之间的可追溯性链接的强度与标记为v2的新的软件代码版本2.0中的同一可追溯性链接的强度之间的匹配的示意性图示。在该匹配中,如果对于新的软件代码版本的可追溯性链接中的一个:
t(v2)>t(v1);并且
link_v1(i,k)>link_v2(i,k)
则生成不一致性通知,其中link_表示诸如前述强度测量过程的对于特定可追溯性链接的强度测量函数,并且t(x)表示确保新的软件代码版本v2比当前版本v1更新的时间函数。
可选地,新的软件代码版本被存储在数据库201中,并且根据应用开发项目的较新软件代码版本被标记为当前软件代码版本以供未来用于监视需求完整性的迭代。
现在还参考图8,图8是根据本发明的一些实施例的基于可追溯性链接的强度来识别在应用开发项目的软件代码版本中的冲突需求的流程图800。框101-103和105-106可选地如上所述。然而,在图8中还包括框801-804。如801处所示,除了在框101-103和105-106中的应用开发项目的新的和当前的软件代码版本,还接收相关性阈值。然后,如802处所示,对新的软件代码版本进行分析以识别例如由于新的需求而导致在当前的软件代码版本中没有描述的一个或多个新的可追溯性链接。新的可追溯性链接中的一个或多个的强度与相关性阈值匹配。如果强度中的任何一个高于相关性阈值,则生成并输出诸如前述不一致性通知的冲突需求通知。否则,该过程结束和/或以另一新的软件代码版本的新的可追溯性链接进行重复。
可选地,用于识别冲突需求的上述过程与用于通过识别可追溯性链接强度的偏差来监视需求完整性的上述过程组合。例如,现在参考图9,图9是这样的组合的过程的示意性图示。如图9所例示,标记为v1的当前软件代码版本1.0中的需求k和代码要素类i之间的可追溯性链接的强度与标记为v2的新的软件代码版本2.0中的同一可追溯性链接的强度匹配。该匹配类似于以上关于图7所描述的。该过程还包括验证在需求j和代码要素类i之间连接的新的可追溯性链接的强度是否超过1中的示例性关联性阈值0.5。可选地,如果组合的过程通过识别可追溯性链接强度偏差而识别出需求完整性受到损害并且根据相关性阈值例外(exception)检测到需求冲突二者,则输出不一致性通知,如图9中所描绘的。如果仅需求完整性被损害或者仅检测到需求冲突,也可以输出不一致性通知。
上面描述的方法可用于集成电路芯片制造。附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
已经出于说明的目的而非穷尽的或者限于所公开的实施例呈现了本发明的各种实施例的描述。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对于那些本领域的普通技术人员来说将是显而易见的。这里所使用的术语被选择为最好地解释由于市场的技术的本实施例的原理、实际应用或技术改进,或者使得本领域的其他普通技术人员能够理解这里所公开的实施例。
期望在从本申请成熟的专利的寿命期间,将开发许多相关的系统和方法,并且术语处理器、工作空间和数据库的范围旨在先验地包括所有这样的新的技术。
如本文所用,术语“约”指±10%。
术语“包括”、“包含”、“具有”及其变体指“包括但不限于”。该术语包括术语“由...组成”和“基本上由......组成”。
短语“基本上由......组成”指组合物或方法可以包括其他成分和/或步骤,但是仅其他成分和/或步骤实质上不改变所需求保护的组合物或方法的基本和新颖的特征。
如这里所使用的,单数形式“一”、“一种”和“该”包括复数引用,除非上下文另有明确规定。例如,术语“化合物”或“至少一种化合物”可以包括多个化合物,包括其混合物。
词语“示例性”这里用于表示“用作示例、实例或说明”。描述为“示例性”的任何实施例不必被解释为优于或胜过其他实施例和/或排除其他实施例的特征的并入。
词语“可选地”这里用于表示单词“在一些实施例中提供而在其他实施例中不提供”。本发明的任何特定实施例可以包括多个“可选的”特征,除非这些特征冲突。
在本申请中,本发明的各种实施例可以以范围的形式存在。应当理解,范围形式的描述仅仅是为了方便和简洁,并且不应被理解为对本发明范围的硬性限制。因此,范围的描述应当被认为已经具体公开了所有可能的子范围以及该范围内的独立数值。例如,诸如从1到6的范围的描述应当被视作已经具体公开了子范围,诸如从1到3、从1到4、从1到5、从2到4、从2到6、从3到6等、以及该范围内的独立数字,例如,1、2、3、4、5和6。不论范围的宽度如何这都是适用的。
每当这里指示数值范围时,都意味着包括在所指示的范围内的任何例举的数字(分数或整数)。短语在第一指示数字和第二指示数字“之间的范围”和从第一指示数字“到”第二指示数字的“范围”这里可互换地使用,并且意味着包括第一和第二指示数字以及其之间的所有分数和整数。
可以理解,为清楚起见在各个实施例的上下文中描述的本发明的特定特征还可以以单个实施例中的组合来实现。相反,为清楚起见在单个实施例的上下文中描述的本发明的各种特征还可以单独地或以任何适当的子组合或作为适用于本发明的任何其他描述的实施例来提供。在各种实施例的上下文中描述的特定特征不被认为是那些实施例的必要特征,除非该实施例没有那些要素就无法操作。
虽然已经结合特定实施例描述本发明,但是明显的是,许多替换、修改和变化对于本领域技术人员来说都是显而易见的。因此,旨在包括落入所附权利需求的精神和范围之内的所有这样的替换、修改和变化。
在本说明书中提及的所有出版物、专利和专利申请全部并入本申请中,就如同每个独立的出版物、专利或专利申请具体地并且独立地指示通过引用被合并于此。此外,本申请中的任何参考文献的引用或标识不应当被解释为承认这样的参考文献可作为现有技术。在使用节标题的程度上,其不应该被解释为必需的限制。

Claims (12)

1.一种用于监视应用开发项目的完整性的计算机化方法,所述应用开发项目具有多个代码要素和多个需求,所述方法包括:
计算用于多个可追溯性链接中的每一个的第一强度,多个可追溯性链接中的每一个都在所述应用开发项目的当前软件代码版本中的所述多个代码要素的特定代码要素和所述多个需求中的一个需求之间;
计算用于新软件代码中的所述多个可追溯性链接中的每一个的第二强度,所述新软件代码包括对来自所述当前软件版本的所述特定代码要素的修订;以及
基于在相应所述第二强度和所述第一强度之间的偏差来生成不一致性通知。
2.根据权利要求1所述的方法,进一步包括对所述应用开发项目和所述多个需求进行分析,以自动地识别所述多个可追溯性链接。
3.根据权利要求1所述的方法,进一步包括从用户接收指示所述多个可追溯性链接的手动输入。
4.根据权利要求1所述的方法,进一步包括提供不一致性通知阈值;其中,所述生成包括如果所述偏差大于所述不一致性通知阈值,则生成所述不一致性通知。
5.根据权利要求1所述的方法,进一步包括提供相关性阈值;其中,所述新软件代码版本包括新需求;其中,所述生成包括计算在所述特定代码要素和所述新需求之间的另一可追溯性链接的第三强度,并且如果所述第三强度超过所述相关性阈值,则执行所述生成。
6.根据权利要求5所述的方法,其中,所述不一致性通知指示所述新需求和所述多个需求中的至少一个之间的冲突。
7.根据权利要求1所述的方法,其中,所述计算根据对所述特定代码要素的语义分析来执行。
8.根据权利要求1所述的方法,其中,所述计算根据对所述多个需求的语义分析来执行。
9.根据权利要求1所述的方法,其中,所述当前软件代码版本和所述新软件代码二者被存储在公共数据库中,并且通过用户和对所述数据库中的记录的自动分析中的至少一项来选择。
10.根据权利要求1所述的方法,其中,对于所述应用开发项目的当前软件代码版本和新软件代码版本中的多个代码要素中的每一个执行所述计算第一强度、所述计算第二强度和所述生成。
11.一种包括适于执行根据前述方法权利要求中的任何一项所述的方法的所有步骤的装置的系统。
12.一种包括指令的计算机程序,所述指令用于在所述计算机程序在计算机系统上被执行时,执行根据前述方法权利要求中的任何一项所述的方法的所有步骤。
CN201280052338.0A 2011-11-06 2012-10-24 使用可追溯性链接强度以用于软件开发完整性监视 Active CN103890722B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/290,088 US9292410B2 (en) 2011-11-06 2011-11-06 Using traceability links strength for software development integrity monitoring
US13/290,088 2011-11-06
PCT/IB2012/055846 WO2013064939A1 (en) 2011-11-06 2012-10-24 Using traceability links strength for software development integrity monitoring

Publications (2)

Publication Number Publication Date
CN103890722A true CN103890722A (zh) 2014-06-25
CN103890722B CN103890722B (zh) 2016-11-16

Family

ID=48191449

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280052338.0A Active CN103890722B (zh) 2011-11-06 2012-10-24 使用可追溯性链接强度以用于软件开发完整性监视

Country Status (6)

Country Link
US (1) US9292410B2 (zh)
JP (1) JP5961275B2 (zh)
CN (1) CN103890722B (zh)
DE (1) DE112012004331T5 (zh)
GB (1) GB2511005A (zh)
WO (1) WO2013064939A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110516722A (zh) * 2019-08-15 2019-11-29 南京航空航天大学 一种基于主动学习的需求与代码之间可追踪性的自动生成方法
CN110532019A (zh) * 2019-06-27 2019-12-03 北京大学 一种软件代码片段历史追溯的方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9292410B2 (en) * 2011-11-06 2016-03-22 International Business Machines Corporation Using traceability links strength for software development integrity monitoring
US9176937B2 (en) * 2012-04-05 2015-11-03 International Business Machines Corporation Ensuring user interface specification accurately describes user interface after updates to user interface
US9069899B2 (en) * 2012-06-27 2015-06-30 Microsoft Technology Licensing, Llc Integrating diagnostic information in development environment
US20160179868A1 (en) * 2014-12-18 2016-06-23 GM Global Technology Operations LLC Methodology and apparatus for consistency check by comparison of ontology models
IN2015CH03905A (zh) * 2015-07-30 2015-08-14 Wipro Ltd
US9733927B2 (en) * 2015-11-11 2017-08-15 International Business Machines Corporation Detection of software or hardware incompatibilities in software packages
CN107368407B (zh) * 2016-05-11 2021-05-25 北京京东尚科信息技术有限公司 信息处理方法和装置
US10083029B2 (en) * 2016-11-09 2018-09-25 Red Hat, Inc. Detect application defects by correlating contracts in application dependencies
US10977156B2 (en) * 2018-10-10 2021-04-13 International Business Machines Corporation Linking source code with compliance requirements
US20200202265A1 (en) * 2018-12-21 2020-06-25 Microsoft Technology Licensing, Llc Automated parenting of work items in a resource management structure
US10860294B2 (en) * 2019-01-25 2020-12-08 Rockwell Collins, Inc. Requirements tracing precision validation tool
CN111831266A (zh) * 2019-04-22 2020-10-27 上海汽车集团股份有限公司 智能驾驶软件的集成与追溯系统及方法
CN113835960B (zh) * 2021-09-23 2024-07-02 中国人民解放军63920部队 一种航天测控软件研发状态监控标记方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060048093A1 (en) * 2004-08-25 2006-03-02 Prashant Jain Mapping software code to business logic
CN1987776A (zh) * 2005-12-20 2007-06-27 国际商业机器公司 用于提供版本感知影响分析的计算机方法和装置
US20070162522A1 (en) * 2005-12-29 2007-07-12 International Business Machines Corporation Evidentiary enrichment of traceability links between software specification requirements
CN101477467A (zh) * 2008-12-08 2009-07-08 山东浪潮齐鲁软件产业股份有限公司 一种项目代码发布的方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182908A (ja) * 2000-12-15 2002-06-28 Mitsubishi Electric Corp S/w開発プロセス間のトレーサビリティ装置
DE10104394A1 (de) * 2001-01-19 2002-08-01 Salzenbrodt Gmbh & Co Kg Imprägniermittel
US7174348B1 (en) * 2002-11-26 2007-02-06 Unisys Corporation Computer program having an object module and a software development tool integration module which automatically interlink artifacts generated in different phases of a software project
US8225302B2 (en) * 2003-02-13 2012-07-17 Lawrence Taylor Waugh System and method for managing source code and acquiring metrics in software development
FR2852117A1 (fr) * 2003-03-03 2004-09-10 Thales Sa Procede de developpement automatise avec mise a jour
US7735068B2 (en) * 2005-12-01 2010-06-08 Infosys Technologies Ltd. Automated relationship traceability between software design artifacts
US8312415B2 (en) * 2007-04-17 2012-11-13 Microsoft Corporation Using code analysis for requirements management
US20100162215A1 (en) * 2008-12-18 2010-06-24 International Business Machines Corporation Enabling automated real-time metrics during the software development process
JP5247587B2 (ja) * 2009-05-20 2013-07-24 株式会社日立情報制御ソリューションズ 要求仕様トレーサビリティ管理装置
US8799869B2 (en) * 2011-10-03 2014-08-05 Accenture Global Services Limited System for ensuring comprehensiveness of requirements testing of software applications
US9292410B2 (en) * 2011-11-06 2016-03-22 International Business Machines Corporation Using traceability links strength for software development integrity monitoring

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060048093A1 (en) * 2004-08-25 2006-03-02 Prashant Jain Mapping software code to business logic
CN1987776A (zh) * 2005-12-20 2007-06-27 国际商业机器公司 用于提供版本感知影响分析的计算机方法和装置
US20070162522A1 (en) * 2005-12-29 2007-07-12 International Business Machines Corporation Evidentiary enrichment of traceability links between software specification requirements
CN101477467A (zh) * 2008-12-08 2009-07-08 山东浪潮齐鲁软件产业股份有限公司 一种项目代码发布的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANDREA DE LUCIA: "Recovering traceability links in software artifact management systems using information retrieval methods", 《ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110532019A (zh) * 2019-06-27 2019-12-03 北京大学 一种软件代码片段历史追溯的方法
CN110532019B (zh) * 2019-06-27 2021-03-12 北京大学 一种软件代码片段历史追溯的方法
CN110516722A (zh) * 2019-08-15 2019-11-29 南京航空航天大学 一种基于主动学习的需求与代码之间可追踪性的自动生成方法
CN110516722B (zh) * 2019-08-15 2023-08-22 南京航空航天大学 一种基于主动学习的需求与代码之间可追踪性的自动生成方法

Also Published As

Publication number Publication date
JP2014534530A (ja) 2014-12-18
CN103890722B (zh) 2016-11-16
US9292410B2 (en) 2016-03-22
US20130117725A1 (en) 2013-05-09
GB2511005A (en) 2014-08-20
DE112012004331T5 (de) 2014-10-09
WO2013064939A1 (en) 2013-05-10
JP5961275B2 (ja) 2016-08-02
GB201408908D0 (en) 2014-07-02

Similar Documents

Publication Publication Date Title
CN103890722A (zh) 使用可追溯性链接强度以用于软件开发完整性监视
Koyuncu et al. Fixminer: Mining relevant fix patterns for automated program repair
Yan et al. Just-in-time defect identification and localization: A two-phase framework
US8612372B2 (en) Detection rule-generating facility
Cairo et al. The impact of code smells on software bugs: A systematic literature review
US20140304688A1 (en) Method and system for generating and processing black box test cases
CN101751333A (zh) 用于支援程序解析的方法、及其计算机程序以及计算机系统
AU2018202153B2 (en) System and method for tool chain data capture through parser for empirical data analysis
Nam et al. Marble: Mining for boilerplate code to identify API usability problems
US9621679B2 (en) Operation task managing apparatus and method
CN107562429A (zh) 一种基于编译规则的Android系统静态划分方法
CN112799722A (zh) 命令识别方法、装置、设备和存储介质
CN109189672A (zh) 微服务的自动测试方法、服务器及计算机可读存储介质
Rio et al. PHP code smells in web apps: Evolution, survival and anomalies
Zhang et al. Predicting change consistency in a clone group
CN112612882B (zh) 检阅报告生成方法、装置、设备和存储介质
WO2016163008A1 (ja) 異常診断装置および異常診断方法
JP2010170438A (ja) 文書管理システム
JP2007241347A (ja) プログラムの品質管理装置、及びプログラムの品質管理レポートの生成方法
Nayak et al. Requirement Defect Identification: An Early Stage Perspective
Sridharan et al. PENTACET data-23 Million Contextual Code Comments and 250,000 SATD comments
US20230245486A1 (en) Methods, systems, articles of manufacture and apparatus to improve tagging accuracy
US20240143300A1 (en) Program analyzing apparatus, program analyzing method, and trace processing addition apparatus
JP2011113298A (ja) 流用ソースコード解析システム及びプログラム並びに記録媒体
CN114329471A (zh) 数据处理方法、装置、电子设备以及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant