{'fraction_non_alphanumeric': 0.015482695810564663, 'fraction_numerical': 0.0036429872495446266, 'mean_word_length': 5.502958579881657, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Managing Variability as a Means to Promote Composability

Complex systems usually have to deal with a huge number of potential situations and contingencies. Therefore, a mechanism is required that enables the expression of variability at design-time so that it can be efficiently resolved at run-time. As composability plays an increasingly relevant role in building systems in an economic way, variability management should also contribute to and be taken into account in terms of composability. This chapter presents a variability management workflow aimed at supporting different developer roles in an ecosystem context. Two kinds of variability are addressed: in system operation and associated with quality of service. The former provides robustness to contingencies, while the latter focuses on the quality of the application (in terms of non-functional properties) under changing situations and limited resources. The concepts introduced in this chapter conform to the structures and principles of the H2020 European Project RobMoSys, which consolidates composability in the robotics domain.