{'fraction_non_alphanumeric': 0.014192139737991267, 'fraction_numerical': 0.0, 'mean_word_length': 5.238095238095238, '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}}
Methods for Modelling the Variability in Software Product Families

Variability is the ability of a system to be efficiently extended, changed, customised or configured for use in a particular context. There is an ever-growing demand for variability of software. Software product families are an important means for implementing software variability. A software product family may contain very large numbers of individual products. Consequently, methods for representing the variability and efficiently reasoning about it are needed. This thesis studies such methods: the goal of the thesis is to define a solid conceptual basis for modelling the variability in software product families, and to provide the concepts formal semantics in such a way that reasoning on the models is possible using existing inference tools. Major parts of the work have already been completed and documented in a number of publications.