El proyecto SWEBOK (Software Engineering Body of Knowledge) es un proyecto conjunto del IEEE y de la ACM para producir un cuerpo de conocimiento sobre ingeniería de software que se siente las bases de dicha ingeniería como una profesión. Dentro de las 10 áreas de conocimiento que han establecido, la novena corresponde a la ingeniería de requerimientos, en la cual se definen los siguientes procesos:
- Elicitación de requerimientos. Para la realización de esta actividad se puede recurrir a técnicas como las entrevistas, la observación mediante inmersión en el negocio del cliente, el uso de escenarios o casos de uso y la utilización de prototipos, que también suelen utilizarse para las actividades de validación.
- Los objetivos: pueden considerarse como los requerimientos de alto nivel que deberá cumplir el sistema a desarrollar, por lo que es especialmente crítica su identificación en los comienzos del proceso.
- Conocimiento del dominio: es fundamental conocer el dominio del problema para poder inferir el conocimiento tácito que los participantes no suelen hacer explícito, además de para facilitar la comunicación.
- Participantes (stakeholders): es preciso identificar a todos los participantes que tengan algún tipo de interés en el desarrollo y tener en cuenta los puntos de vista de los distintos grupos.
- Entorno operacional: el sistema a desarrollar deberá funcionar en un entorno que es necesario conocer para poder identificar las necesidades de interoperabilidad con otros sistemas ya existentes.
- Entorno organizacional: además del entorno operacional, el sistema afectará el entorno organizacional, que es necesario conocer para evitar que surjan problemas con los procesos de negocio.
- Análisis y negociación de los requerimientos. En esta actividad se pretende detectar y resolver los conflictos entre los requerimientos, determinar los límites del sistema y cómo interactuará con su entorno y transformar los requerimientos de usuario en requerimientos de software. Para completar esta actividad, se realizan las siguientes tareas:
- Clasificación de requerimientos: Es importante clasificar los requerimientos para ayudar en las labores de negociación. Los criterios de clasificación son: capacidad/restricción, prioridad, coste/impacto, volatilidad/estabilidad y requerimiento de producto/requerimiento de proceso.
- Modelado conceptual: ayuda a la comprensión del problema, aunque normalmente no puede evitarse iniciar el diseño de la solución. Existen múltiples técnicas de modelado conceptual, de modo que deben considerarse factores como la naturaleza del problema, la experiencia del ingeniero de requerimientos en el uso de una determinada técnica, si el cliente impone como requerimiento la utilización de una determinada metodología o la disponibilidad de metodologías y herramientas que soporten una determinada notación. Se recomienda realizar siempre un modelo de los límites del sistema para entender mejor el entorno y las interfaces necesarias.
- Negociación de los requerimientos: también denominada resolución de conflictos, se ocupa de resolver los problemas que puedan surgir en los requerimientos, bien porque haya peticiones por parte de clientes y usuarios que sean incompatibles, bien porque no se disponga de los recursos necesarios para la realización de ciertos aspectos del sistema, etc. Para resolver tales conflictos, es necesario consultar con todos los participantes afectados y registrar las decisiones tomadas y quién las tomó. Los conflictos pueden aparecer no sólo durante el análisis, sino también durante la validación.
- Documentación de requerimientos. Son el medio habitual para el registro y la comunicación de los requerimientos. Se considera deseable que los requerimientos del usuario (requerimientos-C) y los requerimientos del software (requerimientos-D) vayan en documentos separados. Dentro de las tareas relacionadas con la documentación de requerimientos, se remiten a la gestión de requerimientos para aspectos como el control de versiones debido a los cambios en los requerimientos.
- Validación de requerimientos. Se comprueban los documentos de requerimientos para detectar omisiones, conflictos y ambigüedades no detectadas en el análisis y también se debe comprobar que los requerimientos siguen las normas de calidad establecidas. En otras palabras, combinar la validación y verificación en esta actividad. De modo que se proponen tareas como revisiones técnicas de los requerimientos basadas en listas de comprobación, el uso de prototipos, verificación formal de especificaciones, etc.
- Gestión de requerimientos. Se realiza durante todas las actividades de la ingeniería de requerimientos. Su objetivo es gestionar los cambios y el mantenimiento de los requerimientos para que representen el sistema que se va a desarrollar o que se ha desarrollado. Para conseguir estos objetivos, se proponen tareas como:
- Procedimientos para el control de cambios.
- Técnicas de gestión de configuración.
- Atributos de los requerimientos (identificadores, justificación, fuentes del requerimiento, etc.).
- Rastreabilidad (construir un grafo dirigido acíclico entre los requerimientos).
No hay comentarios:
Publicar un comentario