scholarly journals Towards a Requirements Specification Multi-View Framework for Self-Adaptive Systems

Author(s):  
Juan C. Muñoz-Fernández ◽  
Gabriel Tamura ◽  
Raúl Mazo ◽  
Camille Salinesi

The analysis of self-adaptive systems (SAS) requirements involves addressing uncertainty from several sources. Despite advances in requirements for SAS, uncertainty remains an extremely difficult challenge. In this paper, we propose REFAS, a framework to model the requirements of self-adaptive software systems. Our aim with REFAS is to address and reduce uncertainty and to provide a language with sufficient power of expression to specify the different aspects of self-adaptive systems, relative to functional and non-functional requirements. The REFAS modeling language includes concepts closely related to these kind of requirements and their fulfillment, such as context variables, claims, and soft dependencies. Specifically, the paper´s contribution is twofold. First, REFAS supports different viewpoints and concerns related to requirements modeling, with key associations between them. Moreover, the modeler can define additional models and views by exploiting the REFAS meta-modeling capability, in order to capture additional aspects contributing to reduce uncertainty. Second, REFAS promotes in-depth analysis of all of the modeled concerns with aggregation and association capabilities, especially with context variables. Furthermore, we also define a process that enforces modeling requirements, considering different aspects of uncertainty. We demonstrate the applicability of REFAS by using the VariaMos software tool, which implements the REFAS meta-model, views, and process.

2015 ◽  
Vol 107 ◽  
pp. 50-70 ◽  
Author(s):  
Manzoor Ahmad ◽  
Nicolas Belloir ◽  
Jean-Michel Bruel

Author(s):  
João Dionisio Paraiba ◽  
Luiz Eduardo G. Martins

Self-Adaptive Systems are able to change their behavior at runtime according to the environment where they are. This study presents an approach to specify the requirements for self-adaptive systems based on the concepts of Fuzzy Logic, which deals with factors such as ambiguity, uncertainties and vague information on the solution of problems; and NFR-Framework, which deals with the non-functional requirements which, very often, vaguely and full of uncertainties present themselves. Adaptive systems consist of (functional and non-functional) requirements, which hold the capacity to modify themselves during the runtime with little or no human intervention at all. Requirements that carry out the feature of wide variability are called adaptive requirements. PERSA (acronym from “Processo de Especificação de Requisitos Adaptativos”, in Portuguese) is reported in this work, using the Fuzzy Logic and the NFR-Framework as a basis, since both offers resources to manage uncertainties, an inherent attribute of self-adaptive systems. This process aims the approach of specification of adaptive requirements in a systematic way providing a guide to support requirements engineers. PERSA Process is settled in three mains phases subdivided into several steps. Two case studies were developed to validate it: the first deals with an automated system to prepare steaks, which needs to adapt to its several types; the second relates to a system for automation for canine diets, which must be adapted to different breeds of dogs according to their size, weight and classification. The case studies provide a first approach of the use and benefits of PERSA Process. In these studied the theoretical proposal was evaluated and discussed in order to establish the degree of understanding, the clarity of activities and the necessary adjustments to improve the proposed achievements, thus obtaining a satisfactory though early assessment which answers the purpose of specifying the requirements for self-adaptive systems.


Author(s):  
Aradea Aradea ◽  
Iping Supriana ◽  
Kridanto Surendro

[Id]Mengkonstruksi perangkat lunak self-adaptive sangat berbeda dengan mengkonstruksi perangkat lunak non self-adaptive, hal ini menuntut banyak cara yang harus ditempuh untuk mencapai tujuan tersebut. Salah satunya adalah pada tahapan pemodelan requirements. Pendekatan yang digunakan saat melakukan pemodelan requirements untuk perangkat lunak self-adaptive, tidak cukup hanya menangkap kebutuhan sesuai dengan kondisi systems-as-is. Namun kebutuhan systems-to-be yang berhubungan dengan spesifikasi perilaku, dan kemampuannya untuk menangani perubahan ketika sistem sedang berjalan, merupakan faktor penting yang harus terpenuhi. Makalah ini membahas pemodelan requirements untuk mengembangkan self-adaptive systems, dengan mengintegrasikan pendekatan goal oriented requirements engineering dan feedback loop. Diawali dengan latar belakang, kemudian menguraikan penelitian terkait, dilanjutkan dengan konsep yang diusulkan beserta contoh penerapannya, dan diakhir bahasan kami menguraikan pekerjaan untuk masa depan serta kesimpulan.Kata kunci:Requirements modeling, goal oriented requirements engineering, self-adaptive systems, feedback loop[En]Construction of self-adaptive software is very different with the construction of non-self-adaptive software, its require many ways that must be through to gain these goals. one of them is on the requirement of modelling phase. The approach that used, when conduct modelling requirement is not enough to catch the needs appropriate with as-is system condition, but the requirement of to-be systems that connected with behaviour specification and its ability to handle transformation when system running is an important factor that must be fulfilled. this paper describes requirement modelling to develop self-adaptive systems, with goal oriented engineering integration approach and loop feedback. Started with the background, then untangle related research, continued with proposed concept and its implementation example, and in the last description, we untangle conclusion and our future works.Keywords: Requirements modeling, goal oriented requirements engineering, self-adaptive systems, feedback loop


During the recent years, there is an increasing demand for software systems that dynamically adapt their behavior at run-time in response to changes in user preferences, execution environment, and system requirements, being thus context-aware. Authors are referring here to requirements related to both functional and non-functional aspects of system behavior since changes can also be induced by failures or unavailability of parts of the software system itself. To ensure the coherence and correctness of the proposed model, all relevant properties of system entities are precisely and formally described. This is especially true for non-functional properties, such as performance, availability, and security. This article discusses semantic concepts for the specification of non-functional requirements, taking into account the specific needs of a context-aware system. Based on these semantic concepts, we present a specification language that integrates non-functional requirements design and validation in the development process of context-aware self-adaptive systems.


2020 ◽  
Vol 15 (4) ◽  
pp. 1-36
Author(s):  
Sara M. Hezavehi ◽  
Danny Weyns ◽  
Paris Avgeriou ◽  
Radu Calinescu ◽  
Raffaela Mirandola ◽  
...  

One of the primary drivers for self-adaptation is ensuring that systems achieve their goals regardless of the uncertainties they face during operation. Nevertheless, the concept of uncertainty in self-adaptive systems is still insufficiently understood. Several taxonomies of uncertainty have been proposed, and a substantial body of work exists on methods to tame uncertainty. Yet, these taxonomies and methods do not fully convey the research community’s perception on what constitutes uncertainty in self-adaptive systems and on the key characteristics of the approaches needed to tackle uncertainty. To understand this perception and learn from it, we conducted a survey comprising two complementary stages in which we collected the views of 54 and 51 participants, respectively. In the first stage, we focused on current research and development, exploring how the concept of uncertainty is understood in the community and how uncertainty is currently handled in the engineering of self-adaptive systems. In the second stage, we focused on directions for future research to identify potential approaches to dealing with unanticipated changes and other open challenges in handling uncertainty in self-adaptive systems. The key findings of the first stage are: (a) an overview of uncertainty sources considered in self-adaptive systems, (b) an overview of existing methods used to tackle uncertainty in concrete applications, (c) insights into the impact of uncertainty on non-functional requirements, (d) insights into different opinions in the perception of uncertainty within the community and the need for standardised uncertainty-handling processes to facilitate uncertainty management in self-adaptive systems. The key findings of the second stage are: (a) the insight that over 70% of the participants believe that self-adaptive systems can be engineered to cope with unanticipated change, (b) a set of potential approaches for dealing with unanticipated change, (c) a set of open challenges in mitigating uncertainty in self-adaptive systems, in particular in those with safety-critical requirements. From these findings, we outline an initial reference process to manage uncertainty in self-adaptive systems. We anticipate that the insights on uncertainty obtained from the community and our proposed reference process will inspire valuable future research on self-adaptive systems.


Author(s):  
Wei-Chih Huang ◽  
William J. Knottenbelt

As the variety of execution environments and application contexts increases exponentially, modern software is often repeatedly refactored to meet ever-changing non-functional requirements. Although programmer effort can be reduced through the use of standardised libraries, software adjustment for scalability, reliability, and performance remains a time-consuming and manual job that requires high levels of expertise. Previous research has proposed three broad classes of techniques to overcome these difficulties in specific application domains: probabilistic techniques, out of core storage, and parallelism. However, due to limited cross-pollination of knowledge between domains, the same or very similar techniques have been reinvented all over again, and the application of techniques still requires manual effort. This chapter introduces the vision of self-adaptive scalable resource-efficient software that is able to reconfigure itself with little other than programmer-specified Service-Level Objectives and a description of the resource constraints of the current execution environment. The approach is designed to be low-overhead from the programmer's perspective – indeed a naïve implementation should suffice. To illustrate the vision, the authors have implemented in C++ a prototype library of self-adaptive containers, which dynamically adjust themselves to meet non-functional requirements at run time and which automatically deploy mitigating techniques when resource limits are reached. The authors describe the architecture of the library and the functionality of each component, as well as the process of self-adaptation. They explore the potential of the library in the context of a case study, which shows that the library can allow a naïve program to accept large-scale input and become resource-aware with very little programmer overhead.


Sign in / Sign up

Export Citation Format

Share Document