{'fraction_non_alphanumeric': 0.019762845849802372, 'fraction_numerical': 0.0, 'mean_word_length': 5.443636363636363, '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}}
A metrics-based approach to the automated identification of object-oriented reusable software components

Software reuse has been a long term goal of software developers. This goal has been rather elusive, but the widespread use of the object-oriented paradigm and other innovations in software development paradigms have led to renewed interest in this topic. 
This dissertation describes a new approach for the identification of reusable object-oriented legacy software components. The approach is concept-driven, knowledge-based and tool-assisted and uses heuristics to aid in the natural language understanding of comments and identifiers in object-oriented code. The approach uses a reusability quality factors hierarchy, where low-level object-oriented metrics are used to predict reusability quality factors. 
The automation of this approach is provided by the Program Analysis Tool for Reuse (the PATRicia system), which is a software tool that aids in program understanding and metrics analysis. It consists of the Conceptual Hierarchy for Reuse including Semantics (CHRiS) tool, which uses a knowledge-base in the form of a conceptual-graph based semantic net in the natural language understanding of comments and identifiers, and the Metrics Analyzer tool which calculates object-oriented metrics that are then used to predict reusability metrics. 
These tool-aided methods are shown to work well by identifying and qualifying reusable components in several real world graphical user interface packages. This approach demonstrates that the identification of object-oriented legacy software components can be made significantly easier and more quantifiable than is possible using earlier techniques, which will aid greatly in promoting effective software reuse.