首页 > 最新文献

2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER)最新文献

英文 中文
Why and how Java developers break APIs Java开发人员为什么以及如何破坏api
Aline Brito, Laerte Xavier, André C. Hora, M. T. Valente
Modern software development depends on APIs to reuse code and increase productivity. As most software systems, these libraries and frameworks also evolve, which may break existing clients. However, the main reasons to introduce breaking changes in APIs are unclear. Therefore, in this paper, we report the results of an almost 4-month long field study with the developers of 400 popular Java libraries and frameworks. We configured an infrastructure to observe all changes in these libraries and to detect breaking changes shortly after their introduction in the code. After identifying breaking changes, we asked the developers to explain the reasons behind their decision to change the APIs. During the study, we identified 59 breaking changes, confirmed by the developers of 19 projects. By analyzing the developers' answers, we report that breaking changes are mostly motivated by the need to implement new features, by the desire to make the APIs simpler and with fewer elements, and to improve maintainability. We conclude by providing suggestions to language designers, tool builders, software engineering researchers and API developers.
现代软件开发依赖于api来重用代码和提高生产力。与大多数软件系统一样,这些库和框架也在不断发展,这可能会破坏现有的客户端。然而,在api中引入破坏性更改的主要原因尚不清楚。因此,在本文中,我们报告了与400个流行Java库和框架的开发人员一起进行的长达近4个月的实地研究的结果。我们配置了一个基础结构来观察这些库中的所有更改,并在它们引入代码后不久检测破坏性更改。在确定了破坏性更改之后,我们要求开发人员解释他们决定更改api背后的原因。在研究过程中,我们确定了59个突破性的变化,由19个项目的开发人员确认。通过分析开发人员的回答,我们报告说,突破性的变化主要是由实现新特性的需要、使api更简单、元素更少以及提高可维护性的愿望所驱动的。最后,我们向语言设计人员、工具构建人员、软件工程研究人员和API开发人员提供建议。
{"title":"Why and how Java developers break APIs","authors":"Aline Brito, Laerte Xavier, André C. Hora, M. T. Valente","doi":"10.1109/SANER.2018.8330214","DOIUrl":"https://doi.org/10.1109/SANER.2018.8330214","url":null,"abstract":"Modern software development depends on APIs to reuse code and increase productivity. As most software systems, these libraries and frameworks also evolve, which may break existing clients. However, the main reasons to introduce breaking changes in APIs are unclear. Therefore, in this paper, we report the results of an almost 4-month long field study with the developers of 400 popular Java libraries and frameworks. We configured an infrastructure to observe all changes in these libraries and to detect breaking changes shortly after their introduction in the code. After identifying breaking changes, we asked the developers to explain the reasons behind their decision to change the APIs. During the study, we identified 59 breaking changes, confirmed by the developers of 19 projects. By analyzing the developers' answers, we report that breaking changes are mostly motivated by the need to implement new features, by the desire to make the APIs simpler and with fewer elements, and to improve maintainability. We conclude by providing suggestions to language designers, tool builders, software engineering researchers and API developers.","PeriodicalId":6602,"journal":{"name":"2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER)","volume":"15 1","pages":"255-265"},"PeriodicalIF":0.0,"publicationDate":"2018-01-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78250748","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}
引用次数: 44
Mining accurate message formats for service APIs 为服务api挖掘准确的消息格式
Md. Arafat Hossain, Steven Versteeg, Jun Han, M. A. Kabir, Jiaojiao Jiang, Jean-Guy Schneider
APIs play a significant role in the sharing, utilization and integration of information and service assets for enterprises, delivering significant business value. However, the documentation of service APIs can often be incomplete, ambiguous, or even non-existent, hindering API-based application development efforts. In this paper, we introduce an approach to automatically mine the fine-grained message formats required in defining the APIs of services and applications from their interaction traces, without assuming any prior knowledge. Our approach includes three major steps with corresponding techniques: (1) classifying the interaction messages of a service into clusters corresponding to message types, (2) identifying the keywords of messages in each cluster, and (3) extracting the format of each message type. We have applied our approach to network traces collected from four real services which used the following application protocols: REST, SOAP, LDAP and SIP. The results show that our approach achieves much greater accuracy in extracting message formats for service APIs than current state-of-art approaches.
api在企业信息和服务资产的共享、利用和集成方面发挥着重要作用,提供了重要的业务价值。然而,服务api的文档常常是不完整的、模棱两可的,甚至是不存在的,这阻碍了基于api的应用程序开发工作。在本文中,我们介绍了一种方法,可以在不假设任何先验知识的情况下,根据服务和应用程序的交互跟踪,自动挖掘定义服务和应用程序api所需的细粒度消息格式。我们的方法包括三个主要步骤和相应的技术:(1)将服务的交互消息分类到与消息类型相对应的集群中;(2)识别每个集群中的消息关键字;(3)提取每种消息类型的格式。我们已经将我们的方法应用于从使用以下应用协议的四个实际服务收集的网络跟踪:REST、SOAP、LDAP和SIP。结果表明,我们的方法在为服务api提取消息格式方面比当前最先进的方法实现了更高的准确性。
{"title":"Mining accurate message formats for service APIs","authors":"Md. Arafat Hossain, Steven Versteeg, Jun Han, M. A. Kabir, Jiaojiao Jiang, Jean-Guy Schneider","doi":"10.1109/SANER.2018.8330215","DOIUrl":"https://doi.org/10.1109/SANER.2018.8330215","url":null,"abstract":"APIs play a significant role in the sharing, utilization and integration of information and service assets for enterprises, delivering significant business value. However, the documentation of service APIs can often be incomplete, ambiguous, or even non-existent, hindering API-based application development efforts. In this paper, we introduce an approach to automatically mine the fine-grained message formats required in defining the APIs of services and applications from their interaction traces, without assuming any prior knowledge. Our approach includes three major steps with corresponding techniques: (1) classifying the interaction messages of a service into clusters corresponding to message types, (2) identifying the keywords of messages in each cluster, and (3) extracting the format of each message type. We have applied our approach to network traces collected from four real services which used the following application protocols: REST, SOAP, LDAP and SIP. The results show that our approach achieves much greater accuracy in extracting message formats for service APIs than current state-of-art approaches.","PeriodicalId":6602,"journal":{"name":"2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER)","volume":"17 1","pages":"266-276"},"PeriodicalIF":0.0,"publicationDate":"2018-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"73944276","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}
引用次数: 11
Model-based software restructuring: Lessons from cleaning up COM interfaces in industrial legacy code 基于模型的软件重构:清理工业遗留代码中的COM接口的经验教训
D. Dams, A. Mooij, Pepijn Kramer, A. Radulescu, Jaromir Vanhara
The high-tech industry is faced with ever growing amounts of software to be maintained and extended. To keep the associated costs under control, there is a demand for more human overview and for large-scale code restructurings. Language technology such as parsing can assist in this, but classical restructuring tools are typically not flexible enough to accommodate the needs of specific cases. In our research we investigate ways to make software restructuring tools customizable by software developers at Thermo Fisher Scientific as well as at other high-tech companies. We report on an industry-as-lab project, in which we have collaborated on cleaning up the compilation of COM interfaces of a large industrial software component. As a generic result, we have identified a method that we call model-based software restructuring. The approach taken is to extract high-level models from the code, use these to specify and visualize the restructuring, which is then translated into low-level code transformations. To implement this approach, we integrate generic technology to develop custom solutions. We aim for semiautomation and incrementally automate recurring restructuring patterns. The COM clean-up affected 72 type libraries and 1310 client projects with (one or more) dependencies on these type libraries. We have addressed these one type library at a time, and delivered all changes without blocking regular software development. Software developers in neighboring projects immediately noticed the very low defect rate of our restructuring. Moreover, as a spin-off, we have observed that the developed tools also start to contribute to regular software development.
高科技产业面临着越来越多的需要维护和扩展的软件。为了控制相关的成本,需要更多的人力和大规模的代码重构。诸如解析之类的语言技术可以在这方面提供帮助,但是传统的重构工具通常不够灵活,无法适应特定情况的需要。在我们的研究中,我们调查了让赛默飞世尔科技公司以及其他高科技公司的软件开发人员可以定制软件重构工具的方法。我们报告了一个工业实验室项目,在这个项目中,我们合作清理了一个大型工业软件组件的COM接口的编译。作为一般的结果,我们已经确定了一种我们称之为基于模型的软件重构的方法。所采用的方法是从代码中提取高级模型,使用这些模型来指定和可视化重构,然后将其转换为低级代码转换。为了实现这种方法,我们集成了通用技术来开发定制的解决方案。我们的目标是半自动化和增量自动化重复的重构模式。COM清理影响了72个类型库和1310个(一个或多个)依赖于这些类型库的客户端项目。我们一次处理一个类型库,并在不阻碍常规软件开发的情况下交付所有更改。相邻项目中的软件开发人员立即注意到我们的重构中非常低的缺陷率。此外,作为副产品,我们已经观察到开发的工具也开始对常规软件开发做出贡献。
{"title":"Model-based software restructuring: Lessons from cleaning up COM interfaces in industrial legacy code","authors":"D. Dams, A. Mooij, Pepijn Kramer, A. Radulescu, Jaromir Vanhara","doi":"10.1109/SANER.2018.8330258","DOIUrl":"https://doi.org/10.1109/SANER.2018.8330258","url":null,"abstract":"The high-tech industry is faced with ever growing amounts of software to be maintained and extended. To keep the associated costs under control, there is a demand for more human overview and for large-scale code restructurings. Language technology such as parsing can assist in this, but classical restructuring tools are typically not flexible enough to accommodate the needs of specific cases. In our research we investigate ways to make software restructuring tools customizable by software developers at Thermo Fisher Scientific as well as at other high-tech companies. We report on an industry-as-lab project, in which we have collaborated on cleaning up the compilation of COM interfaces of a large industrial software component. As a generic result, we have identified a method that we call model-based software restructuring. The approach taken is to extract high-level models from the code, use these to specify and visualize the restructuring, which is then translated into low-level code transformations. To implement this approach, we integrate generic technology to develop custom solutions. We aim for semiautomation and incrementally automate recurring restructuring patterns. The COM clean-up affected 72 type libraries and 1310 client projects with (one or more) dependencies on these type libraries. We have addressed these one type library at a time, and delivered all changes without blocking regular software development. Software developers in neighboring projects immediately noticed the very low defect rate of our restructuring. Moreover, as a spin-off, we have observed that the developed tools also start to contribute to regular software development.","PeriodicalId":6602,"journal":{"name":"2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER)","volume":"56 1","pages":"552-556"},"PeriodicalIF":0.0,"publicationDate":"2018-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82534867","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}
引用次数: 4
Connecting software metrics across versions to predict defects 连接跨版本的软件度量来预测缺陷
Yibin Liu, Yanhui Li, Jianbo Guo, Yuming Zhou, Baowen Xu
Accurate software defect prediction could help software practitioners allocate test resources to defect-prone modules effectively and efficiently. In the last decades, much effort has been devoted to build accurate defect prediction models, including developing quality defect predictors and modeling techniques. However, current widely used defect predictors such as code metrics and process metrics could not well describe how software modules change over the project evolution, which we believe is important for defect prediction. In order to deal with this problem, in this paper, we propose to use the Historical Version Sequence of Metrics (HVSM) in continuous software versions as defect predictors. Furthermore, we leverage Recurrent Neural Network (RNN), a popular modeling technique, to take HVSM as the input to build software prediction models. The experimental results show that, in most cases, the proposed HVSM-based RNN model has significantly better effort-aware ranking effectiveness than the commonly used baseline models.
准确的软件缺陷预测可以帮助软件从业者有效地将测试资源分配给容易出现缺陷的模块。在过去的几十年里,已经投入了大量的工作来构建准确的缺陷预测模型,包括开发质量缺陷预测器和建模技术。然而,当前广泛使用的缺陷预测器,如代码度量和过程度量,不能很好地描述软件模块在项目发展过程中是如何变化的,我们认为这对于缺陷预测是很重要的。为了解决这一问题,本文提出在连续软件版本中使用度量的历史版本序列(HVSM)作为缺陷预测因子。此外,我们利用递归神经网络(RNN),一种流行的建模技术,以HVSM作为输入来构建软件预测模型。实验结果表明,在大多数情况下,基于hvsm的RNN模型比常用的基线模型具有更好的努力感知排序效果。
{"title":"Connecting software metrics across versions to predict defects","authors":"Yibin Liu, Yanhui Li, Jianbo Guo, Yuming Zhou, Baowen Xu","doi":"10.1109/SANER.2018.8330212","DOIUrl":"https://doi.org/10.1109/SANER.2018.8330212","url":null,"abstract":"Accurate software defect prediction could help software practitioners allocate test resources to defect-prone modules effectively and efficiently. In the last decades, much effort has been devoted to build accurate defect prediction models, including developing quality defect predictors and modeling techniques. However, current widely used defect predictors such as code metrics and process metrics could not well describe how software modules change over the project evolution, which we believe is important for defect prediction. In order to deal with this problem, in this paper, we propose to use the Historical Version Sequence of Metrics (HVSM) in continuous software versions as defect predictors. Furthermore, we leverage Recurrent Neural Network (RNN), a popular modeling technique, to take HVSM as the input to build software prediction models. The experimental results show that, in most cases, the proposed HVSM-based RNN model has significantly better effort-aware ranking effectiveness than the commonly used baseline models.","PeriodicalId":6602,"journal":{"name":"2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER)","volume":"35 1","pages":"232-243"},"PeriodicalIF":0.0,"publicationDate":"2017-12-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"74436255","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}
引用次数: 29
Recursion aware modeling and discovery for hierarchical software event log analysis 面向分层软件事件日志分析的递归感知建模与发现
M. Leemans, Wil M.P. van der Aalst, M. Brand
This paper presents 1) a novel hierarchy and recursion extension to the process tree model; and 2) the first, recursion aware process model discovery technique that leverages hierarchical information in event logs, typically available for software systems. This technique allows us to analyze the operational processes of software systems under real-life conditions at multiple levels of granularity. The work can be positioned in-between reverse engineering and process mining. An implementation of the proposed approach is available as a ProM plugin. Experimental results based on real-life (software) event logs demonstrate the feasibility and usefulness of the approach and show the huge potential to speed up discovery by exploiting the available hierarchy.
本文提出了一种新的过程树模型的层次递归扩展;2)第一种,递归感知过程模型发现技术,它利用事件日志中的分层信息,通常可用于软件系统。该技术允许我们在多个粒度级别上分析现实条件下软件系统的操作过程。这项工作可以定位在逆向工程和过程挖掘之间。所提出的方法的实现是作为ProM插件可用的。基于现实生活(软件)事件日志的实验结果证明了该方法的可行性和实用性,并显示了利用可用层次结构加速发现的巨大潜力。
{"title":"Recursion aware modeling and discovery for hierarchical software event log analysis","authors":"M. Leemans, Wil M.P. van der Aalst, M. Brand","doi":"10.1109/SANER.2018.8330208","DOIUrl":"https://doi.org/10.1109/SANER.2018.8330208","url":null,"abstract":"This paper presents 1) a novel hierarchy and recursion extension to the process tree model; and 2) the first, recursion aware process model discovery technique that leverages hierarchical information in event logs, typically available for software systems. This technique allows us to analyze the operational processes of software systems under real-life conditions at multiple levels of granularity. The work can be positioned in-between reverse engineering and process mining. An implementation of the proposed approach is available as a ProM plugin. Experimental results based on real-life (software) event logs demonstrate the feasibility and usefulness of the approach and show the huge potential to speed up discovery by exploiting the available hierarchy.","PeriodicalId":6602,"journal":{"name":"2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER)","volume":"65 1","pages":"185-196"},"PeriodicalIF":0.0,"publicationDate":"2017-10-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"76897769","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}
引用次数: 25
期刊
2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER)
全部 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