From Early Requirements Modeled by the i* Technique to Later Requirements Modeled in Precise UML

Fernanda Alencar1, Jaelson Castro2*, Gilberto Cysneiros2 , John Mylopoulos3

1Universidade Federal de Pernambuco, Dep. Eletrônica e Sistemas, Brazil


2Universidade Federal de Pernambuco, Centro de Informática, Recife, Brazil

E-Mail: {jbc,gaacf}

3University of Toronto, Department of Computer Science, University of Toronto, Canada



Abstract. Requirements capture has been acknowledged as a critical phase of software development, precisely because it is the phase which deals not only with technical knowledge, but also with organizational, managerial, economic and social issues. The emerging consensus is that a requirement specification should include not only software specifications but also business models and other kinds of information describing the context in which the intended system will function. Unfortunately, the current dominant object oriented modeling technique, i.e. Unified Modeling Technique, is ill equipped for capturing early requirements which are typically informal and often focus on organisational objectives. UML is more suitable for later phases of requirements capture, which usually focus on completeness, consistency, and automated verification of functional requirements for the new system. In this paper, we present some guidelines for the integration of early and late requirements specifications. For the organizational modeling we use the i* technique, which focuses on the description of organizational relationships among various organizational actors, as well as an understanding of the rationale for the alternatives chosen. For the functional requirements specification, we rely on the precise Unified Modeling Language (pUML), annotated with constraints described in OCL. A small CD store example is used to illustrate how the requirements process iterates between the early and late requirements specification.

Keywords: Requirements Engineering, Object Oriented Development, UML, Early and Later Requirements