{'fraction_non_alphanumeric': 0.014583333333333334, 'fraction_numerical': 0.0, 'mean_word_length': 5.864285714285714, '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}}
Cognitive deficiencies in software library design

If the role of software libraries is to communicate information about software artefacts between software engineers, it is vital that the information be stored in such a manner as to be readily understandable. The designs of existing software libraries present several cognitive impediments to a software engineer, hindering the understanding of library organisation and content. In this paper, a focused review of existing software libraries is undertaken. Shortcomings of the designs of existing software libraries and resulting cognitive deficiencies are identified. The design problems to be discussed are: the hiding of underlying library structure, the inadequacy of component interfaces, the problems of querying large collections, and the subjective nature of component organisation. Having encountered these problems with existing software libraries, some avenues for alleviating them are identified.