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
Enhancing the Accuracy and Comprehensibility in Architectural Tactics Detection via Small Model-Augmented Prompt Engineering
针对架构战术检测中黑盒模型缺乏可解释性的问题,提出小模型增强的提示框架Prmt4TD,结合微调小模型与上下文学习,在提升检测准确率13%-23%的同时增强了结果的可理解性。
2025-03-05 cs.SE
SyDRA: An Approach to Understand Game Engine Architecture
针对游戏引擎架构复杂难理解引发的开发问题,提出子系统依赖恢复方法SyDRA,经10款开源引擎验证和对照实验表明,其生成的架构模型可提升开发者架构理解与影响分析的效率和正确率。
2024-07-14 cs.SE
An Exploratory Approach for Game Engine Architecture Recovery
游戏引擎为视频游戏开发人员提供了广泛的基础子系统来创建游戏,例如2D/3D图形渲染,输入设备管理和音频播放。开发人员经常将这些子系统与其他应用程序集成或通过插件扩展它们。为了正确地集成或扩展,开发人员需要广泛的系统架构理解。然而,体系结构信息并不总是容易获得,并且在这种系统中经常被忽视。在这项工作中,我们提出了一种游戏引擎架构恢复的方法,并探讨了三个流行的开源游戏引擎(Cocos2d-x,Godot和Urho 3D)的架构。我们进行手动子系统检测,并使用Moose,软件分析平台,生成建筑模型。通过这些模型,我们回答了以下问题:游戏引擎中存在哪些子系统?哪些子系统更经常相互耦合?为什么这些子系统相互耦合?结果表明,平台独立性,资源管理,世界编辑器和核心子系统经常被其他人包括在内,因此作为游戏引擎的基础。此外,我们表明,通过应用我们的方法,游戏引擎开发人员可以了解子系统是否相关,并划分责任。他们还可以评估子系统之间的关系是否适合游戏引擎。
2023-03-20 cs.SE
Web Engineering
Web工程是应用系统的,规范的和可量化的方法来开发,操作和维护基于Web的应用程序。它既是一种积极主动的方法,也是Web应用程序开发中不断增长的理论和实证研究的集合。本文通过解决以下问题对Web工程进行了概述:a)为什么需要它?(b)其业务范围是什么?c)它如何帮助以及应该做些什么来改进Web应用程序开发?以及d)如何将其纳入教育和培训?本文讨论了Web应用程序和传统软件之间存在的显着差异,Web应用程序的分类,迄今取得的进展和研究问题和经验,创造一个专业化的硕士水平。本文得出的结论是,Web工程在这个阶段是一个移动的目标,因为Web技术不断发展,使新类型的应用程序成为可能,这反过来又可能需要创新,他们是如何建立,部署和维护。
2003-06-18 cs.SE
Object-Oriented Architecture: A Software Engineering-Inspired Shape Grammar for Durands Plates
本研究提出一种基于函数式与面向对象编程的形状语法系统,以 Durand 风格模块化生成图版,为在 CAD 软件中系统构建复杂历史建筑元素提供了灵活的计算解决方案。
2024-04-20 cs.SE
Round-trip Engineering for Tactical DDD: A Constraint-Based Vision for the Masses
Karlsruhe Institute of Technology(卡尔斯鲁厄理工学院);esentri AG(esentri股份公司)
本文提出基于约束的战术建模环境,通过将抽象架构原则转化为显式工程约束,降低DDD学习门槛,提升系统可维护性。
2026-03-27 cs.SE
Opportunities in Software Engineering Research for Web API Consumption
如今,调用第三方代码越来越多地涉及通过其Web API调用Web服务,而不是下载库并调用库的API的更传统的场景。然而,对于调用这些Web API的开发人员来说,也存在新的挑战。在本文中,我们强调了这些挑战的广泛集合,并主张为软件工程研究提供机会,以支持开发人员使用Web API。在此背景下,我们概述了两个具体的研究思路:(1)Web API规范策展,使我们能够知道Web API的签名,(2)静态分析,能够提取URL,HTTP方法等Web API调用。此外,我们还介绍了如何结合(1)和(2)为使用Web API的应用程序开发人员提供IDE支持的新工作。随着Web API的广泛使用,支持Web API消费的研究提供了令人兴奋的机会。
2017-05-18 cs.SE
A Methodology of Guiding Web Content Mining and Knowledge Discovery in Evidence-based Software Engineering
系统性文献综述(Systematic Literature Review,SLR)是应用于循证软件工程(Evidence-Based Software Engineering,EBSE)的一种严格的方法论,用于识别、评估和综合相关证据,以回答特定的研究问题。受益于Web 2.0时代蓬勃发展的在线资料,技术Web内容开始成为EBSE的替代来源。Web知识已经从Web内容挖掘和知识发现技术中得到了研究和推导,但是它们仍然与回顾学术文献有显著的不同。因此,EBSE中直接采用Web知识缺乏系统的指导。在本文中,我们提出了一个SLR的适应,以弥合上述差距沿两个阶段。首先,我们遵循SLR的一般逻辑和程序来规范Web挖掘活动。其次,我们用Web挖掘友好的方法和途径替代和增强特定的SLR过程。在第二阶段,我们主要专注于通过集成一组自动化组件,从编程搜索到各种文本挖掘技术,来适应进行审查。
2017-04-25 cs.SE
CFG2VEC: Hierarchical Graph Neural Network for Cross-Architectural Software Reverse Engineering
关键任务嵌入式软件对我们社会的基础设施至关重要,但随着技术的进步,可能会出现新的安全漏洞。当出现安全问题时,逆向工程师(RE)使用软件逆向工程(SRE)工具来分析易受攻击的二进制文件。然而,现有工具的支持有限,RE经历了一个耗时、昂贵且容易出错的过程,需要经验和专业知识来理解软件和漏洞的行为。为了改进这些工具,我们提出了$\textit{cfg2vec}$,层次图神经网络(GNN)为基础的方法。为了表示二进制,我们提出了一种新的图的图形(GoG)表示,结合控制流和函数调用图的信息。我们的$\textit{cfg2vec}$学习如何表示从各种CPU架构编译的每个二进制函数,利用分层GNN和基于siamese网络的监督学习架构。我们评估了$\textit{cfg2vec}$从剥离的二进制文件中预测函数名的能力。我们的结果表明,$\textit{cfg2vec}$优于国家的最先进的$24.54\%$在预测函数名称,甚至可以实现$51.84\%$更好地给予更多的训练数据。此外,对于所有CPU架构,$\textit{cfg2vec}$的性能始终优于最新技术水平,而基线需要多次训练才能实现类似的性能。更重要的是,我们的结果表明,我们的$\textit{cfg2vec}$可以处理从看不见的CPU架构构建的二进制文件,从而表明我们的方法可以概括学习到的知识。最后,我们通过将其实现为解决DARPA保…
2023-01-06 cs.SE
A Web-based modeling tool for the SEMAT Essence theory of Software Engineering
相对于更成熟的学科,软件工程缺乏一般的理论来建立它作为一门学科的基础。软件工程的本质理论(Essence)是由软件工程方法与理论(SEMAT)倡议提出的。本质目标是为软件工程实践及其广泛采用开发一个理论上的坚实基础。Essence还远未被学术界和工业界采用。SEMAT Accelerator(SematAcc)是一个用于软件工程的Web定位工具,它实现了SEMAT的Essence内核。SematAcc允许使用Essence,从而帮助理解它。该工具可以在受控实验和案例研究中教授,采用和研究Essence。
2013-07-31 cs.SE
Requirements Engineering of a Web Portal using Organizational Semiotics Artifacts and Participatory Practices
软件需求是影响最终系统质量和用户满意度的关键要素。在这项工作中,需求工程(RE)的网站使用组织符号学的角度。它们被显示为一个组织的一部分,有特定的做法、规则和观点,考虑到利益攸关方的一些分歧和意见。本文的主要贡献是相关的经验,从启发到验证,显示如何利用组织符号学文物的合作和参与的方式RE的门户网站。一个案例研究描述,以证明使用这样的工件RE的可行性,当我们认为系统作为一个社会组织的一部分。
2013-05-14 cs.SE
Readability and Understandability of Snippets Recommended by General-purpose Web Search Engines: a Comparative Study
本文通过排名、搜索引擎和推荐站点三个变量,对Google、Yahoo!和Bing针对9,480个查询推荐的代码片段进行了可读性与可理解性的实证分析,发现部分站点表现显著更好,且排名靠前不代表质量更高。
2021-10-14 cs.SE
Architectural Approaches to Overcome Challenges in the Development of Data-Intensive Systems
本文针对数据密集型系统的构建与维护难题,综述其架构设计挑战,并梳理主流软件架构风格在应对这些挑战方面的潜力。
2023-12-05 cs.SE
The Kansei Engineering Approach in Web Design:Case of Transportation Website
本文以运输公司网站为案例,将感性工学方法整合到网页设计中,通过感性词汇收集、5点SD量表调查和主成分分析识别关键设计因素,最终构建了以用户为中心、提升用户体验的网页设计方案。
2024-05-06 cs.SE
Recovering Architectural Variability of a Family of Product Variants
软件产品线(SPL)的目标是应用预先计划的系统重用大粒度的软件工件,以提高软件生产率,降低开发成本。SPL的思想是通过分析产品族的业务领域来识别产品之间的共性和可变性。然而,公司通常以特别的方式(例如克隆和拥有)开发一套产品,这些产品具有共同的功能,但在其他方面有所不同。因此,许多最近的研究成果提出了重新设计现有的产品变体的SPL。然而,这些贡献主要集中在管理需求级别的可变性。很少有贡献解决的可变性,在建筑水平,尽管它的主要重要性。从这一观察,我们提出,在本文中,一种方法来逆向工程的一组产品变体的架构。我们的目标是在架构级别上识别架构元素变体之间的可变性和依赖性。我们的工作依赖于形式概念分析(FCA)来分析变异性。为了验证所提出的方法,我们在两个开源产品变体系列上进行了实验:移动媒体和健康观察者。结果表明,我们的方法是能够识别架构的可变性和依赖关系。
2016-06-01 cs.SE
Microkernel-Based Web Architecture: Design & Implementation Considerations
本文提出介于单体式与微服务Web架构间的折中方案,修订基于微内核的Web架构设计以应对微服务挑战,结合自*属性方法与修改版MAPE-K循环,评估其潜力并思考实现问题。
2025-02-12 cs.SE
Architectural Blueprints: The 4+1 View Model of Software Architecture
本文提出了一个模型,用于描述软件密集型系统的体系结构,基于多个并发视图的使用。这种多视图的使用允许单独解决架构的各个利益相关者的关注点:最终用户,开发人员,系统工程师,项目经理等,并分别处理功能和非功能需求。我们描述了这五个视图中的每一个,并给出了一个表示法。这些视图是使用以架构为中心的、基于XML的、迭代的开发过程设计的。
2020-06-08 cs.SE
WebDesignIter: Co-Evolving Design Knowledge for Repository-Level Front-End Code Generation
Sun Yat-sen University(中山大学);School of Software Engineering, Sun Yat-sen University(中山大学软件学院)
研究针对前端开发仓库级代码生成问题,提出WebDesignIter框架,通过持久知识图谱融合设计知识与仓库结构,分两阶段工作,实验证明其相比基线和通用编码代理有优势,凸显设计知识对仓库级代码生成的重要性。
2026-07-14 cs.SE
Architecture Knowledge Representation and Communication Industry Survey
本文通过调查荷兰一家银行45位架构师,分析架构知识表示与沟通现状,发现金融领域缺乏领域专用AK工具,并提出需构建连接多利益相关者视角的新架构元素及提供可持续软件工程实践指导。
2023-09-20 cs.SE
Harnessing customized built-in elements -- Empowering Component-Based Software Engineering and Design Systems with HTML5 Web Components
本研究探讨了HTML5定制化内置元素在基于组件的软件工程与设计系统中的作用,分析了其在提升代码模块化、可重用性方面的优势及面临的兼容性等挑战,并指出其是推动Web应用创新的核心驱动力。
2023-11-28 cs.SE
Requirements Engineering for a Web-based Research, Technology & Innovation Monitoring Tool
针对RTI监测工具应用受限问题,提出需求工程过程识别利益相关者并获取需求,设计多层级架构,核心为仪表板模块,并以奥地利RTI监测器为例说明。
2025-01-18 cs.SE
Architecture Design for Human-Driven Systems
本文强调了人类的社会和流动行为在可持续社会技术系统的持续工程中的作用。我们的方法将人类的特征和意图与系统的目标联系起来,并对这种交互进行建模。这种建模方法将架构设计和相关联的服务质量(QoS)与人类的体验质量(QoE)对齐。我们设计了一个模拟环境,结合基于代理的社会模拟(ABSS)与建筑模型,通过模型驱动的工程方法产生。我们的建模方法有助于选择最佳的架构模型和系统配置,以提高人类和系统的可持续性。我们将我们的方法应用于乌菲兹美术馆的人群管理系统。利用真实数据,我们对影响QoE的不同场景进行建模。然后,我们评估各种架构模型与不同的软件/硬件配置,提出最佳模型的基础上不同的场景有关的QoS-QoE的要求。
2021-09-21 cs.SE
A quantitative framework for evaluating architectural patterns in ML systems
本文提出一个量化评估框架,通过可扩展性和性能指标,帮助软件架构师在机器学习系统中客观选择最优架构模式,以应对成本效益高的CPU推理挑战。
2025-01-20 cs.SE
Managing Separation of Concerns in Grid Applications Through Architectural Model Transformations
网格能够通过称为虚拟组织(VO)的临时协作,使用文件、应用程序和存储设备来聚合、虚拟化和共享大量异构和地理上分散的资源,以解决跨机构和国家的计算和数据密集型问题。大多数实现都会导致软件层的复杂叠加,通常会带来较低的服务质量和应用程序质量。因此,基于网格的应用程序的设计和开发越来越复杂,使用最经典的工程实践是不成功的。不仅是这样的应用程序的开发是一项耗时,容易出错和昂贵的任务,而且由此产生的应用程序往往是硬编码的特定网格配置,平台和基础设施。在基于网格的应用程序的设计中既没有指导方针也没有规则是一个矛盾,因为有许多现有的分布式计算的体系结构方法,这些方法可以简化和促进基于软件组件重用的严格工程方法。我们相信,目前使用的ad-hoc和半正式的工程方法,不足以满足未来的网格开发需求。由于基于网格的应用程序解决多学科和复杂的领域(健康,军事,科学计算),他们的工程需要严格和控制。因此,本文主张一个正式的模型驱动的工程过程和相应的设计框架和工具,用于建设下一代网格。
2007-07-05 cs.DC cs.SE
Analyzing Web Search Behavior for Software Engineering Tasks
Web搜索起着不可或缺的作用,在软件工程(SE),以帮助各种任务,如查找文档,调试,安装等,在这项工作中,我们提出了第一个大规模的分析,搜索行为的SE任务使用的搜索查询日志必应,商业网络搜索引擎。首先,我们使用远程监督技术来构建一个机器学习分类器,以提取F1得分为93%的SE搜索查询。然后,我们对一百万个搜索会话进行分析,以了解软件工程相关的查询和会话与其他查询和会话的不同之处。随后,我们提出了一个分类的意图,以确定在软件工程中使用Web搜索的各种情况。最后,我们分析了数百万个SE查询,以了解这些SE搜索意图的分布,搜索指标和趋势。我们的分析表明,SE相关的查询构成了整体网络搜索流量的重要组成部分。此外,我们发现,有六个主要的意图类别,其中网络搜索是用于软件工程。这些技术和见解不仅可以帮助改进现有工具,还可以激发新工具的开发,帮助为SE相关任务查找信息。
2020-08-29 cs.IR cs.SE
Generating Software Architecture Description from Source Code using Reverse Engineering and Large Language Model
Institute for Software and Systems Engineering(软件与系统工程研究所);Technical University of Clausthal(克莱斯特哈尔技术大学)
本文提出利用逆向工程与大语言模型生成软件架构描述,以自动化提取组件图和行为模型,减少人工依赖并提升系统可维护性。
2025-11-07 cs.AI cs.SE
Shift-Up: A Framework for Software Engineering Guardrails in AI-native Software Development -- Initial Findings
University of Jyväskylä(于韦斯屈莱大学)
本文提出Shift-Up框架,通过重新诠释传统软件工程实践作为结构化防护机制,以稳定AI生成行为并减少实现漂移,提升AI辅助开发的可控性。
2026-04-22 cs.AI cs.SE
A Formal Model of QoS-Aware Web Service Orchestration Engine
QoS感知的应用程序不仅可以满足用户的功能需求,而且还可以满足QoS需求。QoS感知的Web服务编排将客户的QoS需求转换为组件Web服务的QoS需求。本文从系统的角度讨论了QoS感知的Web服务编排问题,并设计了一个典型的QoS感知的Web服务编排引擎QoS-WSOE。更重要的是,我们建立了一个形式化的模型,基于演员系统理论的QoS-WSOE。在形式化模型中,我们使用一个三层金字塔结构来捕获客户的需求与一个概念命名为QoS感知的WSO服务,QoS感知的WSO系统的概念命名为QoS感知的WSO系统的特征,和QoS感知的WSO行为的概念命名为QoS感知的WSO行为的结构和行为。结论表明具有QoS感知的WSO行为的系统是QoS感知的WSO系统,并进一步可以提供QoS感知的WSO服务。
2013-12-03 cs.DC cs.SE
A Model-driven Approach for Continuous Performance Engineering in Microservice-based Systems
针对微服务系统快速演进部署易影响性能且缺乏系统化性能管理方法的问题,提出利用监测数据与架构模型的可追溯关系推导性能重构建议的模型驱动方法,并在两个领域系统上验证有效。
2023-02-20 cs.PF cs.SE
Beyond Models: Reflections on Engineering AI-enabled Systems in a Project-Based Course
Department of Mathematics and Computer Science, University of Bremen(不莱梅大学数学与计算机科学系);School of Computing Technologies, RMIT University(皇家墨尔本理工学院计算技术学院)
本文反思了一门研究生项目式课程的设计与实施,该课程通过开发电影推荐系统,培养学生对AI使能系统的架构设计、部署和监控能力,并基于混合方法研究揭示了学生在早期架构决策、ML集成、需求演进和数据管理方面的持续困难。
2026-06-16 cs.AI cs.SE
Architectural Patterns for Designing Quantum Artificial Intelligence Systems
本研究通过系统性映射研究,识别了量子增强人工智能系统软件架构的挑战与解决方案,提出了多种架构模式和中间件模式,并权衡了效率、可扩展性等质量属性,最终汇编成架构模式目录。
2024-12-17 cs.SE quant-ph
Towards a Context-Aware IDE-Based Meta Search Engine for Recommendation about Programming Errors and Exceptions
研究表明,在软件开发和维护过程中,软件开发人员花费大约19%的时间在Web上查找信息。传统的网络搜索迫使他们离开工作环境(例如,IDE)并在Web浏览器中查找信息。它也没有考虑开发人员寻找解决方案的问题的背景。Web浏览器和IDE之间的频繁切换既耗时又分散注意力,基于关键字的传统Web搜索通常对解决问题没有多大帮助。在本文中,我们提出了一个基于Eclipse IDE的Web搜索解决方案,利用三个流行的Web搜索引擎提供的API-谷歌,雅虎,Bing和一个流行的编程问答网站,堆栈溢出,并捕获内容相关性,上下文相关性,流行度和搜索引擎的信心,每个候选结果对遇到的编程问题。使用所提出的方法与75个编程错误和异常的实验表明,包含与给定的异常相关联的不同类型的上下文信息可以提高给定的异常的推荐精度。实验与现有的两种方法和现有的Web搜索引擎证实,我们的方法可以比他们更好的召回率,平均精度和其他性能指标,很少的计算成本。
2018-07-06 cs.IR cs.SE
Architecturally Significant MLOps Guidelines for ML Model Integration and Deployment: a Gray Literature Review
Vrije Universiteit Amsterdam(阿姆斯特丹自由大学);Technical University of Munich(慕尼黑技术大学)
通过灰色文献综述,总结了25条架构上重要的MLOps指南,分为五类,用于指导ML模型在MLOps系统中的集成与部署。
2026-06-03 cs.LG cs.SE
A Reference Architecture and Modelling Principles for Architectural Stability based on Self-Awareness: Case of Cloud Architectures
随着对软件依赖的增加,迫切需要设计长寿的软件。由于体系结构对软件的生命周期和所提供的服务质量有着深远的影响,因此稳定的体系结构是重要的资产。体系结构的稳定性往往反映了系统在支持持续变化而不逐步淘汰方面的成功。稳定性的\textit{behavioural}方面对于无缝操作是必不可少的,以持续保持质量需求的稳定,并防止体系结构的漂移和逐步淘汰。在本文中,我们介绍了一个参考体系结构和模型的稳定性。具体来说,我们利用自我意识原则和运行时目标建模来显式地支持架构稳定性。为了说明适用性和评估所提出的方法,我们考虑云架构的情况。实验结果表明,我们的方法提高了效率的架构在保持预期的行为稳定运行时操作。
2019-12-11 cs.DC cs.SE
An IDE-Based Context-Aware Meta Search Engine
传统的Web搜索迫使开发人员离开他们的工作环境,在Web浏览器中寻找解决方案。它往往不考虑他们的编程问题的背景。Web浏览器和工作环境之间的上下文切换是耗时且分散注意力的,并且基于关键字的传统搜索通常对解决问题没有多大帮助。在本文中,我们提出了一个基于Eclipse IDE的Web搜索解决方案,该解决方案从三个Web搜索API(Google、Yahoo、Bing和一个编程问答网站Stack Overflow)收集数据。然后,它在IDE中提供搜索结果,不仅考虑所选错误的内容,还考虑问题上下文、流行度和结果链接的搜索引擎推荐。在25个运行时间错误和异常情况下的实验表明,该方法的推荐准确率达到96%,优于基于关键字的搜索方法。我们还验证了一个用户研究的结果,涉及五个潜在的参与者,我们得到了64.28%的结果协议。虽然初步的结果是有希望的,该方法需要进一步验证更多的错误和例外情况,随后与更多的参与者进行用户研究,建立自己作为一个完整的IDE为基础的网络搜索解决方案。
2018-07-05 cs.IR cs.SE
The Web-CLI: Verifiable Privacy for Tools, Models, and Inference Engines in the Browser
Arizona State University(亚利桑那州立大学)
该研究提出Web-CLI架构,将命令行工具等部署为浏览器应用,通过客户端执行实现可验证隐私,展示了四个领域的参考实现,建议其作为处理敏感数据应用的默认架构。
2026-09-04 cs.CR cs.HC cs.SE