首页 > 最新文献

Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering最新文献

英文 中文
Continuous variable-specific resolutions of feature interactions 特征交互的连续变量特定分辨率
M. H. Zibaeenejad, Chi Zhang, J. Atlee
Systems that are assembled from independently developed features suffer from feature interactions, in which features affect one another's behaviour in surprising ways. The Feature Interaction Problem results from trying to implement an appropriate resolution for each interaction within each possible context, because the number of possible contexts to consider increases exponentially with the number of features in the system. Resolution strategies aim to combat the Feature Interaction Problem by offering default strategies that resolve entire classes of interactions, thereby reducing the work needed to resolve lots of interactions. However most such approaches employ coarse-grained resolution strategies (e.g., feature priority) or a centralized arbitrator. Our work focuses on employing variable-specific default-resolution strategies that aim to resolve at runtime features- conflicting actions on a system's outputs. In this paper, we extend prior work to enable co-resolution of interactions on coupled output variables and to promote smooth continuous resolutions over execution paths. We implemented our approach within the PreScan simulator and performed a case study involving 15 automotive features; this entailed our devising and implementing three resolution strategies for three output variables. The results of the case study show that the approach produces smooth and continuous resolutions of interactions throughout interesting scenarios.
由独立开发的特征组装而成的系统会受到特征交互的影响,即特征以令人惊讶的方式影响彼此的行为。由于要考虑的可能上下文的数量随着系统中功能的数量呈指数增长,因此试图为每个可能上下文中的每个交互实现适当的解决方案会导致功能交互问题。解决策略旨在通过提供解决整个交互类的默认策略来解决功能交互问题,从而减少解决大量交互所需的工作。然而,大多数此类方法采用粗粒度的解决策略(例如,特征优先级)或集中式仲裁器。我们的工作重点是采用特定于变量的默认解决策略,旨在解决运行时功能-系统输出上的冲突操作。在本文中,我们扩展了先前的工作,以实现耦合输出变量上交互的共同解析,并促进执行路径上的平滑连续解析。我们在PreScan模拟器中实施了我们的方法,并进行了涉及15个汽车特征的案例研究;这需要我们为三个输出变量设计和实现三个解决策略。案例研究的结果表明,该方法在有趣的场景中产生了平滑和连续的交互解决方案。
{"title":"Continuous variable-specific resolutions of feature interactions","authors":"M. H. Zibaeenejad, Chi Zhang, J. Atlee","doi":"10.1145/3106237.3106302","DOIUrl":"https://doi.org/10.1145/3106237.3106302","url":null,"abstract":"Systems that are assembled from independently developed features suffer from feature interactions, in which features affect one another's behaviour in surprising ways. The Feature Interaction Problem results from trying to implement an appropriate resolution for each interaction within each possible context, because the number of possible contexts to consider increases exponentially with the number of features in the system. Resolution strategies aim to combat the Feature Interaction Problem by offering default strategies that resolve entire classes of interactions, thereby reducing the work needed to resolve lots of interactions. However most such approaches employ coarse-grained resolution strategies (e.g., feature priority) or a centralized arbitrator. Our work focuses on employing variable-specific default-resolution strategies that aim to resolve at runtime features- conflicting actions on a system's outputs. In this paper, we extend prior work to enable co-resolution of interactions on coupled output variables and to promote smooth continuous resolutions over execution paths. We implemented our approach within the PreScan simulator and performed a case study involving 15 automotive features; this entailed our devising and implementing three resolution strategies for three output variables. The results of the case study show that the approach produces smooth and continuous resolutions of interactions throughout interesting scenarios.","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114157242","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
ARCC: assistant for repetitive code comprehension ARCC:重复代码理解助手
Wilberto Z. Nunez, Victor J. Marin, Carlos R. Rivero
As software projects evolve, carefully understanding the behavior of a program is mandatory before making any change. Repetitive code snippets also tend to appear throughout the codebase, and developers have to understand similar semantics multiple times. Building on this observation, we present Arcc: an Assistant for Repetitive Code Comprehension. The tool, implemented as an Eclipse plugin, assists developers in leveraging knowledge of a program to understand other programs containing a subset of the semantics in the former. Arcc differs from existing approaches in that it uses an extensible knowledge base of recurrent semantic code snippets, instead of heuristics or salient features, to summarize the behavior of a program. Given a program, we detect the occurrences of such snippets. Developers can create strategies as combinations of the snippets found and search for strategy occurrences in their workspace. Arcc highlights the source code related to every snippet and their interleaving, assisting in getting an intuition of similar programs. Finally, Arcc underlines potential common errors associated with the snippets, assisting in detecting overlooked problems. https://youtube.com/playlist?list=PLmizZtBESdPHDyKXKHMXj13r2pBCKzIoA
随着软件项目的发展,在进行任何更改之前,必须仔细理解程序的行为。重复的代码片段也会出现在整个代码库中,开发人员必须多次理解类似的语义。基于这一观察,我们提出了arc:一个重复代码理解的助手。该工具作为Eclipse插件实现,帮助开发人员利用程序知识来理解包含前者语义子集的其他程序。arc与现有方法的不同之处在于,它使用可扩展的循环语义代码片段知识库,而不是启发式方法或显著特性,来总结程序的行为。给定一个程序,我们检测此类代码片段的出现情况。开发人员可以将找到的片段组合起来创建策略,并在工作空间中搜索策略的出现情况。arc突出显示了与每个代码片段相关的源代码及其交错,有助于对类似程序有直观的了解。最后,arc强调了与代码片段相关的潜在常见错误,帮助检测被忽略的问题。https://youtube.com/playlist?list=PLmizZtBESdPHDyKXKHMXj13r2pBCKzIoA
{"title":"ARCC: assistant for repetitive code comprehension","authors":"Wilberto Z. Nunez, Victor J. Marin, Carlos R. Rivero","doi":"10.1145/3106237.3122824","DOIUrl":"https://doi.org/10.1145/3106237.3122824","url":null,"abstract":"As software projects evolve, carefully understanding the behavior of a program is mandatory before making any change. Repetitive code snippets also tend to appear throughout the codebase, and developers have to understand similar semantics multiple times. Building on this observation, we present Arcc: an Assistant for Repetitive Code Comprehension. The tool, implemented as an Eclipse plugin, assists developers in leveraging knowledge of a program to understand other programs containing a subset of the semantics in the former. Arcc differs from existing approaches in that it uses an extensible knowledge base of recurrent semantic code snippets, instead of heuristics or salient features, to summarize the behavior of a program. Given a program, we detect the occurrences of such snippets. Developers can create strategies as combinations of the snippets found and search for strategy occurrences in their workspace. Arcc highlights the source code related to every snippet and their interleaving, assisting in getting an intuition of similar programs. Finally, Arcc underlines potential common errors associated with the snippets, assisting in detecting overlooked problems. https://youtube.com/playlist?list=PLmizZtBESdPHDyKXKHMXj13r2pBCKzIoA","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"74 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114840275","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
Automated identification of security issues from commit messages and bug reports 从提交消息和错误报告中自动识别安全问题
Yaqin Zhou, Asankhaya Sharma
The number of vulnerabilities in open source libraries is increasing rapidly. However, the majority of them do not go through public disclosure. These unidentified vulnerabilities put developers' products at risk of being hacked since they are increasingly relying on open source libraries to assemble and build software quickly. To find unidentified vulnerabilities in open source libraries and secure modern software development, we describe an efficient automatic vulnerability identification system geared towards tracking large-scale projects in real time using natural language processing and machine learning techniques. Built upon the latent information underlying commit messages and bug reports in open source projects using GitHub, JIRA, and Bugzilla, our K-fold stacking classifier achieves promising results on vulnerability identification. Compared to the state of the art SVM-based classifier in prior work on vulnerability identification in commit messages, we improve precision by 54.55% while maintaining the same recall rate. For bug reports, we achieve a much higher precision of 0.70 and recall rate of 0.71 compared to existing work. Moreover, observations from running the trained model at SourceClear in production for over 3 months has shown 0.83 precision, 0.74 recall rate, and detected 349 hidden vulnerabilities, proving the effectiveness and generality of the proposed approach.
开源库中的漏洞数量正在迅速增加。然而,其中大多数都没有经过公开披露。这些未识别的漏洞使开发人员的产品面临被黑客攻击的风险,因为他们越来越依赖于开源库来快速组装和构建软件。为了在开源库中发现未识别的漏洞,并确保现代软件开发的安全,我们描述了一种高效的自动漏洞识别系统,该系统旨在使用自然语言处理和机器学习技术实时跟踪大型项目。基于使用GitHub、JIRA和Bugzilla的开源项目中提交消息和bug报告的潜在信息,我们的K-fold堆叠分类器在漏洞识别方面取得了令人鼓舞的结果。与之前在提交消息中漏洞识别工作中基于svm的分类器的最新状态相比,我们在保持相同的召回率的同时,将准确率提高了54.55%。对于bug报告,与现有工作相比,我们实现了0.70的更高精度和0.71的召回率。此外,在SourceClear上运行训练模型3个多月的观察结果显示,准确率为0.83,召回率为0.74,发现了349个隐藏漏洞,证明了所提出方法的有效性和通用性。
{"title":"Automated identification of security issues from commit messages and bug reports","authors":"Yaqin Zhou, Asankhaya Sharma","doi":"10.1145/3106237.3117771","DOIUrl":"https://doi.org/10.1145/3106237.3117771","url":null,"abstract":"The number of vulnerabilities in open source libraries is increasing rapidly. However, the majority of them do not go through public disclosure. These unidentified vulnerabilities put developers' products at risk of being hacked since they are increasingly relying on open source libraries to assemble and build software quickly. To find unidentified vulnerabilities in open source libraries and secure modern software development, we describe an efficient automatic vulnerability identification system geared towards tracking large-scale projects in real time using natural language processing and machine learning techniques. Built upon the latent information underlying commit messages and bug reports in open source projects using GitHub, JIRA, and Bugzilla, our K-fold stacking classifier achieves promising results on vulnerability identification. Compared to the state of the art SVM-based classifier in prior work on vulnerability identification in commit messages, we improve precision by 54.55% while maintaining the same recall rate. For bug reports, we achieve a much higher precision of 0.70 and recall rate of 0.71 compared to existing work. Moreover, observations from running the trained model at SourceClear in production for over 3 months has shown 0.83 precision, 0.74 recall rate, and detected 349 hidden vulnerabilities, proving the effectiveness and generality of the proposed approach.","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116060370","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 130
CodeCarbonCopy
Stelios Sidiroglou, Eric Lahtinen, Anthony Eden, Fan Long, M. Rinard
We present CodeCarbonCopy (CCC), a system for transferring code from a donor application into a recipient application. CCC starts with functionality identified by the developer to transfer into an insertion point (again identified by the developer) in the recipient. CCC uses paired executions of the donor and recipient on the same input file to obtain a translation between the data representation and name space of the recipient and the data representation and name space of the donor. It also implements a static analysis that identifies and removes irrelevant functionality useful in the donor but not in the recipient. We evaluate CCC on eight transfers between six applications. Our results show that CCC can successfully transfer donor functionality into recipient applications.
我们提出了CodeCarbonCopy (CCC),一个将代码从供体应用程序转移到接受者应用程序的系统。CCC从开发人员确定的功能开始,将其转移到接收器中的插入点(再次由开发人员确定)。CCC在同一输入文件上成对执行供方和受方,以获得接收方的数据表示和名称空间与供方的数据表示和名称空间之间的转换。它还实现了一个静态分析,用于识别和删除在供体中有用但在接受者中无用的无关功能。我们对6个应用程序之间的8个转移进行了CCC评估。我们的研究结果表明,CCC可以成功地将供体功能转移到受体应用程序中。
{"title":"CodeCarbonCopy","authors":"Stelios Sidiroglou, Eric Lahtinen, Anthony Eden, Fan Long, M. Rinard","doi":"10.1145/3106237.3106269","DOIUrl":"https://doi.org/10.1145/3106237.3106269","url":null,"abstract":"We present CodeCarbonCopy (CCC), a system for transferring code from a donor application into a recipient application. CCC starts with functionality identified by the developer to transfer into an insertion point (again identified by the developer) in the recipient. CCC uses paired executions of the donor and recipient on the same input file to obtain a translation between the data representation and name space of the recipient and the data representation and name space of the donor. It also implements a static analysis that identifies and removes irrelevant functionality useful in the donor but not in the recipient. We evaluate CCC on eight transfers between six applications. Our results show that CCC can successfully transfer donor functionality into recipient applications.","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"52 s35","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132360307","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 17
Modeling and verification of evolving cyber-physical spaces 演化的网络物理空间的建模与验证
Christos Tsigkanos, Timo Kehrer, C. Ghezzi
We increasingly live in cyber-physical spaces -- spaces that are both physical and digital, and where the two aspects are intertwined. Such spaces are highly dynamic and typically undergo continuous change. Software engineering can have a profound impact in this domain, by defining suitable modeling and specification notations as well as supporting design-time formal verification. In this paper, we present a methodology and a technical framework which support modeling of evolving cyber-physical spaces and reasoning about their spatio-temporal properties. We utilize a discrete, graph-based formalism for modeling cyber-physical spaces as well as primitives of change, giving rise to a reactive system consisting of rewriting rules with both local and global application conditions. Formal reasoning facilities are implemented adopting logic-based specification of properties and according model checking procedures, in both spatial and temporal fragments. We evaluate our approach using a case study of a disaster scenario in a smart city.
我们越来越多地生活在网络物理空间中——物理空间和数字空间,两者交织在一起。这样的空间是高度动态的,通常会经历持续的变化。通过定义合适的建模和规范符号以及支持设计时形式化验证,软件工程可以在这个领域产生深远的影响。在本文中,我们提出了一种方法和技术框架,支持对不断发展的网络物理空间进行建模并对其时空特性进行推理。我们利用离散的,基于图形的形式化来建模网络物理空间以及变化的原语,从而产生一个由重写本地和全局应用条件的规则组成的反应系统。在空间和时间片段中,采用基于逻辑的属性规范和相应的模型检查程序来实现形式推理工具。我们通过一个智能城市灾难场景的案例研究来评估我们的方法。
{"title":"Modeling and verification of evolving cyber-physical spaces","authors":"Christos Tsigkanos, Timo Kehrer, C. Ghezzi","doi":"10.1145/3106237.3106299","DOIUrl":"https://doi.org/10.1145/3106237.3106299","url":null,"abstract":"We increasingly live in cyber-physical spaces -- spaces that are both physical and digital, and where the two aspects are intertwined. Such spaces are highly dynamic and typically undergo continuous change. Software engineering can have a profound impact in this domain, by defining suitable modeling and specification notations as well as supporting design-time formal verification. In this paper, we present a methodology and a technical framework which support modeling of evolving cyber-physical spaces and reasoning about their spatio-temporal properties. We utilize a discrete, graph-based formalism for modeling cyber-physical spaces as well as primitives of change, giving rise to a reactive system consisting of rewriting rules with both local and global application conditions. Formal reasoning facilities are implemented adopting logic-based specification of properties and according model checking procedures, in both spatial and temporal fragments. We evaluate our approach using a case study of a disaster scenario in a smart city.","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133274475","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 49
A feasibility study of using automated program repair for introductory programming assignments 在介绍性编程作业中使用自动程序修复的可行性研究
Jooyong Yi, Umair Z. Ahmed, Amey Karkare, Shin Hwei Tan, Abhik Roychoudhury
Despite the fact an intelligent tutoring system for programming (ITSP) education has long attracted interest, its widespread use has been hindered by the difficulty of generating personalized feedback automatically. Meanwhile, automated program repair (APR) is an emerging new technology that automatically fixes software bugs, and it has been shown that APR can fix the bugs of large real-world software. In this paper, we study the feasibility of marrying intelligent programming tutoring and APR. We perform our feasibility study with four state-of-the-art APR tools (GenProg, AE, Angelix, and Prophet), and 661 programs written by the students taking an introductory programming course. We found that when APR tools are used out of the box, only about 30% of the programs in our dataset are repaired. This low repair rate is largely due to the student programs often being significantly incorrect - in contrast, professional software for which APR was successfully applied typically fails only a small portion of tests. To bridge this gap, we adopt in APR a new repair policy akin to the hint generation policy employed in the existing ITSP. This new repair policy admits partial repairs that address part of failing tests, which results in 84% improvement of repair rate. We also performed a user study with 263 novice students and 37 graders, and identified an understudied problem; while novice students do not seem to know how to effectively make use of generated repairs as hints, the graders do seem to gain benefits from repairs.
尽管智能编程辅导系统(ITSP)一直以来都引起了人们的兴趣,但由于难以自动生成个性化的反馈,ITSP的广泛应用受到了阻碍。同时,自动程序修复(automated program repair, APR)是一种新兴的自动修复软件缺陷的新技术,并已被证明可以修复现实世界中大型软件的缺陷。在本文中,我们研究了将智能编程辅导与APR结合的可行性。我们使用了四种最先进的APR工具(GenProg, AE, Angelix和Prophet)和661个由参加入门编程课程的学生编写的程序来进行可行性研究。我们发现,当APR工具开箱即用时,我们的数据集中只有大约30%的程序被修复。这种低修复率很大程度上是由于学生程序经常出现严重错误——相比之下,成功应用APR的专业软件通常只会在一小部分测试中失败。为了弥合这一差距,我们在APR中采用了一种新的修复策略,类似于现有ITSP中使用的提示生成策略。这种新的修复策略允许针对部分失败测试进行部分修复,从而使修复率提高84%。我们还对263名新手和37名年级学生进行了用户研究,并发现了一个未被充分研究的问题;虽然新手似乎不知道如何有效地利用生成的修理作为提示,但评分者似乎确实从修理中获益。
{"title":"A feasibility study of using automated program repair for introductory programming assignments","authors":"Jooyong Yi, Umair Z. Ahmed, Amey Karkare, Shin Hwei Tan, Abhik Roychoudhury","doi":"10.1145/3106237.3106262","DOIUrl":"https://doi.org/10.1145/3106237.3106262","url":null,"abstract":"Despite the fact an intelligent tutoring system for programming (ITSP) education has long attracted interest, its widespread use has been hindered by the difficulty of generating personalized feedback automatically. Meanwhile, automated program repair (APR) is an emerging new technology that automatically fixes software bugs, and it has been shown that APR can fix the bugs of large real-world software. In this paper, we study the feasibility of marrying intelligent programming tutoring and APR. We perform our feasibility study with four state-of-the-art APR tools (GenProg, AE, Angelix, and Prophet), and 661 programs written by the students taking an introductory programming course. We found that when APR tools are used out of the box, only about 30% of the programs in our dataset are repaired. This low repair rate is largely due to the student programs often being significantly incorrect - in contrast, professional software for which APR was successfully applied typically fails only a small portion of tests. To bridge this gap, we adopt in APR a new repair policy akin to the hint generation policy employed in the existing ITSP. This new repair policy admits partial repairs that address part of failing tests, which results in 84% improvement of repair rate. We also performed a user study with 263 novice students and 37 graders, and identified an understudied problem; while novice students do not seem to know how to effectively make use of generated repairs as hints, the graders do seem to gain benefits from repairs.","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133482979","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 97
Automated testing of hybrid Simulink/Stateflow controllers: industrial case studies 混合Simulink/ statflow控制器的自动化测试:工业案例研究
Reza Matinnejad, S. Nejati, L. Briand
We present the results of applying our approach for testing Simulink controllers to one public and one proprietary model, both industrial. Our approach combines explorative and exploitative search algorithms to visualize the controller behavior over its input space and to identify test scenarios in the controller input space that violate or are likely to violate the controller requirements. The engineers' feedback shows that our approach is easy to use in practice and gives them confidence about the behavior of their models.
我们介绍了将我们的方法应用于一个公共和一个专有模型的Simulink控制器测试的结果,两者都是工业模型。我们的方法结合了探索性和利用性搜索算法来可视化控制器在其输入空间中的行为,并识别控制器输入空间中违反或可能违反控制器要求的测试场景。工程师的反馈表明,我们的方法在实践中很容易使用,并使他们对模型的行为有信心。
{"title":"Automated testing of hybrid Simulink/Stateflow controllers: industrial case studies","authors":"Reza Matinnejad, S. Nejati, L. Briand","doi":"10.1145/3106237.3117770","DOIUrl":"https://doi.org/10.1145/3106237.3117770","url":null,"abstract":"We present the results of applying our approach for testing Simulink controllers to one public and one proprietary model, both industrial. Our approach combines explorative and exploitative search algorithms to visualize the controller behavior over its input space and to identify test scenarios in the controller input space that violate or are likely to violate the controller requirements. The engineers' feedback shows that our approach is easy to use in practice and gives them confidence about the behavior of their models.","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"59 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133233671","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 27
Cimplifier: automatically debloating containers 简化器:自动充气容器
Vaibhav Rastogi, Drew Davidson, Lorenzo De Carli, S. Jha, P. Mcdaniel
Application containers, such as those provided by Docker, have recently gained popularity as a solution for agile and seamless software deployment. These light-weight virtualization environments run applications that are packed together with their resources and configuration information, and thus can be deployed across various software platforms. Unfortunately, the ease with which containers can be created is oftentimes a double-edged sword, encouraging the packaging of logically distinct applications, and the inclusion of significant amount of unnecessary components, within a single container. These practices needlessly increase the container size-sometimes by orders of magnitude. They also decrease the overall security, as each included component-necessary or not-may bring in security issues of its own, and there is no isolation between multiple applications packaged within the same container image. We propose algorithms and a tool called Cimplifier, which address these concerns: given a container and simple user-defined constraints, our tool partitions it into simpler containers, which (i) are isolated from each other, only communicating as necessary, and (ii) only include enough resources to perform their functionality. Our evaluation on real-world containers demonstrates that Cimplifier preserves the original functionality, leads to reduction in image size of up to 95%, and processes even large containers in under thirty seconds.
应用程序容器,例如Docker提供的容器,最近作为敏捷和无缝软件部署的解决方案而流行起来。这些轻量级虚拟化环境运行的应用程序与其资源和配置信息打包在一起,因此可以跨各种软件平台部署。不幸的是,创建容器的便利性通常是一把双刃剑,它鼓励将逻辑上不同的应用程序打包,并在单个容器中包含大量不必要的组件。这些实践不必要地增加了容器的大小——有时是数量级的增加。它们还降低了整体安全性,因为每个包含的组件(无论是否必要)都可能带来其自身的安全性问题,并且封装在同一容器映像中的多个应用程序之间没有隔离。我们提出了算法和一个叫做simplifier的工具,它解决了这些问题:给定一个容器和简单的用户定义约束,我们的工具将其划分为更简单的容器,这些容器(i)彼此隔离,只在必要时通信,(ii)只包含足够的资源来执行它们的功能。我们对真实容器的评估表明,simplifier保留了原始功能,将图像大小减少了95%,甚至在30秒内处理大型容器。
{"title":"Cimplifier: automatically debloating containers","authors":"Vaibhav Rastogi, Drew Davidson, Lorenzo De Carli, S. Jha, P. Mcdaniel","doi":"10.1145/3106237.3106271","DOIUrl":"https://doi.org/10.1145/3106237.3106271","url":null,"abstract":"Application containers, such as those provided by Docker, have recently gained popularity as a solution for agile and seamless software deployment. These light-weight virtualization environments run applications that are packed together with their resources and configuration information, and thus can be deployed across various software platforms. Unfortunately, the ease with which containers can be created is oftentimes a double-edged sword, encouraging the packaging of logically distinct applications, and the inclusion of significant amount of unnecessary components, within a single container. These practices needlessly increase the container size-sometimes by orders of magnitude. They also decrease the overall security, as each included component-necessary or not-may bring in security issues of its own, and there is no isolation between multiple applications packaged within the same container image. We propose algorithms and a tool called Cimplifier, which address these concerns: given a container and simple user-defined constraints, our tool partitions it into simpler containers, which (i) are isolated from each other, only communicating as necessary, and (ii) only include enough resources to perform their functionality. Our evaluation on real-world containers demonstrates that Cimplifier preserves the original functionality, leads to reduction in image size of up to 95%, and processes even large containers in under thirty seconds.","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"37 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130343424","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 70
Model-based dynamic software project scheduling 基于模型的动态软件项目调度
Natasha Nigar
Software project scheduling, under uncertain and dynamic environments, is one of the most important challenges in software engineering. Recent studies addressed this challenge in both static and dynamic scenarios for small and medium size software projects. The increasing trend of cloud based software solutions (large scale software projects) needs agility not only for sustainable maintenance but also for in time and within budget completion. Therefore, this paper formulates software project scheduling problem (SPSP) as an optimization problem under uncertainties and dynamics for hybrid scRUmP software model. In this regard, a mathematical model is constructed with five objectives as project duration, task fragmentation, robustness, cost, and stability.
在不确定和动态环境下的软件项目调度是软件工程中最重要的挑战之一。最近的研究在中小型软件项目的静态和动态场景中解决了这一挑战。基于云的软件解决方案(大型软件项目)的增长趋势需要敏捷性,不仅是为了可持续的维护,而且是为了及时和在预算内完成。因此,本文将软件项目调度问题(SPSP)表述为混合scrum软件模型的不确定性和动态优化问题。在这方面,一个数学模型是由五个目标组成的:项目持续时间、任务分割、健壮性、成本和稳定性。
{"title":"Model-based dynamic software project scheduling","authors":"Natasha Nigar","doi":"10.1145/3106237.3119879","DOIUrl":"https://doi.org/10.1145/3106237.3119879","url":null,"abstract":"Software project scheduling, under uncertain and dynamic environments, is one of the most important challenges in software engineering. Recent studies addressed this challenge in both static and dynamic scenarios for small and medium size software projects. The increasing trend of cloud based software solutions (large scale software projects) needs agility not only for sustainable maintenance but also for in time and within budget completion. Therefore, this paper formulates software project scheduling problem (SPSP) as an optimization problem under uncertainties and dynamics for hybrid scRUmP software model. In this regard, a mathematical model is constructed with five objectives as project duration, task fragmentation, robustness, cost, and stability.","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127153203","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 13
DynAlloy analyzer: a tool for the specification and analysis of alloy models with dynamic behaviour DynAlloy分析仪:用于规范和分析具有动态行为的合金模型的工具
Germán Regis, César Cornejo, Simón Gutiérrez Brida, M. Politano, Fernando D. Raverta, Pablo Ponzio, Nazareno Aguirre, Juan P. Galeotti, M. Frias
We describe DynAlloy Analyzer, a tool that extends Alloy Analyzer with support for dynamic elements in Alloy models. The tool builds upon Alloy Analyzer in a way that makes it fully compatible with Alloy models, and extends their syntax with a particular idiom, inspired in dynamic logic, for the description of dynamic behaviours, understood as sequences of states over standard Alloy models, in terms of programs. The syntax is broad enough to accommodate abstract dynamic behaviours, e.g., using nondeterministic choice and finite unbounded iteration, as well as more concrete ones, using standard sequential programming constructions. The analysis of DynAlloy models resorts to the analysis of Alloy models, through an optimized translation that often makes the analysis more efficient than that of typical ad-hoc constructions to capture dynamism in Alloy. Tool screencast, binaries and further details available in: http://dc.exa.unrc.edu.ar/tools/dynalloy
我们描述了DynAlloy Analyzer,这是一个扩展Alloy Analyzer的工具,支持Alloy模型中的动态元素。该工具建立在Alloy Analyzer的基础上,使其与Alloy模型完全兼容,并使用受动态逻辑启发的特定习语扩展了它们的语法,用于描述动态行为,就程序而言,被理解为标准Alloy模型上的状态序列。语法足够广泛,可以容纳抽象的动态行为,例如,使用不确定性选择和有限无界迭代,以及使用标准顺序编程结构的更具体的行为。DynAlloy模型的分析诉诸于Alloy模型的分析,通过优化的转换,通常使分析比典型的特设结构更有效,以捕获Alloy中的动态。工具截屏,二进制文件和更多细节可在:http://dc.exa.unrc.edu.ar/tools/dynalloy
{"title":"DynAlloy analyzer: a tool for the specification and analysis of alloy models with dynamic behaviour","authors":"Germán Regis, César Cornejo, Simón Gutiérrez Brida, M. Politano, Fernando D. Raverta, Pablo Ponzio, Nazareno Aguirre, Juan P. Galeotti, M. Frias","doi":"10.1145/3106237.3122826","DOIUrl":"https://doi.org/10.1145/3106237.3122826","url":null,"abstract":"We describe DynAlloy Analyzer, a tool that extends Alloy Analyzer with support for dynamic elements in Alloy models. The tool builds upon Alloy Analyzer in a way that makes it fully compatible with Alloy models, and extends their syntax with a particular idiom, inspired in dynamic logic, for the description of dynamic behaviours, understood as sequences of states over standard Alloy models, in terms of programs. The syntax is broad enough to accommodate abstract dynamic behaviours, e.g., using nondeterministic choice and finite unbounded iteration, as well as more concrete ones, using standard sequential programming constructions. The analysis of DynAlloy models resorts to the analysis of Alloy models, through an optimized translation that often makes the analysis more efficient than that of typical ad-hoc constructions to capture dynamism in Alloy. Tool screencast, binaries and further details available in: http://dc.exa.unrc.edu.ar/tools/dynalloy","PeriodicalId":313494,"journal":{"name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","volume":"39 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2017-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123357979","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 16
期刊
Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering
全部 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