Refactoring is a transformation that preserves the external behavior of a program and improves its internal quality. Usually, compilation errors and behavioral changes are avoided by preconditions ...determined for each refactoring transformation. However, to formally define these preconditions and transfer them to program checks is a rather complex task. In practice, refactoring engine developers commonly implement refactorings in an ad hoc manner since no guidelines are available for evaluating the correctness of refactoring implementations. As a result, even mainstream refactoring engines contain critical bugs. We present a technique to test Java refactoring engines. It automates test input generation by using a Java program generator that exhaustively generates programs for a given scope of Java declarations. The refactoring under test is applied to each generated program. The technique uses SafeRefactor, a tool for detecting behavioral changes, as an oracle to evaluate the correctness of these transformations. Finally, the technique classifies the failing transformations by the kind of behavioral change or compilation error introduced by them. We have evaluated this technique by testing 29 refactorings in Eclipse JDT, NetBeans, and the JastAdd Refactoring Tools. We analyzed 153,444 transformations, and identified 57 bugs related to compilation errors, and 63 bugs related to behavioral changes.
This paper explores the main factors for mosquito-borne transmission of the Zika virus by focusing on environmental, anthropogenic, and social risks. A literature review was conducted bringing ...together related information from this genre of research from peer-reviewed publications. It was observed that environmental conditions, especially precipitation, humidity, and temperature, played a role in the transmission. Furthermore, anthropogenic factors including sanitation, urbanization, and environmental pollution promote the transmission by affecting the mosquito density. In addition, socioeconomic factors such as poverty as well as social inequality and low-quality housing have also an impact since these are social factors that limit access to certain facilities or infrastructure which, in turn, promote transmission when absent (e.g., piped water and screened windows). Finally, the paper presents short-, mid-, and long-term preventative solutions together with future perspectives. This is the first review exploring the effects of anthropogenic aspects on Zika transmission with a special emphasis in Brazil.
Mosquito surveillance is a crucial process for understanding the population dynamics of mosquitoes, as well as implementing interventional programs for controlling and preventing the spread of ...mosquito-borne diseases. Environmental surveillance agents who performing routine entomological surveys at properties in areas where mosquito-borne diseases are endemic play a critical role in vector surveillance by searching and destroying mosquito hotspots as well as collate information on locations with increased infestation. Currently, the process of recording information on paper-based forms is time-consuming and painstaking due to manual effort. The introduction of mobile surveillance applications will therefore improve the process of data collection, timely reporting, and field worker performance. Digital-based surveillance is critical in reporting real-time data; indeed, the real-time capture of data with phones could be used for predictive analytical models to predict mosquito population dynamics, enabling early warning detection of hotspots and thus alerting fieldworker agents into immediate action. This paper describes the development of a cross-platform digital system for improving mosquito surveillance in Brazil. It comprises of two components: a dashboard for managers and a mobile application for health agents. The former enables managers to assign properties to health workers who then survey them for mosquitoes and to monitor the progress of inspection visits in real-time. The latter, which is primarily designed as a data collection tool, enables the environmental surveillance agents to act on their assigned tasks of recording the details of the properties at inspections by filling out digital forms built into the mobile application, as well as details relating to mosquito infestation. The system presented in this paper was co-developed with significant input with environmental agents in two Brazilian cities where it is currently being piloted.
Certain weather conditions are inadvertently related to increased population of various mosquitoes. In order to predict the burden of mosquito populations in the Global South, it is imperative to ...integrate weather-related risk factors into such predictive models. There are a lot of online open-source weather platforms that provide historical, current and future weather forecasts which can be utilised for general predictions, and these electronic sources serve as an alternate option for weather data when physical weather stations are inaccessible (or inactive). Before using data from such online source, it is important to assess the accuracy against some baseline measure. In this paper, we therefore evaluated the accuracy and suitability of weather forecasts of two parameters namely temperature and humidity from the OpenWeatherMap API (an online weather platform) and compared them with actual measurements collected from the Brazilian weather stations (INMET). The evaluation was focused on two Brazilian cites, namely, Recife and Campina Grande. The intention is to prepare an early warning model which will harness data from OpenWeatherMap API for mosquito prediction.
Automatic recovery of traceability between software artifacts may promote early detection of issues and better calculate change impact. Information Retrieval (IR) techniques have been proposed for ...the task, but they differ considerably in input parameters and results. It is difficult to assess results when those techniques are applied in isolation, usually in small or medium-sized software projects. Recently, multilayered approaches to machine learning, in special Deep Learning (DL), have achieved success in text classification through their capacity to model complex relationships among data. In this article, we apply several IR and DL techniques for investing automatic traceability between bug reports and manual test cases, using historical data from the Mozilla Firefox’s Quality Assurance (QA) team. In this case study, we assess the following IR techniques: LSI, LDA, and BM25, in addition to a DL architecture called Convolutional Neural Networks (CNNs), through the use of Word Embeddings. In this context of traceability, we observe poor performances from three out of the four studied techniques. Only the LSI technique presented acceptable results, standing out even over the state-of-the-art BM25 technique. The obtained results suggest that the semi-automatic application of the LSI technique – with an appropriate combination of thresholds – may be feasible for real-world software projects.
•Detection of requirement inconsistencies comes with a significant cost.•We propose a DSL based on Set Theory (GIRL) for structural invariants.•GIRL invariants can be evaluated using Alloy, the ...target language for a translation semantics.•With a prototypical IDE as an Eclipse plugin, requirement analysts evaluated usability and effectiveness.•Participants effectively used the analysis, complex logical constructs.
Software requirement analysis can undoubtedly benefit from prevention and early detection of failures, in particular by some kind of automatic analysis. Formal methods offer means to represent and analyze requirements with rigorous tools, avoiding ambiguities, and allowing automatic verification of requirement consistency. However, formalisms often clash in the culture or lack of software analysts' skills, making them challenging to apply. In this article, we propose a Domain-Specific Language (DSL) based on Set Theory for requirement analysts. The Graphical InvaRiant Language (GIRL) can be used to specify software requirement structural invariants, with entities and their relationships. Those invariants can then have their consistency evaluated by the Alloy Analyzer, based on a translational semantics we provide for transforming GIRL models into Alloy specifications with no user intervention. With a prototypical language editor and transformations implemented into an Eclipse plugin, we carried out a qualitative study, with requirement analysts working for a government software company in Brazil, to evaluate usability and effectiveness of the GIRL-based analysis of real software requirements. The participants were able to effectively use the underlying formal analysis since 79 out of 80 assigned invariants were correctly modeled. While participants perceived as low the complexity of learning and using GIRL's simplest, set-based structures and relationships, the most complex logical structures, such as quantification and implication, were challenging. Furthermore, almost all post-study evaluations from the participants were positive, especially as a tool for discovering requirement inconsistencies.
Arboviruses are a group of diseases that are transmitted by an arthropod vector. Since they are part of the Neglected Tropical Diseases that pose several public health challenges for countries around ...the world. The arboviruses' dynamics are governed by a combination of climatic, environmental, and human mobility factors. Arboviruses prediction models can be a support tool for decision-making by public health agents. In this study, we propose a systematic literature review to identify arboviruses prediction models, as well as models for their transmitter vector dynamics. To carry out this review, we searched reputable scientific bases such as IEE Xplore, PubMed, Science Direct, Springer Link, and Scopus. We search for studies published between the years 2015 and 2020, using a search string. A total of 429 articles were returned, however, after filtering by exclusion and inclusion criteria, 139 were included. Through this systematic review, it was possible to identify the challenges present in the construction of arboviruses prediction models, as well as the existing gap in the construction of spatiotemporal models.
Making Program Refactoring Safer Soares, Gustavo; Gheyi, Rohit; Serey, Dalton ...
IEEE software,
07/2010, Volume:
27, Issue:
4
Journal Article
Peer reviewed
Developers rely on compilation, test suites, and tools to preserve observable behavior during refactoring. However, most refactoring tools don't implement all the preconditions that guarantee ...refactoring correctness because formally identifying them is cost-prohibitive. Therefore, these tools could perform nonbehavior-preserving transformations. The authors present a tool for improving safety during refactoring that automatically generates a test suite suited for detecting behavioral changes. They used this tool to evaluate seven real case study refactorings (from 3 to 100 KLOC).
Refactoring is commonly performed manually, supported by regression testing, which serves as a safety net to provide confidence on the edits performed. However, inadequate test suites may prevent ...developers from initiating or performing refactorings. We propose RefDistiller, a static analysis approach to support the inspection of manual refactorings. It combines two techniques. First, it applies predefined templates to identify potential missed edits during manual refactoring. Second, it leverages an automated refactoring engine to identify extra edits that might be incorrect. RefDistiller also helps determine the root cause of detected anomalies. In our evaluation, RefDistiller identifies 97 percent of seeded anomalies, of which 24 percent are not detected by generated test suites. Compared to running existing regression test suites, it detects 22 times more anomalies, with 94 percent precision on average. In a study with 15 professional developers, the participants inspected problematic refactorings with RefDistiller versus testing only. With RefDistiller, participants located 90 percent of the seeded anomalies, while they located only 13 percent with testing. The results show RefDistiller can help check the correctness of manual refactorings.