ACM DL

ACM Transactions on

Software Engineering and Methodology (TOSEM)

Menu
Latest Articles

Test-Equivalence Analysis for Automatic Patch Generation

Automated program repair is a problem of finding a transformation (called a patch) of a given incorrect program that eliminates the observable... (more)

Recommending Who to Follow in the Software Engineering Twitter Space

With the advent of social media, developers are increasingly using it in their software development activities. Twitter is one of the popular social... (more)

Refactoring Multi-Level Models

Multi-level modelling promotes flexibility in modelling by enabling the use of several meta-levels instead of just two, as is the case in mainstream two-level modelling approaches. While this approach leads to simpler models for some scenarios, it introduces an additional degree of freedom as designers can decide the meta-level where an element... (more)

Variability-Aware Static Analysis at Scale: An Empirical Study

The advent of variability management and generator technology enables users to derive individual system variants from a configurable code base by selecting desired configuration options. This approach gives rise to the generation of possibly billions of variants, which, however, cannot be efficiently analyzed for bugs and other properties with... (more)

NEWS

Call for EiC Nominations.
The term of David Rosenblum, the current Editor-in-Chief (EiC) of TOSEM, is coming to an end, and the ACM Publications Board has set up a nominating committee to assist the Board in selecting the next EiC. The deadline is has been extended to September 20. READ MORE


ACM TOSEM welcomes three new Associate Editors to the Editorial Board. Welcome to Elisabetta Di Nitto, Massimilliano Di Penta, and Sam Malek.


2015-2016 Distinguished Referees Recognized. Full list available here.


Digital Library. For more information, visit the ACM Author Rights webpage.

 

About TOSEM

The Transactions on Software Engineering and Methodology (TOSEM) is part of the family of journals produced by the ACM, the Association for Computing Machinery.

TOSEM publishes one volume yearly. Each volume is comprised of four issues, which appear in January, April, July and October.

read more
Forthcoming Articles
Understanding and Analyzing Java Reflection

Java reflection has been increasingly used in a wide range of software. It allows a software system to inspect and/or modify the behaviour of its classes, interfaces, methods and fields at runtime, enabling the software to adapt to dynamically changing runtime environments. However, this dynamic language feature imposes significant challenges to static analysis. Existing static analysis tools either ignore reflection or handle it partially, resulting in missed, important behaviours. This paper makes two contributions: we provide a comprehensive understanding of Java reflection through examining its underlying concept, API and real-world usage, and, building on this, we introduce a new static approach to resolving Java reflection effectively in practice. We have implemented our analysis in an open-source tool, called Solar, and evaluated its effectiveness extensively with large Java programs and libraries. Our results demonstrate that Solar is able to (1) resolve reflection more soundly than the state-of-the-art reflection analysis; (2) automatically and accurately identify the parts of the program where reflection is resolved unsoundly or imprecisely; and (3) guide users to iteratively refine the analysis results by using lightweight annotations until their specific requirements are satisfied.

A Domain Analysis & Description Method Principles, Techniques and Modeling Languages

By a domain we shall understand \rationally describable segment of a human assisted reality, i.e., of the world, its physical parts, and living species. These are endurants (``still''), existing in space, as well as perdurants (``alive''), existing also in time. Emphasis is placed on human-assistedness, that is, that there is at least one (man-made) artifact and that humans are a primary cause for change of endurant states as well as perdurant behaviours. Domain science & engineering marks a new area of computing science. Just as we are formalizing the syntax and semantics of programming languages, so we are formalizing the syntax and semantics of human-assisted domains. Just as physicists are studying Nature, endowing it with mathematical models, so we, computing scientists, are studying these domains, endowing them with mathematical models, A difference between the endeavour of physicists and ours lies in the models: the physics models are based on classical mathematics, differential equations and integrals, etc., our models are based on mathematical logic, set theory, and algebra.

Theoretical and Practical Aspects of Linking Operational and Algebraic Semantics for MDESL

Verilog is a hardware description language (HDL) that has been standardized and widely used in industry. MDESL is a Verilog-like language, which is a multithreaded discrete event simulation language. It contains interesting features such as event-driven computation and shared-variable concurrency. This paper considers how the algebraic semantics links with the operational semantics for MDESL. Our approach is from both the theoretical and practical aspects. The link is proceeded by deriving the operational semantics from the algebraic semantics. Firstly, we present the algebraic semantics for MDESL. We introduce the concept of head normal form. Secondly we present the strategy of deriving operational semantics from algebraic semantics. We also investigate the soundness and completeness of the derived operational semantics with respect to the derivation strategy. Our theoretical approach is complemented by a practical one, we use the theorem proof assistant Coq to formalize the algebraic laws and the derived operational semantics. Meanwhile, the soundness and completeness of the derived operational semantics is also verified via the mechanical approach in Coq. Our approach is a novel way to formalize and verify the correctness and equivalence of different semantics for MDESL in both a theoretical approach and a practical approach.

Software Effort Interval Prediction via Bayesian Inference and Synthetic Bootstrap Resampling

The problem of software effort estimation (SEE) usually suffers from inherent uncertainty. Relying on point estimation only may ignore the uncertain factors and lead project managers (PMs) to wrong decision-making. Prediction intervals (PIs) with confidence levels (CLs) present a more reasonable representation of reality, potentially helping PMs to make better informed decisions and enable more flexibility in these decisions. However, existing methods for PIs either have strong limitations, or are unable to provide informative PIs. To develop a `better' effort predictor, we propose a novel PI estimator called Synthetic Bootstrap ensemble of Relevance Vector Machines (SynB-RVM) that adopts Bootstrap resampling to produce multiple RVM models based on modified training bags whose replicated data are replaced by their synthetic counterparts. We then provide three ways to ensemble those RVM models into a final probabilistic predictor, from which PIs with CLs can be generated. When used as a point estimator, SynB-RVM can either significantly outperform or have similar performance compared with other investigated methods. When used as an uncertain predictor, SynB-RVM can achieve significantly narrower PIs compared to its base learner RVM. Its hit rates and relative widths are no worse than the other compared methods that can provide uncertain estimation.

Runtime Fault Detection in Programmed Molecular Systems

Watchdog timers are devices that are commonly used to monitor the health of safety-critical hardware and software systems. Their primary function is to raise an alarm if the monitored systems fail to emit periodic heartbeats that signal their well-being. In this paper we design and verify a molecular watchdog timer for monitoring the health of programmed molecular nanosystems. This raises new challenges because our molecular watchdog timer and the system that it monitors both operate in the probabilistic environment of chemical kinetics, where many failures are certain to occur and it is especially hard to detect the absence of a signal. Our molecular watchdog timer is the result of an incremental design process that uses goal-oriented requirements engineering, simulation, stochastic analysis, and software verification tools. We demonstrate the molecular watchdogs functionality by having it monitor a molecular oscillator. Both the molecular watchdog timer and the oscillator are implemented as chemical reaction networks, which are the current programming language of choice for many molecular programming applications.

An Active Learning Approach for Improving the Accuracy of Automated Domain Model Extraction

Domain models are a useful vehicle for making the interpretation and elaboration of natural-language requirements more precise. Advances in natural language processing (NLP) have made it possible to automatically extract from requirements most of the information that is relevant to domain model construction. However, alongside the relevant information, NLP extracts from requirements a significant amount of information that is superfluous, i.e., not relevant to the domain model. Our objective in this article is to develop automated assistance for filtering the superfluous information extracted by NLP during domain model extraction. To this end, we devise a machine-learning-based approach that iteratively learns from analysts' feedback over the relevance and superfluousness of the extracted domain model elements, and uses this feedback to provide recommendations for filtering superfluous elements. We empirically evaluate our approach over three industrial case studies. Our results indicate that, once trained, our approach automatically detects an average of ~45% of the superfluous elements with a precision of ~96%. Since precision is very high, the automatic recommendations made by our approach are trustworthy. Consequently, analysts can dispose of a considerable fraction - nearly half - of the superfluous elements with minimal manual work.

RESTful API Automated Test Case Generation with EvoMaster

RESTful APIs are widespread in industry, especially in enterprise applications developed with a microservice architecture. A RESTful web service will provide data via an API over the network using HTTP, possibly interacting with databases and other web services. Testing a RESTful API poses challenges, as inputs/outputs are sequences of HTTP requests/responses to a remote server. Many approaches in the literature do black-box testing, as the tested API is a remote service whose code is not available. In this paper, we consider testing from the point of view of the developers, which do have full access to the code that they are writing. Therefore, we propose a fully automated white-box testing approach, where test cases are automatically generated using an evolutionary algorithm. Tests are rewarded based on code coverage and fault finding metrics. However, REST is not a protocol, but rather a set of guidelines on how to design resources accessed over HTTP endpoints. For example, there are guidelines on how related resources should be structured with hierarchical URIs, and how the different HTTP verbs should be used to represent well-defined actions on those resources. Test case generation for RESTful APIs, that only rely on white-box information of the...

All ACM Journals | See Full Journal Index

Search TOSEM
enter search term and/or author name