Temporal Graph Queries to Support Software Evolution

Author(s):  
Tobias Rötschke ◽  
Andy Schürr
Author(s):  
Lucas Sakizloglou ◽  
Sona Ghahremani ◽  
Matthias Barkowsky ◽  
Holger Giese

AbstractModern software systems are intricate and operate in highly dynamic environments for which few assumptions can be made at design-time. This setting has sparked an interest in solutions that use a runtime model which reflects the system state and operational context to monitor and adapt the system in reaction to changes during its runtime. Few solutions focus on the evolution of the model over time, i.e., its history, although history is required for monitoring temporal behaviors and may enable more informed decision-making. One reason is that handling the history of a runtime model poses an important technical challenge, as it requires tracing a part of the model over multiple model snapshots in a timely manner. Additionally, the runtime setting calls for memory-efficient measures to store and check these snapshots. Following the common practice of representing a runtime model as a typed attributed graph, we introduce a language which supports the formulation of temporal graph queries, i.e., queries on the ordering and timing in which structural changes in the history of a runtime model occurred. We present a querying scheme for the execution of temporal graph queries over history-aware runtime models. Features such as temporal logic operators in queries, the incremental execution, the option to discard history that is no longer relevant to queries, and the in-memory storage of the model, distinguish our scheme from relevant solutions. By incorporating temporal operators, temporal graph queries can be used for runtime monitoring of temporal logic formulas. Building on this capability, we present an implementation of the scheme that is evaluated for runtime querying, monitoring, and adaptation scenarios from two application domains.


Author(s):  
Nacha Chondamrongkul

Purpose The development of mobile applications in multiple clouds environment is a complex task because of the lack of platform standards in cloud computing and mobile computing. The source code involves various proprietary programming libraries for different platforms. However, functionalities are inevitably changed over time, as well as the platform. Therefore, a great deal of development effort is required, when changes need to be made at functional and platform level. This paper aims to propose SIMON, a framework that eases complexity of the development to support software evolution. Design/methodology/approach SIMON shields the developer from the complexity of mobile and cloud platforms in the development of mobile applications in multiple clouds environment. The framework uses model of application design to automate the development and support execution of mobile applications in system environment that needs integration to the number of data sources located on multiple clouds. The framework is composed of prefabricated components that support function changeability and platform adaptability. Findings The framework is examined with the development of a sample application. After it is evaluated with scenarios that involve changing at functional and platform levels, the result shows significant reducing of the development effort by comparing with the other approaches. Originality/value The framework facilitates the implementation of mobile applications in the software system that involves integration to multiple clouds, and it supports software evolution with lesser development effort.


Author(s):  
SITI ROCHIMAH ◽  
WAN M. N. WAN KADIR ◽  
ABDUL H. ABDULLAH

Software evolution is inevitable. When a system evolves, there are certain relationships among software artifacts that must be maintained. Requirement traceability is one of the important factors in facilitating software evolution since it maintains the artifacts relationship before and after a change is performed. Requirement traceability can be expensive activities. Many researchers have addressed the problem of requirement traceability, especially to support software evolution activities. Yet, the evaluation results of these approaches show that most of them typically provide only limited support to software evolution. Based on the problems of requirement traceability, we have identified three directions that are important for traceability to support software evolution, i.e. process automation, procedure simplicity, and best results achievement. Those three directions are addressed in our multifaceted approach of requirement traceability. This approach utilizes three facets to generate links between artifacts, i.e. syntactical similarity matching, link prioritization, and heuristic-list based processes. This paper proposes the utilization of multifaceted approach to traceability generation and recovery in facilitating software evolution process. The complete experiment has been applied in a real case study. The results show that utilization of these three facets in generating the traceability among artifacts is better than the existing approach, especially in terms of its accuracy.


Sign in / Sign up

Export Citation Format

Share Document