首页 > 最新文献

2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)最新文献

英文 中文
Handling the differential evolution of software artefacts: A framework for consistency management 处理软件工件的不同演化:一致性管理的框架
Ildiko Pete, D. Balasubramaniam
Modern software systems are subject to frequent changes. Different artefacts of a system, such as requirements specifications, design documents and source code, often evolve at different times and become inconsistent with one another. This differential evolution poses problems to effective software maintenance and erodes trust in artefacts as accurate representation of the system. In this paper, we propose a holistic framework for managing the consistent co-evolution of software artefacts, incorporating: traceability creation and maintenance, change detection, impact analysis, consistency checking and change propagation.
现代软件系统受到频繁变化的影响。系统的不同工件,例如需求说明、设计文档和源代码,经常在不同的时间发展,并且变得彼此不一致。这种差异的演变给有效的软件维护带来了问题,并侵蚀了对作为系统精确表示的工件的信任。在本文中,我们提出了一个整体框架,用于管理软件工件的一致协同演化,包括:可追溯性创建和维护、变更检测、影响分析、一致性检查和变更传播。
{"title":"Handling the differential evolution of software artefacts: A framework for consistency management","authors":"Ildiko Pete, D. Balasubramaniam","doi":"10.1109/SANER.2015.7081889","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081889","url":null,"abstract":"Modern software systems are subject to frequent changes. Different artefacts of a system, such as requirements specifications, design documents and source code, often evolve at different times and become inconsistent with one another. This differential evolution poses problems to effective software maintenance and erodes trust in artefacts as accurate representation of the system. In this paper, we propose a holistic framework for managing the consistent co-evolution of software artefacts, incorporating: traceability creation and maintenance, change detection, impact analysis, consistency checking and change propagation.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"88 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115375936","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 static code analysis tool for control system software 一个用于控制系统软件的静态代码分析工具
Sreeja Nair, R. Jetley, Anil R. Nair, Stefan Hauck-Stattelmann
Latent errors in control system software can be hard to detect through traditional testing techniques. Such errors, if left undetected, could manifest themselves as failures during run-time that could be potentially catastrophic and very expensive to fix. In this paper, we present a static code analysis approach to detect potential sources of such run-time errors during compile time itself, thus ensuring easy identification, safe execution and reducing the effort required during debugging. In order to detect run-time errors, the control system application is first parsed to generate a set of abstract syntax trees, which in turn are used to derive the control flow graph for the application. A hybrid algorithm, based on abstract interpretation and traditional data flow analysis techniques is used to check the control flow graph for type constraints, reachability and liveness properties. Additionally, the abstract syntax trees are used to check for datatype mismatches and compliance violations. A proof of concept prototype is implemented to demonstrate how the algorithm/approach can be used to analyze control applications developed using domain specific languages such as those complying with the IEC 61131-3 standard.
控制系统软件中的潜在错误很难通过传统的测试技术检测出来。这样的错误,如果没有被发现,可能会在运行时表现为失败,这可能是灾难性的,并且修复起来非常昂贵。在本文中,我们提出了一种静态代码分析方法,用于在编译期间检测此类运行时错误的潜在来源,从而确保易于识别,安全执行并减少调试期间所需的工作量。为了检测运行时错误,首先解析控制系统应用程序以生成一组抽象语法树,然后使用这些语法树派生应用程序的控制流图。采用一种基于抽象解释和传统数据流分析技术的混合算法来检验控制流图的类型约束、可达性和活动性。此外,抽象语法树用于检查数据类型不匹配和遵从性违规。实现了概念验证原型,以演示如何使用算法/方法来分析使用特定领域语言(如符合IEC 61131-3标准的语言)开发的控制应用程序。
{"title":"A static code analysis tool for control system software","authors":"Sreeja Nair, R. Jetley, Anil R. Nair, Stefan Hauck-Stattelmann","doi":"10.1109/SANER.2015.7081856","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081856","url":null,"abstract":"Latent errors in control system software can be hard to detect through traditional testing techniques. Such errors, if left undetected, could manifest themselves as failures during run-time that could be potentially catastrophic and very expensive to fix. In this paper, we present a static code analysis approach to detect potential sources of such run-time errors during compile time itself, thus ensuring easy identification, safe execution and reducing the effort required during debugging. In order to detect run-time errors, the control system application is first parsed to generate a set of abstract syntax trees, which in turn are used to derive the control flow graph for the application. A hybrid algorithm, based on abstract interpretation and traditional data flow analysis techniques is used to check the control flow graph for type constraints, reachability and liveness properties. Additionally, the abstract syntax trees are used to check for datatype mismatches and compliance violations. A proof of concept prototype is implemented to demonstrate how the algorithm/approach can be used to analyze control applications developed using domain specific languages such as those complying with the IEC 61131-3 standard.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"111 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125924882","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
Improving pattern tracking with a language-aware tree differencing algorithm 用语言感知树差分算法改进模式跟踪
Nicolas Palix, Jean-Rémy Falleri, J. Lawall
Tracking code fragments of interest is important in monitoring a software project over multiple versions. Various approaches, including our previous work on Herodotos, exploit the notion of Longest Common Subsequence, as computed by readily available tools such as GNU Diff, to map corresponding code fragments. Nevertheless, the efficient code differencing algorithms are typically line-based or word-based, and thus do not report changes at the level of language constructs. Furthermore, they identify only additions and removals, but not the moving of a block of code from one part of a file to another. Code fragments of interest that fall within the added and removed regions of code have to be manually correlated across versions, which is tedious and error-prone. When studying a very large code base over a long time, the number of manual correlations can become an obstacle to the success of a study. In this paper, we investigate the effect of replacing the current line-based algorithm used by Herodotos by tree-matching, as provided by the algorithm of the differencing tool GumTree. In contrast to the line-based approach, the tree-based approach does not generate any manual correlations, but it incurs a high execution time. To address the problem, we propose a hybrid strategy that gives the best of both approaches.
跟踪感兴趣的代码片段对于监视多个版本的软件项目非常重要。各种方法,包括我们之前对希罗多德的研究,都利用了最长公共子序列的概念,通过GNU Diff等现成的工具来计算,来映射相应的代码片段。然而,高效的代码区分算法通常是基于行或基于词的,因此不会报告语言结构级别的更改。此外,它们只识别添加和删除,而不识别将代码块从文件的一部分移动到另一部分。在添加和删除的代码区域内的代码片段必须手动地跨版本关联,这是乏味且容易出错的。在长时间研究非常大的代码库时,手动关联的数量可能成为研究成功的障碍。在本文中,我们研究了用树匹配取代希罗多德目前使用的基于线的算法的效果,这是由差分工具GumTree的算法提供的。与基于行的方法相比,基于树的方法不生成任何手动关联,但它会导致较高的执行时间。为了解决这个问题,我们提出了一种综合两种方法的混合策略。
{"title":"Improving pattern tracking with a language-aware tree differencing algorithm","authors":"Nicolas Palix, Jean-Rémy Falleri, J. Lawall","doi":"10.1109/SANER.2015.7081814","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081814","url":null,"abstract":"Tracking code fragments of interest is important in monitoring a software project over multiple versions. Various approaches, including our previous work on Herodotos, exploit the notion of Longest Common Subsequence, as computed by readily available tools such as GNU Diff, to map corresponding code fragments. Nevertheless, the efficient code differencing algorithms are typically line-based or word-based, and thus do not report changes at the level of language constructs. Furthermore, they identify only additions and removals, but not the moving of a block of code from one part of a file to another. Code fragments of interest that fall within the added and removed regions of code have to be manually correlated across versions, which is tedious and error-prone. When studying a very large code base over a long time, the number of manual correlations can become an obstacle to the success of a study. In this paper, we investigate the effect of replacing the current line-based algorithm used by Herodotos by tree-matching, as provided by the algorithm of the differencing tool GumTree. In contrast to the line-based approach, the tree-based approach does not generate any manual correlations, but it incurs a high execution time. To address the problem, we propose a hybrid strategy that gives the best of both approaches.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115342843","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}
引用次数: 10
RbG: A documentation generator for scientific and engineering software RbG:科学和工程软件的文档生成器
M. Moser, J. Pichler, Günther Fleck, Michael Witlatschil
This paper demonstrates RbG, a new tool intended for the generation of high-quality documentation from source code of scientific and engineering applications. RbG extracts mathematical formulae and decision tables from program statements by means of static code analysis and generates corresponding documentation in the Open Document Format or LaTeX. Annotations in source code comments are used to define the structure of the generated documents, include additional textual and graphical descriptions, and control extraction of formulae on a fine-grained level. Furthermore, RbG provides an interpreter to generate function plots for extracted formulae. In this tool demonstration we briefly introduce the tool and show its usage for different scenarios such as reverse engineering and re-documentation of legacy code and documentation generation during development and maintenance of software.
本文演示了RbG,一个用于从科学和工程应用程序的源代码生成高质量文档的新工具。RbG通过静态代码分析从程序语句中提取数学公式和决策表,并以Open Document Format或LaTeX格式生成相应的文档。源代码注释中的注释用于定义生成文档的结构,包括额外的文本和图形描述,并在细粒度级别上控制公式的提取。此外,RbG还提供了一个解释器来为提取的公式生成函数图。在这个工具演示中,我们简要介绍了该工具,并展示了它在不同场景中的用法,比如逆向工程和遗留代码的重新文档化,以及软件开发和维护期间的文档生成。
{"title":"RbG: A documentation generator for scientific and engineering software","authors":"M. Moser, J. Pichler, Günther Fleck, Michael Witlatschil","doi":"10.1109/SANER.2015.7081857","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081857","url":null,"abstract":"This paper demonstrates RbG, a new tool intended for the generation of high-quality documentation from source code of scientific and engineering applications. RbG extracts mathematical formulae and decision tables from program statements by means of static code analysis and generates corresponding documentation in the Open Document Format or LaTeX. Annotations in source code comments are used to define the structure of the generated documents, include additional textual and graphical descriptions, and control extraction of formulae on a fine-grained level. Furthermore, RbG provides an interpreter to generate function plots for extracted formulae. In this tool demonstration we briefly introduce the tool and show its usage for different scenarios such as reverse engineering and re-documentation of legacy code and documentation generation during development and maintenance of software.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"263 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115539314","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
TXL source transformation in practice TXL源转换的实践
J. Cordy
The TXL source transformation system is widely used in industry and academia for both research and production tasks involving source transformation and software analysis. While it is designed to be accessible to software practitioners, understanding how to use TXL effectively takes time and has a steep learning curve. This tutorial is designed to get you over the initial hump and rapidly move you from a TXL novice to the skills necessary to use it effectively in real applications. Consisting of a combination of one hour lecture presentations followed by one hour practice sessions, this is a hands-on tutorial in which participants quickly learn the basics of how to use TXL effectively in their research or industrial practice.
TXL源转换系统广泛应用于工业界和学术界涉及源转换和软件分析的研究和生产任务。虽然它被设计为软件从业者可以访问,但理解如何有效地使用TXL需要时间,并且有一个陡峭的学习曲线。本教程旨在帮助您克服最初的困难,并迅速将您从TXL新手转移到在实际应用程序中有效使用TXL所需的技能。由一小时的讲座演示和一小时的练习课程组成,这是一个动手教程,参与者可以快速学习如何在研究或工业实践中有效使用TXL的基础知识。
{"title":"TXL source transformation in practice","authors":"J. Cordy","doi":"10.1109/SANER.2015.7081883","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081883","url":null,"abstract":"The TXL source transformation system is widely used in industry and academia for both research and production tasks involving source transformation and software analysis. While it is designed to be accessible to software practitioners, understanding how to use TXL effectively takes time and has a steep learning curve. This tutorial is designed to get you over the initial hump and rapidly move you from a TXL novice to the skills necessary to use it effectively in real applications. Consisting of a combination of one hour lecture presentations followed by one hour practice sessions, this is a hands-on tutorial in which participants quickly learn the basics of how to use TXL effectively in their research or industrial practice.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122594776","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}
引用次数: 1
Improving the integration process of large software systems 改进大型软件系统的集成过程
Yujuan Jiang
Software integration is the software engineering activity where code changes of different developers are combined into a consistent whole. While the advent of distributed version control systems has allowed distributed development to scale up substantially, at the same time the risk of integration conflicts (changes that do not go well together) and the time required to fix them has increased as well. In order to help practitioners deal with this paradox, this thesis aims to understand and improve the integration process of modern software organizations. We took the Linux kernel as our pilot case study, which is supported by a distributed version control system (Git) and low-tech reviewing system (mailing list). So far, we have (1) analyzed how to reconstruct the data of the integration process in a low-tech environment where reviews are stored in emails without explicit link to version control commits, and (2) studied the characteristics of the Linux integration process. We found that the commits developed by more mature developers and impacting less subsystems are more likely to be accepted. As a next step, we plan to build a model quantifying the integration effort.
软件集成是一种软件工程活动,将不同开发人员的代码更改组合成一个一致的整体。虽然分布式版本控制系统的出现使分布式开发得以大规模扩展,但与此同时,集成冲突的风险(不能很好地一起进行的更改)和修复它们所需的时间也增加了。为了帮助实践者应对这一悖论,本文旨在理解和改进现代软件组织的集成过程。我们将Linux内核作为我们的试点案例研究,它由分布式版本控制系统(Git)和低技术审查系统(邮件列表)支持。到目前为止,我们已经(1)分析了如何在低技术环境中重构集成过程的数据,在这种环境中,评审被存储在电子邮件中,没有与版本控制提交的明确链接;(2)研究了Linux集成过程的特点。我们发现,由更成熟的开发人员开发的提交和影响较小的子系统更有可能被接受。作为下一步,我们计划构建一个量化集成工作的模型。
{"title":"Improving the integration process of large software systems","authors":"Yujuan Jiang","doi":"10.1109/SANER.2015.7081888","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081888","url":null,"abstract":"Software integration is the software engineering activity where code changes of different developers are combined into a consistent whole. While the advent of distributed version control systems has allowed distributed development to scale up substantially, at the same time the risk of integration conflicts (changes that do not go well together) and the time required to fix them has increased as well. In order to help practitioners deal with this paradox, this thesis aims to understand and improve the integration process of modern software organizations. We took the Linux kernel as our pilot case study, which is supported by a distributed version control system (Git) and low-tech reviewing system (mailing list). So far, we have (1) analyzed how to reconstruct the data of the integration process in a low-tech environment where reviews are stored in emails without explicit link to version control commits, and (2) studied the characteristics of the Linux integration process. We found that the commits developed by more mature developers and impacting less subsystems are more likely to be accepted. As a next step, we plan to build a model quantifying the integration effort.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123965089","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
Towards a common metamodel for traces of high performance computing systems to enable software analysis tasks 朝向一个公共元模型,用于跟踪高性能计算系统,使软件分析任务成为可能
L. Alawneh, A. Hamou-Lhadj, J. Hassine
There exist several tools for analyzing traces generated from HPC (High Performance Computing) applications, used by software engineers for debugging and other maintenance tasks. These tools, however, use different formats to represent HPC traces, which hinders interoperability and data exchange. At the present time, there is no standard metamodel that represents HPC trace concepts and their relations. In this paper, we argue that the lack of a common metamodel is a serious impediment for effective analysis for this class of software systems. We aim to fill this void by presenting MTF2 (MPI Trace Format2)-a metamodel for representing HPC system traces. MTF2 is built with expressiveness and scalability in mind. Scalability, an important requirement when working with large traces, is achieved by adopting graph theory concepts to compact large traces. We show through a case study that a trace represented in MTF2 can be in average 49% smaller than a trace represented in a format that does not consider compaction.
软件工程师在调试和其他维护任务中使用HPC(高性能计算)应用程序生成的跟踪分析工具。然而,这些工具使用不同的格式来表示HPC跟踪,这阻碍了互操作性和数据交换。目前,还没有一个标准的元模型来表示高性能计算跟踪概念及其关系。在本文中,我们认为缺乏公共元模型是对这类软件系统进行有效分析的严重障碍。我们的目标是通过提出MTF2 (MPI跟踪格式2)来填补这一空白,MTF2是一个表示HPC系统跟踪的元模型。MTF2在构建时考虑了表现力和可扩展性。可扩展性是处理大型迹线时的一个重要要求,它是通过采用图论概念来压缩大型迹线来实现的。我们通过一个案例研究表明,用MTF2表示的跟踪可以比不考虑压缩的格式表示的跟踪平均小49%。
{"title":"Towards a common metamodel for traces of high performance computing systems to enable software analysis tasks","authors":"L. Alawneh, A. Hamou-Lhadj, J. Hassine","doi":"10.1109/SANER.2015.7081821","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081821","url":null,"abstract":"There exist several tools for analyzing traces generated from HPC (High Performance Computing) applications, used by software engineers for debugging and other maintenance tasks. These tools, however, use different formats to represent HPC traces, which hinders interoperability and data exchange. At the present time, there is no standard metamodel that represents HPC trace concepts and their relations. In this paper, we argue that the lack of a common metamodel is a serious impediment for effective analysis for this class of software systems. We aim to fill this void by presenting MTF2 (MPI Trace Format2)-a metamodel for representing HPC system traces. MTF2 is built with expressiveness and scalability in mind. Scalability, an important requirement when working with large traces, is achieved by adopting graph theory concepts to compact large traces. We show through a case study that a trace represented in MTF2 can be in average 49% smaller than a trace represented in a format that does not consider compaction.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"114 2","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"113970595","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
CEL: Touching software modeling in essence CEL:本质上是触摸软件建模
R. Lemma, Michele Lanza, Andrea Mocci
Understanding a problem domain is a fundamental prerequisite for good software design. In object-oriented systems design, modeling is the fundamental first phase that focuses on identifying core concepts and their relations. How to properly support modeling is still an open problem, and existing approaches and tools can be very different in nature. On the one hand, lightweight ones, such as pen & paper/whiteboard or CRC cards, are informal and support well the creative aspects of modeling, but produce artifacts that are difficult to store, process and reuse as documentation. On the other hand, more constrained and semi-formal ones, like UML, produce storable and processable structured artifacts with defined semantics, but this comes at the expense of creativity. We believe there exists a middle ground to investigate that maximizes the good of both worlds, that is, by supporting software modeling closer to its essence, with minimal constraints on the developer's creativity and still producing reusable structured artifacts. We also claim that modeling can be best treated by using the emerging technology of touch-based tablets. We present a novel gesture-based modeling approach based on a minimal set of constructs, and CEL, an iPad application, for rapidly creating, manipulating, and storing language agnostic object-oriented software models, which can be exported as skeleton source code in any language of choice. We assess our approach through a controlled qualitative study.
理解问题域是良好软件设计的基本前提。在面向对象的系统设计中,建模是基本的第一个阶段,重点是识别核心概念及其关系。如何正确地支持建模仍然是一个开放的问题,现有的方法和工具在本质上可能非常不同。一方面,轻量级的工具,如笔和纸/白板或CRC卡,是非正式的,并且很好地支持建模的创造性方面,但是产生的工件很难作为文档存储、处理和重用。另一方面,更受约束和半形式化的,如UML,产生具有定义语义的可存储和可处理的结构化工件,但这是以牺牲创造力为代价的。我们相信存在一个中间地带,可以使两个世界的好处最大化,也就是说,通过支持更接近其本质的软件建模,对开发人员的创造力施加最小的约束,并且仍然产生可重用的结构化工件。我们还声称,使用基于触摸的平板电脑的新兴技术可以最好地治疗建模。我们提出了一种新颖的基于手势的建模方法,该方法基于最小的构造集和iPad应用程序CEL,用于快速创建、操作和存储与语言无关的面向对象软件模型,这些模型可以以任何选择的语言导出为骨架源代码。我们通过一项受控的定性研究来评估我们的方法。
{"title":"CEL: Touching software modeling in essence","authors":"R. Lemma, Michele Lanza, Andrea Mocci","doi":"10.1109/SANER.2015.7081854","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081854","url":null,"abstract":"Understanding a problem domain is a fundamental prerequisite for good software design. In object-oriented systems design, modeling is the fundamental first phase that focuses on identifying core concepts and their relations. How to properly support modeling is still an open problem, and existing approaches and tools can be very different in nature. On the one hand, lightweight ones, such as pen & paper/whiteboard or CRC cards, are informal and support well the creative aspects of modeling, but produce artifacts that are difficult to store, process and reuse as documentation. On the other hand, more constrained and semi-formal ones, like UML, produce storable and processable structured artifacts with defined semantics, but this comes at the expense of creativity. We believe there exists a middle ground to investigate that maximizes the good of both worlds, that is, by supporting software modeling closer to its essence, with minimal constraints on the developer's creativity and still producing reusable structured artifacts. We also claim that modeling can be best treated by using the emerging technology of touch-based tablets. We present a novel gesture-based modeling approach based on a minimal set of constructs, and CEL, an iPad application, for rapidly creating, manipulating, and storing language agnostic object-oriented software models, which can be exported as skeleton source code in any language of choice. We assess our approach through a controlled qualitative study.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126504734","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 comprehensive and scalable method for analyzing fine-grained source code change patterns 用于分析细粒度源代码更改模式的全面且可伸缩的方法
M. Hashimoto, A. Mori, T. Izumida
This paper presents a comprehensive method for identifying fine-grained change patterns in the source code of large-scale software projects. Source code changes are computed by differencing abstract syntax trees of adjacent versions and transferred to a set of logical statements called a factbase. A factbase contains information for tracking and relating source code entities across versions and can be used to integrate analysis results of other tools such as call graphs and control flows. Users can obtain a list of change pattern instances by querying the factbase. Experiments conducted on the Linux-2.6 kernel, which involve more than 4 billions of facts, are reported to demonstrate capability of the method.
本文提出了一种识别大型软件项目源代码中细粒度变化模式的综合方法。通过区分相邻版本的抽象语法树来计算源代码更改,并将其转移到一组称为factbase的逻辑语句中。factbase包含用于跟踪和跨版本关联源代码实体的信息,并可用于集成其他工具(如调用图和控制流)的分析结果。用户可以通过查询factbase获得变更模式实例的列表。据报道,在Linux-2.6内核上进行的涉及超过40亿个事实的实验证明了该方法的能力。
{"title":"A comprehensive and scalable method for analyzing fine-grained source code change patterns","authors":"M. Hashimoto, A. Mori, T. Izumida","doi":"10.1109/SANER.2015.7081845","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081845","url":null,"abstract":"This paper presents a comprehensive method for identifying fine-grained change patterns in the source code of large-scale software projects. Source code changes are computed by differencing abstract syntax trees of adjacent versions and transferred to a set of logical statements called a factbase. A factbase contains information for tracking and relating source code entities across versions and can be used to integrate analysis results of other tools such as call graphs and control flows. Users can obtain a list of change pattern instances by querying the factbase. Experiments conducted on the Linux-2.6 kernel, which involve more than 4 billions of facts, are reported to demonstrate capability of the method.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131549796","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}
引用次数: 9
Detection of violation causes in reflexion models 在反射模型中检测违反原因
Sebastian Herold, M. English, J. Buckley, S. Counsell, M. Cinnéide
Reflexion Modelling is a well-understood technique to detect architectural violations that occur during software architecture erosion. Resolving these violations can be difficult when erosion has reached a critical level and the causes of the violations are interwoven and difficult to understand. This article outlines a novel technique to automatically detect typical causes of violations in reflexion models, based on the definition and detection of typical symptoms for these causes. Preliminary results show that the proposed technique can support software architects' navigation through reflexion models of eroded systems to understand causes of violations and to systematically take actions against them.
反射建模是一种很好理解的技术,用于检测软件体系结构侵蚀期间发生的体系结构违反。当侵蚀达到临界水平,并且破坏的原因交织在一起且难以理解时,解决这些破坏是困难的。本文基于对这些原因的典型症状的定义和检测,概述了一种自动检测反射模型中违规的典型原因的新技术。初步结果表明,所提出的技术可以支持软件架构师通过被侵蚀系统的反射模型进行导航,以了解违规的原因,并系统地对它们采取行动。
{"title":"Detection of violation causes in reflexion models","authors":"Sebastian Herold, M. English, J. Buckley, S. Counsell, M. Cinnéide","doi":"10.1109/SANER.2015.7081878","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081878","url":null,"abstract":"Reflexion Modelling is a well-understood technique to detect architectural violations that occur during software architecture erosion. Resolving these violations can be difficult when erosion has reached a critical level and the causes of the violations are interwoven and difficult to understand. This article outlines a novel technique to automatically detect typical causes of violations in reflexion models, based on the definition and detection of typical symptoms for these causes. Preliminary results show that the proposed technique can support software architects' navigation through reflexion models of eroded systems to understand causes of violations and to systematically take actions against them.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133562212","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
期刊
2015 IEEE 22nd 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