{'fraction_non_alphanumeric': 0.016267942583732056, 'fraction_numerical': 0.0, 'mean_word_length': 5.263473053892215, '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}}
Evolution of features and their dependencies — An explorative study in OSS

Release Planning is the process of decision making about what features are to be implemented (or revised) in which release of a software product. While release planning for proprietary software products is well-studied, little investigation has been performed for open source products. Various types of feature dependencies are known to impact both the planning and the subsequent maintenance process. In this paper, we provide the basic layout of a method to formulate and analyze feature dependencies defined at the code level. Dependencies are defined from evolutionary analysis of the commit graph of OSS code development and syntactical dependencies. We demonstrate our method with an explorative study of an open source project, the Spring Framework. From the analysis of the development cycles of two major releases over forty-one months, we could correlate late, increased feature dependencies with an increased number for subsequent improvements and bug fixes.