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.
Object oriented systems are hard to comprehend because of different dependencies existing at different stages in the system. Inferring these dependencies among the components of object oriented systems is an essential requirement before performing any modifications in the system. So the maintenance of object oriented systems is a difficult process for software maintainers in software re-engineering...
Complex software systems development require appropriate high-level features to better and easily tackle the new requirements in terms of interactions, concurrency and distribution. This requires a paradigm change in software engineering and corresponding programming languages. We are convinced that agent-oriented programming may be the support for this change by focusing on a small corpus of commonly...
Obeya rooms were introduced during the early Nineties by Toyota executives, as a visual approach to break down organizational barriers that prevented effective collaboration in Lean Management meetings. While indisputably effective in achieving their aim, they lacked the option to directly interact with the underlying (electronic) sources of information, because operations were mainly to be carried...
Android provides native development kit through JNI for developing high-performance applications (or simply apps). Although recent years have witnessed a considerable increase in the number of apps employing native libraries, only a few systems can examine them. However, none of them scrutinizes the interactions through JNI in them. In this paper, we conduct a systematic study on tracking information...
The Internet of Things (IoT) demands tailor-made security solutions. Today, there are a number of proposals able to meet IoT's demands in the context of attacks from outsiders. In the context of insiders, however, this does not hold true. Existing solutions to deal with this class of attacks not always take into consideration the IoT's idiosyncrasies and, therefore, they do not produce the best results...
Query suggestion is an important functionality provided by the search engine to facilitate information seeking of the users. Existing query suggestion methods usually focus on recommending queries that are the most relevant to the input query. However, such relevance-oriented strategy cannot effectively handle query uncertainty, a common scenario that the input query can be interpreted as multiple...
Assessing the quality of a test suite is an important step of the testing process. Indeed, it is necessary to ensure that the different test cases target all the critical parts of the system. Model-based testing is a famous technique to perform testing. It uses a model of the system under test. Most of these models include logic formulas. Such formulas encompasses constraints to be satisfied within...
Mutation testing of Python programs raises a problem of incompetent mutants. Incompetent mutants cause execution errors due to inconsistency of types that cannot be resolved before run-time. We present a practical approach in which incompetent mutants can be generated, but the solution is transparent for a user and incompetent mutants are detected by a mutation system during test execution. Experiments...
Data concentrators in advanced metering infrastructures (AMI) are central for collecting electricity meter data. Due to their position at the transformer substation in the distribution grid, concentrators offer an opportunity for value added services to be introduced by the distribution system operator. However, these services must be deployed without jeopardizing robustness and security of the electricity...
Copy and paste activities create clone groups in software systems. The evolution of a clone group across the history of a software system is termed as clone genealogy. During the evolution of a clone group, developers may change the location of the code fragments in the clone group. The type of the clone group may also change (e.g., from Type-1 to Type-2). These two phenomena have been referred to...
Nowadays most of the software projects are coded using several formal languages, either spread on different artifacts or even embedded in the same one. These formal languages are linked each other using cross-language relations, mainly framework specific and established at runtime. In this work we present a language agnostic approach to automatically detect cross-language relations to ease re-factoring,...
Software product line engineering is an efficient means to generate a set of tailored software products from a common implementation. However, adopting a product-line approach poses a major challenge and significant risks, since typically legacy code must be migrated toward a product line. Our aim is to lower the adoption barrier by providing semi-automatic tool support—called variability mining —to...
In Java, type resolution is a function that takes a reference to a type occurring in a given context as input, and returns the canonical form of that type. This information is fundamental to static analysis - a "must have" function underlying virtually all forms of semantic-based analysis. In the case of Java, this function is also complex and it is quite common to encounter tools where...
Feature location is an activity to identify correspondence between features in a system and program elements in source code. After a feature is located, developers need to understand implementation structure around the location from static and/or behavioral points of view. This paper proposes a semi-automatic technique both for locating features and exposing their implementation structures in source...
Platform as a Service Clouds typically lack direct support for application state management, and traditional state management techniques like clustering are not applicable as PaaS platforms offer little support for changing the underlying platform configuration. In this paper we build upon our earlier work where we proposed a session-state management architecture for Cloud called ReLoC, that uses...
FPGAs enable NoC architecture experimentation, although to be effective they need to be supported by tools and frameworks for construction of the NoC and effective software programming of the NoC. In this paper, we focus upon effective programming of the NoC using Java, complementing previous work which proposes the Blueshell framework for NoC generation for FPGAs. The approach taken is called Network-Chi,...
Web services are described via an XML-based language called Web Service Description Language (WSDL). They are then discovered through registries and repositories built upon a standard called Universal Description, Discovery and Integration (UDDI). Due to this registries worldwide businesses and services can be listed and dynamically located on the Internet. Web Service users have heterogeneous platforms...
Model-driven Engineering (MDE) is a paradigm that promotes the use of models and automatic model transformations to handle complex software developments. Model transformations promise to reduce the effort for manipulating models. However, building transformations themselves is not easy. Higher-order Transformations (HOTs) are a means for automatically building model transformations. Building HOTs...
Library migration is the process of replacing a third-party library in favor of a competing one during software maintenance. The process of transforming a software source code to become compliant with a new library is cumbersome and error-prone. Indeed, developers have to understand a new Application Programming Interface (API) and search for the right replacements for the functions they use from...
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.