57,034 research outputs found
Synergizing domain expertise with self-awareness in software systems:a patternized architecture guideline
To promote engineering self-aware and self-adaptive software systems in a
reusable manner, architectural patterns and the related methodology provide an
unified solution to handle the recurring problems in the engineering process.
However, in existing patterns and methods, domain knowledge and engineers'
expertise that is built over time are not explicitly linked to the self-aware
processes. This linkage is important, as the knowledge is a valuable asset for
the related problems and its absence would cause unnecessary overhead, possibly
misleading results and unwise waste of the tremendous benefit that could have
been brought by the domain expertise. This paper highlights the importance of
synergizing domain expertise and the self-awareness to enable better
self-adaptation in software systems, relying on well-defined expertise
representation, algorithms and techniques. In particular, we present a holistic
framework of notions, enriched patterns and methodology, dubbed DBASES, that
offers a principled guideline for the engineers to perform difficulty and
benefit analysis on possible synergies, in an attempt to keep
"engineers-in-the-loop". Through three tutorial case studies, we demonstrate
how DBASES can be applied in different domains, within which a carefully
selected set of candidates with different synergies can be used for
quantitative investigation, providing more informed decisions of the design
choices.Comment: Accepted manuscript to the Proceedings of the IEEE. Please use the
following citation: Tao Chen, Rami Bahsoon, and Xin Yao. 2020. Synergizing
Domain Expertise with Self-Awareness in Software Systems: A Patternized
Architecture Guideline. Proc. IEEE, in pres
A Framework for Evaluating Model-Driven Self-adaptive Software Systems
In the last few years, Model Driven Development (MDD), Component-based
Software Development (CBSD), and context-oriented software have become
interesting alternatives for the design and construction of self-adaptive
software systems. In general, the ultimate goal of these technologies is to be
able to reduce development costs and effort, while improving the modularity,
flexibility, adaptability, and reliability of software systems. An analysis of
these technologies shows them all to include the principle of the separation of
concerns, and their further integration is a key factor to obtaining
high-quality and self-adaptable software systems. Each technology identifies
different concerns and deals with them separately in order to specify the
design of the self-adaptive applications, and, at the same time, support
software with adaptability and context-awareness. This research studies the
development methodologies that employ the principles of model-driven
development in building self-adaptive software systems. To this aim, this
article proposes an evaluation framework for analysing and evaluating the
features of model-driven approaches and their ability to support software with
self-adaptability and dependability in highly dynamic contextual environment.
Such evaluation framework can facilitate the software developers on selecting a
development methodology that suits their software requirements and reduces the
development effort of building self-adaptive software systems. This study
highlights the major drawbacks of the propped model-driven approaches in the
related works, and emphasise on considering the volatile aspects of
self-adaptive software in the analysis, design and implementation phases of the
development methodologies. In addition, we argue that the development
methodologies should leave the selection of modelling languages and modelling
tools to the software developers.Comment: model-driven architecture, COP, AOP, component composition,
self-adaptive application, context oriented software developmen
Context-aware adaptation in DySCAS
DySCAS is a dynamically self-configuring middleware for automotive control systems. The addition of autonomic, context-aware dynamic configuration to automotive control systems brings a potential for a wide range of benefits in terms of robustness, flexibility, upgrading etc. However, the automotive systems represent a particularly challenging domain for the deployment of autonomics concepts, having a combination of real-time performance constraints, severe resource limitations, safety-critical aspects and cost pressures. For these reasons current systems are statically configured. This paper describes the dynamic run-time configuration aspects of DySCAS and focuses on the extent to which context-aware adaptation has been achieved in DySCAS, and the ways in which the various design and implementation challenges are met
A Self-adaptive Agent-based System for Cloud Platforms
Cloud computing is a model for enabling on-demand network access to a shared
pool of computing resources, that can be dynamically allocated and released
with minimal effort. However, this task can be complex in highly dynamic
environments with various resources to allocate for an increasing number of
different users requirements. In this work, we propose a Cloud architecture
based on a multi-agent system exhibiting a self-adaptive behavior to address
the dynamic resource allocation. This self-adaptive system follows a MAPE-K
approach to reason and act, according to QoS, Cloud service information, and
propagated run-time information, to detect QoS degradation and make better
resource allocation decisions. We validate our proposed Cloud architecture by
simulation. Results show that it can properly allocate resources to reduce
energy consumption, while satisfying the users demanded QoS
Context Aware Adaptable Applications - A global approach
Actual applications (mostly component based) requirements cannot be expressed without a ubiquitous and mobile part for end-users as well as for M2M applications (Machine to Machine). Such an evolution implies context management in order to evaluate the consequences of the mobility and corresponding mechanisms to adapt or to be adapted to the new environment. Applications are then qualified as context aware applications. This first part of this paper presents an overview of context and its management by application adaptation. This part starts by a definition and proposes a model for the context. It also presents various techniques to adapt applications to the context: from self-adaptation to supervised approached. The second part is an overview of architectures for adaptable applications. It focuses on platforms based solutions and shows information flows between application, platform and context. Finally it makes a synthesis proposition with a platform for adaptable context-aware applications called Kalimucho. Then we present implementations tools for software components and a dataflow models in order to implement the Kalimucho platform
- …