Information Technology Reference
In-Depth Information
2.2
Adaptive Requirements and Continuous Adaptive RE (CARE) Framework
To support the analysis at design-time, we proposed adaptive (functional or non-
functional) requirements . They have some degree of flexibility in their achievement
conditions, which in turn requires the monitoring of the specification, while taking into
account the changes in the operating context, evaluation criteria and alternative software
behaviors [16].
More recently, we have proposed a Continuous Adaptive Requirements Engineering
(CARE) framework [17,18,19] that views adaptive requirements as runtime artifact that
reflect the system's monitoring and adaptation capabilities. RE is performed at runtime
by updating initial requirements with new ones, or by removing requirements.
We proposed a classification of adaptation types in the CARE framework, that can
be performed by the system itself or by involving the user (both the end-user or the de-
signer) [19]. Mainly, type 1 and 2 adaptations are performed by the system itself, type
1 corresponds to system exploiting existing available solutions when needed, where
type 2 is related to monitored information i.e. exploiting it to evaluate changes and se-
lect alternative solution. Type 3 and 4 adaptations involves users. In type 3 end-users
may express new requirements or change existing ones at any given time, by giving
input information correspondingly system analyzes it by finding solutions (adapts) for
new/refined needs of the end-users. In type 4, requirements for which there are no possi-
ble solutions available analyst/designers are involved for offline evolution of the system.
3
Runtime Requirements Adaptation Problem
Various definitions of SAS have been offered in the literature. We remain aligned with
the usual conception, namely, that a SAS is a software system that can alter its behavior
in response to the changes that occur dynamically in its operating environment. The
operating environment can include anything that is observable by the software itself
including operational setting in a context, end-user's input, profile and resources.
SAS must be “aware” at runtime of the changes in requirements, its operating con-
text, and in the availability of resources. SAS at runtime need the ability to sense
changes. We interpret this as a sort of RE that we call “RE@runtime”, where SAS plays
- to the feasible extent - the role of an analyst. It has a representation of requirements, of
the conditions in its operating contexts (acquired through sensors, for instance), and of
the resources it uses. It can add, remove, or otherwise change these, depending on the
changes detected through interfaces with the users, environment, and resources. New
information thereby acquired can affect the “requirements problem” leading the SAS
to query the user for new requirements, or otherwise adapt following the adaptation
types [19]. E.g., (a) select a predefined available behavior or look for an alternative
behavior the SAS has been designed and implemented for, by exercising its internal
monitor-eval-adapt loop (i.e., adaptation types 1 and 2); (b) compose a new solution by
exploiting knowledge on available services or explicitly acquired through user's input
or change in context (i.e., adaptation type 3); (c) if no solution can be found for the new
information, SAS must inform the user for further instructions (adaptation type 4).
 
Search WWH ::




Custom Search