首页 > 最新文献

2019 26th Asia-Pacific Software Engineering Conference (APSEC)最新文献

英文 中文
SGXPy: Protecting Integrity of Python Applications with Intel SGX 使用Intel SGX保护Python应用程序的完整性
Pub Date : 2019-12-01 DOI: 10.1109/APSEC48747.2019.00063
Denghui Zhang, Guisai Wang, Wei Xu, Kevin Gao
Python is the programming language of choice for many data scientists, and thus widely used in cloud computing platforms. Untrusted cloud environments have imposed challenges to the security of Python applications. Intel SGX (Intel Software Guard eXtensions) provides an encrypted enclave for securing applications, and a library OS technology can be adopted to run legacy applications inside these enclaves. However, this technology has some limitations: (i) It is difficult to ensure the integrity of Python applications as a result of the complex dependencies among modules. (ii) Python applications often spawn new processes, and file access permissions need to be handled separately in the parent-child process. To address these limitations, we present SGXPy (SGX Python), an integrity preserving tool for Python applications. The design of SGXPy makes it possible to obtain dependencies of applications and assign file access permissions among processes automatically: (i) During the build stage, SGXPy constructs dependency manifests of Python applications based on the ptrace mechanism. (ii) To enhance access control among processes, SGXPy utilizes process introspection to cascading manifests for each process. With the proposed framework, sophisticated Python applications such as NumPy and a web server can now run unmodified with the library OS. We present a series of experiments to evaluate performance overheads of Python applications in SGX. Our evaluation of NumPy submodules shows SGXPy can pass 97.60% of unit testing, even with the isolated environment and limited memory of SGX.
Python是许多数据科学家选择的编程语言,因此在云计算平台中被广泛使用。不受信任的云环境给Python应用程序的安全性带来了挑战。Intel SGX (Intel Software Guard eXtensions)为保护应用程序提供了一个加密的enclave,并且可以采用库操作系统技术在这些enclave中运行遗留应用程序。然而,这种技术有一些局限性:(i)由于模块之间复杂的依赖关系,很难确保Python应用程序的完整性。(ii) Python应用程序经常生成新进程,文件访问权限需要在父子进程中单独处理。为了解决这些限制,我们提出了SGXPy (SGX Python),一个用于Python应用程序的完整性保持工具。SGXPy的设计使其能够自动获取应用程序的依赖关系,并在进程之间分配文件访问权限:(i)在构建阶段,SGXPy基于ptrace机制构建Python应用程序的依赖关系清单。(ii)为了加强进程间的访问控制,SGXPy利用进程自省来级联每个进程的清单。使用建议的框架,复杂的Python应用程序(如NumPy和web服务器)现在可以在库操作系统上不加修改地运行。我们提供了一系列实验来评估SGX中Python应用程序的性能开销。我们对NumPy子模块的评估表明,SGXPy可以通过97.60%的单元测试,即使在SGX的隔离环境和有限内存下也是如此。
{"title":"SGXPy: Protecting Integrity of Python Applications with Intel SGX","authors":"Denghui Zhang, Guisai Wang, Wei Xu, Kevin Gao","doi":"10.1109/APSEC48747.2019.00063","DOIUrl":"https://doi.org/10.1109/APSEC48747.2019.00063","url":null,"abstract":"Python is the programming language of choice for many data scientists, and thus widely used in cloud computing platforms. Untrusted cloud environments have imposed challenges to the security of Python applications. Intel SGX (Intel Software Guard eXtensions) provides an encrypted enclave for securing applications, and a library OS technology can be adopted to run legacy applications inside these enclaves. However, this technology has some limitations: (i) It is difficult to ensure the integrity of Python applications as a result of the complex dependencies among modules. (ii) Python applications often spawn new processes, and file access permissions need to be handled separately in the parent-child process. To address these limitations, we present SGXPy (SGX Python), an integrity preserving tool for Python applications. The design of SGXPy makes it possible to obtain dependencies of applications and assign file access permissions among processes automatically: (i) During the build stage, SGXPy constructs dependency manifests of Python applications based on the ptrace mechanism. (ii) To enhance access control among processes, SGXPy utilizes process introspection to cascading manifests for each process. With the proposed framework, sophisticated Python applications such as NumPy and a web server can now run unmodified with the library OS. We present a series of experiments to evaluate performance overheads of Python applications in SGX. Our evaluation of NumPy submodules shows SGXPy can pass 97.60% of unit testing, even with the isolated environment and limited memory of SGX.","PeriodicalId":325642,"journal":{"name":"2019 26th Asia-Pacific Software Engineering Conference (APSEC)","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115510697","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}
引用次数: 2
Version-Based Microservice Analysis, Monitoring, and Visualization 基于版本的微服务分析、监控和可视化
Pub Date : 2019-12-01 DOI: 10.1109/APSEC48747.2019.00031
Shang-Pin Ma, I-Hsiu Liu, Chun-Yu Chen, Jiun-Ting Lin, Nien-Lin Hsueh
Semantic versioning (SemVer) was widely used in the development of microservice systems to place limits on the configuration and growth of service versions. SemVer can suppress the complexity of MSAs; however, the interactions among various elements (e.g., services, endpoints, versions) remain difficult to manage. Therefore, this paper presents a tool for monitoring microservice systems, generating visualized version-based service dependency graphs, and providing graph search services. The proposed scheme is called Version-based Microservice Analysis, Monitoring, and Visualization (VMAMV). This system automatically detects potential design problems for microservice with multiple versions in design time, discover service anomalies for all service versions in runtime, and immediately notifies users of problems shortly after they occur. The conducted experiments show that VMAMV is feasible and effective on the detection of problems and anomalies for microservice development and operation.
语义版本控制(SemVer)广泛用于微服务系统的开发,以限制服务版本的配置和增长。SemVer可以抑制msa的复杂性;然而,各种元素(例如,服务、端点、版本)之间的交互仍然难以管理。因此,本文提出了一种工具,用于监控微服务系统,生成可视化的基于版本的服务依赖图,并提供图搜索服务。提出的方案称为基于版本的微服务分析、监控和可视化(vamv)。该系统在设计时自动检测具有多个版本的微服务的潜在设计问题,在运行时发现所有版本的服务异常,并在出现问题后立即通知用户。实验结果表明,vamv在微服务开发和运营中问题和异常检测是可行和有效的。
{"title":"Version-Based Microservice Analysis, Monitoring, and Visualization","authors":"Shang-Pin Ma, I-Hsiu Liu, Chun-Yu Chen, Jiun-Ting Lin, Nien-Lin Hsueh","doi":"10.1109/APSEC48747.2019.00031","DOIUrl":"https://doi.org/10.1109/APSEC48747.2019.00031","url":null,"abstract":"Semantic versioning (SemVer) was widely used in the development of microservice systems to place limits on the configuration and growth of service versions. SemVer can suppress the complexity of MSAs; however, the interactions among various elements (e.g., services, endpoints, versions) remain difficult to manage. Therefore, this paper presents a tool for monitoring microservice systems, generating visualized version-based service dependency graphs, and providing graph search services. The proposed scheme is called Version-based Microservice Analysis, Monitoring, and Visualization (VMAMV). This system automatically detects potential design problems for microservice with multiple versions in design time, discover service anomalies for all service versions in runtime, and immediately notifies users of problems shortly after they occur. The conducted experiments show that VMAMV is feasible and effective on the detection of problems and anomalies for microservice development and operation.","PeriodicalId":325642,"journal":{"name":"2019 26th Asia-Pacific Software Engineering Conference (APSEC)","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130592310","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}
引用次数: 15
A Coloured Petri Net Approach to Model and Analyze Safety-Critical Interactive Systems 安全关键型交互系统建模与分析的彩色Petri网方法
Pub Date : 2019-12-01 DOI: 10.1109/APSEC48747.2019.00054
Sapna Jaidka, S. Reeves, Judy Bowen
To gain confidence in safety-critical interactive systems, formal modelling and analysis plays a vital role. The aim of this paper is to use Coloured Petri Nets to model and analyze safety-critical interactive systems. We present a technique to construct a single Coloured Petri Net model of the user interface, interaction and functionality of safety-critical interactive systems and then analyze the achieved Coloured Petri Net model using a state space analysis method. There are several reasons for using Coloured Petri Nets. Coloured Petri Nets provides a graphical representation and hierarchical structuring mechanism, and a state space verification technique, which allows querying the state space to investigate behaviours of a system. There are several tools that supports Coloured Petri Nets including the CPN Tool which helps in building CPN models and allows simulation and analysis using state spaces. The technique to model and analyze safety-critical interactive systems is illustrated using a simplified infusion pump example.
为了获得对安全关键交互系统的信心,正式建模和分析起着至关重要的作用。本文的目的是使用彩色Petri网来建模和分析安全关键的交互系统。我们提出了一种构建安全关键交互系统的用户界面、交互和功能的单一彩色Petri网模型的技术,然后使用状态空间分析方法分析所获得的彩色Petri网模型。使用彩色Petri网有几个原因。彩色Petri网提供了一种图形表示和分层结构机制,以及一种状态空间验证技术,允许查询状态空间来调查系统的行为。有几个工具支持彩色Petri网,包括CPN工具,它可以帮助构建CPN模型,并允许使用状态空间进行模拟和分析。以一个简化的输液泵为例说明了对安全关键型交互系统进行建模和分析的技术。
{"title":"A Coloured Petri Net Approach to Model and Analyze Safety-Critical Interactive Systems","authors":"Sapna Jaidka, S. Reeves, Judy Bowen","doi":"10.1109/APSEC48747.2019.00054","DOIUrl":"https://doi.org/10.1109/APSEC48747.2019.00054","url":null,"abstract":"To gain confidence in safety-critical interactive systems, formal modelling and analysis plays a vital role. The aim of this paper is to use Coloured Petri Nets to model and analyze safety-critical interactive systems. We present a technique to construct a single Coloured Petri Net model of the user interface, interaction and functionality of safety-critical interactive systems and then analyze the achieved Coloured Petri Net model using a state space analysis method. There are several reasons for using Coloured Petri Nets. Coloured Petri Nets provides a graphical representation and hierarchical structuring mechanism, and a state space verification technique, which allows querying the state space to investigate behaviours of a system. There are several tools that supports Coloured Petri Nets including the CPN Tool which helps in building CPN models and allows simulation and analysis using state spaces. The technique to model and analyze safety-critical interactive systems is illustrated using a simplified infusion pump example.","PeriodicalId":325642,"journal":{"name":"2019 26th Asia-Pacific Software Engineering Conference (APSEC)","volume":"61 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116528735","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}
引用次数: 5
SHML: Stochastic Hybrid Modeling Language for CPS Behavior CPS行为的随机混合建模语言
Pub Date : 2019-12-01 DOI: 10.1109/APSEC48747.2019.00038
Dehui Du, Tong Guo, Yao Wang
Cyber-Physical Systems (CPS) connect the cyberworld with physical world with a network of interrelated el-ements, such as sensors and actuators. It is always runningin an open environment and the main characteristics of CPSis hybrid and stochastic. Domain-Specific Modeling Language(DSML) offers a tailor-made solution for modeling a specific field. However, there still lacks of DSML to model hybrid and stochasticbehavior in CPS. To address these issues, we propose a StochasticHybrid Modeling Language (SHML) based on domain modellanguage engineering, which supports modeling stochastic andhybrid behaviors in CPS. The abstract syntax, concrete syntax, and operational semantics of SHML are presented. The SHMLis implemented based on the GEMOC studio. With the help ofthe GEMOC execution engine and the Scilab plugin, the SHMLmodels can be executed to generate simulation traces of thesystem. These traces are fed into a statistical model checker whichsupports simulation-based verification to enable the qualitativeand quantitative analysis. The novelty of our work is that aDSML is proposed to model the behavior of CPS. Moreover, the tool prototype is implemented based on the model-drivenarchitecture. We illustrate the feasibility of our approach withan energy-aware building.
信息物理系统(CPS)通过传感器和执行器等相互关联的元素组成的网络,将网络世界与物理世界连接起来。它始终在一个开放的环境中运行,其主要特点是混合性和随机性。特定于领域的建模语言(Domain-Specific Modeling Language, DSML)为特定领域的建模提供了量身定制的解决方案。然而,目前还缺乏对CPS中混合和随机行为进行建模的DSML。为了解决这些问题,我们提出了一种基于领域建模语言工程的随机混合建模语言(SHML),它支持对CPS中的随机和混合行为进行建模。给出了SHML的抽象语法、具体语法和操作语义。shmli是基于GEMOC studio实现的。在GEMOC执行引擎和Scilab插件的帮助下,可以执行shmlmodel来生成系统的仿真轨迹。这些痕迹被输入到统计模型检查器中,该检查器支持基于模拟的验证,以实现定性和定量分析。我们工作的新颖之处在于提出了aDSML来模拟CPS的行为。此外,工具原型是基于模型驱动体系结构实现的。我们在节能建筑中说明了我们的方法的可行性。
{"title":"SHML: Stochastic Hybrid Modeling Language for CPS Behavior","authors":"Dehui Du, Tong Guo, Yao Wang","doi":"10.1109/APSEC48747.2019.00038","DOIUrl":"https://doi.org/10.1109/APSEC48747.2019.00038","url":null,"abstract":"Cyber-Physical Systems (CPS) connect the cyberworld with physical world with a network of interrelated el-ements, such as sensors and actuators. It is always runningin an open environment and the main characteristics of CPSis hybrid and stochastic. Domain-Specific Modeling Language(DSML) offers a tailor-made solution for modeling a specific field. However, there still lacks of DSML to model hybrid and stochasticbehavior in CPS. To address these issues, we propose a StochasticHybrid Modeling Language (SHML) based on domain modellanguage engineering, which supports modeling stochastic andhybrid behaviors in CPS. The abstract syntax, concrete syntax, and operational semantics of SHML are presented. The SHMLis implemented based on the GEMOC studio. With the help ofthe GEMOC execution engine and the Scilab plugin, the SHMLmodels can be executed to generate simulation traces of thesystem. These traces are fed into a statistical model checker whichsupports simulation-based verification to enable the qualitativeand quantitative analysis. The novelty of our work is that aDSML is proposed to model the behavior of CPS. Moreover, the tool prototype is implemented based on the model-drivenarchitecture. We illustrate the feasibility of our approach withan energy-aware building.","PeriodicalId":325642,"journal":{"name":"2019 26th Asia-Pacific Software Engineering Conference (APSEC)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122062676","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}
引用次数: 2
Jact: A Playground Tool for Comparison of JavaScript Frameworks Jact:一个比较JavaScript框架的游乐场工具
Pub Date : 2019-12-01 DOI: 10.1109/APSEC48747.2019.00070
Nozomi Nakajima, S. Matsumoto, S. Kusumoto
Comparing and selecting the most appropriate JavaScript Framework (JSF) is an important activity for web application development. However, it is difficult to collect much information for comparison of JSFs. In this paper, we present a playground tool named Jact to support comprehension of individual JSF characteristics. By the concept of playground, users can freely run, edit, and share source code in their web browsers. Based on the concept, Jact enables developers to compare source codes and runtime performances of each JSF based on typical tasks in web development. Task-based comparison is useful for understanding the feature of each JSF. Furthermore, developers can submit tasks and source code which uses a specific JSF. By sharing tasks and source code written by not only administrators but also developers, Jact can continuously provide information relating to JSF, which includes benchmark and API usage. In order to evaluate the effectiveness of Jact, we conducted a subject experiment with 13 participants. Jact is currently available at http://13.231.18.92.
比较和选择最合适的JavaScript框架(JSF)是web应用程序开发的重要活动。然而,很难收集很多信息来比较jsf。在本文中,我们提出了一个名为Jact的游乐场工具来支持对单个JSF特征的理解。通过游乐场的概念,用户可以在他们的web浏览器中自由地运行、编辑和共享源代码。基于这个概念,Jact使开发人员能够根据web开发中的典型任务比较每个JSF的源代码和运行时性能。基于任务的比较对于理解每个JSF的特性很有用。此外,开发人员可以提交使用特定JSF的任务和源代码。通过共享管理员和开发人员编写的任务和源代码,Jact可以持续提供与JSF相关的信息,其中包括基准测试和API使用情况。为了评估Jact的有效性,我们进行了一个有13名参与者的受试者实验。Jact目前可以在http://13.231.18.92上找到。
{"title":"Jact: A Playground Tool for Comparison of JavaScript Frameworks","authors":"Nozomi Nakajima, S. Matsumoto, S. Kusumoto","doi":"10.1109/APSEC48747.2019.00070","DOIUrl":"https://doi.org/10.1109/APSEC48747.2019.00070","url":null,"abstract":"Comparing and selecting the most appropriate JavaScript Framework (JSF) is an important activity for web application development. However, it is difficult to collect much information for comparison of JSFs. In this paper, we present a playground tool named Jact to support comprehension of individual JSF characteristics. By the concept of playground, users can freely run, edit, and share source code in their web browsers. Based on the concept, Jact enables developers to compare source codes and runtime performances of each JSF based on typical tasks in web development. Task-based comparison is useful for understanding the feature of each JSF. Furthermore, developers can submit tasks and source code which uses a specific JSF. By sharing tasks and source code written by not only administrators but also developers, Jact can continuously provide information relating to JSF, which includes benchmark and API usage. In order to evaluate the effectiveness of Jact, we conducted a subject experiment with 13 participants. Jact is currently available at http://13.231.18.92.","PeriodicalId":325642,"journal":{"name":"2019 26th Asia-Pacific Software Engineering Conference (APSEC)","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126967966","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}
引用次数: 3
Quality Assessment for Large-Scale Industrial Software Systems: Experience Report at Alibaba 大型工业软件系统的质量评估:阿里巴巴的经验报告
Pub Date : 2019-12-01 DOI: 10.1109/APSEC48747.2019.00028
Chen Zhi, Shuiguang Deng, Jianwei Yin, Min Fu, Hai Zhu, Yuanping Li, Tao Xie
To assure high software quality for large-scale industrial software systems, traditional approaches of software quality assurance, such as software testing and performance engineering, have been widely used within Alibaba, the world's largest retailer, and one of the largest Internet companies in the world. However, there still exists a high demand for software quality assessment to achieve high sustainability of business growth and engineering culture in Alibaba. To address this issue, we develop an industrial solution for software quality assessment by following the GQM paradigm in an industrial setting. Moreover, we integrate multiple assessment methods into our solution, ranging from metric selection to rating aggregation. Our solution has been implemented, deployed, and adopted at Alibaba: (1) used by Alibaba's Business Platform Unit to continually monitor the quality for 60+ core software systems; (2) used by Alibaba's R&D Efficiency Unit to support group-wide quality-aware code search and automatic code inspection. This paper presents our proposed industrial solution, including its techniques and industrial adoption, along with the lessons learned during the development and deployment of our solution.
为了保证大型工业软件系统的高软件质量,传统的软件质量保证方法,如软件测试和性能工程,在阿里巴巴这个世界上最大的零售商和世界上最大的互联网公司之一被广泛使用。但是,为了实现阿里巴巴的业务增长和工程文化的高度可持续性,对软件质量评估的需求仍然很高。为了解决这个问题,我们通过在工业环境中遵循GQM范例,为软件质量评估开发了一个工业解决方案。此外,我们将多种评估方法集成到我们的解决方案中,范围从度量选择到评级聚合。我们的解决方案已经在阿里巴巴实施、部署和采用:(1)被阿里巴巴业务平台部门用于持续监控60多个核心软件系统的质量;(2)被阿里巴巴的研发效率部门用于支持全集团范围内的质量意识代码搜索和自动代码检查。本文介绍了我们提出的工业解决方案,包括其技术和工业采用,以及在我们的解决方案的开发和部署过程中吸取的经验教训。
{"title":"Quality Assessment for Large-Scale Industrial Software Systems: Experience Report at Alibaba","authors":"Chen Zhi, Shuiguang Deng, Jianwei Yin, Min Fu, Hai Zhu, Yuanping Li, Tao Xie","doi":"10.1109/APSEC48747.2019.00028","DOIUrl":"https://doi.org/10.1109/APSEC48747.2019.00028","url":null,"abstract":"To assure high software quality for large-scale industrial software systems, traditional approaches of software quality assurance, such as software testing and performance engineering, have been widely used within Alibaba, the world's largest retailer, and one of the largest Internet companies in the world. However, there still exists a high demand for software quality assessment to achieve high sustainability of business growth and engineering culture in Alibaba. To address this issue, we develop an industrial solution for software quality assessment by following the GQM paradigm in an industrial setting. Moreover, we integrate multiple assessment methods into our solution, ranging from metric selection to rating aggregation. Our solution has been implemented, deployed, and adopted at Alibaba: (1) used by Alibaba's Business Platform Unit to continually monitor the quality for 60+ core software systems; (2) used by Alibaba's R&D Efficiency Unit to support group-wide quality-aware code search and automatic code inspection. This paper presents our proposed industrial solution, including its techniques and industrial adoption, along with the lessons learned during the development and deployment of our solution.","PeriodicalId":325642,"journal":{"name":"2019 26th Asia-Pacific Software Engineering Conference (APSEC)","volume":"80 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126327631","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
Inferring Faults in Business Specifications Extracted from Source Code 从源代码中提取业务规范中的故障推断
Pub Date : 2019-12-01 DOI: 10.1109/APSEC48747.2019.00040
Kazuya Yasuda, Shinji Itoh, Ryota Mibe, Yoshinori Jodai, Fumie Nakaya
Since many enterprise systems contain complex business rules, it is important that developers find logical faults during code review. Techniques for extracting specifications help developers understand business rules implemented in source code. The developers can then find logical faults by reviewing the extracted specification. However, when the implemented business rules are complex, it is a problem that the size of the extracted specification is too large for developers to review. To overcome that problem, in the present study, an approach to reduce the size of the extracted specification that has to be reviewed is proposed. This approach focuses on logical faults that can be inferred without having the correct business specification and identifies the part of the specification including those faults as the specification that has to be reviewed. Three patterns that infer such faults in a business specification are defined, and a technique for detecting those patterns in an extracted specification is proposed. To evaluate the proposed technique, it was applied to seven sets of business specifications extracted from an enterprise information system. The results of the evaluation show that the technique successfully reduces the size of the specification that has to be reviewed (by 83% on average), although the reduced specification contains some misdetections. They also show that the technique makes it easier to understand and review a business specification implemented in source code.
由于许多企业系统包含复杂的业务规则,因此开发人员在代码审查期间发现逻辑错误非常重要。提取规范的技术帮助开发人员理解在源代码中实现的业务规则。然后,开发人员可以通过检查提取的规范来发现逻辑错误。然而,当实现的业务规则很复杂时,所提取的规范的大小对于开发人员来说太大而无法检查,这是一个问题。为了克服这个问题,在本研究中,提出了一种减少必须审查的提取规范的大小的方法。这种方法着重于在没有正确的业务规范的情况下可以推断出的逻辑错误,并将包含这些错误的规范部分标识为必须审查的规范。定义了三种推断业务规范中此类错误的模式,并提出了一种在提取的规范中检测这些模式的技术。为了评估所提出的技术,将其应用于从企业信息系统中提取的七组业务规范。评估的结果表明,该技术成功地减少了必须审查的规范的大小(平均减少了83%),尽管减少的规范包含一些错误检测。它们还表明,该技术使理解和审查在源代码中实现的业务规范变得更加容易。
{"title":"Inferring Faults in Business Specifications Extracted from Source Code","authors":"Kazuya Yasuda, Shinji Itoh, Ryota Mibe, Yoshinori Jodai, Fumie Nakaya","doi":"10.1109/APSEC48747.2019.00040","DOIUrl":"https://doi.org/10.1109/APSEC48747.2019.00040","url":null,"abstract":"Since many enterprise systems contain complex business rules, it is important that developers find logical faults during code review. Techniques for extracting specifications help developers understand business rules implemented in source code. The developers can then find logical faults by reviewing the extracted specification. However, when the implemented business rules are complex, it is a problem that the size of the extracted specification is too large for developers to review. To overcome that problem, in the present study, an approach to reduce the size of the extracted specification that has to be reviewed is proposed. This approach focuses on logical faults that can be inferred without having the correct business specification and identifies the part of the specification including those faults as the specification that has to be reviewed. Three patterns that infer such faults in a business specification are defined, and a technique for detecting those patterns in an extracted specification is proposed. To evaluate the proposed technique, it was applied to seven sets of business specifications extracted from an enterprise information system. The results of the evaluation show that the technique successfully reduces the size of the specification that has to be reviewed (by 83% on average), although the reduced specification contains some misdetections. They also show that the technique makes it easier to understand and review a business specification implemented in source code.","PeriodicalId":325642,"journal":{"name":"2019 26th Asia-Pacific Software Engineering Conference (APSEC)","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124131568","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}
引用次数: 0
CLASC: A Changelog Based Automatic Code Source Classification Method for Operating System Packages 基于变更日志的操作系统包源代码自动分类方法
Pub Date : 2019-12-01 DOI: 10.1109/APSEC48747.2019.00058
Yi Ren, Jianbo Guan, Jun Ma, Yusong Tan, Qingbo Wu, Y. Ding
Open source represents an important way in which today's software is developed. The adoption of open source software continues to accelerate because of the great potential it offers, such as productivity improvement, cost savings and quicker innovation. While the complexity and the size of software composition grow, it becomes difficult to effectively scan and track the code source, especially for software with tremendous scale of code, such as operating systems. So far, existing work on open source components mainly focus on how to mitigate potential license incompliance, to reduce potential security risks introduced by open source vulnerabilities, and to detect and match open source components in the code. To ensure code traceability and manageability for large scale mixed-source operating system, we believe it is beneficial to automatically distinguish sources of the system code in the granularity of software packages and manage them separately. However, according to the literature, there is a lack of relevant work in this area. In this paper, we first classify the packages into three categories in terms of code source from the perspective of OS developers and maintainers. Then we propose CLASC, an efficient code source classification algorithm. With the capability of package info extraction and analysis, CLASC can classify software packages into the defined categories according to their changelog info. And we design and implement KyAnalyzer, a Web-based package management and code source analysis platform. It provides automatic code source analyzing services and is capable of managing OS packages differentially according to their different categories of code source with CLASC incorporated as a component of it. Experimental results show the correctness and efficiency of the Web-enabled package source classifier.
开源代表了当今软件开发的一种重要方式。开源软件的采用继续加速,因为它提供了巨大的潜力,比如生产力的提高、成本的节约和更快的创新。随着软件组成的复杂性和规模的增长,有效地扫描和跟踪代码源变得越来越困难,特别是对于代码规模巨大的软件,如操作系统。到目前为止,关于开源组件的现有工作主要集中在如何减轻潜在的许可证不合规,减少开源漏洞带来的潜在安全风险,以及检测和匹配代码中的开源组件。为了保证大规模混合源操作系统的代码可追溯性和可管理性,我们认为在软件包粒度上自动区分系统代码的来源并对其进行单独管理是有益的。然而,根据文献,在这方面缺乏相关的工作。在本文中,我们首先从操作系统开发人员和维护人员的角度,根据代码源代码将这些包分为三类。然后,我们提出了一种高效的代码源分类算法class。class具有包信息提取和分析能力,可以根据软件包的变更日志信息将软件包划分为已定义的类别。设计并实现了基于web的包管理和源代码分析平台KyAnalyzer。它提供自动代码源分析服务,能够根据不同类别的代码源对操作系统包进行不同的管理,并将class作为其组件。实验结果表明了该方法的正确性和有效性。
{"title":"CLASC: A Changelog Based Automatic Code Source Classification Method for Operating System Packages","authors":"Yi Ren, Jianbo Guan, Jun Ma, Yusong Tan, Qingbo Wu, Y. Ding","doi":"10.1109/APSEC48747.2019.00058","DOIUrl":"https://doi.org/10.1109/APSEC48747.2019.00058","url":null,"abstract":"Open source represents an important way in which today's software is developed. The adoption of open source software continues to accelerate because of the great potential it offers, such as productivity improvement, cost savings and quicker innovation. While the complexity and the size of software composition grow, it becomes difficult to effectively scan and track the code source, especially for software with tremendous scale of code, such as operating systems. So far, existing work on open source components mainly focus on how to mitigate potential license incompliance, to reduce potential security risks introduced by open source vulnerabilities, and to detect and match open source components in the code. To ensure code traceability and manageability for large scale mixed-source operating system, we believe it is beneficial to automatically distinguish sources of the system code in the granularity of software packages and manage them separately. However, according to the literature, there is a lack of relevant work in this area. In this paper, we first classify the packages into three categories in terms of code source from the perspective of OS developers and maintainers. Then we propose CLASC, an efficient code source classification algorithm. With the capability of package info extraction and analysis, CLASC can classify software packages into the defined categories according to their changelog info. And we design and implement KyAnalyzer, a Web-based package management and code source analysis platform. It provides automatic code source analyzing services and is capable of managing OS packages differentially according to their different categories of code source with CLASC incorporated as a component of it. Experimental results show the correctness and efficiency of the Web-enabled package source classifier.","PeriodicalId":325642,"journal":{"name":"2019 26th Asia-Pacific Software Engineering Conference (APSEC)","volume":"49 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128608987","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}
引用次数: 0
Formal Modelling and Verification of Spinlocks at Instruction Level 指令级自旋锁的形式化建模与验证
Pub Date : 2019-12-01 DOI: 10.1109/APSEC48747.2019.00055
Leping Zhang, Qianying Zhang, Guohui Wang, Zhiping Shi, Minhua Wu, Yong Guan
Spinlocks have been widely used as a solution for synchronous accesses to shared resources, and their correctness is critical to guarantee the consistency of concurrent processes. This paper presents formal models and machine-checked verification of the correctness of spinlocks at instruction level. We present the formal verification of two spinlocks, which are spinlocks implemented based on the ARM instructions and the x86 instructions, respectively. Our model formalizes the lowlevel instructions that are necessary to capture the execution of spinlocks, characterizes the processor hardware mechanisms related to each instruction, and considers the context switches on processors and two-level scheduling of processors and processes. We specify the correctness property of our models, that is, accesses of a critical section satisfy mutual exclusion, and verify that the models satisfy the property using the theorem prover Isabelle/HOL. With the verification experience, we give some suggestions on how to implement spinlock leveraging the ARM ISA.
自旋锁已被广泛用作对共享资源的同步访问的解决方案,其正确性对于保证并发进程的一致性至关重要。本文给出了自旋锁在指令级正确性的形式化模型和机器检查验证。本文给出了两种自旋锁的形式化验证,这两种自旋锁分别是基于ARM指令和x86指令实现的。我们的模型形式化了捕获自旋锁执行所必需的低级指令,描述了与每个指令相关的处理器硬件机制,并考虑了处理器上的上下文切换以及处理器和进程的两级调度。我们指定了模型的正确性,即临界段的访问满足互斥性,并利用定理证明者Isabelle/HOL验证了模型满足这一性质。结合验证经验,给出了如何利用ARM ISA实现自旋锁的一些建议。
{"title":"Formal Modelling and Verification of Spinlocks at Instruction Level","authors":"Leping Zhang, Qianying Zhang, Guohui Wang, Zhiping Shi, Minhua Wu, Yong Guan","doi":"10.1109/APSEC48747.2019.00055","DOIUrl":"https://doi.org/10.1109/APSEC48747.2019.00055","url":null,"abstract":"Spinlocks have been widely used as a solution for synchronous accesses to shared resources, and their correctness is critical to guarantee the consistency of concurrent processes. This paper presents formal models and machine-checked verification of the correctness of spinlocks at instruction level. We present the formal verification of two spinlocks, which are spinlocks implemented based on the ARM instructions and the x86 instructions, respectively. Our model formalizes the lowlevel instructions that are necessary to capture the execution of spinlocks, characterizes the processor hardware mechanisms related to each instruction, and considers the context switches on processors and two-level scheduling of processors and processes. We specify the correctness property of our models, that is, accesses of a critical section satisfy mutual exclusion, and verify that the models satisfy the property using the theorem prover Isabelle/HOL. With the verification experience, we give some suggestions on how to implement spinlock leveraging the ARM ISA.","PeriodicalId":325642,"journal":{"name":"2019 26th Asia-Pacific Software Engineering Conference (APSEC)","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127962523","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}
引用次数: 0
Understanding Source Code Variability in Cloned Android Families: An Empirical Study on 75 Families 理解克隆Android家族的源代码可变性:基于75个家族的实证研究
Pub Date : 2019-12-01 DOI: 10.1109/APSEC48747.2019.00047
Anas Shatnawi, T. Ziadi, Mohamed Yassin Mohamadi
Software developers rely on the clone-and-own approach to rapidly develop software product variants (PVs) that meet variability in market needs. To improve the comprehension of how PVs are evolved and varied, we analyze the clone-and-own practices applied by developers of these PVs. We perform an empirical study on 75 android families to gain insights about observable phenomena related to the commonality and variability between the source code of PVs of these families. In particular, we study three research questions to identify the commonality and variability related to the organization of source code files, cloning Java methods, and configuration parameters of AndroidManifest.xml files. The results show that cloning packages, Java files and Java methods is a common practice used by developers of all android families. Maintainers should put efforts for managing the diverse implementations (bodies) of the modified cloned methods and it is essential to consider the commonality and variability of configuration parameters.
软件开发人员依靠克隆和拥有的方法来快速开发软件产品变体(pv),以满足市场需求的可变性。为了更好地理解pv是如何进化和变化的,我们分析了这些pv的开发者所应用的克隆和拥有的实践。我们对75个android家族进行了实证研究,以了解这些家族的pv源代码之间的共性和可变性的可观察现象。我们特别研究了三个研究问题,以确定与源代码文件组织、克隆Java方法和AndroidManifest.xml文件配置参数相关的通用性和可变性。结果表明,克隆包、Java文件和Java方法是所有android家族的开发人员普遍使用的做法。维护者应该努力管理修改后的克隆方法的不同实现(主体),并且必须考虑配置参数的通用性和可变性。
{"title":"Understanding Source Code Variability in Cloned Android Families: An Empirical Study on 75 Families","authors":"Anas Shatnawi, T. Ziadi, Mohamed Yassin Mohamadi","doi":"10.1109/APSEC48747.2019.00047","DOIUrl":"https://doi.org/10.1109/APSEC48747.2019.00047","url":null,"abstract":"Software developers rely on the clone-and-own approach to rapidly develop software product variants (PVs) that meet variability in market needs. To improve the comprehension of how PVs are evolved and varied, we analyze the clone-and-own practices applied by developers of these PVs. We perform an empirical study on 75 android families to gain insights about observable phenomena related to the commonality and variability between the source code of PVs of these families. In particular, we study three research questions to identify the commonality and variability related to the organization of source code files, cloning Java methods, and configuration parameters of AndroidManifest.xml files. The results show that cloning packages, Java files and Java methods is a common practice used by developers of all android families. Maintainers should put efforts for managing the diverse implementations (bodies) of the modified cloned methods and it is essential to consider the commonality and variability of configuration parameters.","PeriodicalId":325642,"journal":{"name":"2019 26th Asia-Pacific Software Engineering Conference (APSEC)","volume":"45 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125617146","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}
引用次数: 2
期刊
2019 26th Asia-Pacific Software Engineering Conference (APSEC)
全部 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