Guiding the Process of Requirements Elicitation with a Semiotic-based Approach  A Case Study M. Cecilia C. Baranauskas Institute of Computing, Unicamp Cx. Postal 6176 13083970 Campinas, SP, Brazil cecilia@ic.unicamp.br Juliano Schimiguel Institute of Computing, Unicamp Cx. Postal 6176 13083970 Campinas, SP, Brazil juliano.schimiguel@ic.u nicamp.br Carlos A. C. Simoni Institute of Computing, Unicamp Cx. Postal 6176 13083970 Campinas, SP, Brazil carlos.simoni@ic.unicamp.br ClÆudia Bauzer Medeiros Institute of Computing, Unicamp Cx. Postal 6176 13083970 Campinas, SP, Brazil cmbm@ic.unicamp.br Abstract Requirements Engineering (RE) is the process of discovering the purpose of a prospective software system, by identifying stakeholders and their needs, and documenting these in a form that is suitable to analysis, communication, and subsequent implementation. Requirements elicitation is closely related and even interleaved to other RE activities such as: modeling, analysis & negotiation, and communication of requirements. RE is a multi- disciplinary and human-centered activity. This paper presents a participatory approach to requirements elicitation that deals with functional and non-functional requirements considering social, political, cultural and ethical issues involved in understanding the problem in the process of RE. The proposed approach is theoretically grounded in methods and models from Organizational Semiotics. The proposed approach is illustrated with a case study related to the development of an application of Geographical Information Systems in the Web (Web GIS). Results of the case study allowed us to observe the contribution of OS in the proposed approach, including elements to inform the user interface design of the system. 1 Introduction Software requirements have been recognized in the past 25 years to be a real problem in software systems development. Literature has pointed out that inadequate, inconsistent, incomplete, or ambiguous requirements are numerous and have a critical impact on the quality of the resulting software (Lamsweerde, 2000). The primary measure of success of a software system is the degree to which it meets the purpose for which it was intended. Broadly speaking, requirements engineering (RE) is the process of discovering that purpose, by identifying stakeholders and their needs, and documenting these in a form that is suitable to analysis, communication, and subsequent implementation (Nuseibeh and Easterbrook, 2000). There are a number of inherent difficulties in this process. Stakeholders (including paying customers, users and developers) may be numerous and distributed. Their goals may vary and conflict, depending on their perspectives of the environment in which they work and the tasks they wish to accomplish. Their goals may not be explicit or may be difficult to articulate, and, inevitably, satisfaction of these goals may be constrained by a variety of factors outside their control. Moreover, non-functional requirements have been presented as a second or even third class type of requirement, frequently hidden inside notes and therefore, frequently neglected or forgotten (Cysneiros and Leite, 2002). This paper presents a semiotic-based method for requirements elicitation that deals with functional and non-functional requirements considering social, political, cultural and ethical issues involved in understanding the problem in the process of RE. Our approach is based on the Organizational Semiotics (OS), a branch of Semiotics that studies organizations using concepts and methods from Semiotics (OSW, 1995). The rationale behind for OS is based on the assumption that any organized behavior is affected by the communication and interpretation of signs by people. OS understands the internal activities of an organization, including its information systems and its interactions with the environment, as a semiotic system (Liu, 2000). Our approach is based on MEASUR, a set of Methods for Eliciting, Analyzing and Specifying User Requirements. The case study reported in this work is based on PAM (Problem Articulation Methods) and SAM (Semantic Analysis Method). PAM comprises a set of techniques that can be applied in the initial stages of a project, to support the definition of system units that are validated by the interested parts.