martes, 8 de febrero de 2011

REQUERIMIENTOS DEL SOFTWARE

Que son los requerimientos o requisitos:
Requerimiento (sistemas)
En la ingeniería de sistemas, un requerimiento es una necesidad o datos de entrada documentada sobre el contenido de análisis en la etapa de diseño, forma o funcionalidad de un producto o servicio. Se usa en un sentido formal en la ingeniería de sistemas o la ingeniería de software.
En la ingeniería clásica, los requerimientos se utilizan como datos de entrada en la etapa de diseño del producto. Establecen QUÉ debe hacer el sistema, pero NO CÓMO hacerlo.

Necesidades de los requerimientos
Los Requerimientos cumplen un papel primordial en el proceso de producción de software, ya que enfoca un área fundamental: la definición de lo que se desea producir. Su principal tarea consiste en la generación de especificaciones correctas que describan con claridad, sin ambigüedades, en forma consistente y compacta, el comportamiento del sistema; de esta manera, se pretende minimizar los problemas relacionados al desarrollo de sistemas.

Objetivos de los Requerimientos
Los objetivos son afirmaciones de alto nivel que nos guían hacia la identificación de requerimientos ya que siempre debe estar claro y presente el Objetivo de Negocio.

Características de los requerimientos:
Los requerimientos bien formulados deben satisfacer varias características. Si no lo hacen, deben ser reformulados hasta hacerlo.
  • Necesario: Lo que pida un requerimiento debe ser necesario para el producto…
  • No ambiguo: El texto debe ser claro, preciso y tener una única interpretación posible…
  • Conciso: Debe redactarse en un lenguaje comprensible por los inversores en lugar de uno de tipo técnico y especializado.
  • Consistente: Ningún requerimiento debe entrar en conflicto con otro requerimiento diferente. Asimismo, el lenguaje empleado entre los distintos requerimientos debe ser consistente también.
  • Completo: Los requerimientos deben contener en sí mismos toda la información necesaria.
  • Alcanzable: Un requerimiento debe ser un objetivo realista, posible de ser alcanzado con el dinero, el tiempo y los recursos disponibles.
  • Verificable: Se debe poder verificar con absoluta certeza, si el requerimiento fue satisfecho o no. Esta verificación puede lograrse mediante inspección, análisis, demostración o testeo.

Actores relacionados con los requerimientos:
Los roles más importantes pueden clasificarse como sigue:
  • Usuario final: Son las personas que usarán el sistema desarrollado. Además son los que están familiarizados con los procesos específicos del software y serán quienes utilicen las interfaces y los manuales del usuario.
  • Usuario Líder: Son los individuos que comprenden el ambiente del sistema y están relacionados con la usabilidad la disponibilidad y la fiabilidad del sistema o el dominio del problema en donde será empleado el software desarrollado.
  • Personal de Mantenimiento: Son los encargados de la administración de cambios implementación y resolución de anomalías. Además ellos deben revisar y mejorar los procesos del producto ya finalizado.
  • Analistas y programadores: Ellos son los encargados o responsables  de la fase del desarrollo del producto en sí; ellos interactúan directamente con el cliente.
  • Personal de pruebas: Son las personas que se encargan de generar el plan de pruebas para verificar si las condiciones presentadas por el sistema son las adecuadas y validar si los requerimientos satisfacen las necesidades del cliente.

  • Importancia de la Ingeniería de Requerimientos
Los principales beneficios que se obtienen de la Ingeniería de Requerimientos son:
  • Que permite gestionar las necesidades del proyecto en forma estructurada: Ello quiere decir que cada actividad de la Ingeniería de Requerimiento (IR) con lleva a una serie de pasos organizados y bien definidos.
  • Mejora la capacidad de predecir cronogramas de proyectos, así como sus resultados: La IR proporciona un punto de partida para controles subsecuentes y actividades de mantenimiento, tales como estimación de costos, tiempo y recursos necesarios.
  • Disminuye los costos y retrasos del proyecto: Muchos estudios han demostrado que reparar errores por un mal desarrollo no descubierto a tiempo, es sumamente caro.
  • Mejora la calidad del software: La calidad en el software tiene que ver con cumplir un conjunto de requerimientos (funcionalidad, facilidad de uso, confiabilidad, desempeño, etc.).
  • Mejora la comunicación entre equipos: La especificación de requerimientos representa una forma de consenso entre clientes y desarrolladores. Si este consenso no ocurre, el proyecto no será exitoso.
  • Evita rechazos de usuarios finales: La ingeniería de requerimientos (IR) obliga al cliente a considerar sus requerimientos cuidadosamente y revisarlos dentro del marco del problema.


Levantamiento y recolección de requerimientos:
Técnicas más usadas: Método JAD
Método JAD Joint Application Development (JAD), en español Desarrollo Conjunto de Aplicaciones, es una técnica exploratoria popular que incluye a los usuarios como participantes activos en el proceso de desarrollo.

La técnica más usada según nuestro criterio es la Técnica de Método JAD, por que permite que los usuarios dominantes participen con eficacia en los requisitos que modelan el proceso, cuando los usuarios participan en el proceso del desarrollo de los sistemas, es más probable percibir un sentido de la propiedad en los resultados, y la ayuda para el nuevo sistema.

Ventajas

a.- La técnica de método JAD es una ventaja ya que puede dar lugar a una declaración exacta de los requisitos del sistema.

b.- La técnica JAD es considerado por muchas compañías como la técnica mas manejada por los usuarios dominantes ya que les permite manejar con eficacia los requisitos que modelan el proceso.

c.- La técnica JAD le permite a los usuarios percibir un sentido de la propiedad en los resultados del desarrollo del sistema.

d.- Cuando la técnica JAD es usada correctamente puede dar lugar a una declaración más exacta de los requisitos del sistema.

Desventajas

a.- El método JAD es una técnica muy costosa comparado con otras técnicas tradicionales.

b.- Además puede ser incómodo si el grupo es demasiado grande concerniente al tamaño del proyecto.

Fundamentos del J.A.D

El proceso de JAD se basa en cuatro ideas simples que son:
  1. La gente que hace un trabajo tiene la mejor comprensión de ese trabajo.
  2. La gente entrenada en Tecnologías de la Información tiene la mejor comprensión de las posibilidades de esas tecnologías.
  3. Los sistemas de información y los procesos del negocio raramente existen en forma aislada -- Más bien trascienden los límites de cualquier sistema u oficina y afectan el trabajo en departamentos relacionados. La gente que trabaja en estas áreas relacionadas tiene una percepción valiosa del papel del sistema dentro de una comunidad más amplia.
  4. Los mejores sistemas de información se diseñan cuando todos estos grupos trabajan juntos en un proyecto como socios iguales.
Puede trazarse un paralelo entre lo que el proceso de JAD le da al desarrollo de sistemas informáticos y lo que Henry Ford le dio a la fabricación de los automóviles: un método para organizar la maquinaria, los materiales, y el trabajo de modo de poder ensamblar un automóvil en forma más barata y rápida que nunca antes (la línea de montaje). La meta en el desarrollo de sistemas es identificar lo que necesitan los usuarios y después fijar un sistema o proceso que lo proporcionen. Los métodos tradicionales tienen varios factores de retraso incorporados que empeoran cuanto más gente está implicada en el proyecto.