{'fraction_non_alphanumeric': 0.01970865467009426, 'fraction_numerical': 0.0, 'mean_word_length': 5.561797752808989, '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}}
Adaptive and Evolvable Software Systems: Techniques, Tools, and Applications

A longstanding goal of software developers is to construct programs that are easily modified and extended. One example is the ideal that each change in a design decision would require only modifications to one module of a program. As demands for software increase, future requirements will necessitate new strategies for software development tools and techniques which better support adaptation and evolution. Software's ability to adapt is actually partitioned among two stages: modifiability during development, and adaptation during execution. The first type of adaptation is concerned with design-time, or compile - time, techniques that permit the modification of the structure and function of a software representation in order to address changing stakeholder requirements. The first session of this mini-track contains papers that address this form of adaptation. Katrina Falkner et al., introduce work on separating policy mechanisms between components to support evolution. Hassan Gomaa and Diana Webber present four different approaches for modeling variability in product-lines.