¿Qué es el modelado ágil? – Definición y objetivo principal

Publicado el 16 octubre, 2020 por Rodrigo Ricardo

Modelado

Coloque un niño en edad preescolar frente a una pila de bloques y es probable que el niño construya una casa, seguido rápidamente por un pequeño vecindario. No está tan lejos de estas construcciones muy simples a las maquetas más elaboradas de rascacielos que se ven en las oficinas de arquitectura, o de los dioramas de tamaño natural que se pueden pasear en un museo. Todos estos modelos tienen un propósito: nos ayudan a aprender algo nuevo sobre los objetos reales que representan.

En esta lección veremos más de cerca los procedimientos de modelado utilizados en el desarrollo de software para el mismo propósito general. En particular, veremos cómo encaja el modelado en el desarrollo de software ágil como herramienta de aprendizaje.

Modelado de software

El software se ocupa de operaciones lógicas y los diagramas lógicos simples, como los diagramas de flujo, se han utilizado durante mucho tiempo para representar cómo los procesos de software se mueven programáticamente de un paso a otro. Las formas geométricas cerradas normalmente representan operaciones de software específicas. Las flechas o líneas siguen los resultados de decisiones lógicas simples y pueden representar múltiples ramas o bucles hacia cuadros de operaciones posteriores. Al igual que el diagrama de flujo en sí, la mayoría de los modelos de software son de naturaleza gráfica, lo que los convierte en herramientas excelentes para representar relaciones complejas que son difíciles de visualizar cuando se trabaja con una porción más pequeña del código base.

Hay lenguajes y herramientas completos que ahora se dedican al modelado de software. Por ejemplo, el lenguaje de modelado unificado , o UML, que se creó en la década de 1990, se ha convertido en una especie de estándar de la industria y admite muchas técnicas de diagramación diferentes basadas en un sistema de visualización estándar. Estas herramientas de modelado bastante rigurosas proporcionan una forma para que los miembros del equipo vean y discutan mejor los detalles críticos del sistema de software, a menudo antes de que se escriba realmente el código. Todas estas herramientas de modelado respaldan el objetivo de cualquier buen modelo de software, que es mejorar la comunicación y la comprensión en todo el equipo.

Modelado y documentación ágil

Las herramientas de modelado de software de hoy tienen otra cosa en común: pueden crear cantidades masivas de documentación. Y, como suele ocurrir con cualquier gran esfuerzo de documentación, los modelos documentados en sí mismos pueden quedar obsoletos rápidamente a medida que avanza la codificación del software real.

Uno de los principios clave de la metodología de software ágil es que un equipo debe valorar el software funcional sobre la documentación completa . La adopción generalizada de la metodología de desarrollo de software ágil ha llevado a una gran discusión en curso sobre cuánta documentación, incluidos estos artefactos de modelado de software, es realmente útil para el equipo.

Para responder a esta pregunta, podemos volver a nuestra definición básica del uso principal de un modelo y combinarlo con los objetivos de comunicación ágil. A partir de estos dos conceptos, podemos suponer que cualquier esfuerzo de modelado debe realizarse solo si los modelos que se están creando mejoran las comunicaciones y proporcionan una mejor comprensión del software real que se está creando.

Modelado y métodos ágiles

Es útil ver la historia del usuario como el primer tipo de modelo utilizado en un equipo ágil. Esta historia de usuario suele ser un documento conversacional que describe cómo el usuario final quiere que se comporte el software. Representa, o modela, el comportamiento del software de una manera que ayuda a los miembros del equipo a comprender el software que finalmente se producirá.

En términos de procedimientos generales, las actividades de modelado deben seguir todos los demás principios básicos de la metodología Agile. El modelado debe realizarse de manera iterativa y no solo al inicio del desarrollo. En general, es mejor comenzar con modelos simples y luego pasar a representaciones más complejas solo si son realmente necesarias. Y, como con todos los artefactos de documentación, los modelos deben actualizarse continuamente para reflejar el estado real del software en todo momento.

Los buenos modelos ayudan a eliminar parte de la incertidumbre que existe en las historias de usuario originales. Un efecto secundario útil de eliminar esa incertidumbre será ayudar al equipo a realizar mejores estimaciones del tamaño de la historia durante la planificación de la iteración. Por ejemplo, un diagrama de red es un tipo de modelo que representa visualmente qué componentes físicos de software están en contacto entre sí en todo el sistema de software. Tener un modelo de diagrama de red puede ayudar al equipo a evitar planificar, construir y probar configuraciones inútiles, evitando desperdicios en el proceso.

Muchos tipos de modelos de software

Hay demasiados tipos diferentes de modelos de software disponibles para que podamos proporcionar una lista completa en esta lección. Sin embargo, podemos mencionar algunos tipos comunes de modelos que muestran cómo se pueden utilizar para mejorar la comunicación y la comprensión.

Algunos modelos son particularmente útiles cuando se intenta transmitir información a varios equipos. Un modelo arquitectónico es muy útil cuando varios equipos interactuarán con los mismos componentes de software subyacentes. Esto es particularmente cierto si un equipo independiente proporciona los componentes arquitectónicos que están implementando otros equipos de aplicaciones.

Un modelo de datos proporciona una visión holística de cómo fluyen los datos y cómo están protegidos en un sistema. Por ejemplo, los inicios de sesión de software a menudo requieren cierta información básica del usuario final. El modelo de datos señalará dónde se utilizarán partes de esa información y, lo que es más importante, indicará dónde las preocupaciones de seguridad requieren que la información esté protegida explícitamente.

Otro procedimiento de modelado común es crear un modelo de interfaz de usuario . Estos modelos pueden mostrar representaciones de las pantallas de software reales con las que interactuará el usuario. La revisión de estos modelos al principio del proceso puede ayudar a señalar problemas básicos de usabilidad antes de que se codifiquen en el software.

Resumen de la lección

Debido a que la metodología Agile valora el software de trabajo sobre la documentación completa , el modelado en Agile se mantiene en la cantidad mínima necesaria para mejorar la comunicación y la comprensión de las historias de los usuarios. El modelado debe realizarse de manera iterativa y mantenerse en la cantidad mínima necesaria para ayudar en el proceso de comunicación. Hay muchas herramientas que pueden modelar muchos tipos de comportamientos de software, incluidos los admitidos por el lenguaje de modelado unificado . Los ejemplos típicos de modelos utilizados en Agile son diagramas de flujo , diagramas de red , modelos arquitectónicos , modelos de datos y modelos de interfaz de usuario .

Articulos relacionados