Método Blue Watch – Jonás Montilva


Modalidades y enfoques actuales del desarrollo de software

ing swEl desarrollo de software es un proceso complejo y altamente especializado. Varios factores determinan la complejidad de este proceso. Dos de ellos son la amplia variedad de lenguajes y herramientas de programación que existen y la diversidad de tipos de aplicaciones que pueden desarrollarse con ellos. Esta diversidad va desde aplicaciones móviles, aplicaciones Web, software para redes sociales, videojuegos, hasta llegar a los sistemas de software de mayor complejidad, tales como los sistemas operativos y los compiladores.

Factores como los mencionados han hecho que el desarrollo de software requiera, por un lado, personal altamente capacitado y con niveles de especialidad cada vez mayores y, por el otro, métodos de desarrollo que sean efectivos y estén bien probados y debidamente documentados. En la actualidad, y en función del uso de métodos, el desarrollo de software se lleva a cabo bajo una de dos modalidades opuestas: artesanal o ingenieril. Dentro de la modalidad ingenieril, el desarrollo de software sigue, a su vez, dos enfoques diferentes: ágil y disciplinado.

 El desarrollo artesanal sigue siendo ampliamente utilizado por programadores solitarios (hackers) y organizaciones que desarrollan software para uso interno, en las cuales el software no es considerado un activo empresarial. Dos de sus características más distintivas son:

  1. no emplear método alguno o utilizar incorrectamente uno de los métodos conocidos y
  2. asumir erróneamente que un programador, por sí solo, tiene la capacidad, o es suficientemente competente, para ejecutar apropiadamente todas las actividades que van desde la identificación de requisitos hasta la prueba de aceptación del producto. El resultado de esta modalidad es impredecible y depende enteramente del programador.

ing sw1El desarrollo ingenieril emplea principios, conceptos, métodos, prácticas y técnicas basadas en la Ingeniería del Software. Esta modalidad tiene las siguientes características:

  1. el desarrollo de software, visto como un proceso, es de carácter grupal y no individual;
  2. este proceso se divide en sub-procesos claramente diferenciados, por ejemplo: especificación de requisitos, diseño arquitectónico, programación, pruebas y gestión del proyecto;
  3. cada sub-proceso demanda personal altamente especializado y capacitado para ejecutar debidamente sus actividades y
  4. el proceso es guiado por un método, modelo de procesos o marco metodológico que establece claramente que hacer, quien debe hacerlo y cómo debe hacerse. Los resultados de esta modalidad son claramente predecibles: productos de software de alta calidad.

Bajo la modalidad ingenieril existen dos enfoques contrapuestos: disciplinado y ágil. El enfoque disciplinado, también denominado pesado, hace énfasis en la calidad del producto, en el proceso de desarrollo y en la gestión del proyecto, a través de un plan claramente definido y previamente elaborado. Dos representantes de este enfoque son el método RUP y el marco metodológico Gray WATCH. El enfoque ágil o ligero, por el contrario, le da mayor importancia a cuatro aspectos, descritos en el Manifiesto Ágil: el individuo y sus interacciones, el software funcionando, la colaboración con el cliente y la respuesta al cambio. XP y SCRUM son los dos representantes más conocidos de este enfoque.

Estos dos enfoques tienen sus virtudes y sus deficiencias. En Ingeniería del Software, al igual que en otras disciplinas blandas, no existen “balas de plata” y tampoco son buenos los extremos. Por ello, ha emergido en los últimos años un enfoque intermedio que equilibra agilidad y disciplina. A este enfoque, lo hemos denominado enfoque balanceado, ágilmente disciplinado o disciplinadamente ágil. El Método Basado en Riesgos de Barry Boehm es el precursor de esta corriente.

 En la Universidad de Los Andes (Venezuela) hemos creado un método denominado Blue WATCH basado, también, en el enfoque balanceado. Este marco combina lo mejor de los enfoques ágil y disciplinado. Su versión más reciente es de conocimiento abierto y se describe en el portal http://www.e-praxis.com.ve.

Blue WATCH y el desarrollo de software ágilmente disciplinado

blue watch

En las líneas anteriores describimos las características y diferencias de los enfoques de desarrollo de software ágil y disciplinado. Destacamos allí la importancia de encontrar un balance entre ambos enfoques. Blue WATCH es un marco metodológico creado con la intención expresa de lograr dicho balance. Está orientado al desarrollo de aplicaciones Web y puede ser aplicado por grupos de desarrollo de mediano tamaño (3 – 10 personas).

Blue WATCH está compuesto de tres modelos que describen los elementos fundamentales del desarrollo de software: productos, procesos y actores. El modelo de productos identifica cada uno de los productos intermedios y finales que los actores elaboran durante el desarrollo de software. El modelo de procesos muestra el orden en que los procesos técnicos, de gestión y soporte deben ser ejecutados. El modelo de actores identifica y describe los roles que se requieren para producir software y las responsabilidades que ellos tienen en la ejecución de los procesos.

El desarrollo de una aplicación se inicia con dos procesos de gestión: Inicio del Proyecto y Planificación Inicial del Proyecto, los cuales producen, respectivamente, los informes de Visión del Producto y Plan Inicial del Proyecto.  Continúa con un conjunto de tres procesos técnicos: Análisis del Contexto o Dominio, Desarrollo Inicial de Requisitos y Diseño Inicial de la Aplicación. Estos procesos dividen la arquitectura de la aplicación en incrementos y producen los informes de Descripción del Problema, Documento de Requisitos y Documento de Diseño, respectivamente. Los dos últimos son refinados o actualizados en cada ciclo del conjunto de procesos iterativos denominado Desarrollo de Incrementos.

Siguen dos procesos de gestión encargados de planificar e iniciar el desarrollo de los incrementos: Planificación de Entregas y Planificación de la Iteración i-ésima. El desarrollo de los incrementos de la aplicación es un conjunto de procesos iterativos. Cada iteración produce un incremento o una parte de él. Cada iteración tiene una duración fija (1 – 6 semanas) y se inicia con el Refinamiento de Requisitos del Incremento y continúa con los procesos de Diseño Detallado del Incremento, Construcción del Incremento y Pruebas del Incremento. Una vez que el incremento ha sido codificado y probado, este es entregado a sus usuarios para que ellos ejecuten el proceso de Verificación y Validación, el cual cierra la i-ésima iteración, dando inicio a la siguiente iteración o a la Entrega Final de la Aplicación y el Cierre del Proyecto.

En paralelo a los procesos descritos anteriormente, se lleva a cabo un conjunto de procesos transversales que dan soporte a la gestión del proyecto; estos son: Gestión de Requisitos, Verificación y Validación de Productos, Gestión de la Configuración del Software y Gestión de Requisitos.

El carácter ágil del método surge de adoptar y adaptar las propiedades incremental e iterativa del método SCRUM. El carácter disciplinado está en la integración de los procesos de planificación ágil de SCRUM y los procesos disciplinados de gestión de proyectos, tal como se definen en el cuerpo de conocimientos de la Gestión de Proyectos (PMBOK).  Los procesos técnicos y de soporte del Blue WATCH se han tomado y adaptado del marco metodológico Gray WATCH.

Blue WATCH fue desarrollado por el Grupo de Investigación GIDYC de la Universidad de Los Andes y está descrito, con mayor detalle, en el portal educativo http://www.e-praxis.com.ve; portal dedicado a la capacitación profesional de ingenieros de software.


Referencias

Tarjeta Montilva

Banner De todo un Poco (1) 600 px

Anuncios

Acerca de Luis Castellanos

Experto en e-Learning, Seguridad y Tecnología. luiscastellanos @ yahoo.com | @lrcastellanos

Publicado el 03/06/2016 en Año 03, Desarrollo de Sistemas y etiquetado en , , , , , , , . Guarda el enlace permanente. 1 comentario.

A %d blogueros les gusta esto: