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.
New generations of cloud applications are increasingly complex and pose lower latency requirements. e la er is forcing the industry to reduce network latency by adding computation nodes near the edge of the network, also known as Fog Computing. To utilize the Fog nodes efficiently, the dynamic placement and migration of application components must be supported. To this end, a Fog- aware application...
Context: Conducting a Grounded Theory study is rigorous, demanding, and challenging. Misperceptions exist within the software engineering community. Objective: The purpose of this paper is to describe one extended participant observation Grounded Theory study for aiding new empirical researchers wanting to run similar research studies. Method: Following Constructivist Grounded Theory, we conducted...
Traditional code search engines often do not perform well with natural language queries since they mostly apply keyword matching. These engines thus require carefully designed queries containing information about programming APIs for code search. Unfortunately, existing studies suggest that preparing an effective query for code search is both challenging and time consuming for the developers. In this...
Product Line (PL) configuration practices have been employed by industries as a mass customization process. However, due to the NP-hard nature of the process, performance concerns start to be an issue when facing large-scale configuration spaces. The aim of my doctoral research is therefore to propose an efficient collaborative-based recommender system that provides accurate and scalable solutions...
We develop T2API, a context-sensitive, graph-based statisticaltranslation approach that takes as input an English description of aprogramming task and synthesizes the corresponding API code templatefor the task. We train T2API to statistically learn the alignmentsbetween English and APIs and determine the relevant API elements. Thetraining is done on StackOverflow, which is a bilingual corpus onwhich...
Managing variability is a hard task for every technique that develops variability-rich systems, such as software product lines (SPL), especially in its evolution. Hence, to be effective a technique should provide stability and respect the Open-Closed principle. Among the techniques to develop SPLs, delta-oriented programming (DOP) seems to be promising given its flexibility. There are two strategies...
Hierarchical Multipole Methods (HMMs) are an important class of methods in scientific and engineering applications. They are challenging to parallelize for contemporary and emerging platforms using existing programming models. Asynchronous many-tasking (AMT) execution models provide abstractions suitable for HMMs and promise scalability in the context of future exascale systems. In our work we (1)...
The majority of mainstream programming languages support parallel computing via extended libraries that require restructuring of sequential code. Library-based features are portable, but tend to be verbose and usually reduce the understandability and modifiability of code. On the contrary, approaches with language constructs promote simple code structures, hide the complexity of parallelization and...
Robotic development suffers from a long cognitive distance between the code and the resulting behavior. This is due to the several steps necessary to build robotic behaviors: writing the code, compiling it, deploying it and finally testing it on the robot. All this slows down development and can make experimentation prohibitively expensive. In contrast, Live Programming tightens the feedback loop,...
Graph-based algorithms play a crucial role in workflows for analyzing large datasets in domains such as social networks, biology, fraud detection, and sentiment analysis. There are two approaches for incorporating graph-based algorithms into these workflows. One approach is to integrate the graph algorithms into a workflow residing in a single system. The other approach is to use separate systems...
This paper analyses the changes we have made in teaching agile methodologies, practices, and principles in four courses in order to address a specific dilemma: students need to apply agile methods in order to learn them, but when complementing our courses with applied content, we face the problem that students perceive the learning and application of agile methods as less important than delivering...
Software Product Line Engineering is a key approach to construct applications with systematical reuse of architecture, documents and other relevant components. To migrate legacy software into a product line system, it is essential to identify the code segments that should be constructed as features from the source base. However, this could be an error-prone and complicated task, as it involves exploring...
Mobile devices continue to push the limits of contextually aware application intelligence. However, due to the complexity of contextual processing and programming, a centralized system that handles all mobile context processing is difficult to realize. The problem of defining such a contextual reasoning unit that uses an all-encompassing contextual ontology for all possible uses of context is not...
Recent device shipment trends strongly indicate that the number of Web-enabled devices other than PCs and smart phones are growing rapidly. Marking the end of the dominant era of these two traditional device categories, people will soon commonly use various types of Internet-connected devices in their daily lives, where no single device will dominate. Since today's devices are mostly standalone and...
In self-adaptive systems, an adaptation strategy can apply to several implementations of a target system. Reusing this strategy requires models of the target system that are independent of its implementation. In particular, configuration files must be transformed into abstract configurations, but correctly synchronizing these two representations is not trivial. We propose an approach that uses putback-based...
Metamorphic testing uses domain-specific properties about a program’s intended behaviour to alleviate the oracle problem. From a given set of source test inputs, a set of follow- up test inputs are generated which have some relation to the source inputs, and their outputs are compared to outputs from the source tests, using metamorphic relations. We evaluate the use of an automated test input generation...
Recent works in the context of large-scale adaptive systems, such as those based on opportunistic IoT-based applications, promote aggregate programming, a development approach for distributed systems in which the collectivity of devices is directly targeted, instead of individual ones. This makes the resulting behaviour highly insensitive to network size, density, and topology, and as such, intrinsically...
We propose a method of accelerating Python code by just-in-time compilation leveraging type hints mechanism introduced in Python 3.5. In our approach performance-critical kernels are expected to be written as if Python was a strictly typed language, however without the need to extend Python syntax. This approach can be applied to any Python application, however we focus on a special case when legacy...
It is expected that muti-core systems will become the dominant computing platform in the next few years. However, the current programming models (such as Java, .Net etc.) do not scale well to exploit the computing power of such multi-core systems. In primitive programming paradigms there exist implicit dependencies between code and program states, and compilers cannot exploit the potential concurrency...
During maintenance, software developers deal with numerous change requests made by the users of a software system. Studies show that the developers find it challenging to select appropriate search terms from a change request during concept location. In this paper, we propose a novel technique-QUICKAR-that automatically suggests helpful reformulations for a given query by leveraging the crowdsourced...
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.