lunes, 11 de marzo de 2013

UNIDAD II - INGENIERIA DE REQUISITOS

Con el paso de los años se ha podido constatar que los requerimientos o requisitos son esenciales en un proyecto de desarrollo de software, ya que es el mecanismo que permite entender lo que el cliente quiere, analizar sus necesidades, evaluar la factibilidad, especificar las necesidades de manera no ambigua, validarlas, y administrar estos requerimientos conforme evoluciona el desarrollo del proyecto.
Gran número de los proyectos de software fracasan por no realizar una adecuada definición, especificación, y administración de los requerimientos.  La administración inadecuada puede desencadenar problemas como la falta de participación del usuario, requerimientos incompletos y una rastreabilidad errada de los mismos.  
Con el paso de los años se ha podido constatar que los requerimientos o requisitos son esenciales en un proyecto de desarrollo de software, ya que es el mecanismo que permite entender lo que el cliente quiere, analizar sus necesidades, evaluar la factibilidad, especificar las necesidades de manera no ambigua, validarlas, y administrar estos requerimientos conforme evoluciona el desarrollo del proyecto.
Gran número de los proyectos de software fracasan por no realizar una adecuada definición, especificación, y administración de los requerimientos.  La administración inadecuada puede desencadenar problemas como la falta de participación del usuario, requerimientos incompletos y una rastreabilidad errada de los mismos.   

La Ingeniería de Requerimientos cumple un papel primordial en el proceso de producción de software, ya que se enfoca en 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, las necesidades de los usuarios o clientes, minimizando problemas originados por la mala gestión de los requerimientos en el desarrollo de sistemas.
“La Ingeniería de requerimientos se entiende como el proceso de descubrimiento y comunicación de las necesidades de clientes y usuarios y la gestión de los cambios de dichas necesidades”

Según IEEE  un “Requerimiento” es:  
“Una condición o capacidad que necesita el usuario para resolver un problema o conseguir un objetivo determinado”. (Std 610.12-1900, IEEE: 62).  Por extensión el término requisito se aplica a las condiciones “que debe cumplir  o poseer un sistema o uno de sus componentes para satisfacer un contrato, una norma o una especialización”
Estos pueden dividirse en 2 categorías: requerimientos funcionales y requerimientos no funcionales. 
Los requerimientos funcionales: son los que definen las funciones que el sistema será capaz de realizar, describen las transformaciones que el sistema realiza sobre las entradas para producir salidas. Es importante que se describa el ¿Qué? y no el ¿Cómo? se deben hacer esas transformaciones. Estos requerimientos al tiempo que avanza el proyecto de software se convierten en los algoritmos, la lógica y gran parte del código del sistema.  
Los requerimientos no funcionales: son características que de una u otra forma puedan limitar el sistema, por ejemplo, el rendimiento (en tiempo y espacio), interfaces de usuario, fiabilidad (robustez del sistema, disponibilidad de equipo), mantenimiento, seguridad, portabilidad, etc.  

No hay comentarios:

Publicar un comentario