DevOps实践中软件制品的可追踪性建立与可视化研究综述外文翻译资料

 2023-06-19 03:06

英语原文共 11 页,剩余内容已隐藏,支付完成后下载完整资料


DevOps实践中软件制品的可追踪性建立与可视化研究综述

D.A.Meedeniya1,I.D.Rubasinghe2,I.Perera3

部门斯里兰卡莫勒图瓦大学计算机科学与工程系

摘要

基于DevOps的软件流程已变得流行,其旨在提高开发和运营团队之间的有效协作,不断集成频繁的变更。可追溯性在软件过程中管理人工制品的一致性。本文探讨了软件制品、现有工具支持、质量方面和DevOps环境中的适用性之间的跟踪链的创建和可视化。作为这项研究的新颖性,我们确定了限制DevOps中可追溯性考虑的挑战,并提出了研究方向。我们的方法包括概念识别、实践状态探索和分析审查。尽管已有相关工作,但在DevOps实践的软件开发中,缺乏对异构工件之间的可追溯性管理的工具支持。尽管许多现有的研究具有较低的工业相关性,但是一些专有的可追溯性工具已经显示出高度的相关性。因此,

我们得出结论,软件制品可追溯性正在成熟,并在软件过程中协同应用。这可以扩展到探索诸如人工变更影响分析、变更传播、持续集成等功能,以改进DevOps环境中的软件开发。

关键词—软件可追溯性;可视化;比较研究;DevOps;持续的软件开发

I. 引言

软件系统是有助于增强产品或服务的资产。软件系统的变化是不可避免的,因为需求随着时间的推移而不断发展。技术改进、环境变化、法律机构的修改以及许多因素都会影响需求变化。因此,需要持续的系统更新,以通过保留软件的价值来应对人为因素的变化。因此,考虑到资源、时间、成本和工作量的使用,软件演化比构建新的软件系统来管理变更更加可取[1]。通常,在软件开发生命周

期(SDLC)期间,由于新的变更请求,软件演化被识别为维护任务。软件演化主要依赖于所维护的软件类型、开发过程,并直接影响相关的软件制品。

软件人工制品是在SDLC的每个阶段中使用的中间副产品,有助于实现预期产品的结果。例如,软件需求规格说明书(SRS)、非功能设计报告、设计图、源代码、测试用例、测试脚本、错误报告、走查、检查、配置文件、构建日志、

项目计划、风险评估和用户手册等SDLC[2][3]中的人工制品。同质软件制品和异质软件制品之间存在不同形式的关系。一些人工制品可能是高度耦合的,并且一些可能在不同程度上单向或双向地依赖于其他人工制品。因此,软件制品一致性管理有助于对软件过程进行微调。不完整、过时的软件制品及其不一致性误导了开发和维护过程。因此,人工制品管理是必要的,使得改变被准确地传播到受影响的人工制品而不产生不一致。考虑到人工制品的关系,可追溯性是关联人工制品的潜力[4][5];因此,人工制品管理的解决方案。作为一个活跃的研究主题,许多研究在不同的范围和领域讨论了可追溯性的不同方面,工具支持。目前,统一开发(DEV)和运营(OPS)团队之间流程的DevOps已经成为一种流行的软件开发实践。DevOps环境支持在高需求下构建、测试和交付产品,从而加快产品的发展[6][7]。持续集成(CI)和持续交付(CD)的概念鼓励在DevOps实践中的SDLC的任何阶段接受频繁的变化[8]。因此,必须在DevOps环境中实现伪像管理,以避免人工制品不一致。然而,由于频繁的集成,确保最大自动化的可追溯性是具有挑战性的。此外,由于现有可追溯性技术、工具和自动化能力的限制,在DevOps中实际使用人工可追溯性并不广泛。因此,可审计性和可追溯性在DevOps中具有挑战性[9]。我们对DevOps实践中的人工制品的可追溯性管理进行了调查。第二节描述了可追溯性概念和术语。第三节和第四节分别探讨了可追溯性创建技术和相关的可视化方法。第五节讨论了使用概念可追溯性模型的DevOps实践中的相关可追溯性管理研究。此外,第六节探讨了管理可追踪性的工具支持。第七节探讨了使用质量方面和网络分析的可追溯性评估方法。第八节讨论了相关的挑战和限制。最后,第九节总结了调查,并提出了在DevOps实践中支持可追溯性的建议和可能的未来方向。

II. 背景

A. 可追溯性概念

软件系统是通过特定软件开发过程模型演化的若干工件的组合。重要的是管理这些软件制品之间的关系和依赖关系,以保持产品的一致性。过时的人工制品可能导致人工制品不一致、同步问题和利益相关者对人工制品缺乏信任[10]。因此,使用涉及频繁持续集成和持续交付(CICD)的DevOps实践来管理软件开发中的人工制品可追溯性至关重要。

可追溯性提供了软件开发过程的工件之间的逻辑连接。在涵盖需求收集、设计、开发、测试、维护和部署的整个SDLC阶段,保持同构和异构软件制品之间的可追溯性非常重要。例如,跟踪需求与其来源之间的关系的能力对于修订最初收集的需求集至关重要[2]。这一概念最初被用作在需求工程阶段管理需求人工制品的方法[11]。通常,可追溯性被定义为向前和向后跟踪软件需求的生命周期并克服软件开发期间的不一致性的能力[4]。因此,每个需求中发生的每个变更都会在其他需求中进行跟踪,并根据影响进行相应的变更。这些跟踪在需求确认和验证过程中使用。

软件和系统可追溯性卓越中心(COEST)将可追溯性定义为“将任何唯一可识别的软件工程制品与任何其他制品相互关联,随着时间的推移保持所需的链接,并使用由此产生的网络来回答软件产品及其开发过程的问题的能力”。他们并不局限于需求可追溯性,还声明了其他人工制品类型的可追溯性,如设计文档、源代码和测试用例,并为研究人员部署了一个名为TraceLab[12]的实验可追踪性环境。

可追溯性被定义为能够追踪一个模型中的依赖项,并追踪其他模型中的对应项[13]。因此,目前,可追溯性不仅用于需求管理,还用于不同软件开发方法中的其他人工制品类型,如模型驱动开发(MDD)[14]。 可追溯性的这种广泛适应性显示了其在提高软件质量、维护、演化和重用活动中的重要性。

B. 软件制品可追溯性术语

可追踪性是指在软件系统中追踪工件之间的变更传播的能力或潜力。对于给定的轨迹,可以有一个或多个可能的轨迹路径,而每个轨迹路径具有源追踪链和目标追踪链。人工制品可以同时是给定跟踪路径的源和另一跟踪路径的目标。

追踪链接或可追溯性链接是一对人工制品之间的关系。在两组人工制品之间生成的所有跟踪链接被称为跟踪关系[4]

追踪集是所有生成的跟踪的总和,跟踪图用于可视化所有关系。当边是有向的,或者节点嵌入了权重时,追踪图就是一个追踪网络。此外,可追溯性维护管理人工制品的一致性,并为给定的变化更新轨迹。如图所示,文献中存在不同的可追溯性分类。

1.基于可追溯性过程的自动化水平,一种这样的分类是自动或手动的。另一种分类是向前或向后,即基于可追溯性路径的方向[4]。正向跟踪遵循后续步骤,例如从需求到代码;而反向跟踪则遵循先前的步骤,使得代码成为设计或需求的假象。ArtefactLevel是另一个将可追溯性分为水平或垂直的标准。水平跟踪反映了同质的人工制品,它们处于相同的抽象级别,例如在需求的不同版本之间进行跟踪[15]。此外,这可以基于方向进行子分类,使得水平向前跟踪或水平向后跟踪。跟踪处于不同抽象级别的异构构件,例如编码需求,被认为是垂直跟踪,其可以是垂直向前跟踪或垂直向后跟踪。主动追踪和反应追踪是另一种基于刺激行为的分类。在反应式跟踪中,通过响应激励来启动跟踪捕获,从而按需创建跟踪。而在主动跟踪中,跟踪是在背景中创建的,没有对任何刺激的明确响应[4]。通过

考虑问题域和软件系统的行为等方面,选择基于这些类别可追溯性链接生成技术(见第四节)。

C. DevOps实践中的可追溯性

DevOps概念代表了开发和运营团队的协作[6][9]。DevOps通过弥合开发和运营团队之间的差距,简化了项目团队的沟通、可理解性、集成和关系管理。该CICD流程提高了更改速度,并更快地将功能部署到生产中[16][17]。因此,基于DevOps的软件开发提高了质量和客户体验,并支持在不同平台上同时部署。相关的跨功能行为使得能够早期识别歧义,减少错误修复时间并降低问题的复杂性。

DevOps对业务方面的重要性还在于缩短开发生命周期,提高发布速度,并通过实现更高的客户满意度来提高投资回报率(ROI)[6]。进一步的, 丰富的协作和以绩效为导向的文化鼓励在项目中进行研究和创新的能力。然而,物联网(Iot)和微服务架构被认为在DevOps中具有挑战性[9]。

图1.可追溯性分类汇总

DevOps环境涉及五个主要原则:持续规划、持续集成、持续交付、持续测试和持续部署[6]。CI流程频繁集成工作,导致每天进行多次集成并有效部署[17][18]。通常,CI使用构建自动化通过早期检测集成错误来验证集成。跟踪人工制品变化的能力对于在集成失败时通知反馈至关重要[19]。因此,为CI流程提供软件人工制品可追溯性支持以处理更改是非常重要的。

III. 建立可追溯性

A. 信息检索与数据预处理

在软件开发中,不同类型的工件被考虑用于可追溯性创建,例如,从需求到设计、从需求到源代码和测试用例。例如,需求可追溯性显示了需求到SDLC其他阶段的映射;设计可追溯性是指对验证和维护架构设计的设计原理的设计和需求进行追踪的能力[20]。在DevOps环境中,设计可追溯性有助于识别变更影响、跟踪设计演变、关联设计对象和分析横切关注点。

通常,信息检索(IR)方法和数据预处理被认为是可追溯性建立过程的先决条件。软件制品由不同的格式组成,例如自然语言中的需求、不同统一建模语言(UML)符号中的设计制品和编程语言中的源代码制品。因此,应该应用预处理技术来提取所需的数据,作为一项初始任务可追溯链接的生成。大多数时候,人工制品中的文本内容提供了关于其非正式语义的描述性细节。基于文本的需求人工制品经常涉及的预处理步骤是自然语言处理(NLP)任务,如标记化、文本标准化、指代分析、形态分析和词干分析[4][21]。如果这些制品的文本内容相似,则假定这些制品在概念上是相关的。因此,可以在它们之间创建追踪链接。因此,可以使用不同的文件读取器、UML解析器和特定于编程语言的解析器对其他类型的工件进行预处理。

IR方法使得能够以较少的预处理工作来提取和分析人工制品中所包含的文本内容[4]。它最大限度地降低了可追溯性链接恢复的成本,因为它不考虑预定义的词汇或语法。遵循流水线体系结构的通用信息检索过程的关键步骤是:(1)文档解析、提取和预处理,(2)使用信息检索方法的语料库索引,(3)排序列表生成和(4)候选链接分析。此外,大多数IR相关技术是向量空间模型(VSM)、

潜在语义索引(LSI)和词频逆文档频率度量(TF-IDF),并且它们在文献[22]中提供了更好的性能结果。

  1. 可追溯性建立方法

文献中使用了不同类型的方法来生成软件制品之间的可追溯性链接。本节讨论了广泛使用的软件制品可追溯性建立方法,表I对这些方法进行了比较。

表Ⅰ可追溯性建立方法

基于规则的可追溯性根据词语的语义和语法特征在人工制品之间生成不同类型的追踪链接[29]。首先,根据工件的属性定义可追溯性链接生成规则,然后在可追溯性维护阶段重新评估这些规则。此外,基于规则的方法可以与事件驱动的方法相结合。因此,可追溯性维护可以分两个阶段进行:(1)根据事件识别变化;(2)重新评估管理链接更新的规则[26]。然而,除了需求和源代码外,这些

基于规则的可追溯性技术并不适用于所有类型的人工制品[23]

基于超文本的可跟踪性使用底层的XML表示以及一致性分析。这适用于跟踪链接的复杂性和版本化[4]。然而,基于超文本的可追溯性支持技术也仅限于软件制品,如需求和源代码[23]

基于事件的方法考虑了软件开发活动中发生的事件,以维护可追溯性链接。例如,人工制品的删除可以作为删除所有连接的可追溯性链接的触发器。Maro等人已经使用类似的概念技术解决了这个问题;发布-订阅机制,将可追溯性维护任务连接到事件[26]。然而,该技术具有可扩展性问题[24][25]。文献中提供了可用于建立可追溯性的各种其他方法。

基于模型的可追溯性建立方法使用XML表示来管理模型的相互关系,而不是仅限于UML、业务流程模型和符号(BPMN)、特征模型和代码可追溯性体系结构的系统审查[27][28]。以目标为中心是另一种声明可追溯性链接的有效规则的方法[25]。在这里,默认情况下,未被约束引用的可跟踪性链接被认为是一致的。基于转换的方法[26],主要是图形转换,用于生成基于人工制品转换的可追溯性链接。然而,这些方法在实践中并未得到广泛应用。设计决策树(DDT)提供了将需求连接到可追溯性建立下的架构(architecture)决策和设计元素的能力[20]中提出的可追溯性模型已经使用概念UML符号解决了设计原理模型中的可追溯性。但是,它只捕获两个实体(体系结构基本原理和体系结构元素)之间的关系。此外,Patricia等人探索了一种基于范围的方

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[603781],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。