viernes, 24 de febrero de 2012

Problemas en la Ingeniería de Requerimientos

En 1997, Zave establece una clasificación de los esfuerzos de investigación de ingeniería de requerimientos. Según dicho trabajo, los problemas de ingeniería de requerimientos pueden encuadrarse dentro de los siguientes grupos:

  • 1. Problemas de investigación de los objetivos, funciones y restricciones de un sistema de software: recolección de información, análisis de la información y generación de estrategias alternativas.
    • 1.1. Superar barreras de comunicación: los ingenieros de requerimientos deben tratar con un amplio abanico de personas con distintos conocimientos, intereses y objetivos personales. ¿Cómo comunicarse con personas con conocimientos, intereses y objetivos diferentes al nuestro?
    • 1.2. Generar estrategias para convertir requerimientos imprecisos en propiedades o conductas específicas: un ejemplo de este tipo de requerimientos imprecisos suelen ser la amigabilidad con el usuario, seguridad, precisión, fiabilidad, etc.
    • 1.3. Entender prioridades y rangos de satisfacción: muchos requerimientos no son absolutos, sino que pueden satisfacer parcialmente o si los recursos lo permiten.
    • 1.4. Generar estrategias para asignar requerimientos al sistema o a los distintos agentes de su entorno: dado que los requerimientos reales siempre se refieren al mundo real en el que se explotará el sistema software a desarrollar, antes de especificarlo se deben asignar objetivos, funciones y restricciones a los componentes y agentes que contribuirán a satisfacerlos. En otras palabras, decidir el ámbito del sistema: qué aspectos quedan y qué aspectos se asignan al entorno.
    • 1.5. Estimar costes, riesgos y duración: es muy importante para decidir sobre los requerimientos opcionales, que se satisfacen según los recursos de desarrollo.
    • 1.6. Asegurar la compleción: cómo asegurarse de que no se han dejado de lado personas, puntos de vista, hechos, etc. en la investigación del sistema.
  • 2. Problemas de especificar la conducta de un sistema software: sintetizar información y elegir entre alternetivas para crear una especificación software mínima y precisa.
    • 2.1. Integrar múltiples vistas y representaciones: los resultados de la investigación suelen ser diversos y tener conflictos, por lo que suele ser necesario algún tipo de negociación.
    • 2.2. Evaluar estrategias alternetivas para satisfacer requerimientos: la especificación del sistema supone tomar decisiones sobre la solución del problema. Normalmente, la solución no es única.
    • 2.3. Obtener especificaciones completas, consistentes y no ambiguas: es la única forma de asegurarse de que el sistema final cumplirá los requerimientos iniciales.
    • 2.4. Comprobar que el sistema especificado satisfará los requerimientos: diseñar estrategias de validación que aseguren que la especificación es acorde a los requerimientos iniciales.
    • 2.5. Obtener especificaciones útiles para las actividades de implementación y diseño: es la mejor estrategia para introducir procesos de ingeniería de requerimientos en las organizaciones.
  • 3. Problemas de gestionar la evolución de sistemas y familias de sistemas.
    • 3.1. Reutilizar ingeniería de requerimientos durante fases evolutivas: es decir, asegurarse de que los productos de la ingeniería de requerimientos son mantenibles. Las técnicas más usadas son la rastreabilidad y la modularidad de la especificación.
    • 3.2. Reutilizar ingeniería de requerimientos para desarrollar sistemas similares: es decir, asegurarse de que los productos de la ingeniería de requerimientos se pueden aplicar a familias de sistemas.
    • 3.3. Reconstruir requerimientos: ingeniería inversa de requerimientos.

No hay comentarios:

Publicar un comentario