首页 > 最新文献

Journal of Systems and Software最新文献

英文 中文
Combinatorial transition testing in dynamically adaptive systems: Implementation and test oracle 动态自适应系统中的组合过渡测试:实现和测试甲骨文
IF 3.7 2区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-11-05 DOI: 10.1016/j.jss.2024.112260
Pierre Martou, Benoît Duhoux, Kim Mens, Axel Legay
Due to the large number of possible interactions and transitions among features in dynamically adaptive systems, testing such systems poses significant challenges. To verify that such systems behave correctly, combinatorial interaction testing (CIT) can create concise test suites covering all valid pairs of features of such systems. While CIT claims to find all errors caused by two features, it does not cover certain errors occurring only for specific transitions between features. To address this issue we study the technique of Combinatorial Transition Testing (CTT), which includes both generation and detection of what we call behavioural transition errors. From an initial generation algorithm that combines both interaction and transition coverage but lacks scalability, we propose an optimised version that enables CTT even for hundreds of features. From a valid test suite covering all transitions, we complete our testing approach with a test oracle that detects all behavioural transition errors without any prior knowledge of the system’s behaviour. After a comprehensive analysis over a large number of feature models, we conclude that size of CTT-generated test suites and test effort needed to use our test oracle are linearly correlated to CIT-generated ones and that CTT grows logarithmically in the number of features.
由于动态自适应系统的功能之间可能存在大量的交互和转换,因此测试这类系统面临着巨大的挑战。为了验证这类系统的行为是否正确,组合交互测试(CIT)可以创建简洁的测试套件,涵盖这类系统的所有有效特征对。虽然组合交互测试(CIT)声称能发现由两个特征引起的所有错误,但它并不涵盖仅在特征之间的特定转换时才会出现的某些错误。为了解决这个问题,我们研究了组合转换测试(CTT)技术,其中包括生成和检测我们称之为行为转换错误的技术。最初的生成算法结合了交互和转换覆盖范围,但缺乏可扩展性,因此我们提出了一个优化版本,甚至可以对数百个特征进行 CTT。从覆盖所有转换的有效测试套件出发,我们通过测试甲骨文完成了测试方法,该甲骨文可在不预先了解系统行为的情况下检测出所有行为转换错误。在对大量特征模型进行综合分析后,我们得出结论:CTT 生成的测试套件的大小和使用我们的测试神谕所需的测试工作量与 CIT 生成的测试套件呈线性相关,CTT 随特征数量的增加而呈对数增长。
{"title":"Combinatorial transition testing in dynamically adaptive systems: Implementation and test oracle","authors":"Pierre Martou,&nbsp;Benoît Duhoux,&nbsp;Kim Mens,&nbsp;Axel Legay","doi":"10.1016/j.jss.2024.112260","DOIUrl":"10.1016/j.jss.2024.112260","url":null,"abstract":"<div><div>Due to the large number of possible interactions and transitions among features in dynamically adaptive systems, testing such systems poses significant challenges. To verify that such systems behave correctly, combinatorial interaction testing (CIT) can create concise test suites covering all valid pairs of features of such systems. While CIT claims to find all errors caused by two features, it does not cover certain errors occurring only for specific <em>transitions</em> between features. To address this issue we study the technique of Combinatorial Transition Testing (CTT), which includes both generation and detection of what we call behavioural transition errors. From an initial generation algorithm that combines both interaction and transition coverage but lacks scalability, we propose an optimised version that enables CTT even for hundreds of features. From a valid test suite covering all transitions, we complete our testing approach with a test oracle that detects all behavioural transition errors without any prior knowledge of the system’s behaviour. After a comprehensive analysis over a large number of feature models, we conclude that size of CTT-generated test suites and test effort needed to use our test oracle are linearly correlated to CIT-generated ones and that CTT grows logarithmically in the number of features.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"221 ","pages":"Article 112260"},"PeriodicalIF":3.7,"publicationDate":"2024-11-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142698573","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Awareness support in collaborative programming tools: An evaluation based on programmer's perception and eye tracking 协作编程工具中的意识支持:基于程序员感知和眼动跟踪的评估
IF 3.7 2区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-11-01 DOI: 10.1016/j.jss.2024.112276
Ana I. Molina , Crescencio Bravo , Jesús Gallardo , Carmen Lacave , Miguel A. Redondo
Groupware technology is an essential asset for organizations and a successful medium to support social meetings and teacher-learning processes when people are geographically distributed. Computer programming is a domain that can take advantage of the Collaborative Work paradigm and of this technology. However, to be truly effective, groupware systems must provide suitable awareness support, i.e., be capable of informing users of the activity taking place and of the team outcome, so that they can build a setting for their work. The study of awareness mechanisms and their influence on collaborative programming processes is an open research question. In this context, this article contributes an experimental study to evaluate the mechanisms to support coordination, communication, and awareness of COLLECE, a distributed group programming system rich in awareness support. This study brings as a novel approach the combination of subjective and objective information sources, specifically eye tracking techniques, and incorporates a heuristic evaluation of awareness support based on a well-known framework. Thanks to this experiment, we have been able to verify that this blended approach, in which users participate intensively, provides a more comprehensive and deeper assessment of awareness and other coordination and communication mechanisms, and thus a better understanding of how their use can influence the collaborative programming process and outcome (program or piece of software). The study has revealed strengths, weaknesses and opportunities for improvement of the evaluated system, and has yielded concrete results as to which are the most useful awareness components of the user interface not related to the activity supported by the system (programming), these being the traffic lights; the easiest to use, such as the session panel; or the components that impose a greater cognitive load, such as the multi-scrollbar. Regarding the relationship between the supported awareness dimensions and the quality of the collaboration outcome (computer program), the results point to the need to adequately support the What-Artifact dimension, i.e., highlighting in which part of the shared workspace (the source code) the user with floor control is working.
群件技术是组织机构的重要资产,也是在人员分散的情况下支持社交会议和师生学习过程的成功媒介。计算机编程是一个可以利用协同工作范式和这一技术的领域。然而,要想真正有效,群件系统必须提供适当的感知支持,即能够告知用户正在进行的活动和团队成果,以便他们为自己的工作建立一个环境。研究感知机制及其对协作编程过程的影响是一个尚未解决的研究问题。在此背景下,本文通过一项实验研究,评估了 COLLECE(一种富含感知支持的分布式群组编程系统)的协调、交流和感知支持机制。这项研究将主观和客观信息源(特别是眼动跟踪技术)相结合,并在一个著名框架的基础上对意识支持进行启发式评估。得益于这项实验,我们得以验证,这种由用户深入参与的混合方法能够对意识及其他协调和交流机制进行更全面、更深入的评估,从而更好地理解这些机制的使用如何影响协作编程过程和结果(程序或软件)。这项研究揭示了所评估系统的优势、劣势和改进机会,并得出了具体结果,即哪些是与系统支持的活动(编程)无关的用户界面中最有用的认知组件,如交通灯;哪些是最容易使用的组件,如会话面板;哪些是造成较大认知负荷的组件,如多滚动条。关于所支持的认知维度与协作成果(计算机程序)质量之间的关系,结果表明,需要充分支持 "什么--工件 "维度,即突出显示拥有楼层控制权的用户正在共享工作区(源代码)的哪个部分工作。
{"title":"Awareness support in collaborative programming tools: An evaluation based on programmer's perception and eye tracking","authors":"Ana I. Molina ,&nbsp;Crescencio Bravo ,&nbsp;Jesús Gallardo ,&nbsp;Carmen Lacave ,&nbsp;Miguel A. Redondo","doi":"10.1016/j.jss.2024.112276","DOIUrl":"10.1016/j.jss.2024.112276","url":null,"abstract":"<div><div>Groupware technology is an essential asset for organizations and a successful medium to support social meetings and teacher-learning processes when people are geographically distributed. Computer programming is a domain that can take advantage of the Collaborative Work paradigm and of this technology. However, to be truly effective, groupware systems must provide suitable <em>awareness</em> support, i.e., be capable of informing users of the activity taking place and of the team outcome, so that they can build a setting for their work. The study of awareness mechanisms and their influence on collaborative programming processes is an open research question. In this context, this article contributes an experimental study to evaluate the mechanisms to support coordination, communication, and awareness of COLLECE, a distributed group programming system rich in awareness support. This study brings as a novel approach the combination of subjective and objective information sources, specifically eye tracking techniques, and incorporates a heuristic evaluation of awareness support based on a well-known framework. Thanks to this experiment, we have been able to verify that this blended approach, in which users participate intensively, provides a more comprehensive and deeper assessment of awareness and other coordination and communication mechanisms, and thus a better understanding of how their use can influence the collaborative programming process and outcome (program or piece of software). The study has revealed strengths, weaknesses and opportunities for improvement of the evaluated system, and has yielded concrete results as to which are the most useful awareness components of the user interface not related to the activity supported by the system (programming), these being the traffic lights; the easiest to use, such as the session panel; or the components that impose a greater cognitive load, such as the multi-scrollbar. Regarding the relationship between the supported awareness dimensions and the quality of the collaboration outcome (computer program), the results point to the need to adequately support the <em>What-Artifact</em> dimension, i.e., highlighting in which part of the shared workspace (the source code) the user with floor control is working.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"220 ","pages":"Article 112276"},"PeriodicalIF":3.7,"publicationDate":"2024-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142654933","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Proactive–reactive microservice architecture global scaling 主动-反应式微服务架构全球扩展
IF 3.7 2区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-10-30 DOI: 10.1016/j.jss.2024.112262
Lorenzo Bacchiani , Mario Bravetti , Saverio Giallorenzo , Maurizio Gabbrielli , Gianluigi Zavattaro , Stefano Pio Zingaro
We develop a novel approach for run-time global adaptation of microservice applications, based on synthesis of architecture-level reconfigurations. More precisely, we devise an algorithm for proactive–reactive automatic scaling that reaches a target system’s Maximum Computational Load by performing optimal deployment orchestrations. We evaluate our approach by developing a platform for the modeling and simulation of microservice architectures, and we use such a platform to compare local/global and reactive/proactive scaling. Empirical benchmarks, obtained through our platform, show that proactive global scaling consistently outperforms the reactive approach, but the best performances can be obtained by our original approach for mixing proactivity and reactivity. In particular, our approach surpasses the state-of-the-art when both performance and resource consumption are considered.
Editor’s note: Open Science material was validated by the Journal of Systems and Software Open Science Board.
我们开发了一种基于架构级重新配置合成的新方法,用于微服务应用程序的运行时全局适应。更确切地说,我们设计了一种主动-反应式自动扩展算法,通过执行最佳部署协调达到目标系统的最大计算负荷。我们通过开发微服务架构建模和仿真平台来评估我们的方法,并利用该平台对本地/全局和反应式/主动式扩展进行比较。通过我们的平台获得的经验基准表明,主动式全局扩展始终优于反应式方法,但我们混合主动式和反应式的原创方法可以获得最佳性能。特别是,在考虑性能和资源消耗的情况下,我们的方法超越了最先进的方法。编者注:开放科学材料已通过《系统与软件期刊》开放科学委员会的验证。
{"title":"Proactive–reactive microservice architecture global scaling","authors":"Lorenzo Bacchiani ,&nbsp;Mario Bravetti ,&nbsp;Saverio Giallorenzo ,&nbsp;Maurizio Gabbrielli ,&nbsp;Gianluigi Zavattaro ,&nbsp;Stefano Pio Zingaro","doi":"10.1016/j.jss.2024.112262","DOIUrl":"10.1016/j.jss.2024.112262","url":null,"abstract":"<div><div>We develop a novel approach for run-time global adaptation of microservice applications, based on synthesis of architecture-level reconfigurations. More precisely, we devise an algorithm for proactive–reactive automatic scaling that reaches a target system’s Maximum Computational Load by performing optimal deployment orchestrations. We evaluate our approach by developing a platform for the modeling and simulation of microservice architectures, and we use such a platform to compare local/global and reactive/proactive scaling. Empirical benchmarks, obtained through our platform, show that proactive global scaling consistently outperforms the reactive approach, but the best performances can be obtained by our original approach for mixing proactivity and reactivity. In particular, our approach surpasses the state-of-the-art when both performance and resource consumption are considered.</div><div><em>Editor’s note: Open Science material was validated by the Journal of Systems and Software Open Science Board</em>.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"220 ","pages":"Article 112262"},"PeriodicalIF":3.7,"publicationDate":"2024-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142578791","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Impact of methodological choices on the analysis of code metrics and maintenance 方法选择对代码度量和维护分析的影响
IF 3.7 2区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-10-30 DOI: 10.1016/j.jss.2024.112263
Syed Ishtiaque Ahmad , Shaiful Chowdhury , Reid Holmes
Many statistical analyses and prediction models rely on past data about how a system evolves to learn and anticipate the number of changes and bugs it will have in the future. As a software engineer or data scientist creates these models, they need to make several methodological choices such as deciding on size measurements, whether size should be controlled, from what time range metrics should be obtained, etc. In this work, we demonstrate how different methodological decisions can cause practitioners to reach conclusions that are significantly and meaningfully different. For example, when measuring SLOC from evolving source code of a method, one could decide to use the initial, median, average, final, or a per-change measure of method size. These decisions matter; for instance, some prior studies observed better performance of code metrics for bug prediction in general, while other studies found negative results when performance was evaluated through a time-based approach. Understanding the impact of these different methodological decisions is especially important given the increasing significance of approaches that use these large datasets for software analysis tasks. This paper can impact both practitioners and researchers by helping them understand which of the methodological choices underpinning their analyses are important, and which are not; this can lead to more consistency among research studies and improved decision-making for deployed analyses.
许多统计分析和预测模型都依赖于过去有关系统演变过程的数据来学习和预测未来的变化和错误数量。当软件工程师或数据科学家创建这些模型时,他们需要做出一些方法上的选择,例如决定规模测量、是否应该控制规模、应该从哪个时间范围获取指标等。在这项工作中,我们展示了不同的方法论决策会如何导致实践者得出意义重大的不同结论。例如,在测量方法源代码演变过程中的 SLOC 时,我们可以决定使用方法规模的初始、中位数、平均、最终或每变化测量值。这些决定都很重要;例如,之前的一些研究观察到,代码度量在一般情况下对错误预测有更好的性能,而其他研究则发现,当通过基于时间的方法评估性能时,结果是负面的。鉴于在软件分析任务中使用这些大型数据集的方法越来越重要,了解这些不同方法决策的影响尤为重要。本文可以帮助从业人员和研究人员了解哪些分析方法选择是重要的,哪些是不重要的,从而对他们产生影响;这可以提高研究的一致性,改进部署分析的决策。
{"title":"Impact of methodological choices on the analysis of code metrics and maintenance","authors":"Syed Ishtiaque Ahmad ,&nbsp;Shaiful Chowdhury ,&nbsp;Reid Holmes","doi":"10.1016/j.jss.2024.112263","DOIUrl":"10.1016/j.jss.2024.112263","url":null,"abstract":"<div><div>Many statistical analyses and prediction models rely on past data about how a system evolves to learn and anticipate the number of changes and bugs it will have in the future. As a software engineer or data scientist creates these models, they need to make several methodological choices such as deciding on size measurements, whether size should be controlled, from what time range metrics should be obtained, etc. In this work, we demonstrate how different methodological decisions can cause practitioners to reach conclusions that are significantly and meaningfully different. For example, when measuring SLOC from evolving source code of a method, one could decide to use the initial, median, average, final, or a per-change measure of method size. These decisions matter; for instance, some prior studies observed better performance of code metrics for bug prediction in general, while other studies found negative results when performance was evaluated through a time-based approach. Understanding the impact of these different methodological decisions is especially important given the increasing significance of approaches that use these large datasets for software analysis tasks. This paper can impact both practitioners and researchers by helping them understand which of the methodological choices underpinning their analyses are important, and which are not; this can lead to more consistency among research studies and improved decision-making for deployed analyses.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"220 ","pages":"Article 112263"},"PeriodicalIF":3.7,"publicationDate":"2024-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142592998","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Reference architectures as boundary objects in the co-engineering of system properties: An empirical study 参考架构作为共同设计系统属性的边界对象:实证研究
IF 3.7 2区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-10-29 DOI: 10.1016/j.jss.2024.112264
Muhammad Rusyadi Ramli, Fredrik Asplund

Context:

The complexity of large-scale, software-intensive systems demands collaborative efforts across engineering disciplines to assure that all system properties are correctly implemented. Effective communication and knowledge sharing among the involved engineering are critical for fostering this collaboration. As a result, engineering artifacts, such as reference architectures, play a key role as boundary objects—shared objects used by different communities to reach a mutual understanding.

Objective:

This study aimed to understand how engineer should utilize reference architectures as boundary objects, and explored the challenges in using them in the co-engineering of system properties.

Methodology and Methods:

Semi-structured interviews were conducted with 10 experts from two engineering disciplines focusing on system properties of particular importance to contemporary large-scale software-intensive systems development. To analyze the data, an abductive thematic analysis approach was used.

Results:

Reference architectures can be used as promoters of synergy, change, and learning by the engineers involved in the co-engineering of system properties. However, related challenges with regard to organizational contexts were identified. These findings underscore the need for further investigations into the relationship between the role of reference architectures, power, and organizational theory.
背景:大规模软件密集型系统的复杂性要求各工程学科通力合作,以确保正确实现所有系统属性。相关工程之间的有效沟通和知识共享对于促进这种协作至关重要。因此,参考架构等工程工件作为边界对象--不同群体为达成相互理解而使用的共享对象--发挥着关键作用。研究目的:本研究旨在了解工程师应如何利用参考架构作为边界对象,并探讨在系统属性的协同工程中使用参考架构所面临的挑战。研究方法:研究人员对来自两个工程学科的 10 名专家进行了半结构化访谈,重点关注对当代大规模软件密集型系统开发尤为重要的系统属性。结果:参考架构可作为协同、变革和学习的促进因素,供参与系统属性协同工程的工程师使用。然而,也发现了与组织环境相关的挑战。这些发现强调了进一步研究参考架构的作用、权力和组织理论之间关系的必要性。
{"title":"Reference architectures as boundary objects in the co-engineering of system properties: An empirical study","authors":"Muhammad Rusyadi Ramli,&nbsp;Fredrik Asplund","doi":"10.1016/j.jss.2024.112264","DOIUrl":"10.1016/j.jss.2024.112264","url":null,"abstract":"<div><h3>Context:</h3><div>The complexity of large-scale, software-intensive systems demands collaborative efforts across engineering disciplines to assure that all system properties are correctly implemented. Effective communication and knowledge sharing among the involved engineering are critical for fostering this collaboration. As a result, engineering artifacts, such as reference architectures, play a key role as boundary objects—shared objects used by different communities to reach a mutual understanding.</div></div><div><h3>Objective:</h3><div>This study aimed to understand how engineer should utilize reference architectures as boundary objects, and explored the challenges in using them in the co-engineering of system properties.</div></div><div><h3>Methodology and Methods:</h3><div>Semi-structured interviews were conducted with 10 experts from two engineering disciplines focusing on system properties of particular importance to contemporary large-scale software-intensive systems development. To analyze the data, an abductive thematic analysis approach was used.</div></div><div><h3>Results:</h3><div>Reference architectures can be used as promoters of synergy, change, and learning by the engineers involved in the co-engineering of system properties. However, related challenges with regard to organizational contexts were identified. These findings underscore the need for further investigations into the relationship between the role of reference architectures, power, and organizational theory.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"220 ","pages":"Article 112264"},"PeriodicalIF":3.7,"publicationDate":"2024-10-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142586088","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Reconstruction of an execution architecture view by identifying mapping rules for connectors 通过确定连接器的映射规则重构执行架构视图
IF 3.7 2区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-10-29 DOI: 10.1016/j.jss.2024.112268
Hwi Ahn , Sungwon Kang , Seonah Lee
An execution architecture view plays a crucial role in depicting the structure of a software system at runtime and analyzing its execution aspects, such as concurrency and performance. However, such execution views are frequently missing in real-world practices. Therefore, researchers have endeavored to reconstruct execution architecture views from software systems. However, existing approaches either require domain experts’ knowledge or are applicable only to systems with particular architecture styles. In this paper, we propose a systematic approach to reconstructing an execution architecture view, without prior knowledge of the components and connectors in the target system. With the proposed approach, by defining a candidate set of execution view connectors and mapping rules from source code to execution view connectors, developers can reconstruct an execution view. To evaluate the proposed approach, we applied it to three real-world software systems. Our evaluation results show that the proposed approach reconstructs an execution architecture with a higher than 86 % F1-score and less than 13.9 person-hours.
执行架构视图在描述软件系统运行时的结构以及分析其执行方面(如并发性和性能)方面发挥着至关重要的作用。然而,这种执行视图在现实世界的实践中经常缺失。因此,研究人员努力从软件系统中重建执行架构视图。然而,现有的方法要么需要领域专家的知识,要么只适用于具有特定架构风格的系统。在本文中,我们提出了一种重构执行架构视图的系统方法,无需事先了解目标系统中的组件和连接器。利用所提出的方法,开发人员可以通过定义执行视图连接器的候选集以及从源代码到执行视图连接器的映射规则来重构执行视图。为了评估所提出的方法,我们将其应用于三个真实世界的软件系统。我们的评估结果表明,该方法重构执行架构的 F1 分数高于 86%,耗时少于 13.9 人时。
{"title":"Reconstruction of an execution architecture view by identifying mapping rules for connectors","authors":"Hwi Ahn ,&nbsp;Sungwon Kang ,&nbsp;Seonah Lee","doi":"10.1016/j.jss.2024.112268","DOIUrl":"10.1016/j.jss.2024.112268","url":null,"abstract":"<div><div>An execution architecture view plays a crucial role in depicting the structure of a software system at runtime and analyzing its execution aspects, such as concurrency and performance. However, such execution views are frequently missing in real-world practices. Therefore, researchers have endeavored to reconstruct execution architecture views from software systems. However, existing approaches either require domain experts’ knowledge or are applicable only to systems with particular architecture styles. In this paper, we propose a systematic approach to reconstructing an execution architecture view, without prior knowledge of the components and connectors in the target system. With the proposed approach, by defining a candidate set of execution view connectors and mapping rules from source code to execution view connectors, developers can reconstruct an execution view. To evaluate the proposed approach, we applied it to three real-world software systems. Our evaluation results show that the proposed approach reconstructs an execution architecture with a higher than 86 % F1-score and less than 13.9 person-hours.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"220 ","pages":"Article 112268"},"PeriodicalIF":3.7,"publicationDate":"2024-10-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142592999","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
An exploratory empirical eye-tracker study of visualization techniques for coverage of combinatorial interaction testing in software product lines 针对软件产品生产线组合交互测试覆盖范围的可视化技术的探索性实证眼动仪研究
IF 3.7 2区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-10-28 DOI: 10.1016/j.jss.2024.112261
Kambiz Nezami Balouchi , Julien Mercier , Roberto E. Lopez-Herrejon
Software Product Lines (SPLs) typically provide a large number of configurations to cater to a set of diverse requirements of specific markets. This large number of configurations renders unfeasible to test them all individually. Instead, Combinatorial Interaction Testing (CIT) computes a representative sample according to criteria of the interactions of features in the configurations. We performed an empirical study using eye-tracker technologies to analyze the effectiveness of two basic visualization techniques at conveying test coverage information of ten case studies of varying complexity. Our evaluation considered response accuracy, time-on-task, metacognitive monitoring, and visual attention. The study revealed clear advantages of a visualization technique over the other in three evaluation aspects, with a reverse effect depending on the strength of the coverage and distinct areas of visual attention.
软件产品系列 (SPL) 通常会提供大量配置,以满足特定市场的各种需求。由于配置数量庞大,对所有配置进行单独测试是不可行的。相反,组合交互测试(Combinatorial Interaction Testing,CIT)可以根据配置中特征的交互标准计算出具有代表性的样本。我们利用眼动仪技术进行了一项实证研究,分析了两种基本可视化技术在传达十个不同复杂程度的案例研究的测试覆盖信息方面的有效性。我们的评估考虑了反应准确性、任务时间、元认知监控和视觉注意力。研究表明,在三个评估方面,一种可视化技术比另一种技术具有明显优势,而根据覆盖范围的强弱和视觉注意力的不同区域,效果则相反。
{"title":"An exploratory empirical eye-tracker study of visualization techniques for coverage of combinatorial interaction testing in software product lines","authors":"Kambiz Nezami Balouchi ,&nbsp;Julien Mercier ,&nbsp;Roberto E. Lopez-Herrejon","doi":"10.1016/j.jss.2024.112261","DOIUrl":"10.1016/j.jss.2024.112261","url":null,"abstract":"<div><div>Software Product Lines (SPLs) typically provide a large number of configurations to cater to a set of diverse requirements of specific markets. This large number of configurations renders unfeasible to test them all individually. Instead, Combinatorial Interaction Testing (CIT) computes a representative sample according to criteria of the interactions of features in the configurations. We performed an empirical study using eye-tracker technologies to analyze the effectiveness of two basic visualization techniques at conveying test coverage information of ten case studies of varying complexity. Our evaluation considered response accuracy, time-on-task, metacognitive monitoring, and visual attention. The study revealed clear advantages of a visualization technique over the other in three evaluation aspects, with a reverse effect depending on the strength of the coverage and distinct areas of visual attention.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"220 ","pages":"Article 112261"},"PeriodicalIF":3.7,"publicationDate":"2024-10-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142560579","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Resources don't grow on trees: A framework for resource-driven adaptation 资源不是长在树上的:资源驱动的适应框架
IF 3.7 2区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-10-28 DOI: 10.1016/j.jss.2024.112267
Paul A. Akiki , Andrea Zisman , Amel Bennaceur
Software systems execute tasks that depend on different types of resources. However, the variability of resources may interfere with the ability of software systems to execute important tasks. In this paper, we present a proactive and reactive resource-driven adaptation framework that supports different types of resources and is based on the prioritisation of tasks. In our previous work, we defined a task modelling notation called SERIES. This paper builds on that notation and focuses on the adaptation process to improve resource utilisation by substituting tasks with their variants, substituting resources with alternative ones, executing tasks in a different order, or cancelling the execution of low-priority tasks. The framework was evaluated in terms of the percentage of executed critical task requests, average criticality of the executed task requests in comparison to the non-executed ones, overhead, and scalability. The evaluation was executed using two datasets related to a medicine consumption system and a manufacturing system. The evaluation results showed that the proposed framework increased the number of executed critical task requests and the average criticality of the executed task requests under resource variability with marginal overhead.
软件系统执行的任务依赖于不同类型的资源。然而,资源的多变性可能会影响软件系统执行重要任务的能力。在本文中,我们提出了一种主动和被动的资源驱动适应框架,它支持不同类型的资源,并以任务的优先级为基础。在之前的工作中,我们定义了一种名为 SERIES 的任务建模符号。本文以该符号为基础,重点关注适应过程,通过用变体任务替代任务、用替代资源替代资源、以不同顺序执行任务或取消执行低优先级任务来提高资源利用率。该框架根据已执行关键任务请求的百分比、已执行任务请求与未执行任务请求的平均关键度、开销和可扩展性进行了评估。评估使用了与药品消费系统和制造系统相关的两个数据集。评估结果表明,在资源多变的情况下,建议的框架提高了已执行关键任务请求的数量和已执行任务请求的平均临界度,而开销很小。
{"title":"Resources don't grow on trees: A framework for resource-driven adaptation","authors":"Paul A. Akiki ,&nbsp;Andrea Zisman ,&nbsp;Amel Bennaceur","doi":"10.1016/j.jss.2024.112267","DOIUrl":"10.1016/j.jss.2024.112267","url":null,"abstract":"<div><div>Software systems execute tasks that depend on different types of resources. However, the variability of resources may interfere with the ability of software systems to execute important tasks. In this paper, we present a proactive and reactive resource-driven adaptation framework that supports different types of resources and is based on the prioritisation of tasks. In our previous work, we defined a task modelling notation called SERIES. This paper builds on that notation and focuses on the adaptation process to improve resource utilisation by substituting tasks with their variants, substituting resources with alternative ones, executing tasks in a different order, or cancelling the execution of low-priority tasks. The framework was evaluated in terms of the percentage of executed critical task requests, average criticality of the executed task requests in comparison to the non-executed ones, overhead, and scalability. The evaluation was executed using two datasets related to a medicine consumption system and a manufacturing system. The evaluation results showed that the proposed framework increased the number of executed critical task requests and the average criticality of the executed task requests under resource variability with marginal overhead.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"220 ","pages":"Article 112267"},"PeriodicalIF":3.7,"publicationDate":"2024-10-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142572226","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Symbolic execution of floating-point programs: How far are we? 浮点程序的符号执行:我们还有多远?
IF 3.7 2区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-10-28 DOI: 10.1016/j.jss.2024.112242
Xu Yang , Guofeng Zhang , Ziqi Shuai, Zhenbang Chen, Ji Wang
Floating-point programs are challenging for symbolic execution due to the constraint solving problem. This paper empirically studies five existing symbolic execution methods for floating-point programs to evaluate their effectiveness and limitations. We have implemented the existing methods based on the state-of-the-art symbolic execution tool KLEE and constructed a real-world floating-point program benchmark for evaluation. We evaluate the existing methods with respect to statement coverage and the ability to detect floating-point exceptions. The results demonstrate that the existing methods complement each other. Based on the evaluation results, we propose a synergistic approach to improving the efficiency of the symbolic execution for floating-point programs. The experimental results indicate our synergistic method’s effectiveness in finding floating-point exceptions.
浮点程序由于存在约束求解问题,因此对符号执行而言具有挑战性。本文对现有的五种浮点程序符号执行方法进行了实证研究,以评估它们的有效性和局限性。我们基于最先进的符号执行工具 KLEE 实现了现有方法,并构建了一个实际浮点程序基准进行评估。我们在语句覆盖率和浮点异常检测能力方面对现有方法进行了评估。结果表明,现有方法可以相互补充。基于评估结果,我们提出了一种协同方法来提高浮点程序的符号执行效率。实验结果表明,我们的协同方法在发现浮点异常方面非常有效。
{"title":"Symbolic execution of floating-point programs: How far are we?","authors":"Xu Yang ,&nbsp;Guofeng Zhang ,&nbsp;Ziqi Shuai,&nbsp;Zhenbang Chen,&nbsp;Ji Wang","doi":"10.1016/j.jss.2024.112242","DOIUrl":"10.1016/j.jss.2024.112242","url":null,"abstract":"<div><div>Floating-point programs are challenging for symbolic execution due to the constraint solving problem. This paper empirically studies five existing symbolic execution methods for floating-point programs to evaluate their effectiveness and limitations. We have implemented the existing methods based on the state-of-the-art symbolic execution tool KLEE and constructed a real-world floating-point program benchmark for evaluation. We evaluate the existing methods with respect to statement coverage and the ability to detect floating-point exceptions. The results demonstrate that the existing methods complement each other. Based on the evaluation results, we propose a synergistic approach to improving the efficiency of the symbolic execution for floating-point programs. The experimental results indicate our synergistic method’s effectiveness in finding floating-point exceptions.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"220 ","pages":"Article 112242"},"PeriodicalIF":3.7,"publicationDate":"2024-10-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142572220","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Runtime reliability fractional distribution change analytics against cloud-based systems DDoS attacks 针对云端系统 DDoS 攻击的运行时可靠性分数分布变化分析
IF 3.7 2区 计算机科学 Q1 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-10-28 DOI: 10.1016/j.jss.2024.112265
Lei Wang, Shuhan Chen, Xikai Zhang, Jiyuan Liu
With the help of the Software as a Service (SaaS) delivery model, the rapid advancement of cloud computing has become the most prevalent distributed computing paradigm. A large number of application vendors and developers choose to integrate cloud-hosted Application Program Interfaces (APIs) into their systems as system components to construct new and value-added cloud-based systems. When executed in an open cloud environment, each system component is constantly at risk of Distributed Denial of Service (DDoS) attacks. Such cloud-based systems are challenged by reliability fluctuations when a system component is attacked. A change in the reliability of the remote system components, e.g., performance decline or runtime anomalies, can threaten the stability of the entire cloud-based system. To enable timely reliability assurance against cloud-based systems DDoS attacks, it is necessary to analyze runtime reliability of its system components. In this paper, we formally present a new model for evaluating the reliability of the system components based on concept drift. Based on the model, we propose a novel method named runtime reliability anomaly detection (RAD), leveraging the Singular Value Decomposition (SVD) technique. RAD analyzes the reliability of a system component during its operation by detecting peaks in Fractional Distribution Change (FDC) within its reliability time series data. Specifically, it calculates the Jensen Shannon divergence between historical and up-to-date reliability data streams, based on feature vectors that are dimensionality-reduced using SVD. The results of extensive experiments conducted on two public cloud APIs performance datasets demonstrate the effectiveness and efficiency of RAD.
在软件即服务(SaaS)交付模式的帮助下,云计算的快速发展已成为最普遍的分布式计算模式。大量应用程序供应商和开发人员选择将云托管应用程序接口(API)作为系统组件集成到自己的系统中,以构建新的增值云系统。在开放的云环境中执行时,每个系统组件都时刻面临着分布式拒绝服务(DDoS)攻击的风险。当系统组件受到攻击时,这种基于云的系统就会面临可靠性波动的挑战。远程系统组件可靠性的变化,如性能下降或运行时异常,会威胁到整个基于云的系统的稳定性。为了能够及时保证云系统在受到 DDoS 攻击时的可靠性,有必要对其系统组件的运行时可靠性进行分析。本文正式提出了一种基于概念漂移的系统组件可靠性评估新模型。基于该模型,我们利用奇异值分解(SVD)技术提出了一种名为运行时可靠性异常检测(RAD)的新方法。RAD 通过检测可靠性时间序列数据中分数分布变化(FDC)的峰值,分析系统组件在运行期间的可靠性。具体来说,它基于使用 SVD 降维的特征向量,计算历史可靠性数据流与最新可靠性数据流之间的詹森-香农发散。在两个公共云 API 性能数据集上进行的大量实验结果证明了 RAD 的有效性和效率。
{"title":"Runtime reliability fractional distribution change analytics against cloud-based systems DDoS attacks","authors":"Lei Wang,&nbsp;Shuhan Chen,&nbsp;Xikai Zhang,&nbsp;Jiyuan Liu","doi":"10.1016/j.jss.2024.112265","DOIUrl":"10.1016/j.jss.2024.112265","url":null,"abstract":"<div><div>With the help of the Software as a Service (SaaS) delivery model, the rapid advancement of cloud computing has become the most prevalent distributed computing paradigm. A large number of application vendors and developers choose to integrate cloud-hosted Application Program Interfaces (APIs) into their systems as <em>system components</em> to construct new and value-added cloud-based systems. When executed in an open cloud environment, each system component is constantly at risk of Distributed Denial of Service (DDoS) attacks. Such cloud-based systems are challenged by reliability fluctuations when a system component is attacked. A change in the reliability of the remote system components, e.g., performance decline or runtime anomalies, can threaten the stability of the entire cloud-based system. To enable timely reliability assurance against cloud-based systems DDoS attacks, it is necessary to analyze runtime reliability of its system components. In this paper, we formally present a new model for evaluating the reliability of the system components based on concept drift. Based on the model, we propose a novel method named runtime reliability anomaly detection (RAD), leveraging the Singular Value Decomposition (SVD) technique. RAD analyzes the reliability of a system component during its operation by detecting peaks in Fractional Distribution Change (FDC) within its reliability time series data. Specifically, it calculates the Jensen Shannon divergence between historical and up-to-date reliability data streams, based on feature vectors that are dimensionality-reduced using SVD. The results of extensive experiments conducted on two public cloud APIs performance datasets demonstrate the effectiveness and efficiency of RAD.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"220 ","pages":"Article 112265"},"PeriodicalIF":3.7,"publicationDate":"2024-10-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142560839","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
期刊
Journal of Systems and Software
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1