Requirements Engineering in Agile Software Development

Transcripción

Requirements Engineering in Agile Software Development
REQUIREMENTS ENGINEERING
IN AGILE SOFTWARE
DEVELOPMENT
Resumen del artículo #10
Tecnológico de Costa Rica
Requerimientos de Software
Ma. Fernanda Chaves Muñoz
201237410
Ingeniería de requerimientos en desarrollo Ágil de software
Los métodos de desarrollo ágil son una colección de diferentes técnicas. Lo que valora este
tipo de desarrollo es que los individuos y la interacción entre procesos y herramientas,
trabajando software sobre documentación comprensiva, clientes que colaboren en la
negociación y que respondan a los cambios que se le realicen a un plan. El desarrollo ágil
se centra en la comunicación cara a cara entre los clientes y el equipo de trabajo. A
diferencia de la Ingeniería de Requerimientos que busca crear un sistema de documentos
para transmitir el conocimiento de estos requerimientos. El artículo se basa en la forma en
que los requerimientos de usuario se pueden obtener y especificar en el contexto del
desarrollo ágil de software.
Entre los principios del desarrollo ágil de software: software que funciona se hace con
entregan frecuentes; software que funciona es la principal medida de progreso; la
satisfacción del cliente con entregas software rápidas; hasta los requerimientos que llegan
tarde son bienvenidos; cooperación diaria cercana entre las personas del negocio y los
desarrolladores; la mejor forma de comunicación es la conversación cara a cara; los
proyectos que son realizados por personas motivadas y de confianza.
Las metodologías de desarrollo ágil son usadas en organizaciones en las que no se
detienen los requerimientos. El principal beneficio es que se permite un proceso adaptativo,
en el cual el equipo y los desarrolladores reaccionan ante los requerimientos que entren,
inclusive los que lleguen en etapas tardías del desarrollo de software.
Los métodos de ágiles de desarrollo más comunes son mencionados en el artículo El
primero es el Modelado Ágil, que es una forma de modelar las actividades, que da a los
desarrolladores una guía para crear estos modelos, que resuelven los problemas de diseño
y apoyan la documentación pero no la sobre-construcción de estos modelos. Luego está
el Desarrollo Orientado a Funciones se trata de un proceso minimalista que se concentra
en construir y diseñar fases en las que se definen criterios de entrada y salida, para luego
realizar de forma interactiva el diseño y construcción según cada función. Otro método es
el Desarrollo Dinámico de Sistemas, en cuál se realizan dos etapas, una es el estudio de
viabilidad y el estudio de negocios. En estas dos etapas se realiza la elicitación los
requerimientos.
El siguiente método en mencionarse la Programación Extrema, que se basa en la
simplicidad, comunicación, retroalimentación y esfuerzo; con esto se logran sistemas aún
con requerimientos vagos o cambiantes. El último método que se menciona es Scrum. Es
un abordaje empírico basado en la flexibilidad, adaptabilidad y productividad. En este
método se deja en manos de los desarrolladores escoger los métodos con los que van a
trabajar. Se realizan etapas de desarrollo en ciclos de 30 días, en los cuáles diariamente se
realizan reuniones de 15 minutos para coordinación e integración.
La principal diferencia el desarrollo normal y ágil no es hacer o no la ingeniería de
requerimientos (IR), es cuándo se realiza esta. El proceso de IR en sistemas tradicionales
se enfoca primero en recolectar todos los requerimientos y preparar la especificación de
requerimientos antes de ir al diseño; la IR ágil recibe cambios en requerimientos aún en
etapas tardías del ciclo de desarrollo. Las actividades de IR ágil son:
 Estudio de Viabilidad: Da la visión general del sistema de destino y decide si vale la pena
realizar el sistema propuesto. La entrada del estudio es una breve descripción del sistema
y cómo va a ser dentro de una organización. Los resultados deberían ser un breve informe,
que recomienda si es o no vale la pena seguir el proceso de IR y de desarrollo ágil.
 Elicitación de Requerimientos: En esta actividad, los equipos trabajan con los stakeholders
para averiguar el dominio de aplicación, los servicios que el sistema debe proporcionar,
las limitaciones operacionales del sistema y el rendimiento requerido del sistema
(requerimientos no funcionales)
 Análisis de Requerimientos: Determinar si los requisitos no están claros, incompletos,
ambiguos o contradictorios, y luego se resuelven estos problemas. Las principales
técnicas para el análisis en abordajes ágiles son:
o Desarrollo unido de aplicación: se realiza un taller en que se obtienen requerimientos
de negocios durante el desarrollo de sistema. También se realiza para fomentar la
inclusión del cliente en el proceso de desarrollo.
o Modelado: son puentes importantes entre el proceso análisis y diseño.
o Priorización: los métodos ágiles especifican que los requisitos deben considerarse
similar a una pila de prioridades. Las características son priorizados por los clientes
en función de su valor comercial, por lo que los equipos ágiles deben estimar el tiempo
requerido para implementar cada requerimiento. El equipo debe distinguir entre los
requisitos de "debe tener" y los requisitos de "bueno tener".
 Documentación de Requerimientos: El propósito es comunicar los requisitos entre las
partes interesadas y los equipos de desarrollo ágil. Se recomiendan las siguientes técnicas
para resolver el problema de la falta de documentación:
o El líder del equipo ágil asigna dos o tres miembros para producir la documentación en
paralelo con el desarrollo.
o El uso de herramientas computacionales para el modelado como UML y herramientas
de gestión de proyectos para especificar una descripción de alto nivel del proyecto.
o Desarrollar procesos de ingeniería inversa para proyectos ágiles que apliquen.
 Validación de Requerimientos: Para asegurar que los requerimientos realmente definan
el sistema que quiere el cliente. Las principales prácticas son
o Revisión de requerimientos: Se trata de un proceso manual que involucra múltiples
lectores, tanto de equipo ágil como de stakeholders para revisar los requerimientos.
o Pruebas unitarias: En desarrollo ágil, esta es una técnica en la que los desarrolladores
técnicos crean las pruebas antes de escribir código.
o Prototipos evolucionarios: Este permite a los clientes la experimentar con la forma en
la que el sistema los ayudará en sus labores.
o Pruebas de aceptación: son pruebas formales llevadas a cabo por el cliente para
asegurar que el sistema cumple con los criterios de aceptación establecidos.
 Administración de Requerimientos: Se debe controlar y entender los cambios en los
requerimientos. Los administradores deben crear y mantener una plataforma para la
interacción entre los equipos ágiles y los stakeholders.
Entre los lineamientos de IR en desarrollo ágil están: involucrar al cliente, hacer entregas
frecuentes, expresar desde el inicio los requerimientos más importantes, establecer un
lenguaje para la elicitación de requerimientos, equipos ágiles pequeños son flexibles, no
realizar documentación temprana, dividir requerimientos complejos es otros más simples,
entre otros.

Documentos relacionados