{'fraction_non_alphanumeric': 0.0124282982791587, 'fraction_numerical': 0.0, 'mean_word_length': 5.711538461538462, '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}}
Quality improvement through the identification of controllable and uncontrollable factors in software development

The software engineering community has moved from corrective methods to preventive methods shifting the emphasis from product quality improvement to process quality improvement. Inspections at the end of the production line have been replaced by design walkthroughs and built-in quality assurance techniques throughout the development lifecycle. Process models such as the Spiral, V, W and X-Models provide the principles and techniques for process improvement which, in turn, produces product improvement. 
 
Factors that affect the quality of software need to be identified and controlled to ensure predictable and measurable software. In this paper we identify controllable and uncontrollable factors and provide empirical results from a large industrial survey, as well as conclusions relating to the models and metamodels for the estimation, measurement and control of the totality of features and characteristics of software.