Applying XML technologies in Requirements Verification * Amador Durán Antonio Ruiz Rafael Corchuelo Miguel Toro Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla, Avda. Reina Mercedes s/n 41012 Sevilla, España e-mail: {amador,aruiz,corchu,mtoro}@lsi.us.es Abstract In this paper, we present an approach for the automatic verification of software requirements specifications. This approach is based on the representation of software requirements in XML and the usage of the XSLT language not only to automatically generate requirements documents, but also to verify some desired quality properties and to automatically compute some defect–predictive metrics. These ideas have been implemented in REM, an experimental requirements management tool that is also described in this paper. Keywords: Requirements Engineering, Requirements Verification, XML, XSLT 1 Introduction Quality related activities in the requirements engineering process are basically requirements analysis, require- ments verification and requirements validation (see the UML activity diagram of figure 1). In these three activities, requirements evolve from draft to managed, i.e. baselined, eliminating conflicts and defects during their evolution. During requirements analysis, the main goal is detecting conflicts, which will be handled by the require- ments negotiation process, and gain a deeper understanding of the requirements. The usual technique for achieving this goal is conceptual modeling [15]. During requirements verification, and paraphrasing Boehm [6], the goal is answering the question "Am I building the requirements right?". More formally, Pohl [19] defines the goal of requirements verification as checking the requirements according to desired quality properties. Some of these requirements quality proper- ties have to do with requirements semantics but others have to do with syntactic, structural or pragmatic aspects of requirements (see [13] for a complete classification of quality properties of requirements). The lack of the semantic properties causes knowledge errors whereas the lack of non–semantic properties causes specification errors, as described in [12]. On the other hand, the goal of requirements validation is also defined by Boehm as answering the question "Am I building the right requirements?". Pohl defines it as certifying that the requirements are consistent with the intentions of customers and users. Verification of semantic properties of requirements is closely related to requirements validation and requires human participation, whereas verification of non–semantic properties should be as automated as possible. As a matter of fact, distinction between requirements verification of semantic properties and requirements validation is sometimes subtle and many authors use both terms interchangeably. In this paper, we present an automated approach for the verification of some quality properties of require- ments and for the automatic computing of some defect–predictive requirements metrics. Most of these proper- ties can be classified as non–semantic, but we have also developed some heuristics to check potential problems * This work is partially funded by the CICYT project TIC 2000–1106–C02–01 (GEOZOCO) and by the CYTED project VII.18 (WEST).