sábado, 1 de octubre de 2016

Análisis de requerimientos de software



Definición e importancia

El requerimiento como tal es una petición de algo que se cree necesario, y en el software este término se adapta de la siguiente manera:

Podríamos definir el análisis de requerimientos como el ‘puente’ entre clientes, usuarios de software y desarrolladores, ya que trata de establecer lo que el sistema debe hacer, sus propiedades emergentes deseadas y esenciales, restricciones en el funcionamiento del sistema y procesos de desarrollo de software[1].


Proporciona el mecanismo para entender lo que desea el cliente:

  • ·         Analizar necesidades
  • ·         Evaluar factibilidad
  • ·         Negociar solución razonable
  • ·         Especificar solución sin ambigüedades
  • ·         Validar especificación


De acuerdo a Pressman[2], dicho análisis se compone de siete tareas:

Tarea
Descripción
Concepción
Los proyectos comienzan cuando se identifica una necesidad del negocio y se establece el entendimiento básico del problema.
Indagación
Preguntar cuáles son los objetivos, qué pretende lograrse y cómo va a usarse el sistema en las operaciones cotidianas.

Elaboración
Desarrollar modelo refinado de requerimientos que identifique distintos aspectos de la función del software, su comportamiento e información. Se describe como interactuará el usuario
Negociación
Se pide a clientes que ordenen requerimientos según su prioridad y que después se analicen los conflictos.
Especificación
Puede ser un documento, modelos gráficos, conjunto de escenario de casos de uso o prototipo.
Validación
Evaluación de la calidad de productos del trabajo. Detección y corrección de inconsistencias. Revisión técnica.
Administración de requerimientos
Conjunto de actividades que ayudan a controlar y dar seguimiento a requerimientos y cambios durante el desarrollo del proyecto

¿Por qué es importante?

Su importancia radica en el hecho de identificar el problema y conocer los pasos para darle solución al mismo, se habla con el cliente, se conoce al usuario final y durante el proceso se va desarrollando un modelo que pueda solucionar dicha necesidad planteada.

Durante este proceso se toma al cliente como parte del equipo para ir evaluando el trabajo y a su vez detectar errores y poder realizar cambios de forma adecuada, tal cual lo vimos en actividades anteriores con las metodologías ágiles.

Además, una buena identificación del problema reduce costos ya que se soluciona lo que realmente se quiere, se tiene a un cliente satisfecho y el usuario puede utilizar el sistema sin tener qué ver algo más con la parte de desarrollo.

Desde un principio se deben definir las necesidades del negocio, delinear funciones e identificar qué es lo que el sistema hará específicamente para el problema que se desea resolver.

En el libro de Pressman se señala que muchos desarrolladores planean una solución sin consultar al cliente o al usuario, y es en este punto donde después se presentan errores, ya que al desconocer totalmente la situación y al tener un conocimiento ya sea más amplio o diferente, se termina entregando un producto que no cumple con lo que era la necesidad inicial.

Bibliografía


[1] Ian Sommerville. (2005). Ingeniería de Software. Madrid, España: Pearson Education.
[2] Roger S. Pressman. (2010). Ingeniería del Software. Un enfoque práctico. New York: Editorial McGraw Hill.

No hay comentarios:

Publicar un comentario