The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
This paper briefly proposes a technique to detect energy inefficient fragments in the source code of a software system. Test cases are executed to obtain energy consumption measurements, and a statistical method, based on spectrum-basedfault localization, is introduced to relate energy consumption to the system's source code. The result of our technique is an energy ranking of source code fragments...
Mutation testing changes a program by applying mutation operators, which generate many slightly different versions of the original program (i.e., mutants). Identifying which mutants are equivalent to the original program is one of the major barriers to a wider adoption of mutation testing. Recent studies suggest that an effective approach to mitigating this problem is to use only a subset of all mutation...
Restructuring legacy code to improve its structure and understandability is difficult and adequate tool support is required. While the advantages of the Null Object pattern are widely recognized, the first tool support has only recently emerged. We complement it with NullTerminator, a prototype tool to assist developers in the instantiation of the Null Object design pattern in Java programs. We describe...
DCI (Data, Context and Interaction) comes from role-based programming and separates the system state from its behavior making it possible to preserve use cases in code to the great extent. In its Java implementation, DCI relies on the Qi4J (renamed to Apache Zest at the time of finalizing this paper) framework for role injection. This paper provides an assessment of DCI via its Qi4J implementation...
Code obfuscation techniques are widely used in industry to increase protection of source code and intellectual property. The idea is that even if attackers gain hold of source code, it will be hard for them to understand what it does and how. Thus obfuscation techniques are specifically targeted at human comprehension of code. We suggest that the ideas and experience embedded in obfuscations can be...
Testing and testing code are critical to maintaining modern, evolving systems. Yet generating a good set of relevant test cases that covers what is important remains a difficult task. We propose a new approach to generating test cases through the use of code search. Open source repositories have made an enormous amount of code available. These contain unit tests for a wide variety of programs where...
Keywords or tags summarize documents on an abstract level and can also be used for describing code fragments. They might be leveraged for retrieving features of a software system, understanding program functionality, or providing additional context. While automatic approaches at best are only able to retrieve information that is already contained in the source code, manual tagging could add valuable...
This paper describes the replication of an empirical study comparing tool-supported test case generation and manual development of unit tests. As variation to the original study, which was based on test results from students performing manual unit testing for 60 minutes, the replication involves professional software developers with several years of industry experience and extends the initial time...
Nowadays technologies aim at interconnecting plethora of electronic devices and data sources to keep users informed about their field of interest. Automated processing of heterogeneous distributed information is still the challenging task which ranges from enterprise and logistic information systems to rescue and military information systems. In this paper we propose a system for semi-automated information...
“Build maintenance” refers to the changes made to the build system as a software project evolves over time and has been shown to impose a significant overhead on overall development costs, in part because changes to source code often require parallel changes in the build system. However, little tool support exists to assist developers with build maintenance, particularly for those changes that must...
Relevance of automatically generated test cases depends on an appropriate definition of a test context, or precondition. This paper presents a novel method for handling a precondition in dynamic symbolic execution (DSE) testing tools. This method allows Path Crawler, a DSE tool for C~programs, to accept a precondition defined as a C function. It provides a simple way to express a precondition even...
In current software development, code completion is necessary to enhance productivity of our programming tasks. However, how developers use code completion tools on integrated development environments is still not elucidated completely. Aiming to improve such tools, we performed an investigation in terms of code completion use. We investigated developers' operation histories on an integrated development...
As the vision of ubiquitous computing becomes reality, there is a possibility for user interfaces that follow the user through the physical world by jumping between local display devices. This paper presents previous attempts at this functionality and identifies their limitations. Justified by these limitations, we then present our novel method that uses new features of web-based technology. This...
This paper describes continuations to the reform of a sophomore-level course in computer organization for our Computer Science BS curriculum, where, Java and integrated IDEs have been adopted as the only language and development environments used in the first three semesters of study. A major objective of our approach is the minimization of cognitive overload, through the incremental introduction...
Services migration is becoming more and more important due to the flexibility of the complex distributed systems. In the Java environment, the problem may not be solved without modification on JVM or bytecode in existing solutions. This paper presents a migration framework extended by IBM Service Management Framework; then it provides an experiment analysis and evaluation on a typical use case. Moreover,...
Most software systems developed nowadays are highly complex and subject to strict time constraints, and are often deployed with critical software faults. In many cases, software faults are responsible for security vulnerabilities which are exploited by hackers. Automatic web vulnerability scanners can help to locate these vulnerabilities. Trustworthiness of the results that these tools provide is...
Software repositories are analyzed to extract useful information on software characteristics. One of them is external quality. A technique used to increase software quality is automatic static analysis, by means of bug finding tools. These tools promise to speed up the verification of source code; anyway, there are still many problems, especially the high number of false positives, that hinder their...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.