{'fraction_non_alphanumeric': 0.02432667245873154, 'fraction_numerical': 0.0, 'mean_word_length': 5.0, '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}}
Who Reuses What? C++ Libraries and Programmer''s Traits

Software Reuse is one key to increasing productivity within the software development process. By reusing existing software, time and effort are saved in the coding, testing, and maintenance phases of a software product. The goals of this research involve examining the process of software reuse and attempt to characterize it. A set of experiments have been run to determine the effects of software reuse in the object oriented paradigm. This paper focuses on the traits of reusers, what type of reuse they perform, and the common characteristics of the classes being reused. In particular, the traits of programmers who reuse often are identified as well as the traits of those who reuse infrequently. Also, do programmers perform black box reuse (reusing library classes without modification) or do they perform white box reuse (using inheritance to modify a library class to the desired functionality) or do they reuse at all? Lastly, a first attempt at characterizing the reusability of a C++ class is presented. Several traits are identified as making a class more reusable to programmers.