爱思维尔

信息与软件技术

第55卷第5期,2013年5月,第777-794页
信息与软件技术

基于知识的方法在软件体系结构中的应用:系统映射研究

https://doi.org/10.1016/j.infsf.2012.11.005获取权限和内容

摘要

上下文

知识管理技术在软件工程活动中的应用已有二十多年的历史。基于知识的方法可用于促进软件架构活动(例如,架构评估)。然而,对于如何将各种基于知识的方法(如知识重用)应用于软件体系结构.

目的

本研究旨在收集有关知识型方法在软件架构中应用的研究,并提出一个基于知识的方法在软件体系结构中的应用分类并对这些研究进行专题分析,以找出现有知识型方法在各种建筑活动中应用的差距,以及有前景的研究方向。

方法

A系统制图研究旨在识别和分析基于知识的方法在软件体系结构中的应用,涵盖2000年1月至2011年3月期间发表的主要数据库、期刊、会议和研讨会的论文。

结果

根据它们对架构活动的贡献和采用的基于知识的方法,选择了55项研究并对其进行了分类。知识获取和表示(例如,使用本体来描述建筑元素以及它们之间的关系)是架构活动中最流行的方法。知识恢复(例如,记录过去建筑设计决策)是一种被忽视的方法,在软件体系结构中很少使用。基于知识的方法主要用于建筑评估而在体系结构影响分析和体系结构实现中却受到最少的关注。

结论

研究结果表明,近年来人们对基于知识的方法在软件体系结构中的应用越来越感兴趣。许多基于知识的方法,包括知识获取和表示、重用、共享、恢复和推理,已经被应用于一系列的架构活动中。基于知识的方法已被广泛应用于各种应用领域,其中“嵌入式软件”最受关注。

介绍

软件体系结构(SA)作为软件工程(SE)中的一个独特学科在20世纪90年代初出现,并在10年后进入了它的黄金时代[1],[2]。在ISO/IEC IEEE 42010标准中,SA被定义为“系统在其环境中的基本概念或属性,体现在其元素、关系以及其设计和演化的原则中”[3]。本研究采用这一定义;我们将在第2.1.1节中进一步讨论有关架构过程的更多细节。

知识管理(KM)技术在SE活动中的应用已经超过20年[4],[5],例如在需求获取[6]、架构(architecture)评估[7]、软件测试[8]和软件文档[9]中。近年来,SA社区越来越重视知识管理在建筑过程中的应用[10],建立了建筑知识领域(AK)。这使得我们认识到,在SA[11]、[12]中,最重要的AK类型、架构设计决策(例如,为设计问题选择特定的架构模式)和设计原理应被视为一流的实体。

在AK领域,已经开发了许多知识管理方法和工具,以有效地改进软件架构的实践[13],[14]。软件架构(architecting)本质上是一个知识密集型的过程,由多个活动组成,例如架构分析、综合和评估[15]。架构设计活动主要由架构师与一组涉众协作进行,这些涉众涉及到软件密集型系统的架构(architecture)的构建。基于知识的方法,如知识共享和重用,可以用来促进架构活动。例如,关于在系统开发中使用特定体系结构模式的知识可以在类似系统的体系结构合成期间共享和重用。为了系统地使用基于知识的方法来促进体系结构活动,并开发在软件体系结构中使用基于知识的方法的适当方法,有必要对基于知识的方法在软件体系结构中的应用现状有一个清楚的了解。据我们所知,目前还没有研究在哪些架构活动中使用了基于知识的方法,以及这些方法在各种架构活动中的现有应用中存在的差距。请注意,在本研究中,基于知识的方法的“应用”并不局限于基于知识的方法在架构设计中的实际应用,而是在工业和研究中使用基于知识的方法进行架构设计,目的是广泛覆盖本研究。此外,通过本研究的全面了解,还可以确定在架构中应用特定的知识型方法的需求,以及哪些架构活动需要对知识型方法的应用进行更多的探索,从而提出有希望的研究方向。

为了解决这个问题,我们进行了一个系统的地图研究(或短期内)制图研究)系统制图研究是一种二次研究形式,旨在全面了解某一研究课题,找出研究空白,收集证据,以指导今后的研究[16],[17]。它允许在一个领域中的研究以高粒度绘制,从而回答关于某个主题的当前研究状态的更广泛的研究问题[16]。二级研究的另一种形式是系统文献综述(SLR),其目标是识别、评估和解释所有可用的研究,以回答特定的研究问题,这些问题需要更深入的分析[16]。我们选择进行映射研究而不是SLR,因为涉及的领域,即软件体系结构和基于知识的方法,是相当广泛的领域。我们的重点不是涉及领域的某些特定方面,而是两个领域的结合。

这项地图研究的结果是确定的研究与不同水平的证据,分类和主题分析的现有方法,知识为基础的方法在南非的应用。这反过来又将确定现有的基于知识的方法应用于各种架构活动中的差距。这项映射研究是按照[16]中提出的软件工程中执行slr的指南进行的。虽然这些指南专门用于执行SLR,但如果出现某些偏差,也可以用于进行绘图研究。这项绘图研究的过程与[16]中的指南之间最重要的区别是,研究质量评估没有作为研究选择的标准。究其原因,在系统的制图研究中,研究质量的评价并不是必不可少的,但与制图研究课题相关的所有论文都应该选择。我们进行了一个简化的研究质量评估,并认为这是降低该绘图研究结论有效性的一种手段。

本文的其余部分安排如下:第二部分介绍了本次地图研究的背景、研究问题和实施步骤。第三部分介绍了从所选研究中提取的数据的综合结果,并回答了研究问题。第四节讨论了影响本研究有效性的因素。第5节讨论了结果及其影响,第6节给出了结论。

节代码段

制图研究过程

第2.1节讨论了本研究的背景,包括涉及的领域(软件体系结构和知识管理)和研究问题。第2.2节介绍了该映射研究的详细过程。

研究结果

我们按照第2.2节中描述的步骤进行了映射研究。我们首先概述了研究结果,然后分析了该映射研究的结果,以回答第2.1.3节中定义的RQ。

有效性威胁

系统地图研究的结果可能会受到研究搜索覆盖率、研究选择偏差和研究数据提取不准确的影响。因此,以下小节将讨论对研究结果有效性的四种威胁。

讨论

这项地图研究表明,基于知识的方法在SA中的应用在研究和实践中都是一个相当不成熟的领域。首先,超过三分之二的选定研究(55项研究中的37项)在会议和研讨会上发表,只有30.9%(55项研究中的17项)达到期刊出版的成熟期。此外,只有27.3%(即55项研究中的15项)达到证据水平5(即,从

结论

从文献检索中得到16144篇论文,包括人工检索和自动检索的论文,其中55篇最终被筛选出来进行数据提取。基于所提取的数据,我们概述了目前在哪些架构活动中使用了基于知识的方法,以及在一般和特定的架构活动中使用的各种基于知识的方法的流行情况。我们围绕四个要点得出结论:

(一)

知识获取和

致谢

这项工作得到了AFR卢森堡根据合同编号。895528,和国家自然科学基金根据。60903034,QuASAK:利用架构知识在软件架构过程中的质量保证。我们要感谢Matthias Galster的宝贵意见,以及匿名评论员对本文早期版本的建设性意见。

工具书类(四十一)

  • P。克鲁什滕等等。

    软件体系结构的过去、现在和未来

    IEEE软件

    (2006年)
  • M。等等。

    软件体系结构的黄金时代

    IEEE软件

    (2006年)
  • ISO,系统和软件工程-体系结构描述,ISO/IEC/IEEE 42010:2011(E)(ISO/IEC修订版。。。
  • 一。罗斯等等。

    软件工程中的知识管理

    IEEE软件

    (2002年)
  • E、 胡德利卡,需求获取与间接知识获取技术:三种方法的比较,载:。。。
  • K、 王文荣,邓文英,移动软件系统测试中的知识管理方法,载:IEEE国际会议。。。
  • A、 W.Kiwelekar,R.K.Joshi,用于生成基线架构描述的本体论分析,收录于:中国科学院学报。。。
  • P。拉戈等等。

    共享和重用体系结构知识第一次研讨会

    SIGSOFT软件工程注释

    (2006年)
  • A、 杨森,J。博世,软件架构作为一套架构设计决策,载:第五届会议论文集。。。
  • P。克鲁什滕等等。

    建筑知识的建构与推理

  • 引用人(61)

    • 连续软件开发中文档的映射研究

      2022年,信息和软件技术
    • 从需求规范中导出架构模型:系统映射研究

      2019年,信息和软件技术
      引文摘要:

      我们相信这类知识可以促进软件开发并降低相关风险。最后,Li等人研究了基于知识的方法在软件体系结构中的应用,并讨论了缺乏使用知识库进行这些活动的支持工具[77]。因此,决策与评价知识的再利用仍然是一个值得进一步研究的课题。

    • 微服务架构:一个系统的映射研究

      2019年,《系统与软件杂志》
    向右上箭头查看Scopus上所有引用的文章
    查看全文