{'fraction_non_alphanumeric': 0.022288261515601784, 'fraction_numerical': 0.0, 'mean_word_length': 5.1506849315068495, '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 data model for requirements analysis

The use of a proper data model is a way to introduce rigour in requirements analysis, traditionally considered the most informal stage of software development, and responsible for the more costly errors. Several data models have emerged, but their comparative value is unclear. We think that an appraisal is only possible if the nature — and not only the goal — of requirements analysis is clearly perceived. We investigate this point and emphasise that requirements analysis is an activity of acquiring real-world knowledge, thereby forming a theory in which objectives can be stated and a solution specified. A suited language should thus restrict as little as possible the freedom of expression when describing some part of the world. A number of requirements are derived from this statement, such as the possibility to describe individual objects, as well as groups of objects, to explicitly refer to a global continuous time, to handle undefinedness, to allow simultaneous events, etc. When assessing the various existing data models with respect to these requirements, the entity-relationship model is found a suitable basis, but still lacking essential features. We extend it in a model called ERAE (entity, relationship, attribute, event), which is presented informally and illustrated on examples.