Keywords

1 Introduction

Adaptability is emerging as an important type of non-functional requirement (NFR) for just about any system, including information systems, embedded systems, e-business systems, and the like. It represents the system’s ability to accommodate changes in its environment - in order to succeed or even to survive [1]. Especially in the service design phase, there is the additional requirement for high system adaptiveness along different technical requirements and different user expectations [2]. Complementary to the basic qualities (functionality, reliability, ease of use, economy and safety) there are extra qualities, NFRs or soft-goals – flexibility, reparability, adaptability, understandability, documentation and enhanceability [3, 4].

The ability for system to change is essential to its continued survival and ability to provide requisite functions for its stakeholders [5] either through evolutionary [6] or goal-seeking, deliberate adaptation [7]. According the NFR (non-functional requirements) framework [3], there are functional requirements specifying ‘what’ should be achieved, and non-functional requirements - specifying ‘how’ outcomes will be achieved. Generally, the NFRs are “informally stated, often contradictory, difficult to enforce during development and evaluate for the customer prior to delivery” evaluated subjectively and qualitatively (‘satisfying’ or ‘not satisfying’) [8]. Adaptability as NFR is defined as the ease of system/component modification, modification of behavior in response to environment changes, adjustment to changing requirements [5].

Capability Driven Development (CDD) applies enterprise models representing enterprise capabilities to create executable software with built-in contextualization. It attempts to overcome the limitations of Model Driven Development (MDD) towards more suitable capture of business requirements, modeling execution contexts, offering functionality in different business contexts, capturing dynamic behavior of both functional and non-functional requirements – all of which enabling ‘plasticity’ in software applications that are business context aware [10]. It situates itself in complex and dynamically changing business environments, incorporating principles of agile and iterative IS development thus enabling continuous dynamic business-IT alignment in a structured and systematic way, using the concept of business capability. CDD aims for rapid response to changes in the business context and development of new capabilities which also requires run-time configuration and adjustment of the IS [11,12,13].

The external environment in which we operate is complex and unpredictable, portrayed in the Cynefin framework [14,15,16,17,18], and the Stacey matrix [19,20,21] (Fig. 1). This imposes specific considerations to deliver dynamic capabilities, in terms of managerial approach, internal environment as Complex Adaptive Systems (CAS) [22].

Fig. 1.
figure 1

The Cynefin Framework and recommended managerial approaches for complexity (left) [16, 60] and Stacey Matrix and managerial approaches for complexity (right) [20, 21]

This paper compiles a novel qualitative evaluation framework that investigates adaptability for complexity, using the case of the CDD as state of the art methodology designed for function in complex and unpredictable environment, through its incorporation in the CaaS project, as one of its most comprehensive, robust and exemplary implementations. Using this evaluation prism we detect and point out the existence of components of adaptability in CDD methodology (element and architectural) through 3 dimensions, and instigate future directions to improve CDD methodology and its effectiveness in supporting context-aware, self-adaptive platforms that model and deliver dynamic capabilities, such as CaaS.

The paper is structured as follows: In Sect. 2 we are discussing the main concepts of adaptation, adaptability and adaptiveness, meaning, names; as well as how they can be achieved and measured. In Sect. 3 we are decomposing the evaluation prism to aspects that ought to be incorporated in the adaptability components (on architectural and element level) and investigating in qualitative manner their existence, implicit incorporation or non-existence in the CDD methodology through 3 dimensions. Section 4 concludes the evaluation, assembles the recommendations for improvement, opening horizons for future multidisciplinary research.

2 Main Concepts

Adaptability and Adaptation.

‘Adaptation means change in the system to accommodate change in its environment‘ [8, 9]. “Adaptation of a system (S) is caused by change from an old environment (E) to a new environment (E’) and results in a new system (S’) that ideally meets the needs of its new environment (E’)” [9]. Adaptability involves three tasks: environment change detection, system change recognition and effectuating system change. The environment can be observed as inner and outer and changes can derive from it all – with regards to Complex Adaptive Systems [23,24,25,26]. Some changes entity needs to adapt to, but also changes being initiated in order to reach purpose(s), goal(s) – in the sense of evolutionary and revolutionary learning and adaptation as well as double loop learning [27,28,29]. The route of changes within the organization range from changes on operational level, or in resources, changes in goals, expectations, principles, KPIs [30].

Adaptability, from systems engineering perspective, as architectural property, is defined as: ‘Degree to which a product or system can effectively and efficiently be adapted for different or evolving hardware, software or other operational or usage environments’ [5]. “A characteristic of a system amenable to change to fit altered circumstances, where ‘circumstances’ include both the context of a system’s use and its stakeholders’ desire” is definition of adaptability by [31]. Adaptability as ‘degree to which adjustments in practices, processes or structures of systems are possible to projected or actual changes of its environment’ [32, 33] has the elements of what it is (degree of adjustment), to which changes it responds (projected or actual), and how it can be achieved (through adjustments in practices, processes or structures). In taxonomy of service qualities (described as a behavior), adaptability is alongside availability, assurance, usability, interoperability, scalability, portability, extensibility [34, 35]. In [5] it is in changeability, and in COBIT [36], it is into supportability. The authors [37, 40] use adaptability and flexibility as concepts. In [41] ISO/IEC 25010:2011 for Systems and software Quality Requirements and Evaluation (SQuaRE), the definition of flexibility as ‘adapting a product for additional user groups, tasks, cultures, enabling products to take account of circumstances, opportunities and individual preferences that had not been anticipated in advance’ fits best.

Achieving and Measuring Adaptation.

Our next point of interest is to analyze various approaches achieving adaptation. Today’s CAS are ‘socio-technical, characterized by the interplay between social and technical components, consisted of human actors but also software, hardware; representing the environment (the context) to which systems need to be aware of and functioning in. Context is the current state of the user or system to the objects in their surrounding environment. Human and automatic components are involved in the process of identification of and response to the context. Contextualization is used as a way to allow adaptation to changes both at design time and at run-time’ [42]. Adaptation is done through monitoring and actuation. A system is adaptable if it can be altered by someone, while adaptive if it can sense the need and generate the alteration from within itself.

Rule-based adaptation, as analyzed in [43, 44] recognizing ‘content analysis rules, content adaptation, corrective, enhancing, fuzzy, integration, monitor, production, matching rules’. They are directed towards various entities (concerning adaptable software) such as process adaptation, workflow and service-flow adaptation, content, GUI/AUI, software configuration, features adaptation. Adaptability transformations enable implementing simple and complex transformations through composition of basic refactoring; sensors and effectors; and design patterns [45,46,47,48].

Variability in the field of requirements engineering, variability analysis focuses on ‘prioritizing one or few possible solutions to be implemented in the final product, with the strive to enable users to adjust and adapt the product as needed’ [37, 49].

The Tropos development methodology in information system design is based on i* organizational modeling framework, through early requirements, late requirements, architectural design and other detailed dependencies [37]. [38,39,40] use mapping and measurement of adaptability, turbulence and adaptability indices, focused mainly on the external environment and business dimension. Founded on CAS approach, the analysis of IS architecture complexity paralleled with IS efficiency and flexibility (as opposing characteristics that can be mediated by evolutionary and revolutionary IS change), is the approach of [50]. Research in CAS specificity incorporates top-down ‘official’ and bottom-up ‘emergent’ co-evolutionary adaptation of information systems design with changing user requirements towards effective system design [51]. PAWS as framework for executing adaptive web-service processes [2, 52] aims for ‘self-configuring, self-optimizing, self-healing, self-protecting computing systems’.

Through decomposition of the NFR of interest the POMSA framework (Process-Oriented Metrics for Software Architecture [9]) investigates adaptability of system’s components, connections, patterns, constraints, styles that reflect changeability (decomposability, cohesiveness, understandability, simplicity), replaceability, reusability.

Important aspects of the adaptability of any system are controls ranging from classic, advanced, knowledge-based, game/queuing theory controls, feedback and feed-forward controls [51, 53, 54]. Authors [55,56,57], distinguish: semantic, syntactic, contextual and quality adaptation; [1, 8, 9] recognize: element and architecture adaptability incorporating effectors and adaptors and signature level (level of the entity), protocol level, service level and semantic level of adaptation.

3 Evaluating Adaptability of Capability Driven Development (CDD) for Complex Environment

The main challenges designers of CDD methodology have in front of themselves [10, 11, 13] in the CaaS implementations, are what CDD methodology should achieve: to model the desired capabilities using dynamic capabilities that contain variability; to model the impact of context; towards context-aware self-adaptive platform.

The primary purpose [58] of the CDD methodology is directed towards increasing the value of business services by providing efficient development methodology and capability management lifecycle to continuously design and deliver capabilities that are adjusted for the context of use. We will be examining the adaptability components both through element and architectural prism, in an attempt to perceive how CDD methodology can achieve semantic, syntactic, contextual and quality adaptation on conceptual level, as being implemented and enhanced by the CaaS project.

The three main dimensions for achieving adaptation in complexity that represent frame of analysis are: Complexity of the environment (External and Internal), Managerial (Strategic, Tactical, Operational) profiling, Artifact-integrated components.

These three dimensions incorporate a set of interrelated and complex aspects that need to be present on architectural and elementary level of a CDD-like methodologies to achieve higher level of adaptability as necessary NFR for addressing complexity. The qualitative assessment of the important aspects that compose the dimensions is threefold: ‘Satisfying (+/+)’, ‘Semi-satisfying (+/–)’, ‘Non-satisfying (–/–)’. The evaluation results with starting points for improvement of certain aspects of the methodology towards greater adaptability for complexity (Table 1).

Table 1. Main dimensions and their interrelated aspects for analyzing and evaluating adaptability as non-functional requirement, case of CDD methodology

Dimension 1.

The external environment is consisted of interrelated agents networked together (in known and unknown manner to the observer, manager, facilitator) producing emergent effect where cause and effect, only coherent in retrospect. Its complexity is perceived in the incomplete knowledge for all the external and internal relations among the entities and here Probe-Sense-Respond strategy fits best (Cynefin framework [14,15,16,17,18] (Fig. 1, left)). In the Stacey matrix [19,20,21] (Fig. 1, right), which considers certainty of outcome and agreement on outcome for various management approaches (relevant here through the decision logic incorporated in CDD), the zone of complexity enlists un-programmable decision making, ‘outcomes’ instead of ‘outputs and solutions’. Organizations as socio-technical Complex Adaptive Systems (CAS) are the internal complex environment. CAS characteristics of nonlinearity, self-organization, emergence, co-evolution initiate a question: how do we facilitate a complex adaptive system towards purpose(s) and emergent effects? CAS need to be addressed with (1) simple rules, (2) moderately dense connections, (3) human rules on how to detect information, how to interpret information, how to act in response [22].

In the example of [13] ‘the search for error’ approach in method component for context modeling exists in definition of exception types, investigation, development, linkage with the context sets; run-time adaptation options. This supports un-programmable decision making and identification-development-selection approach in CDD. ‘Probe’ is missing of the Probe-Sense-Respond and is assessed as (+/–).

In the example of [61], CDD’s runtime adaptation options range from fully automatic, semi-automatic, to manual – where the system discovers change needs but the change in itself is too complex to implement and human intervention is needed to handle the situation [61]. CAS specificities towards emergent effect, as well as loose relations and dependencies, alternative influence on other capabilities, business goals [68] are not fully incorporated in the design or exhibited in the implementations (+/–).

CDD in the example [69] uses the Onion framework portraying all considerations taken into account in the architectural design and clarifying that the context is not the only source of variability incorporating broad business ecology (+/+) through a scope of entities that describe and detect the context considering invariant characteristics such as domain, entity, problem, dynamic processes. In component 1 of the architecture of the CDD environment for context modeling, it is clearly visible that the inputs, the data providers can be internal and external, while contextual elements are captured in multifaceted manner (device, user, task, data source, document representation, time, geo-location) – ensuring comprehensive multifaceted context capture (+/+).

The adaptability loop Sense-Interpret-Decide-Act (SIDA) or OODA, is effectuated through the CDD actions of capturing context (Sense/Observe) – use patterns & predict (Interpret/Orient) – decision logic (Decide) – runtime adjust, pattern update, deploy(Act) (Fig. 2 (left). However, the loop detects changes in external context, the system continues to reason according pre-defined decision logic on how to react. If we expand the need for the system to detect the changes in expected outcomes (KPIs, goals) and reconfigure accordingly, it may have limited response within a ‘given’ set of alternative reactions, requiring new system instance. The top-down approach should be combined with bottom-up and lateral learning (Fig. 4). Plan-Do-Check-Act loop is the one necessary to initiate deliberate changes or model planned responses (evolution and adaptation management). For complex environment, it may have been better situated on secondary level, immediately after the execution, in the process of learning (Fig. 4). Its existence is sufficient mechanism for deliberate change (Fig. 2 (right)) assessed as (+/+). Adaptation and evolution management are in perfect constellation for context-aware CDD. Applicability in various contexts is directly handled by method extension for evolutionary development of capabilities delivered as software service bundles where the system allows the client switch from one configuration to another to adapt to changes.

Fig. 2.
figure 2

Capability Driven Development Methodology (left) [10], and Processes involved in runtime adaptation (right) [59]

Dimension 2.

Clarification and proper addressing of the managerial functionsstrategy, tactics, operations is especially important for complexity. CDD binds with strategic management and operationalizes directly. For tactical and strategic management, it needs better focus (+/–). ‘Purposive system is multi-goal- seeking system whose goals result with the system’s purpose. This type of system can pursue different goals but it does not select the goal to be pursued. It does choose the means by which to pursue its goals. Purposeful system is one which can change its goals, it selects ends as well as means, and thus displays will.’ [64] CDD methodology supports development of purposive systems – dynamically reconfiguring towards goals, primarily changing own behavior, by choosing means to pursue goals. It doesn’t, aim to offer purposeful search for goals and strategy (+/–). CDD expects stable strategy [59], given goals [66] and KPIs providing dynamic capabilities. To avoid the mismatch between systems and their models [27, 64] we need not to rely not just on simple/complicated (but deterministic) mechanistic relations among entities and among outputs (+/–). CDD follows top-down the business model, enterprise architecture, context and capabilities - which are consisted of qualitative and quantitative values. Goals and KPIs are values and ranges, with ‘hard-coded’ decision logic and measurable properties [67], but there is a lot of space for adding qualitative inputs to relate to reality. Goals and KPIs are mixture of outputs and outcomes, in qualitative and quantitative terms (evaluated with (+/–)). A goal model in example [10] declares ‘to promote the usage of the services’ (Fig. 3, left) as qualitative output (put all efforts into promoting usage of the services) decomposed as: promote service usage in service catalog, increase the number of services used, number of citizens, reduce number of paper submissions. Outcome would be ‘achieve increased usage of services by X% by customer Y’ portraying mixture of outcomes/outputs with mostly quantitative KPIs. In reality, these issues cannot and should not be quantifiable, but combine with qualitative information towards adaptive management on ‘how’ to make choices.

Fig. 3.
figure 3

To promote usage of the municipality services (left) [10], and Generic goal model for building operator (right) [59]

Dimension 3.

CDD has numerous important components integrated in its core providing adaptability. Adaptability transformations, evaluated with (+/+) help adaptability at most granular level, like refactorings, creational transformations required by sensors and effectors complementing variability which requires existing variables receiving various parameters in introducing new blocks to be composed dynamically at run-time striving to enable users adjust and adapt the product as needed [37]. Adaptation as adjustment on baseline level (case study [13]) incorporates scheduled and event-based adjustment coordinated through integrated procedure, use/re-use the constant multiple instances [13]. Positive and negative feedback in capability delivery adaptation can be triggered by search based adaptation allowing deliberate adaptation as structural adjustment [65], with context modelling in alternative method pathways and in the capability pattern lifecycle. Here predictive analysis runs adjustment algorithm that adapts capability delivery in response to changes in context to meet capability delivery goals (evaluated with (+/+)). CDD method extension with strategies: Global-as-local, assuming overall optimization changing behavior of local system which requires information about global one; Local-as-Global, assuming local systems adapting behavior using only their local context information makes bridge human intervention and re-alignment of strategies across the ecosystem. Patterns in CDD are reusable solutions for reaching business under different situational context [13]. In the example [62] they filter contexts and perspectives relating with complex environment where the probe-sense-respond approach is recommended. Patterns are recommended initially according the capability structure, currently applied patterns and contextual conditions, but CDD can also provide run-time recommendations of other patterns to perform better in given context and situation. However, patterns in CDD are mostly perceived for efficiency, while in complexity, patterns also help orient, gain knowledge about the context, how to make proper moves in the solution space [63] (+/–).

4 Conclusion

CDD methodology incorporates many necessary components and traits on element and architectural level to support development of context-aware self-adaptive platforms delivering dynamic capabilities (Fig. 4). Dimensions of adaptability as NFR for complex environment reflect complexity of the environment (external, internal), managerial profiling and artifact components influencing semantic, syntactic, contextual and quality adaptation. CDD has SIDA & PDCA loops necessary for evolutionary and goal-seeking adaptation to crawl through the problem/solution space; multifaceted context capture, open information flows from broad business ecology to detect changes, effectors to address them; diverse range of adaptability transformations to provide extensive variability; modularity. Envisioned improvement points suggested here are in direction of CDD methodology configuration to face unstable strategy in dynamic reconfiguration of capabilities, design to learn bottom-up, laterally and top-down. The Interpret-Decide stages (of the SIDA loop) can be enhanced – detection and configuration of patterns should transcend the notion of using them for efficiency but also effective situation awareness about the context and the solution space. CDD needs to combine qualitative and quantitative information in unprogrammable decision making, through clarification of outcomes (customer-back defined and accomplishment of purpose) or outputs (company-forward definition and judgement of accomplishment of goals), especially on strategic and tactical level where the decision logic, purposefulness or purposiveness of the managerial function play role. And last, but not least, adaptive and adaptable denote different abilities – and different systems’ behavior. In this paper we investigated adaptability of CDD methodology, while the true adaptiveness of socio-technical artifacts, is predominantly unaccomplished mission.

Fig. 4.
figure 4

CDD Methodology [59] and adaptability needs for complex environment