首页 > 最新文献

Proceedings of the XXX Brazilian Symposium on Software Engineering最新文献

英文 中文
KDM as the Underlying Metamodel in Architecture-Conformance Checking KDM作为架构一致性检查中的底层元模型
Pub Date : 2016-09-19 DOI: 10.1145/2973839.2973851
F. Chagas, R. Durelli, Ricardo Terra, V. V. D. Camargo
There are two important artifacts in any Architecture-Conformance Checking (ACC) approach: i) the representation of the PA and ii) the representation of the CA. Many times, inside the same ACC approach, distinct meta-models are adopted for representing the PA and the CA. Besides, it is common the adoption of meta-models unsuitable for representing architectural details. This heterogeneity makes the checking algorithms complex since they must cope with instances that comply with two different meta-models or do not have proper architectural abstractions. KDM is an ISO meta-model proposed by OMG whose goal is to become the standard representation of systems in modernization tools. It is able to represent many aspects of a software system, including source code details, architectural abstractions and the dependencies between them. However, up to this moment, there is no research showing how KDM can be used in ACC approaches. Therefore we present an investigation of adopting KDM as the unique meta-model for representing PA and CA in ACC approaches. We have developed a three-steps ACC approach called ArchKDM. In the first step a DSL assists in the PA specification; in the second step an Eclipse plug-in provides the necessary support and in the last step the checking is conducted. We have also evaluate our approach using two real world systems and the results were very promising, revealing no false positives or negatives.
在任何架构一致性检查(ACC)方法中都有两个重要的工件:i) PA的表示和ii) CA的表示。很多时候,在相同的ACC方法中,采用不同的元模型来表示PA和CA。此外,采用不适合表示架构细节的元模型是很常见的。这种异构性使得检查算法变得复杂,因为它们必须处理符合两个不同元模型的实例,或者没有适当的体系结构抽象。KDM是OMG提出的ISO元模型,其目标是成为现代化工具中系统的标准表示。它能够表示软件系统的许多方面,包括源代码细节、架构抽象和它们之间的依赖关系。然而,到目前为止,还没有研究表明KDM如何在ACC方法中使用。因此,我们提出了采用KDM作为ACC方法中表示PA和CA的唯一元模型的研究。我们已经开发了一种称为ArchKDM的三步ACC方法。在第一步中,DSL协助PA规范;在第二步中,Eclipse插件提供必要的支持,在最后一步中执行检查。我们还用两个真实世界的系统评估了我们的方法,结果非常有希望,没有出现假阳性或假阴性。
{"title":"KDM as the Underlying Metamodel in Architecture-Conformance Checking","authors":"F. Chagas, R. Durelli, Ricardo Terra, V. V. D. Camargo","doi":"10.1145/2973839.2973851","DOIUrl":"https://doi.org/10.1145/2973839.2973851","url":null,"abstract":"There are two important artifacts in any Architecture-Conformance Checking (ACC) approach: i) the representation of the PA and ii) the representation of the CA. Many times, inside the same ACC approach, distinct meta-models are adopted for representing the PA and the CA. Besides, it is common the adoption of meta-models unsuitable for representing architectural details. This heterogeneity makes the checking algorithms complex since they must cope with instances that comply with two different meta-models or do not have proper architectural abstractions. KDM is an ISO meta-model proposed by OMG whose goal is to become the standard representation of systems in modernization tools. It is able to represent many aspects of a software system, including source code details, architectural abstractions and the dependencies between them. However, up to this moment, there is no research showing how KDM can be used in ACC approaches. Therefore we present an investigation of adopting KDM as the unique meta-model for representing PA and CA in ACC approaches. We have developed a three-steps ACC approach called ArchKDM. In the first step a DSL assists in the PA specification; in the second step an Eclipse plug-in provides the necessary support and in the last step the checking is conducted. We have also evaluate our approach using two real world systems and the results were very promising, revealing no false positives or negatives.","PeriodicalId":415612,"journal":{"name":"Proceedings of the XXX Brazilian Symposium on Software Engineering","volume":"116 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124092311","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
An Exploratory Study of Exception Handling Behavior in Evolving Android and Java Applications Android和Java应用中异常处理行为的探索性研究
Pub Date : 2016-09-19 DOI: 10.1145/2973839.2973843
Juliana Oliveira, N. Cacho, D. Borges, Thaisa Silva, F. C. Filho
Previous work has shown that robustness-related issues like functional errors and app crashes rank among the most common causes for complaints about mobile phone apps. Since most Android applications are written in Java, exception handling is the main mechanism they employ to report and handle errors, similarly to standard Java applications. Thus, the proper use of this mechanism is closely linked to app robustness. Nonetheless, to the best of our knowledge, no previous study analyzed the relationship between source code changes and uncaught exceptions, a common cause of bugs in Android apps, nor whether exception handling code in these apps evolves in the same way as in standard Java applications. This paper presents an empirical study aimed at understanding the relationship between changes in Android programs and their robustness and comparing the evolution of the exception handling code in Android and standard Java applications.
之前的研究表明,与健壮性相关的问题,如功能错误和应用程序崩溃,是人们抱怨手机应用程序最常见的原因。由于大多数Android应用程序是用Java编写的,异常处理是它们用来报告和处理错误的主要机制,类似于标准Java应用程序。因此,正确使用这一机制与应用的健壮性密切相关。尽管如此,据我们所知,之前没有研究分析过源代码更改和未捕获异常(Android应用程序中常见的bug原因)之间的关系,也没有研究分析过这些应用程序中的异常处理代码是否以与标准Java应用程序相同的方式发展。本文提出了一项实证研究,旨在了解Android程序的变化与其健壮性之间的关系,并比较了Android和标准Java应用程序中异常处理代码的演变。
{"title":"An Exploratory Study of Exception Handling Behavior in Evolving Android and Java Applications","authors":"Juliana Oliveira, N. Cacho, D. Borges, Thaisa Silva, F. C. Filho","doi":"10.1145/2973839.2973843","DOIUrl":"https://doi.org/10.1145/2973839.2973843","url":null,"abstract":"Previous work has shown that robustness-related issues like functional errors and app crashes rank among the most common causes for complaints about mobile phone apps. Since most Android applications are written in Java, exception handling is the main mechanism they employ to report and handle errors, similarly to standard Java applications. Thus, the proper use of this mechanism is closely linked to app robustness. Nonetheless, to the best of our knowledge, no previous study analyzed the relationship between source code changes and uncaught exceptions, a common cause of bugs in Android apps, nor whether exception handling code in these apps evolves in the same way as in standard Java applications. This paper presents an empirical study aimed at understanding the relationship between changes in Android programs and their robustness and comparing the evolution of the exception handling code in Android and standard Java applications.","PeriodicalId":415612,"journal":{"name":"Proceedings of the XXX Brazilian Symposium on Software Engineering","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123159253","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
Does refactoring improve software structural quality? A longitudinal study of 25 projects 重构能提高软件结构质量吗?25个项目的纵向研究
Pub Date : 2016-09-19 DOI: 10.1145/2973839.2973848
Diego Cedrim, L. Sousa, Alessandro F. Garcia, Rohit Gheyi
Code smells in a program represent indications of structural quality problems, which can be addressed by software refactoring. Refactoring is widely practiced by developers, and considerable development effort has been invested in refactoring tooling support. There is an explicit assumption that software refactoring improves the structural quality of a program by reducing its density of code smells. However, little has been reported about whether and to what extent developers successfully remove code smells through refactoring. This paper reports a first longitudinal study intended to address this gap. We analyze how often the commonly-used refactoring types affect the density of 5 types of code smells along the version histories of 25 projects. Our findings are based on the analysis of 2,635 refactorings distributed in 11 different types. Surprisingly, 2,506 refactorings (95.1%) did not reduce or introduce code smells. Thus, these findings suggest that refactorings lead to smell reduction less often than what has been reported. According to our data, only 2.24% of refactoring changes removed code smells and 2.66% introduced new ones. Moreover, several smells induced by refactoring tended to live long, i.e., 146 days on average. These smells were only eventually removed when smelly elements started to exhibit poor structural quality and, as a consequence, started to be more costly to get rid of.
程序中的代码气味表示结构性质量问题的迹象,可以通过软件重构来解决。重构被开发人员广泛实践,并且在重构工具支持方面投入了大量的开发工作。有一个明确的假设,即软件重构通过减少代码气味的密度来提高程序的结构质量。然而,很少有人报道开发人员是否以及在多大程度上通过重构成功地消除了代码异味。本文报告了旨在解决这一差距的第一项纵向研究。我们根据25个项目的版本历史分析了常用重构类型对5种代码气味密度的影响频率。我们的发现是基于对分布在11种不同类型的2635个重构的分析。令人惊讶的是,2506次重构(95.1%)并没有减少或引入代码异味。因此,这些发现表明,重构导致气味减少的频率比报道的要低。根据我们的数据,只有2.24%的重构改变消除了代码异味,2.66%引入了新的异味。此外,重构引起的一些气味往往会持续很长时间,即平均146天。只有当有气味的元素开始表现出较差的结构质量时,这些气味才最终被消除,因此,去除这些气味的成本开始增加。
{"title":"Does refactoring improve software structural quality? A longitudinal study of 25 projects","authors":"Diego Cedrim, L. Sousa, Alessandro F. Garcia, Rohit Gheyi","doi":"10.1145/2973839.2973848","DOIUrl":"https://doi.org/10.1145/2973839.2973848","url":null,"abstract":"Code smells in a program represent indications of structural quality problems, which can be addressed by software refactoring. Refactoring is widely practiced by developers, and considerable development effort has been invested in refactoring tooling support. There is an explicit assumption that software refactoring improves the structural quality of a program by reducing its density of code smells. However, little has been reported about whether and to what extent developers successfully remove code smells through refactoring. This paper reports a first longitudinal study intended to address this gap. We analyze how often the commonly-used refactoring types affect the density of 5 types of code smells along the version histories of 25 projects. Our findings are based on the analysis of 2,635 refactorings distributed in 11 different types. Surprisingly, 2,506 refactorings (95.1%) did not reduce or introduce code smells. Thus, these findings suggest that refactorings lead to smell reduction less often than what has been reported. According to our data, only 2.24% of refactoring changes removed code smells and 2.66% introduced new ones. Moreover, several smells induced by refactoring tended to live long, i.e., 146 days on average. These smells were only eventually removed when smelly elements started to exhibit poor structural quality and, as a consequence, started to be more costly to get rid of.","PeriodicalId":415612,"journal":{"name":"Proceedings of the XXX Brazilian Symposium on Software Engineering","volume":"47 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134642863","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}
引用次数: 38
Automated API Documentation with Tutorials Generated From Stack Overflow 自动API文档与教程从堆栈溢出生成
Pub Date : 2016-09-19 DOI: 10.1145/2973839.2973847
Adriano M. Rocha, M. Maia
Software reuse provides benefits during the software development and maintenance processes. The use of APIs is one of the most common ways to reuse. However, obtaining an easy-to-understand documentation is a challenge faced by developers. Several papers have proposed alternatives to make API documentation more understandable, or even more detailed. However, these studies have not taken into account the complexity of examples in order to make documentation adaptable to different levels of developer experience. In this work, we developed and evaluated four different methodologies to generate tutorials for APIs from the contents of Stack Overflow and organize them according to the complexity of understanding. The methodologies were evaluated through tutorials generated for the Swing API. A survey was conducted to evaluate eight different features of the generated tutorials. The overall outcome was positive on several characteristics, showing the feasibility of automatically generated tutorials. In addition, the adoption of features for presenting tutorial elements in order of complexity, for separating the tutorial in basic and advanced parts, for selecting posts with a tutorial nature and with didactic source code had significantly better results regarding the generation methodology.
软件重用在软件开发和维护过程中提供了好处。使用api是最常见的重用方法之一。然而,获得易于理解的文档是开发人员面临的一个挑战。有几篇论文提出了使API文档更易于理解,甚至更详细的替代方案。然而,这些研究并没有考虑到示例的复杂性,以便使文档能够适应不同层次的开发人员经验。在这项工作中,我们开发并评估了四种不同的方法,以从Stack Overflow的内容中生成api教程,并根据理解的复杂性对它们进行组织。通过为Swing API生成的教程对这些方法进行了评估。我们进行了一项调查,以评估生成的教程的八个不同功能。总体结果在几个特征上是积极的,显示了自动生成教程的可行性。此外,在生成方法方面,采用按复杂性顺序呈现教程元素、将教程分为基础部分和高级部分、选择具有教程性质的帖子和带有说教性源代码的帖子的特性,效果明显更好。
{"title":"Automated API Documentation with Tutorials Generated From Stack Overflow","authors":"Adriano M. Rocha, M. Maia","doi":"10.1145/2973839.2973847","DOIUrl":"https://doi.org/10.1145/2973839.2973847","url":null,"abstract":"Software reuse provides benefits during the software development and maintenance processes. The use of APIs is one of the most common ways to reuse. However, obtaining an easy-to-understand documentation is a challenge faced by developers. Several papers have proposed alternatives to make API documentation more understandable, or even more detailed. However, these studies have not taken into account the complexity of examples in order to make documentation adaptable to different levels of developer experience. In this work, we developed and evaluated four different methodologies to generate tutorials for APIs from the contents of Stack Overflow and organize them according to the complexity of understanding. The methodologies were evaluated through tutorials generated for the Swing API. A survey was conducted to evaluate eight different features of the generated tutorials. The overall outcome was positive on several characteristics, showing the feasibility of automatically generated tutorials. In addition, the adoption of features for presenting tutorial elements in order of complexity, for separating the tutorial in basic and advanced parts, for selecting posts with a tutorial nature and with didactic source code had significantly better results regarding the generation methodology.","PeriodicalId":415612,"journal":{"name":"Proceedings of the XXX Brazilian Symposium on Software Engineering","volume":"64 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121395693","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}
引用次数: 12
Topology Awareness for Distributed Version Control Systems 分布式版本控制系统的拓扑感知
Pub Date : 2016-09-19 DOI: 10.1145/2973839.2973854
Cristiano M. Cesario, Leonardo Gresta Paulino Murta
Software development using distributed version control systems has become more frequent recently. Such systems bring more flexibility, but also greater complexity to manage and monitor the multiple existing repositories as well as their myriad of branches. In this paper, we propose DyeVC, an approach to assist developers and repository administrators in identifying dependencies among clones of distributed repositories. It allows understanding what is going on around one's clone and depicting the relationship between existing clones. DyeVC was evaluated over open source projects, showing how they could benefit from having such kind of tool in place. We also ran an observational study and a benchmark over DyeVC, and the results were promising: it was considered easy to use and fast for most repository history exploration operations, while providing the expected answers.
使用分布式版本控制系统的软件开发最近变得越来越频繁。这样的系统为管理和监视多个现有存储库及其无数分支带来了更大的灵活性,但也带来了更大的复杂性。在本文中,我们提出了DyeVC,一种帮助开发人员和存储库管理员识别分布式存储库克隆之间依赖关系的方法。它可以让你了解自己的克隆体周围发生了什么,并描绘出现有克隆体之间的关系。我们对开源项目进行了评估,展示了他们如何从拥有这样的工具中获益。我们还对染料vc进行了观察性研究和基准测试,结果很有希望:对于大多数存储库历史勘探操作来说,它被认为易于使用且快速,同时提供了预期的答案。
{"title":"Topology Awareness for Distributed Version Control Systems","authors":"Cristiano M. Cesario, Leonardo Gresta Paulino Murta","doi":"10.1145/2973839.2973854","DOIUrl":"https://doi.org/10.1145/2973839.2973854","url":null,"abstract":"Software development using distributed version control systems has become more frequent recently. Such systems bring more flexibility, but also greater complexity to manage and monitor the multiple existing repositories as well as their myriad of branches. In this paper, we propose DyeVC, an approach to assist developers and repository administrators in identifying dependencies among clones of distributed repositories. It allows understanding what is going on around one's clone and depicting the relationship between existing clones. DyeVC was evaluated over open source projects, showing how they could benefit from having such kind of tool in place. We also ran an observational study and a benchmark over DyeVC, and the results were promising: it was considered easy to use and fast for most repository history exploration operations, while providing the expected answers.","PeriodicalId":415612,"journal":{"name":"Proceedings of the XXX Brazilian Symposium on Software Engineering","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126395843","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
A Systematic Review on Metamodels to Support Product Line Architecture Design 支持产品线架构设计的元模型系统综述
Pub Date : 2016-09-19 DOI: 10.1145/2973839.2973842
Crescencio Rodrigues Lima Neto, C. Chavez
Product Line Architecture (PLA) design is a key activity for developing successful Software Product Line (SPL) projects. PLA design is a difficult task, mostly due to the complexity of the software systems that SPLs deal with, and their variabilities. Metamodels have been used to support the representation of assets that compose a PLA, SPL variability and the relationships among them. The goal of this study is to characterize the use of metamodeling on PLA design, aiming to identify the main characteristics of metamodels, the elements used for PLA and variability representation and trace the evolution of metamodels. We conducted a systematic literature review to identify the primary studies on the use of metamodels in PLA Design. Thirty-five studies that proposed metamodels to support PLA design were selected. The review main findings are: (i) it is difficult to identify the existence of research trends because the number of publication varies and metamodels lack standardization; (ii) several metamodels support feature representation; (iii) the majority of studies addressed variability representation with variation points in UML diagrams; and, (iv) five evolution lines that describe how metamodels evolved over the years were identified.
产品线架构(PLA)设计是开发成功的软件产品线(SPL)项目的关键活动。PLA设计是一项困难的任务,主要是由于SPLs处理的软件系统的复杂性和它们的可变性。元模型已经被用来支持组成PLA、SPL可变性和它们之间关系的资产的表示。本研究的目的是表征元模型在PLA设计中的使用,旨在识别元模型的主要特征,用于PLA和可变性表示的元素,并跟踪元模型的演变。我们进行了系统的文献综述,以确定在PLA设计中使用元模型的主要研究。我们选择了35项提出元模型来支持PLA设计的研究。综述的主要发现是:(1)研究趋势的存在难以识别,因为发表的数量不同,元模型缺乏标准化;(ii)多个元模型支持特征表示;(iii)大多数研究用UML图中的变异点来处理可变性表示;(iv)描述元模型多年来如何演变的五条进化线被确定。
{"title":"A Systematic Review on Metamodels to Support Product Line Architecture Design","authors":"Crescencio Rodrigues Lima Neto, C. Chavez","doi":"10.1145/2973839.2973842","DOIUrl":"https://doi.org/10.1145/2973839.2973842","url":null,"abstract":"Product Line Architecture (PLA) design is a key activity for developing successful Software Product Line (SPL) projects. PLA design is a difficult task, mostly due to the complexity of the software systems that SPLs deal with, and their variabilities. Metamodels have been used to support the representation of assets that compose a PLA, SPL variability and the relationships among them. The goal of this study is to characterize the use of metamodeling on PLA design, aiming to identify the main characteristics of metamodels, the elements used for PLA and variability representation and trace the evolution of metamodels. We conducted a systematic literature review to identify the primary studies on the use of metamodels in PLA Design. Thirty-five studies that proposed metamodels to support PLA design were selected. The review main findings are: (i) it is difficult to identify the existence of research trends because the number of publication varies and metamodels lack standardization; (ii) several metamodels support feature representation; (iii) the majority of studies addressed variability representation with variation points in UML diagrams; and, (iv) five evolution lines that describe how metamodels evolved over the years were identified.","PeriodicalId":415612,"journal":{"name":"Proceedings of the XXX Brazilian Symposium on Software Engineering","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125737562","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
A Model Driven Transformation Development Process for Model to Model Transformation 模型到模型转换的模型驱动的转换开发过程
Pub Date : 2016-09-19 DOI: 10.1145/2973839.2973841
Ana Patrícia Fontes Magalhães, A. Andrade, R. Maciel
In the MDD approach a transformation chain is responsible for the automation or semi-automation of the MDD development process by encapsulating the strategies to convert models into other models until code generation. The design of transformation chains can be complex and demand software engineering facilities such as processes, languages and techniques in order to ensure reuse and portability. The MDD itself provides these facilities and can be used to improve transformations development. In this paper we present a framework to support the development of model transformation chains using MDD. This framework is comprised of a Development Process (MDTDproc), to guide on transformation development tasks; a Model Transformation Profile (MTP) as the transformation modeling language; a transformation chain, which helps the automation of the proposed transformation process; and an environment to support it. We particularly focus on the presentation of MDTDproc and its validation. Initial results have shown that the process is feasible and guides developers to achieve an executable model transformation code.
在MDD方法中,转换链负责MDD开发过程的自动化或半自动化,方法是封装将模型转换为其他模型的策略,直到生成代码。转换链的设计可能是复杂的,并且需要软件工程设施,如过程、语言和技术,以确保重用和可移植性。MDD本身提供了这些工具,可以用来改进转换开发。在本文中,我们提出了一个框架来支持使用MDD开发模型转换链。该框架由开发过程(MDTDproc)组成,用于指导转换开发任务;模型转换概要文件(MTP)作为转换建模语言;一个转换链,它有助于拟议的转换过程的自动化;以及支持它的环境。我们特别关注MDTDproc的表示及其验证。初步结果表明,该过程是可行的,并指导开发人员实现可执行的模型转换代码。
{"title":"A Model Driven Transformation Development Process for Model to Model Transformation","authors":"Ana Patrícia Fontes Magalhães, A. Andrade, R. Maciel","doi":"10.1145/2973839.2973841","DOIUrl":"https://doi.org/10.1145/2973839.2973841","url":null,"abstract":"In the MDD approach a transformation chain is responsible for the automation or semi-automation of the MDD development process by encapsulating the strategies to convert models into other models until code generation. The design of transformation chains can be complex and demand software engineering facilities such as processes, languages and techniques in order to ensure reuse and portability. The MDD itself provides these facilities and can be used to improve transformations development. In this paper we present a framework to support the development of model transformation chains using MDD. This framework is comprised of a Development Process (MDTDproc), to guide on transformation development tasks; a Model Transformation Profile (MTP) as the transformation modeling language; a transformation chain, which helps the automation of the proposed transformation process; and an environment to support it. We particularly focus on the presentation of MDTDproc and its validation. Initial results have shown that the process is feasible and guides developers to achieve an executable model transformation code.","PeriodicalId":415612,"journal":{"name":"Proceedings of the XXX Brazilian Symposium on Software Engineering","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121393000","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
Programming the Universe: The First Commandment of Software Engineering for all Varieties of Information Systems 编程宇宙:各种信息系统软件工程的第一条戒律
Pub Date : 2016-09-19 DOI: 10.1145/2973839.2982567
S. Meira, V. Burégio, Paulo Borba, V. Garcia, Jones O. Albuquerque, S. Soares
Since the early days of computers and programs, the process and outcomes of software development has been a minefield plagued with problems and failures, as much as the complexity and complication of software and its development has increased by a thousandfold in half a century. Over the years, a number of theories, laws, best practices, manifestos and methodologies have emerged, with varied degrees of (un)success. Our experience as software engineers of complex and large-scale systems shows that those guidelines are bound to previously defined and often narrow scopes. Enough is enough. Nowadays, nearly every company is in the software and services business and everything is - or is managed by - software. It is about time, then, that the laws that govern our universe ought to be redefined. In this context, we discuss and present a set of universal laws that leads us to propose the first commandment of software engineering for all varieties of information systems.
从计算机和程序出现的早期开始,软件开发的过程和结果就一直是一个充满问题和失败的雷区,正如软件及其开发的复杂性和复杂性在半个世纪里增加了一千倍一样。多年来,出现了许多理论、法律、最佳实践、宣言和方法,并取得了不同程度的成功。我们作为复杂和大规模系统的软件工程师的经验表明,这些指导方针被绑定到先前定义的并且通常是狭窄的范围。适可而止。如今,几乎每家公司都在从事软件和服务业务,一切都是软件或由软件管理的。现在是时候重新定义支配我们宇宙的法则了。在这种情况下,我们讨论并提出了一组普遍规律,这些规律使我们提出了针对各种信息系统的软件工程的第一条戒律。
{"title":"Programming the Universe: The First Commandment of Software Engineering for all Varieties of Information Systems","authors":"S. Meira, V. Burégio, Paulo Borba, V. Garcia, Jones O. Albuquerque, S. Soares","doi":"10.1145/2973839.2982567","DOIUrl":"https://doi.org/10.1145/2973839.2982567","url":null,"abstract":"Since the early days of computers and programs, the process and outcomes of software development has been a minefield plagued with problems and failures, as much as the complexity and complication of software and its development has increased by a thousandfold in half a century. Over the years, a number of theories, laws, best practices, manifestos and methodologies have emerged, with varied degrees of (un)success. Our experience as software engineers of complex and large-scale systems shows that those guidelines are bound to previously defined and often narrow scopes. Enough is enough. Nowadays, nearly every company is in the software and services business and everything is - or is managed by - software. It is about time, then, that the laws that govern our universe ought to be redefined. In this context, we discuss and present a set of universal laws that leads us to propose the first commandment of software engineering for all varieties of information systems.","PeriodicalId":415612,"journal":{"name":"Proceedings of the XXX Brazilian Symposium on Software Engineering","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125186876","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
Preliminary Empirical Evidence on SPrL Variability Management with EPF and SMartySPEM 基于EPF和SMartySPEM的SPrL变异性管理的初步实证研究
Pub Date : 2016-09-19 DOI: 10.1145/2973839.2973850
Jaime W. Dias, E. Oliveira, Marco Aurélio Graciotto Silva
Every day increases the level of demand by customers in regard to the quality and complexity of software systems. Because of this, companies are increasingly customizing their software processes according to market and project needs. A systematic way is the use of the Software Process Line strategy (SPrL), in which each product derived from the line is a specific software process. Therefore, variability management is an essential activity. This paper presents an empirical study comparing the compositional and the annotative approaches in representing variability in SPrLs taking into consideration a SCRUM-based SPrL. Eclipse Process Framework was chosen to represent the compositional approach, whereas SMartySPEM was considered to the annotative approach. The approaches were compared taking into account the sequential exploratory strategy based on mixed-methods. A qualitative empirical study comparing these approaches was planned, executed and previously published with relation to the following set of criteria: modularity, traceability, error detection, granularity and systematic management of variability. Such study was based on the expertise of software process experts and provided important information for the hypothesis formulation about systematic management of variability, the main dependent variable of this quantitative study. Thus, the quantitative study presented in this paper analyzes the effectiveness of variability representation. As the main contribution of this paper, we present preliminary evidence on the effectiveness of variability management, allowing supporting the gathering of solid evidence for further research in academic and industrial set about the compositional and annotative approaches for variability management in SPrLs. As a result of this quantitative empirical study it was not statistically possible to confirm that the annotative approach is more effective than the compositional approach.
客户对软件系统的质量和复杂性的要求每天都在增加。正因为如此,公司越来越多地根据市场和项目需求定制他们的软件过程。一种系统的方法是使用软件过程线策略(SPrL),其中每个衍生自该线的产品都是一个特定的软件过程。因此,可变性管理是一项必要的活动。本文提出了一项实证研究,比较了组合方法和注释方法在表示SPrL中可变性的方法,并考虑了基于scrum的SPrL。选择Eclipse Process Framework来表示组合方法,而SMartySPEM则被认为是注释方法。考虑了基于混合方法的顺序探索策略,对两种方法进行了比较。一项比较这些方法的定性实证研究被计划、执行和先前发表,与以下标准集有关:模块化、可追溯性、错误检测、粒度和可变性的系统管理。该研究基于软件过程专家的专业知识,为本定量研究的主要因变量变异性系统管理的假设制定提供了重要信息。因此,本文提出的定量研究分析了变异性表示的有效性。作为本文的主要贡献,我们提供了关于可变性管理有效性的初步证据,为在学术和工业领域进一步研究sprl中可变性管理的组合和注释方法提供了坚实的证据。由于这一定量实证研究的结果,统计上不可能证实注释方法比组成方法更有效。
{"title":"Preliminary Empirical Evidence on SPrL Variability Management with EPF and SMartySPEM","authors":"Jaime W. Dias, E. Oliveira, Marco Aurélio Graciotto Silva","doi":"10.1145/2973839.2973850","DOIUrl":"https://doi.org/10.1145/2973839.2973850","url":null,"abstract":"Every day increases the level of demand by customers in regard to the quality and complexity of software systems. Because of this, companies are increasingly customizing their software processes according to market and project needs. A systematic way is the use of the Software Process Line strategy (SPrL), in which each product derived from the line is a specific software process. Therefore, variability management is an essential activity. This paper presents an empirical study comparing the compositional and the annotative approaches in representing variability in SPrLs taking into consideration a SCRUM-based SPrL. Eclipse Process Framework was chosen to represent the compositional approach, whereas SMartySPEM was considered to the annotative approach. The approaches were compared taking into account the sequential exploratory strategy based on mixed-methods. A qualitative empirical study comparing these approaches was planned, executed and previously published with relation to the following set of criteria: modularity, traceability, error detection, granularity and systematic management of variability. Such study was based on the expertise of software process experts and provided important information for the hypothesis formulation about systematic management of variability, the main dependent variable of this quantitative study. Thus, the quantitative study presented in this paper analyzes the effectiveness of variability representation. As the main contribution of this paper, we present preliminary evidence on the effectiveness of variability management, allowing supporting the gathering of solid evidence for further research in academic and industrial set about the compositional and annotative approaches for variability management in SPrLs. As a result of this quantitative empirical study it was not statistically possible to confirm that the annotative approach is more effective than the compositional approach.","PeriodicalId":415612,"journal":{"name":"Proceedings of the XXX Brazilian Symposium on Software Engineering","volume":"59 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131513014","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
Evaluating test characteristics and effectiveness of FSM-based testing methods on RBAC systems 评估基于fsm的RBAC系统测试方法的测试特性和有效性
Pub Date : 2016-09-19 DOI: 10.1145/2973839.2973849
C. Damasceno, P. Masiero, A. Simão
Access control mechanisms demand rigorous software testing approaches, otherwise they can end up with security flaws. Finite state machines (FSM) have been used for testing Role-Based Access Control (RBAC) mechanisms and complete, but significantly large, test suites can be obtained. Experimental studies have shown that recent FSM testing methods can reduce the overall test suite length for random FSMs. However, since the similarity between random FSMs and these specifying RBAC mechanisms is unclear, these outcomes cannot be necessarily generalized to RBAC. In this paper, we compare the characteristics and effectiveness of test suites generated by traditional and recent FSM testing methods for RBAC policies specified as FSM models. The methods W, HSI and SPY were applied on RBAC policies specified as FSMs and the test suites obtained were evaluated considering test characteristics (number of resets, average test case length, and test suite length) and effectiveness on the RBAC fault domain. Our results corroborate some outcomes of previous investigations in which test suites presented different characteristics. On average, the SPY method generated test suites with 32% less resets, average test case length 78% greater than W and HSI, and overall length 46% lower. There were no differences among FSM testing methods for RBAC regarding effectiveness. However, the SPY method significantly reduced the overall test suite length and the number of resets.
访问控制机制需要严格的软件测试方法,否则它们可能会导致安全缺陷。有限状态机(FSM)已被用于测试基于角色的访问控制(RBAC)机制,并且可以获得完整的、但非常大的测试套件。实验研究表明,最近的FSM测试方法可以减少随机FSM的总测试套件长度。然而,由于随机fsm与这些指定RBAC机制之间的相似性尚不清楚,因此这些结果不一定适用于RBAC。在本文中,我们比较了传统和最新的FSM测试方法对指定为FSM模型的RBAC策略生成的测试套件的特点和有效性。将W、HSI和SPY方法应用于指定为FSMs的RBAC策略,并根据测试特征(重置次数、平均测试用例长度和测试套件长度)和RBAC故障域上的有效性对获得的测试套件进行评估。我们的结果证实了以前的一些调查结果,其中测试套件呈现出不同的特征。平均而言,SPY方法生成的测试套件比W和HSI少32%的重置,平均测试用例长度比W和HSI多78%,总长度比W和HSI少46%。FSM测试方法对RBAC的有效性没有差异。然而,SPY方法显著地减少了整个测试套件的长度和重置的次数。
{"title":"Evaluating test characteristics and effectiveness of FSM-based testing methods on RBAC systems","authors":"C. Damasceno, P. Masiero, A. Simão","doi":"10.1145/2973839.2973849","DOIUrl":"https://doi.org/10.1145/2973839.2973849","url":null,"abstract":"Access control mechanisms demand rigorous software testing approaches, otherwise they can end up with security flaws. Finite state machines (FSM) have been used for testing Role-Based Access Control (RBAC) mechanisms and complete, but significantly large, test suites can be obtained. Experimental studies have shown that recent FSM testing methods can reduce the overall test suite length for random FSMs. However, since the similarity between random FSMs and these specifying RBAC mechanisms is unclear, these outcomes cannot be necessarily generalized to RBAC. In this paper, we compare the characteristics and effectiveness of test suites generated by traditional and recent FSM testing methods for RBAC policies specified as FSM models. The methods W, HSI and SPY were applied on RBAC policies specified as FSMs and the test suites obtained were evaluated considering test characteristics (number of resets, average test case length, and test suite length) and effectiveness on the RBAC fault domain. Our results corroborate some outcomes of previous investigations in which test suites presented different characteristics. On average, the SPY method generated test suites with 32% less resets, average test case length 78% greater than W and HSI, and overall length 46% lower. There were no differences among FSM testing methods for RBAC regarding effectiveness. However, the SPY method significantly reduced the overall test suite length and the number of resets.","PeriodicalId":415612,"journal":{"name":"Proceedings of the XXX Brazilian Symposium on Software Engineering","volume":"XCIX 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2016-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131385969","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}
引用次数: 8
期刊
Proceedings of the XXX Brazilian Symposium on 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