{'fraction_non_alphanumeric': 0.019822282980177717, 'fraction_numerical': 0.0, 'mean_word_length': 5.624434389140271, '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}}
Refining the axiomatic definition of internal software attributes

Several internal software attributes, like size, structural complexity, cohesion, coupling, have been introduced and used to reason about software engineering artifacts, and many measures have been proposed for them. Internal software attributes are important because they are believed to be related to quantities of industrial interest, like the number of defects or the development effort. However, the definition of internal software attributes still needs to be made more precise and formal, so measures can be defined that really quantify the attributes they purport to measure. In this paper, we extend, simplify, and refine an existing axiomatic approach that characterizes each internal attribute rigorously via a different set of axioms. This paper makes three specific contributions. First, the new proposal captures a larger set of aspects of software artifacts that may be relevant for internal software attributes than the original proposal did. Second, we identify the basic, foundational sets of axioms for each internal attribute studied, from which the other properties of the attribute can be derived, so the intrinsic properties of the attribute and their implications can be understood. Third, we investigate some relevant relationships among internal software attributes, so their similarities and differences, which are sometimes not well identified, are made more explicit.