Training Software Engineers for Qualitative Evaluation of Software Architecture
软件架构师使用质量需求来设计系统的架构。但是,必须确保系统的最终架构设计达到标准质量要求。现有的架构评估框架需要基本的技能和经验,以实际使用,新手软件架构师缺乏。我们提出了一个框架,使新手软件架构师推断系统的质量要求和策略,使用软件架构块线图。该框架将图像作为输入,提取各种组件和连接,并将其映射到可行的架构模式,然后识别系统相应的质量属性(QA)和策略。该框架包括基于图像处理和语义相似性方法的专门训练的机器学习模型,以帮助软件架构师通过以下方式评估给定设计:a)基于输入架构设计中存在的架构模式评估输入架构设计,b)列出设计在QA方面的优点和缺点,c)推荐必要的架构策略,这些策略可以嵌入到设计中,以实现缺乏的QA。为了训练我们的框架,我们开发了一个包含2,035个架构图像的数据集,这些架构图像来自14种架构模式,如客户端-服务器,微服务和模型视图控制器,可在https://www.doi.org/10.6084/m9.figshare.14156408上获得。该框架在识别建筑模式方面达到了98.71%的正确识别率。我们评估了所提出的框架的有效性和实用性,通过使用控制组和实验组,其中实验组的表现比控制组好约150%。实验作为工程学院计算机科学硕士课程的一部分进行。
2021-05-20 cs.SE
Systematically reviewing the layered architectural pattern principles and their use to reconstruct software architectures
体系结构重构是一种逆向工程活动,旨在恢复系统上丢失的决策。它可以帮助根据应用程序的体系结构模式识别遗留软件应用程序中的组件。识别架构技术债务是很有用的。我们感兴趣的是在分层应用程序中识别层,因为分层模式是构建大型系统最常用的模式之一。早期的组件重构工作主要关注于该模式,依赖于通用的组件标识标准,比如内聚和耦合。最近的工作已经确定了架构模式特定的标准,以识别该模式中的组件。然而,分层模式所体现的特定于架构模式的标准是松散定义的。在本文中,我们提出了第一个系统的文献综述(SLR)的文献,旨在清点这些标准的层内的遗留应用程序和分组下的四个原则,体现了基本的设计原则的基础上的架构模式。我们确定了六个这样的标准的设计规则的形式。我们还进行了第二次系统的文献综述,以综合文献的软件架构重建在这些标准。我们报告这些原则,它们所包含的规则,它们的表示,以及它们在软件架构重构中的使用。
2021-12-02 cs.SE
On Assessing the Complexity of Software Architectures
本文提出了一些适合评估软件系统体系结构属性的新体系结构度量。我们的方法的主要特点是通过分析架构中的各种类型的架构依赖来评估软件架构的复杂性。
2001-05-05 cs.SE
Software dependability modeling using an industry-standard architecture description language
在架构级别执行可靠性评估以及其他分析,既可以进行架构权衡,又可以预测架构决策对应用程序可靠性的影响。本文给出了使用AADL(体系结构分析与设计语言)建立软件系统体系结构可靠性模型的指导方针。它提出了可重用的容错应用程序的建模模式,并显示了如何提出的模式可以在现实生活中的应用程序的子系统的上下文中使用。
2008-09-24 cs.SE
Evolution Patterns: Designing and Reusing Architectural Evolution Knowledge to Introduce Architectural Styles
软件体系结构对于软件密集型系统的成功开发和发展至关重要。虽然对体系结构描述的正式和自动化支持已经得到了广泛的解决,但它们的发展同样至关重要,但显然没有得到很好的理解和支持。为了应对不断出现的进化需求,我们引入了进化模式的概念。它通过一组概念和一个可重用的演化过程来形式化架构演化。我们提出它通过引入现有的软件架构的架构风格的反复需要。我们正式描述和分析架构演化模式的可行性,并提供了一个实际的验证,通过实现它们在COSABuilder,Eclipse插件的COSA架构描述语言。
2016-05-20 cs.SE
Architectural Approaches to Overcome Challenges in the Development of Data-Intensive Systems
本文针对数据密集型系统的构建与维护难题,综述其架构设计挑战,并梳理主流软件架构风格在应对这些挑战方面的潜力。
2023-12-05 cs.SE
Architectural Blueprints: The 4+1 View Model of Software Architecture
本文提出了一个模型,用于描述软件密集型系统的体系结构,基于多个并发视图的使用。这种多视图的使用允许单独解决架构的各个利益相关者的关注点:最终用户,开发人员,系统工程师,项目经理等,并分别处理功能和非功能需求。我们描述了这五个视图中的每一个,并给出了一个表示法。这些视图是使用以架构为中心的、基于XML的、迭代的开发过程设计的。
2020-06-08 cs.SE
Architectural Software Patterns for the Development of IoT Smart Applications
软件开发人员通常在没有正式架构的情况下开始编写应用程序,并依赖直觉和经验,而不是众所周知的设计模式。推荐一种不同的方法来开发物联网智能应用程序,因为它结合了传感器,执行器,通信技术和大数据分析的高度复杂性,以及它跨越不同领域,雾和云基础设施层的分布式性质。文献报告了物联网智能应用程序软件开发的许多经验。然而,架构解决方案的提出没有合理的选择软件组件和它们之间的相互关系。本文提出了软件组件及其关系的分类,以便为特定的物联网智能应用程序建模软件架构。我们选择了城市、建筑和农业的三个智能应用程序作为使用一些组件、连接器和众所周知的设计模式的示例。最后,讨论了物联网软件架构选择中涉及的问题和挑战。
2020-03-17 cs.SE
Archify: A Recommender System of Architectural Design Decisions
软件体系结构在软件质量保证中起着至关重要的作用。然而,中小型公司(SMC)往往缺乏具有软件架构技能和专业知识的专业人员。这种情况可能会影响软件产品的最终质量,并给项目预算带来额外的咨询费用压力。本文介绍了一个名为Archify的建筑设计决策推荐系统。我们的目标是支持SMC公司在架构设计他们的产品的努力的一部分。Archify实现了一个向导风格的界面,可以指导开发人员或项目经理解决一系列特定的问题。当用户回答这些问题时,Archify会缓冲一组相应的架构决策建议。作为最终结果,系统根据开发中软件的需求(由用户提供)推荐一组与项目需求相匹配的架构决策。来自学术界和工业界的19位专业人士通过两项调查对Archify进行了评估。调查结果显示,94.7%的参与者认可Archify作为支持工具。答复者还强调缺乏支持软件架构设计的工具,并指出拟议系统的相关性。
2021-06-15 cs.SE
Examining the Relationship of Code and Architectural Smells with Software Vulnerabilities
安全性对于为商业或个人使用而开发的软件至关重要。虽然越来越多的组织意识到应用安全编码实践的重要性,但在其中许多组织中,直到发生安全故障时才知道或解决安全问题。安全失败的根本原因是易受攻击的代码。虽然度量已被用于预测软件漏洞,我们探索代码和架构气味与安全弱点之间的关系。由于气味是软件中更深层次问题的表面指标,因此确定气味与软件漏洞之间的关系可以在漏洞预测模型中发挥重要作用。目的:探讨气味与软件漏洞的关系,以识别气味。方法:我们提取了三个系统的类、方法、文件和包级别的气味:Apache Tomcat、Apache CXF和Android。然后,我们比较了它们在报告包含易受攻击代码的易受攻击类和中性类(尚未报告漏洞的非易受攻击类)中的出现情况。结果:我们发现,与非脆弱类相比,脆弱类更有可能具有某些气味。上帝类、复杂类、大类、数据类、特征嫉妒类、大脑类与软件漏洞具有统计学显着关系。我们发现架构气味和软件漏洞之间没有显著的关系。结论:我们可以得出结论,对于所有被检查的系统,在软件漏洞和一些气味之间存在统计学上显著的相关性。
2020-10-29 cs.SE
Toward an Architectural Blueprint to Observe Sustainability in and by Software Systems
Vrije Universiteit Amsterdam(阿姆斯特丹自由大学)
本文提出一种架构蓝图和部署代码,用于在软件系统中添加可观察性,特别包括测量软件能耗,以帮助定义必要组件并示例展示可观察性添加。
2026-04-10 cs.SE
Service Colonies: A Novel Architectural Style for Developing Software Systems with Autonomous and Cooperative Services
本文提出新型软件架构风格服务集群,由自主服务协作实现系统目标,各服务具备特定功能与主动决策能力,可提升系统的去中心化、灵活适配及容错等特性。
2024-07-09 cs.SE
Towards Enabling Architectural Refactorings through Source Code Annotations
众所周知,软件需要改变以满足新的需求。软件体系结构模型和实现的同步对于保持体系结构文档的有用性和软件演化过程的可管理性是非常重要的。在本文中,我们实现了两个步骤的过程中的同步。首先,我们用架构信息扩充源代码。第二,这个“轻量级架构模型”可以更容易地对照完整的架构描述进行检查。基于这种方法,任何一方(代码或架构)的重构都可以自动检测,并且可以进行一致性检查。
2014-09-22 cs.SE
Towards Assurance-Driven Architectural Decomposition of Software Systems
计算机系统是如此复杂,因此它们通常是按照抽象层来设计和分析的。复杂性仍然是用于发现软件设计缺陷和实现错误的逻辑推理工具面临的挑战。抽象也是将这些工具扩展到更复杂系统的常用技术。然而,在许多情况下,系统设计阶段使用的抽象与用于保证的抽象不同。在本文中,我们认为,不同的软件质量保证技术对软件系统的不同方面。为了促进保证,并保证工具顺利集成到软件开发环境(SDLC),我们提出了一个4维元架构,分离计算,协调和有状态的软件工件在设计阶段的早期。我们列举了一些设计和保证的挑战,可以解决这个元体系结构,并演示了一个简单的文件系统的高层次设计。
2021-06-17 cs.SE
Delta-oriented Architectural Variability Using MontiCore
软件体系结构建模是软件开发过程的基本组成部分。软件组件的重用和软件拓扑的早期分析可以降低开发成本并提高软件质量。将可变性建模概念集成到体系结构描述语言(ADL)中,对于开发对软件质量有高要求的多样化软件系统是必不可少的。在本文中,我们提出了三角洲建模到现有的ADL MontiArc的集成。Delta建模是一种独立于语言的可变性建模方法,支持主动式、被动式和提取式产品线开发。我们展示如何?- MontiArc是一种基于delta建模的体系结构可变性显式建模语言,使用DSL开发框架MontiCore实现为领域特定语言(DSL)。我们还演示了如何MontiCore的语言重用机制提供了有效的手段来实现?- MontiArc工具实现。我们评估?- Monti-Arc模型与注释性变异模型的比较。
2014-09-08 cs.SE
Using Social Choice Theory to Finalize Architectural Decisions
无偏见和客观的架构设计决策对于软件开发项目的成功至关重要。利益相关者的投入在达成这样的设计决策中发挥着重要作用。然而,涉众可能会以有偏见的方式行事,以确保他们的需求和关注点在软件中以特定的方式得到解决。大多数现有的架构决策方法都没有充分考虑到涉众的这种有偏见的行为。我们将软件体系结构设计看作是社会选择理论中的集体决策问题,并将机制设计的核心思想引入到我们的领域。我们的贡献是双重的:i)使用社会选择理论的不可能性结果,我们表明,一个理性的利益相关者可以游戏,她的优势,几乎每一个已知的软件架构决策方法。ii)我们还表明,如果架构师愿意承担额外的成本,给予适当的激励利益相关者,那么建筑决策可以保护战略(偏见)操纵。为了实现这一目标,我们介绍了Vickrey-Clarke-Groves(VCG)机制,从社会选择理论的软件体系结构域。我们说明我们的贡献,通过比较和使用的例子,从著名的CBAM方法的建筑决策。
2019-05-27 cs.SE
Symmetry in Software Platforms as an Architectural Principle
本文提出软件平台通过保持结构对称性来增强架构鲁棒性,并探讨了对称性作为架构原则的核心思想。
2025-10-23 cs.DC cs.SE
mRUBiS: An Exemplar for Model-Based Architectural Self-Healing and Self-Optimization
自适应软件系统通常被构造成一个自适应引擎,该引擎通过对表示软件架构的运行时模型进行操作来管理自适应软件(基于模型的架构自适应)。尽管这种方法很流行,但现有的范例提供了应用程序编程接口,但没有运行时模型来开发自适应引擎。因此,不存在任何支持开发、评估和比较现成的基于模型的自适应的范例。因此,我们提出了mRUBiS,一个可扩展的基于模型的架构的自我修复和自我优化的范例。mRUBiS模拟自适应软件,并因此提供和维护软件的架构运行时模型,该模型可以直接由自适应引擎使用以实现和执行自适应。特别是,mRUBiS支持将问题注入到模型中,这些问题应该通过自适应来处理,并验证模型以评估自适应。最后,mRUBiS允许开发人员探索适配引擎的变体(例如,事件驱动的自适应),并评估引擎的有效性、效率和可扩展性。
2018-04-03 cs.SE
Architectural Design Activities for JAS
构建任何软件系统的关键部分是其体系结构。建筑设计是一种更高抽象层次的设计。一个好的架构可以保证软件满足其需求。本文定义了在软件开发过程中最重要的体系结构设计活动,并将这些活动应用于电子商务应用中的一种类型--职业中介系统(JAS),以说明这些活动如何在这些类型的应用中发挥作用。
2009-12-05 cs.SE
A Testing Scheme for Self-Adaptive Software Systems with Architectural Runtime Models
自适应软件系统(SASS)配备有反馈回路,以自主地适应软件或环境的变化。在已建立的领域,如嵌入式软件,已经开发出复杂的方法来系统地研究反馈回路早期在开发过程中。为了涵盖反馈的特殊性,包括单向和在环仿真和测试等技术。然而,目前缺乏系统测试SASS的相关方法。因此,在本文中,我们提出了一个系统的测试方案,SASS,允许工程师测试的反馈回路在开发早期利用建筑运行时模型。这些在开发早期可用的模型通常在运行时由反馈循环的活动使用,并且它们提供了合适的高级抽象来描述测试输入以及预期的测试结果。我们通过一个小的案例研究,进一步概述了我们的想法与一些初步的评估结果。
2018-05-17 cs.SE
The Architecture Tradeoff and Risk Analysis Framework (ATRAF): A Unified Approach for Evaluating Software Architectures, Reference Architectures, and Architectural Frameworks
本文提出统一的场景驱动框架ATRAF,通过ATRAM、RATRAM和AFTRAM三种迭代方法,系统评估软件架构、参考架构和架构框架在不同抽象层级上的权衡与风险,弥补了ATAM等现有方法无法处理高层级架构的不足。
2025-05-01 cs.SE
Architectural Consistency Checking in Plugin-Based Software Systems
手动确保软件系统的实现与软件架构一致是一项费力且容易出错的任务。因此,已经开发了各种自动一致性检查的方法来对抗架构侵蚀。然而,这些方法缺乏手段来定义和检查架构限制插件的依赖关系,这是需要基于插件的软件系统。在本文中,我们提出了一个特定于域的语言,称为依赖约束语言(DepCoL),以方便有关插件依赖关系的约束的定义。使用DepCoL,可以定义影响插件组的约束,减少所需的规范工作,仅为特定插件制定约束并细化约束。此外,我们还提供了一个Eclipse插件,它可以检查开发中的软件系统是否与建模的约束一致。这使得无缝集成到开发过程中,以便在软件系统开发期间轻松检查一致性。通过这种方式,开发人员可以立即了解依赖关系违反,这有助于开发人员对抗架构侵蚀。
2015-10-28 cs.SE
Cloud-Native Architectural Characteristics and their Impacts on Software Quality: A Validation Survey
本文通过对42名软件专业人员的问卷调查,验证并修订云原生架构质量模型,提出纳入实证结果的更新版本及可调查层次化复杂结构的问卷工具。
2023-06-21 cs.SE
Capturing Software Architecture Knowledge for Pattern-Driven Design
软件架构是一个知识密集型领域。存储架构知识的一种机制是架构模式的识别和描述。对于软件架构师来说,选择架构模式是一项具有挑战性的任务,因为关于这些模式的知识分散在大量的文献中。方法:我们报告了一个系统的文献综述,目的是建立一个决策模型的建筑模式选择问题。此外,12个经验丰富的从业人员在软件生产组织评估的可用性和有用性提取的知识。\newline结果:概述了29种模式及其对40种质量属性的影响。此外,我们报告在哪些系统中的29种模式的应用,并在哪些组合。实践者证实,架构知识支持软件架构师的决策过程,为新问题选择一组模式。我们调查了建筑师选择模式的潜在趋势。结论:有了可用的知识,架构师可以更快地选择和消除模式组合来设计解决方案。拥有这些现成的知识可以支持软件架构师做出更高效和有效的设计决策,以满足他们的质量问题。
2020-05-17 cs.SE
A Qualitative Study of Architectural Design Issues in DevOps
软件架构对于DevOps的成功至关重要。然而,设计支持DevOps(DevOps-driven software architecture)的软件架构对组织来说是一个挑战。我们断言,表征DevOps驱动架构的重要步骤之一是理解DevOps中提出的架构设计问题。同时,DevOps上下文中出现的一些架构问题(及其相应的架构实践或策略)可能源于上下文(即,域)和软件组织的特性。为此,我们进行了一项混合方法研究,其中包括一个公司中两个团队在DevOps转型期间的定性案例研究,以及Stack Overflow和DevOps Stack Exchange帖子的内容分析,以了解DevOps中的架构设计问题。我们的研究发现了两个团队面临的八个具体的和上下文相关的架构设计问题,并将Stack Overflow和DevOps Stack Exchange中讨论的架构设计问题分为11组。我们的汇总结果显示,DevOps驱动的架构的主要特征是:松散耦合,优先考虑可部署性,可测试性,可支持性和可修改性。最后,我们讨论了一些具体的研究和实践的影响。
2021-11-13 cs.SE
Formal Semantics of Architectural Decision Models
软件架构是软件架构师做出的多个决策的结果。这些决策被称为架构决策,因为它们为架构问题带来解决方案。决策之间的关系可以在架构决策模型中捕获。这样的模型是软件架构师可重用知识的一种形式。文献中已经描述了几种模型,引入了必要的概念和关系。这些概念和关系通常用自然语言来解释。到目前为止,对它们的正式定义还没有做太多的工作。具体来说,这样一个架构决策模型的定义仍然缺失。本文的目的是填补这一空白,在语法和语义两个层次上提供了一个架构决策模型的正式定义。在语法级别,作为模型元素的不同概念和关系已经被数学定义。在语义层次上,模型的意义以指称语义的形式被定义。形式化不仅允许更好地理解架构决策模型,还打开了对这些模型进行推理的可能性,例如,检查它们的一致性-这对于迄今为止提出的模型来说是非常有限的。一个实际的例子,建筑决策模型的语义。
2018-07-08 cs.SE
Exploring Web Search Engines to Find Architectural Knowledge
软件工程师需要相关的和最新的架构知识(AK),以便做出有根据的设计决策。然而,找到这样的AK是相当具有挑战性的。一种实用的方法是使用传统的搜索引擎(例如Google)在Web上搜索AK;这是软件工程师的常见做法。尽管如此,我们对AK是从哪里取回的,以及它有多有用知之甚少。在本文中,我们进行了实证研究,53名软件工程师,谁使用谷歌使用属性驱动设计方法进行设计决策。基于受试者如何评估检索结果的性质和相关性,我们确定了网络搜索引擎找到相关建筑信息的有效性。此外,我们确定了网络上AK的不同来源及其相关的AK概念。
2021-03-22 cs.SE
Architectural Challenges in Migrating Plan-driven Projects to Agile
软件开发已经稳步地接受敏捷软件开发方法/方法(ASDM),并且已经远离计划驱动的软件开发方法(PDM)方法,如瀑布。鉴于敏捷开发的迭代特性,将软件架构集成到敏捷方式中变得具有挑战性。本研究通过文献回顾和案例分析,确定了在已经通过计划驱动方法执行的项目和新项目中拥有强大架构的挑战。随后的分析发现,有三个主要领域:人,过程和技术,这些挑战可以映射。
2021-02-28 cs.SE
Minimizing the Risk of Architectural Decay by using Architecture-Centric Evolution Process
软件系统在其整个生命周期中经历了许多值得注意的变化,以跟踪问题域的演变。通常,软件系统体系结构不能跟随问题域的快速演化,这导致实现的体系结构和设计的体系结构之间的差异。软件体系结构描述了一个系统的结构和全局属性,从而不仅决定了系统应该如何构造,而且还引导了系统的演化。体系结构在确保系统在实现和演化过程中满足其业务和任务目标方面扮演着重要角色。然而,当实现不符合所设计的架构时,所设计的架构的能力可能会丢失。这种一致性的丧失会导致架构衰退的风险。如果尽早进行架构更改,则可以避免架构衰退。本文提出了以体系结构为中心的演化过程模型,该模型通过保持设计的体系结构和实现之间的一致性来提高软件系统的质量。它还增加了开发人员的架构意识,这有助于最大限度地减少架构衰退的风险。在所提出的方法中,在变更实施之前和之后执行一致性检查。
2011-11-29 cs.SE
A quantitative framework for evaluating architectural patterns in ML systems
本文提出一个量化评估框架,通过可扩展性和性能指标,帮助软件架构师在机器学习系统中客观选择最优架构模式,以应对成本效益高的CPU推理挑战。
2025-01-20 cs.SE
Requirements for Active Assistance of Natural Questions in Software Architecture
本文研究软件架构中自然问题的生命周期及其管理需求,提出通过集成知识管理工具和AI技术构建辅助环境,以更有效地支持协作、决策和架构知识保存。
2025-06-30 cs.SE
The Framework For The Discipline Of Software Engineering in Connection to Information Technology Discipline
本文代表了初步的工作,在确定软件工程的学科基础,并发现之间的联系领域的软件工程和信息技术(IT)。我们的研究利用IEEE Transactions on软件工程(IEEE-TSE)、ACM Transactions on软件工程and Methodology(ACM-TOSEM)、Automated软件工程(ASE)、International Conference on软件工程(ICSE)以及其他软件工程领域的相关期刊出版物来解决我们的研究问题。我们探索了现有的框架,并描述了软件工程作为一门学科的必要性。我们进一步澄清了软件工程和计算机科学之间的区别。通过这些努力,我们有助于了解如何从IT研究的证据可以用来提高软件工程作为一门学科。
2022-10-27 cs.SE
Learning From Each Other: How Are Architectural Mistakes Communicated in Industry?
本文通过访谈十名德国软件架构师的扎根理论研究,考察架构错误的定义、处理与沟通方式,发现其主要局限于项目团队,并提出促进跨团队学习与错误预防的策略。
2023-07-10 cs.SE
A Conceptual Framework to Analyze Enterprise Business Solutions from a Software Architecture Perspective
当软件供应商向客户展示产品时,软件系统的体系结构方面并不总是明确地暴露给客户。因此,如果新出现的业务需求需要修改其组织内的某些核心业务流程,则客户可能会面临重大风险。因此,他们可能需要替换现有系统或重新构建旧系统,以符合新的架构标准。本文介绍了一个建议的框架,帮助组织建立一个全面的看法,他们的系统架构之前,处理供应商。因此,每个组织都可以有一个参考模型,便于与软件供应商进行谈判和沟通。本文应用所提出的框架,在沙特阿拉伯地区的一个组织,以验证其适用性,并生成一个架构设计,为他们的软件系统。
2012-10-14 cs.SE
An AUTOSAR-Aligned Architectural Study of Vulnerabilities in Automotive SoC Software
本研究分析180个汽车SoC漏洞,映射至AUTOSAR架构模型,识别16个根因和56个受影响模块,揭示漏洞模式及补丁延迟,为SoC软件安全提供检测与定位策略。
2025-10-09 cs.SE
Implementing Software Project Control Centers: An Architectural View
在工业实践中,建立有效和高效的软件和系统开发项目控制机制仍然具有挑战性。一方面,往往缺乏必要的先决条件,如既定的发展进程、对相关指标的因果关系的理解以及衡量方案的充分可持续性。另一方面,有更根本的方法缺陷有关的控制过程本身和适当的工具支持。保证控制数据的有用性、完整性和精确性的其他活动普遍缺失。本文提出了一个所谓的软件项目控制中心(SPCC),解决这些挑战的概念架构。该架构包括获取足够准确和完整的数据以及支持不同利益攸关方信息需求的机制。此外,该体系结构的实现,所谓的镜面工程支持环境,勾勒,并从评估在工业环境中实现的结果。
2014-01-07 cs.SE
The Essence Theory of Software Engineering - Large-Scale Classroom Experiences from 450+ Software Engineering BSc Students
软件工程作为一个行业在开发方法和实践方面是高度多样化的。从业者采用了无数的方法,并倾向于通过例如省略一些实践或规则来进一步定制它们。这种开发方法的多样性对软件工程教育提出了挑战,在教育和工业之间产生了差距。一般的理论,如软件工程的本质理论,可以帮助弥合这一差距,提出软件工程的学生与更高层次的框架,在此基础上建立一个软件工程方法和实际项目工作的理解。在本文中,我们研究本质在教育环境中,以评估其有用性的软件工程学生,同时也调查在这种情况下,它的采用的障碍。为此,我们观察了102个学生团队在一个学期的项目课程中在实际的软件工程项目中使用Essence。
2018-09-24 cs.SE
Enhancing the Accuracy and Comprehensibility in Architectural Tactics Detection via Small Model-Augmented Prompt Engineering
针对架构战术检测中黑盒模型缺乏可解释性的问题,提出小模型增强的提示框架Prmt4TD,结合微调小模型与上下文学习,在提升检测准确率13%-23%的同时增强了结果的可理解性。
2025-03-05 cs.SE
SAKE: Software Architectural Knowledge Evaluation Benchmark for Large Language Models
University of Southern Denmark(丹麦南方大学)
提出SAKE基准,包含2154道专家策划的多选题,评估LLM在八个架构类别和四种上下文长度下的架构知识,揭示专业实践中的能力差距。
2026-06-28 cs.AI cs.DB cs.SE
Architecture Knowledge Representation and Communication Industry Survey
本文通过调查荷兰一家银行45位架构师,分析架构知识表示与沟通现状,发现金融领域缺乏领域专用AK工具,并提出需构建连接多利益相关者视角的新架构元素及提供可持续软件工程实践指导。
2023-09-20 cs.SE
What rationales drive architectural decisions? An empirical inquiry
本文通过问卷与访谈实证探究架构决策背后的理据,发现架构师偏好熟悉或能快速实现的方案,中期职业者更开放,且兼容性与可移植性因现代开发实践而较少被关注。
2023-09-25 cs.SE
Evolving Delta-oriented Software Product Line Architectures
多样性在现代软件系统中很普遍。同时存在几种系统变体,以适应不断变化的用户需求。此外,软件系统随着时间的推移而发展,以适应其应用环境中的意外变化。在现代软件开发中,软件体系结构建模是通过体系结构分解来处理系统复杂性的重要手段。这就需要一种能够表示空间和时间可变性的体系结构描述语言。在本文中,我们提出了三角洲建模的软件体系结构作为一个统一的建模形式主义的建筑在空间和时间上的变化。为了避免产品线模型在系统演化下的退化,我们提出了重构技术来维护和提高可变性模型的质量。使用一个正在运行的例子,从汽车领域,我们评估我们的方法进行了案例研究,比较三角洲建模与注释性的可变性建模。
2014-09-08 cs.SE
Experience in engineering of scientific software: The case of an optimization software for oil pipelines
科学和工程软件的开发通常是不同的,可能比传统的企业软件的开发更具挑战性。作者参与了学术界和工业界之间的一个技术转让项目,该项目侧重于石油管道泵送能源成本优化软件的工程、开发和测试。具有不同技能的专家(机械、电力和软件工程师)参与其中。考虑到软件的复杂性(复杂的底层优化模型)以及具有来自不同领域的专家,在软件系统的各个软件工程方面存在挑战(例如,要求和测试)。我们报告我们的观察和经验,在我们的技术转让项目中解决这些挑战,并旨在增加现有的经验和证据的科学和工程软件的工程。我们相信,我们的观察,经验和教训,可以为其他科学和工程软件系统的工程研究人员和从业人员有用。
2020-03-01 cs.SE
Object-Oriented Architecture: A Software Engineering-Inspired Shape Grammar for Durands Plates
本研究提出一种基于函数式与面向对象编程的形状语法系统,以 Durand 风格模块化生成图版,为在 CAD 软件中系统构建复杂历史建筑元素提供了灵活的计算解决方案。
2024-04-20 cs.SE
Software Engineering und Software Engineering Forschung im Zeitalter der Digitalisierung
正如科学记者约格什瓦尔所建议的那样,数字化不仅影响社会,还需要重新定义计算机科学和计算机科学家的位置。由于数字化的所有官方方面都是基于软件的,本文试图重新定义软件工程及其研究的作用。基于软件的产品、系统或服务正在影响生活的各个领域,是生活各个领域数字化的关键组成部分和核心创新驱动力。在科学上,软件工程作为一门驱动学科,在任何技术创新的发展中都有新的机遇和挑战。然而,这些机会绝不能被牺牲,以竞争文献计量数字为目的。
2020-02-25 cs.SE
Software Engineering at Google
我们对Google的关键软件工程实践进行了分类和描述。
2020-01-30 cs.SE
Delta Modeling for Software Architectures
架构建模是现代软件开发的一个组成部分。特别是,不同的系统受益于精确的架构模型,因为类似的组件通常可以在不同的系统变体之间重用。然而,在不同的系统开发的所有阶段,系统的可变性,必须考虑和适当的手段建模。Delta建模是一种独立于语言的系统可变性建模方法。一组不同的系统由一个核心系统和一组指定对核心系统的修改的增量表示。在本文中,我们给出了第一个草图,如何应用三角洲建模MontiArc,现有的架构描述语言,以获得一个集成的建模语言的架构变化。所开发的语言MontiArc允许对可变软件架构进行模块化建模,并支持主动式和提取式产品线开发。
2014-09-08 cs.SE
The Study and Approach of Software Re-Engineering
软件再工程的本质是改进或改造现有软件,使其能够被理解,控制和重用为新软件。需求,软件再工程的必要性大大增加。这些系统软件已经过时,不再用于架构,它们运行的平台稳定一致,它们支持开发和支持需求的变化。软件再工程是恢复和重用现有软件中固有的东西,将软件维护成本控制在最低限度,为未来软件开发奠定基础的重要手段。
2011-12-17 cs.SE
Software Architecture for Quantum Computing Systems -- A Systematic Review
量子计算系统依赖于量子力学的原理,比经典计算系统更有效地执行大量具有计算挑战性的任务。软件密集型系统的架构可以使架构师能够利用以架构为中心的过程、实践、描述语言等,在更高的抽象层次上对量子计算软件(简称量子软件)进行建模、开发和进化。我们进行了系统的文献综述(SLR),以调查(i)架构过程,(ii)建模符号,(iii)架构设计模式,(iv)工具支持,以及(iv)量子软件架构的挑战性因素。SLR的结果表明,量子软件代表了一种新的软件密集型系统;然而,可以定制现有的过程和符号来导出量子软件的架构活动和开发建模语言。映射到量子门(Qugates)的量子比特(Qubits)可以表示为实现量子软件的架构组件和连接器。工具链可以包含可重用的知识和人类角色(例如,量子域工程师、量子代码开发人员)来自动化和定制架构过程。该SLR的结果可以帮助研究人员和从业人员开发新的假设进行测试,导出参考架构,并利用以架构为中心的原则和实践来设计新兴的和下一代的量子软件。
2023-03-22 cs.SE
What Practitioners Really Think About Continuous Software Engineering: A Taxonomy of Challenges
持续软件工程是一种协作式的软件开发环境,它提供了在短时间内持续开发和部署高质量软件项目的能力。针对持续软件工程实践尚不成熟,软件组织对采用持续软件工程犹豫不决的问题,本研究的目的是:(1)通过系统的文献综述(SLR)和问卷调查研究获得行业专家的见解,以探索持续软件工程的挑战;(2)使用模糊层次分析法(FAHP)对调查的挑战进行优先级排序。研究结果提供了一套软件组织所面临的关键挑战,同时采用持续软件工程和基于优先级的分类的持续软件工程的挑战。FAHP的应用是新颖的,在这个研究领域,因为它有助于解决从业者的连续软件工程的影响因素的不确定性。我们相信,这项研究的结果将作为一个知识体系,为现实世界的从业者和研究人员修改和开发新的战略,成功地实施持续软件工程的做法在软件行业。
2023-03-30 cs.SE
The Dangerous Dogmas of Software Engineering
为了使自己成为一门科学学科,软件工程学术界必须放弃其非经验主义的教条。教条是不顾证据而持有的信念。本文分析了四个软件工程教条的性质和有害影响:1)相信软件有“需求”; 2)软件工程任务分为分析,设计,编码和测试; 3)相信软件工程主要是设计“软件”系统; 4)相信软件工程有效地遵循方法。解构这些教条表明,它们都过于简化和过度合理化的软件工程实践方面,这掩盖了潜在的现象,误导了研究人员和从业者。基于证据的实践被分析为一种揭露和批判非经验教条的手段。这一分析结果在几个新的建议,以克服基于证据的实践的实际挑战。
2018-02-18 cs.SE
Towards Quantum Software Requirements Engineering
本文探讨量子软件需求工程与经典软件需求工程的差异,通过映射经典需求分类提出初步思考,并指出值得量子软件工程界关注的研究方向。
2023-09-23 cs.SE
Towards a Family-based Analysis of Applicability Conditions in Architectural Delta Models
软件体系结构中的可变性建模是软件产品线开发的一个基本部分。?- MontiArc允许通过指定的核心架构和一组修改核心架构以实现其他架构变体的架构增量模型以模块化方式描述架构可变性。Delta模型必须满足一组适用性条件,以定义架构变体。原则上可以通过生成所有可能的架构变体来检查适用性条件,这需要反复考虑相同的中间架构。为了重用以前计算的架构变体,我们提出了一个家庭为基础的分析的适用性条件使用的概念,逆三角洲。
2014-09-08 cs.SE
A Longitudinal Study of Identifying and Paying Down Architectural Debt
架构债是一种技术债,它源于系统的架构设计“应该”与“现状”之间的差距。我们以两种方式度量架构债:1)根据系统范围的耦合度量,以及2)根据架构缺陷的数量和严重性。在最近的工作中,已经表明架构债的数量对软件的可维护性和演化有着巨大的影响。因此,检测和减少债务有望使软件更容易改变。本文报告的纵向研究的医疗保健通信产品创建的鱿鱼安全通信公司这家初创公司正面临着典型的权衡问题,希望响应变化的请求,但要避免不断增加的努力,积累的快速和肮脏的变化最终招致。在研究的第一阶段,我们分析了“之前”系统的状态,这表明了变更请求的影响。这项初步研究激发了对建筑债务的更深入分析。分析的结果被用来激励软件系统的全面重构。研究的第三阶段是对建筑债务进行后续分析,对所取得的改进进行量化。使用这种定量的证据,通过对Squid的建筑师进行深入采访收集的定性证据,我们提出了在实践中偿还建筑债务的成本和收益的经验教训。
2018-11-30 cs.SE