{'fraction_non_alphanumeric': 0.018537590113285273, 'fraction_numerical': 0.0, 'mean_word_length': 5.52013422818792, '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}}
Formal Requirements Specification: Z Notation Meta Model Facilitating Model to Model Transformation

Model Driven Software Engineering (MDSE) has become a widely adopted approach in software development industry. Besides other software development phases, specifying requirements formally, is a crucial activity for developing model based software systems. There exist a number of formal languages that can be used for formal requirements specification. However, these formal languages are hard to comprehend and difficult to use for formal specification. Nonetheless, in many researches, abstraction of these formal languages is required and their benefits are tremendous. Z Notation is a formal language which guarantees that the software system must meet regulations and standards by specifying clear and unambiguous requirements. This leads to a high quality software and greater user satisfaction. However, formal languages are not welcomed with UML models because of rigorous use of mathematics. A bridge is required to minimize the gap between UML and Formal Requirements Specification languages. Therefore, we have presented a meta-model of a relatively mature and widely used Z Notation so that it may facilitate the future researchers by providing a reasonable level of abstraction. This paper aims to reduce the overhead of comprehension of formal language i.e. Z notation and to facilitate model-to-model transformations (source model: UML model, target model: Z Notation model). Further, we have validated the proposed meta-model via case study using UML Use Case. It has been demonstrated through case study that the Meta model facilitates shared understanding among stakeholders and facilitates model to model transformation leading to unambiguous requirements specification but can also be automated for the model based development of such a system which transforms informal requirements into formal Z-Notation specifications.