Skip to main content
QUICK REVIEW

[论文解读] Software is a directed multigraph (and so is software process)

Robert Dąbrowski, Krzysztof Stencel|arXiv (Cornell University)|Mar 21, 2011
Software Engineering Research参考文献 9被引用 3
一句话总结

本文提出一种基于图的模型,将软件系统及其开发过程表示为有向多重图,从而实现统一的架构知识管理与定量度量计算。通过将工件表示为顶点、依赖关系表示为多种边类型,该方法支持使用图数据库进行持续集成、验证与工具无关的分析,为评估软件质量与过程成熟度提供了整体性基础。

ABSTRACT

For a software system, its architecture is typically defined as the fundamental organization of the system incorporated by its components, their relationships to one another and their environment, and the principles governing their design. If contributed to by the artifacts coresponding to engineering processes that govern the system's evolution, the definition gets natually extended into the architecture of software and software process. Obviously, as long as there were no software systems, managing their architecture was no problem at all; when there were only small systems, managing their architecture became a mild problem; and now we have gigantic software systems, and managing their architecture has become an equally gigantic problem (to paraphrase Edsger Dijkstra). In this paper we propose a simple, yet we believe effective, model for organizing architecture of software systems. First of all we postulate that only a hollistic approach that supports continuous integration and verification for all software and software process architectural artifacts is the one worth taking. Next we indicate a graph-based model that not only allows collecting and maintaining the architectural knowledge in respect to both software and software process, but allows to conveniently create various quantitive metric to asses their respective quality or maturity. Such model is actually independent of the development methodologies that are currently in-use, that is it could well be applied for projects managed in an adaptive, as well as in a formal approach. Eventually we argue that the model could actually be implemented by already existing tools, in particular graph databases are a convenient implementation of architectural repository.

研究动机与目标

  • 为应对大规模项目中管理软件及软件过程架构日益增长的复杂性。
  • 将软件工件与开发过程工件的架构知识统一到单一、一致的模型中。
  • 通过基于图的度量,实现对软件质量与过程成熟度的系统性、定量评估。
  • 基于图模型,支持对所有架构工件的持续集成与验证。
  • 通过现有工具(尤其是图数据库)证明实现的可行性。

提出的方法

  • 将软件系统与过程建模为有向多重图,其中顶点表示工件(如类、方法、需求),边表示多种依赖类型(如包含、实现、返回)。
  • 定义图视图以抽象特定的工件与追踪类型(如仅含包含、实现、返回边的类视图),以支持聚焦分析。
  • 通过边转换的传递闭包引入图映射(如将'包含'与'返回'映射为'依赖'),生成更高层次的抽象(如类图)。
  • 将度量定义为将图组件(A, T, V, L, E)映射到实数的函数,可通过图算法高效计算(如耦合因子、可达性)。
  • 使用图数据库作为实际实现基础,用于存储与查询架构图。
  • 通过查询语言支持交互式探索,实现对架构信息的过滤、缩放与下钻分析。

实验结果

研究问题

  • RQ1如何统一建模软件与软件过程工件,以实现集成化的架构管理?
  • RQ2哪些基于图的抽象(视图与映射)能有效表示不同抽象层次的软件架构?
  • RQ3哪些定量度量可高效地从图模型中计算得出,以评估软件质量与过程成熟度?
  • RQ4如何利用现有工具(尤其是图数据库)来实现与查询所提出的模型?
  • RQ5该图模型能否支持基于架构属性对现实世界软件项目进行系统性比较与分类?

主要发现

  • 有向多重图模型成功将软件与软件过程工件统一为单一、可分析的结构,实现了整体性架构管理。
  • 图视图与映射支持从底层图模型系统性地推导出常见软件图(如类图)。
  • 图中的可达性属性可用于定义与验证关键软件质量属性,如测试覆盖率与需求可追溯性。
  • 耦合因子及其他标准度量可在该模型上自然表达,并通过图算法高效计算。
  • 该模型与现有开发方法与工具兼容,可使用当前图数据库技术实现。
  • 该框架支持设计用于交互式架构探索与度量计算的查询语言。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。