jueves, 29 de noviembre de 2012

INGENIERÍA DE REQUISITOS


El presente trabajo busca abordar el tema de la ingeniería de requisitos y los problemas que se dan en el proceso del levantamiento de la información que pueden provenir de diversas fuentes ya que en esta se mezclan los prejuicios de analistas, gerentes, usuarios, programadores y las técnicas que se utilicen en la recolección de los datos.
En este sentido abordaremos el rol de cada persona involucrada en el proceso y como debe esta aportar en un proceso que es sumamente importante para evitar errores futuros.

ABSTRACT

La ingeniería de requisitos es un elemento vital para el desarrollo de softwares robustos y maduros, pero esto no se logra por el simple hecho de conocer la técnica, basta saber aplicarla y dominar todas las herramientas que se utilizan en la misma, pero además, se debe tomar en cuenta el rol que deben jugar todas y cada una de las personas involucradas en este proceso.

PALABRAS CLAVES
Ingeniería Software, Ingeniería Requisitos, Análisis, Diseño, Desarrollo sistemas.


INGENIERÍA DE REQUISITOS

La ingeniería de requisitos es un proceso primordial en el desarrollo de un software maduro y funcional por eso varios autores tratan el tema en sus libros:
“La ingeniería de requisitos facilita el mecanismo apropiado para comprender lo que quiere el cliente, analizando necesidades, confirmando su viabilidad, negociando una solución razonable, especificando la solución sin ambigüedad, validando la especificación y gestionando los requisitos para que se transformen en un sistema operacional.” (Pressman,2002. P.172)
 Desde el punto de vista de Pressman esta herramienta es sumamente importante porque esta facilita todo el proceso de desarrollo de software pero además de esto entrega programas funcionales y con el mínimo de errores.
  Por su parte Somerville lo ve de esta manera “La meta del proceso de ingeniería de requerimientos es crear y mantener un documento de requerimientos del sistema. El proceso general corresponde cuatro subprocesos de alto nivel de la ingeniería de requerimientos. Estos tratan de la evaluación de si el sistema es útil para el negocio (estudio de viabilidad); el descubrimiento de requerimientos (obtención y análisis); la transformación de estos requerimientos en formularios estándar (especificación), y la verificación de que los requerimientos realmente definen el sistema que quiere el cliente (validación).”  (2005: P.130).
 Viéndolo desde esta óptica el objetivo de la ingeniería de requerimientos no es sólo entregar un software funcional, pues el proceso empieza mucho antes, inicia verificando si es factible desarrollar un sistema para la organización, de esto ser factible es que se procede a hacer el levantamiento y posterior análisis.
 Terminado este proceso se crean las especificaciones del software y el diseño de los formularios que posteriormente son presentados al cliente para que sea este quien valide si el prototipo que sea ha realizado es el más ajustado a las necesidades actuales de la empresa o si requiere ajustes para cumplir con los requerimientos de la empresa.
 Pero hasta este punto puede que se vea este proceso como algo sencillo y atractivo, pero lo cierto es que muchos desarrolladores no manejan estos procesos a la perfección y en vez de lograr un estándar de desarrollo que los lleve a crear softwares maduros y robustos terminan creando lo que muchos llamarían “un desorden organizado”.
 Pero lograrlo va más allá de simples palabras pues requiere de involucrar a todos los que de una forma u otra tengan que ver en el proceso estos son:
 Los usuarios
Frecuentemente saben que lo que tienen no les ayuda y que necesitan un cambio, pero al momento de pedir o de ser entrevistados no saben expresar que hacen ni cuáles son sus funciones, pero mucho menos son capaces de saber lo que quieren ni como pedirlo.
Otro problema que se puede enfrentar es que los mismos estén predispuestos al cambio de un nuevo sistema bien sea porque es una imposición de la gerencia o porque no se sienten parte de proceso.
El Analista
Muchas veces el analista no está muy empapado del asunto y desconoce la naturaleza y los objetivos del negocio quizás porque no se preocupó en investigarlos o bien porque les fueron explicados y el mismo no los entendió, ha de ser el analista una persona entendida en la materia y con la suficiente capacidad y sabiduría para saber cuáles puntos levantar y cuales son primordiales en un proceso que puede definir el éxito o el fracaso del proyecto.
 El Diseñador
Si el Diseñador  no entiende lo que en su levantamiento plasmó el analista o simplemente decide cambiarlo por entender que no es así puede esto afectar seriamente el proceso y por tanto no se estarían creando las interfaces que inicialmente fueron concebidas por el analista y que dan al traste con lo requerido por el cliente.
El programador
Cuando la situación realmente se complica es cuando es el programador el que entiende algo distinto y decide desarrollar de acuerdo a sus creencias y convicciones, cuando esto sucede si puede representar serios problemas que pueden entregar un programa inestable y poco funcional que en nada aporta a la empresa.
Manejo de las técnicas
Por demás está decir que para una exitosa ingeniería de requerimientos el analista debe dominar las técnicas de recolección de información como son: entrevistas, encuestas, cuestionarios, formularios, modelos, contratos, la observación y todos los instrumentos que le puedan ayudar a levantar información.
Si el analista no domina estas técnicas tampoco será posible que logre hacer un levantamiento que retrate la real situación de la empresa y lo que esta requiere para lograr sus objetivos de negocio.
Conocimiento del Negocio
Conocer el negocio es una parte muy importante en este proceso, como se mencionaba en el apartado del analista este debe conocer al 100% el negocio en el cual aplicará la ingeniería de requisitos y esto debe ser extensivo a todo el equipo involucrado en el proyecto pues este elemento también es vital para poder aplicar las técnicas y herramientas correctas para lograr un software de calidad y ajustado a los requerimientos de la parte interesada.
La ingeniería de requisitos no sólo es un paso más para llenar formalidades es todo un proceso vital que va a facilitar que la empresa pueda llevar a cabo proyectos exitosos.
Esto debe ser tomado en cuenta por toda aquella persona que pertenezca a una empresa de software o que esté interesada en realizar proyectos de calidad dentro de su empresa. 
Por eso se entiende que todo proyecto que se emprenda debe ser realizado bajo estas especificaciones que influyen en la creación de softwares maduros.
BIBLIOGRAFÍA
Roger Pressman, Ingeniería de Software: Un enfoque práctico. Mcgraw Hill, 2002.

Ian Somerville, Ingeniería de Software. Pearson, 2005.
Madé Serrano, N. (2009). Metodología de la Investigación Científica: Guías para Redactar Trabajos de Investigación (2da Edición). República Dominicana: Impresora Soto Castillo S.A.