4 research outputs found
An IR-based Approach Towards Automated Integration of Geo-spatial Datasets in Map-based Software Systems
Data is arguably the most valuable asset of the modern world. In this era,
the success of any data-intensive solution relies on the quality of data that
drives it. Among vast amount of data that are captured, managed, and analyzed
everyday, geospatial data are one of the most interesting class of data that
hold geographical information of real-world phenomena and can be visualized as
digital maps. Geo-spatial data is the source of many enterprise solutions that
provide local information and insights. In order to increase the quality of
such solutions, companies continuously aggregate geospatial datasets from
various sources. However, lack of a global standard model for geospatial
datasets makes the task of merging and integrating datasets difficult and
error-prone. Traditionally, domain experts manually validate the data
integration process by merging new data sources and/or new versions of previous
data against conflicts and other requirement violations. However, this approach
is not scalable and is hinder toward rapid release, when dealing with
frequently changing big datasets. Thus more automated approaches with limited
interaction with domain experts is required. As a first step to tackle this
problem, in this paper, we leverage Information Retrieval (IR) and geospatial
search techniques to propose a systematic and automated conflict identification
approach. To evaluate our approach, we conduct a case study in which we measure
the accuracy of our approach in several real-world scenarios and we interview
with software developers at Localintel Inc. (our industry partner) to get their
feedbacks.Comment: ESEC/FSE 2019 - Industry trac
Evolving Software Systems for Self-Adaptation
There is a strong synergy between the concepts of evolution and adaptation in software engineering: software adaptation refers to both the current software being adapted and to the evolution process that leads to the new adapted software. Evolution changes for the purpose of adaptation are usually made at development or compile time, and are meant to handle predictable situations in the form of software change requests. On the other hand, software may also change and adapt itself based on the changes in its environment. Such adaptive changes are usually dynamic, and are suitable for dealing with unpredictable or temporary changes in the software's operating environment.
A promising solution for software adaptation is to develop self-adaptive software systems that can manage changes dynamically at runtime in a rapid and reliable way. One of the main advantages of self-adaptive software is its ability to manage the complexity that stems from highly dynamic and nondeterministic operating environments. If a self-adaptive software system has been engineered and used properly, it can greatly improve the cost-effectiveness of software change through its lifespan. However, in practice, many of the existing approaches towards self-adaptive software are rather expensive and may increase the overall system complexity, as well as subsequent future maintenance costs. This means that in many cases, self-adaptive software is not a good solution, because its development and maintenance costs are not paid off. The situation is even worse in the case of making current (legacy) systems adaptive.
There are several factors that have an impact on the cost-effectiveness and usability of self-adaptive software; however the main objective of this thesis is to make a software system adaptive in a cost-effective way, while keeping the target adaptive software generic, usable, and evolvable, so as to support future changes. In order to effectively engineer and use self-adaptive software systems, in this thesis we propose a new conceptual model for identifying and specifying problem spaces in the context of self-adaptive software systems. Based on the foundations of this conceptual model, we propose a model-centric approach for engineering self-adaptive software by designing a generic adaptation framework and a supporting evolution process. This approach is particularly tailored to facilitate and simplify the process of evolving and adapting current (legacy) software towards runtime adaptivity. The conducted case studies reveal the applicability and effectiveness of this approach in bringing self-adaptive behaviour into non-adaptive applications that essentially demand adaptive behaviour to sustain
On the Road to Holistic Decision Making in Adaptive Security
Security is a critical concern in today's software systems. Besides the interconnectivity and dynamic nature of network systems, the increasing complexity in modern software systems amplifies the complexity of IT security. This fact leaves attackers one step ahead in exploiting vulnerabilities and introducing new cyberattacks. The demand for new methodologies in addressing cybersecurity is emphasized by both private and national corporations. A practical solution to dynamically manage the high complexity of IT security is adaptive security, which facilitates analysis of the system's behaviour and hence the prevention of malicious attacks in complex systems. Systems that feature adaptive security detect and mitigate security threats at runtime with little or no administrator involvement. In these systems, decisions at runtime are balanced according to quality and performance goals. This article describes the necessity of holistic decision making in such systems and paves the road to future research