[en] The research and development reported in this final-year project addresses the field of software engineering. To be precise, the project analyses the requirements activities and working methods used in the open source software (OSS) development process and by OSS user and developer communities. Although OSS is now becoming very popular among users and in industry, it is still unclear what really makes OSS development processes and their products successful. The purpose of this study is to determine whether, compared with the traditional software engineering requirements process, the activities performed as part of the requirements process in OSS communities are one of the OSS success factors. The requirements process is one of the early stages of a project and is essential since it defines the functionality of the software to be developed and supports project adaptation and evolution. Specifically, the objectives of this project are precisely to analyse and determine how the processes and activities related to requirements engineering are enacted in OSS communities compared with traditional requirements process activities. After describing the state of the art in OSS and conducting a preliminary study of traditional software requirements engineering activities, we selected several OSS communities as case studies. We thoroughly investigated and analysed the requirements activities of elicitation, analysis, specification and management in OpenOffice, Mozilla, NetBeans and Eclipse, which are communities with thousands of participants. In smaller communities, like DoubleCommander, FileZilla and Social Network Manager, we examined the contribution process from the point of view of a developer. The results cannot be generalized because the case studies are limited. Even so, the results clearly highlight the differences between the traditional process and the processes enacted in the analysed OSS communities. Specifically, the traditional process is a specified and controlled process with well-defined activities, whereas OSS does not adhere to any standard or rule as indicated by the absence of formal documentation. In OSS communities, users sometimes collaborate under the supervision of administrators or moderators, and decision-making may be stricter depending on the number of members and the type of government. viii By studying the requirements process enacted in OSS development it is possible to understand OSS practices in which both users and developers participate. This project determines how requirements can be communicated and managed through online infrastructures such as forums, mailing lists, newsgroups, wikis, and how contributions are made through tools accessible from the Web. These practices are transferable to the traditional development process in either the development or the maintenance phase. Familiarity with the OSS development process is useful for future OSS project volunteers as they learn how communities develop software. This is beneficial for the creation and evolution of successful new projects.

[es] El propósito de este trabajo es determinar si las actividades que se llevan a cabo en el proceso de requisitos en comunidades OSS, a diferencia del proceso de requisitos de la Ingeniería del Software tradicional, es una de las claves del éxito del software de código abierto. El proceso de requisitos forma parte de la etapa inicial de un proyecto y es imprescindible puesto que define las funcionalidades del software a desarrollar y da soporte a la adaptación y evolución del proyecto. En concreto, los objetivos de este trabajo consisten, precisamente, en analizar y determinar cómo se llevan a cabo los procesos y actividades relacionadas con la Ingeniería de Requisitos en comunidades OSS y compararlas con las realizadas en el proceso de requisitos tradicional. Después de describir el estado del OSS y realizar un estudio previo sobre las actividades de la Ingeniería de Requisitos en el software tradicional, se seleccionan cuatro comunidades OSS como casos de estudio: OpenOffice, Mozilla, NetBeans y Eclipse. Se trata de comunidades con miles de participantes, donde se procede a investigar y analizar de forma detallada las actividades de educción, análisis, especificación y gestión de requisitos. En otras comunidades más pequeñas: DoubleCommander, FileZilla y Social Network Manager, se estudia el proceso para realizar una aportación desde el punto de vista de un desarrollador. No podemos generalizar los resultados puesto que los casos de estudio son reducidos. Aun así, en los resultados obtenidos podemos observar claras diferencias entre el proceso tradicional y el seguido en las comunidades OSS estudiadas. En concreto, el proceso tradicional se trata de un proceso formalizado y controlado con actividades bien definidas. Al contrario el OSS no sigue ningún estándar ni obligación, lo que se percibe en la falta de documentación formal. En las comunidades OSS los usuarios pueden vi colaborar bajo la supervisión de los administradores o moderadores, dependiendo de la cantidad de colaboradores y del gobierno que rija la comunidad la toma de decisiones puede ser más estricta. A través del estudio del proceso de requisitos seguido en los desarrollos OSS es posible comprender sus prácticas, en las que participan tanto usuarios como desarrolladores. En este trabajo se determina cómo estos se comunican y realizan la gestión de requisitos por medio de infraestructuras online como son los foros, listas de correo, grupos de noticias, wikis, y cómo se pueden realizar aportaciones por medio de herramientas accesibles desde la Web. Estas prácticas pueden ser transferidas al proceso de desarrollo tradicional, ya sea en el desarrollo del proyecto o en la fase de mantenimiento. Conocer el proceso de desarrollo OSS ayuda a que futuros voluntarios participen en los proyectos OSS al conocer cómo se desarrolla software en las comunidades, favoreciendo la creación y evolución de nuevos proyectos exitosos.