Articulo de referencia

Modelado basado en historias

El modelado basado en historias [ 1 ] [ 2 ] [ 3 ] es una técnica de modelado orientado a objetos . [ 4 ] [ 5 ] Otras formas de modelado orientado a objetos se centran en diagram...

El modelado basado en historias [ 1 ] [ 2 ] [ 3 ] es una técnica de modelado orientado a objetos . [ 4 ] [ 5 ] Otras formas de modelado orientado a objetos se centran en diagramas de clases . Los diagramas de clases describen la estructura estática de un programa, es decir, los bloques de construcción de un programa y cómo se relacionan entre sí. Los diagramas de clases también modelan estructuras de datos, pero con énfasis en conceptos bastante abstractos como tipos y características de tipos.

En lugar de estructuras estáticas abstractas, el modelado basado en historias se centra en escenarios de ejemplo concretos [ 6 ] y en cómo los pasos de los escenarios de ejemplo pueden representarse como diagramas de objetos y cómo estos diagramas de objetos evolucionan durante la ejecución del escenario.

Enfoque de desarrollo de software

El modelado basado en historias propone el siguiente enfoque de desarrollo de software:

  1. Escenarios textuales : Para la funcionalidad que desea implementar, desarrolle una descripción textual del escenario para el caso más común. Analice solo un ejemplo a la vez. Intente usar términos específicos y nombres individuales en lugar de términos generales y, por ejemplo, nombres de roles.
    Escenario Barbacoa Go-Dutch
    • Inicio: Este domingo, Peter, Putri y Peng se reúnen en el parque para una barbacoa al estilo holandés. Utilizan la aplicación Cuenta de Grupo para llevar la contabilidad.
    • Paso 1: Peter trae la carne por $12. Peter agrega este artículo a la aplicación Cuenta de Grupo.
    • Paso 2: Putri trae ensalada por $9. Peter también añade este artículo. La aplicación muestra que, a estas alturas, la participación promedio es de $7 y que Peng aún tiene que aportar esos $7, mientras que Peter recibe $5 y Putri recibe $2.
    • Paso 3: ...
  2. Maquetas de GUI : Para ilustrar la interfaz gráfica de usuario (GUI) de la función deseada, puede agregar algunos modelos de estructura alámbrica o maquetas de GUI a su escenario:
    Escenario Barbacoa Go-Dutch
    • Inicio: Este domingo, Peter, Putri y Peng se reúnen en el parque para una barbacoa al estilo holandés. Utilizan la aplicación Cuenta de Grupo para llevar la contabilidad.
    • Paso 1: Peter trae la carne por $12. Peter agrega este artículo a la aplicación Cuenta de Grupo.
    • Paso 2: Putri trae ensalada por $9. Peter también añade este artículo. La aplicación muestra que, a estas alturas, la participación promedio es de $7 y que Peng todavía tiene que aportar esos $7, mientras que Peter recibe $5 y Putri recibe $2:WikipediaGoDutchMockup
    • Paso 3: ...
  3. Creación de guiones gráficos : A continuación, se piensa en cómo una situación determinada, es decir, un paso específico de un escenario, puede representarse en un ordenador mediante una estructura de objetos en tiempo de ejecución. Esto se consigue añadiendo diagramas de objetos al escenario. En el modelado basado en historias, un escenario con diagramas de objetos también se denomina guion gráfico.
    Escenario Barbacoa Go-Dutch
    • Inicio: Este domingo, Peter, Putri y Peng se reúnen en el parque para una barbacoa al estilo holandés. Utilizan la aplicación Cuenta de Grupo para llevar la contabilidad.
    • Paso 1: Peter trae la carne por $12. Peter agrega este artículo a la aplicación Cuenta de Grupo.
    • Paso 2: Putri trae ensalada por $9. Peter también añade este artículo. La aplicación muestra que, a estas alturas, la participación promedio es de $7 y que Peng todavía tiene que aportar esos $7, mientras que Peter recibe $5 y Putri recibe $2:WikipediaGoDutchMockupDiagrama de objetos que modela una barbacoa al estilo holandés.
    • Paso 3: ...
  4. Derivación del diagrama de clases : Ahora es bastante sencillo derivar un diagrama de clases a partir de los diagramas de objetos utilizados en los storyboards. Cabe destacar que el diagrama de clases sirve como referencia común para todos los diagramas de objetos. Esto garantiza que se utilicen los mismos tipos y atributos. Mediante una herramienta UML , se puede generar una primera implementación a partir de este diagrama de clases.Diagrama de clases para una barbacoa holandesa
  5. Diseño de algoritmos : Hasta ahora, has modelado e implementado las estructuras de objetos que se despliegan en tu aplicación. Ahora necesitas agregar comportamiento, es decir, algoritmos y cuerpos de métodos. Programar el comportamiento de una aplicación es una tarea exigente. Para facilitarla, primero debes esbozar el comportamiento en notación de pseudocódigo . Podrías hacerlo, por ejemplo, con un juego de objetos. Por ejemplo, para actualizar los atributos de saldo de todas las personas, observas nuestra estructura de objetos y, desde el punto de vista del objeto GroupAccount, haces lo siguiente:
    Actualizar el saldo de todas las personas:
    • visita cada artículo
      • Por cada artículo, suma su valor al valor total y suma 1 al número de artículos.
    • Calcula la participación promedio de cada persona dividiendo el valor total entre el número de personas.
    • visitar a cada persona
      • para cada persona restablecer el saldo
      • por cada persona visita cada artículo comprado por esta persona
        • Por cada artículo, agregue el valor al saldo de la persona actual.
      • para cada persona restar la parte del saldo
  6. Implementación del comportamiento : Una vez que haya refinado el pseudocódigo de su algoritmo hasta el nivel de operaciones sobre estructuras de objetos, es sencillo derivar el código fuente que ejecuta las mismas operaciones en la implementación de su modelo de objetos .
  7. Pruebas : Finalmente, los escenarios pueden utilizarse para derivar pruebas JUnit automáticas . El pseudocódigo para una prueba de nuestro ejemplo podría ser el siguiente:
    Prueba de actualización del saldo de todas las personas:
    • crear un objeto de cuenta de grupo
    • agregar un objeto de persona con el nombre Peter, un objeto de persona con el nombre Putri y un objeto de persona con el nombre Peng al objeto de cuenta de grupo.
    • agregar un objeto de artículo con comprador Peter, descripción Carne y valor $12 al objeto de cuenta de grupo
    • agregar un objeto de artículo con comprador Putri, descripción Ensalada y valor $9 al objeto de cuenta de grupo
    • Llamar al método actualiza el saldo de todas las personas en el objeto de cuenta de grupo.
    • Asegúrese de que el saldo del objeto Peter sea de $5.
    • Asegúrese de que el saldo del objeto Putri sea de $2.
    • Asegúrese de que el saldo del objeto Peter sea -$7.
    • Asegúrese de que la suma de todos los saldos sea $0.
Estas pruebas automáticas garantizan que, en la situación de ejemplo, la implementación del comportamiento se ajuste a lo descrito en el storyboard. Si bien estas pruebas son bastante sencillas y puede que no identifiquen todo tipo de errores, resultan muy útiles para documentar el comportamiento deseado y el uso de las nuevas funciones, y aseguran que la funcionalidad correspondiente no se pierda debido a futuros cambios.

Resumen

El modelado basado en historias ha demostrado ser muy eficaz para la colaboración con personas sin conocimientos de TI. [ 7 ] Las personas de otros ámbitos suelen tener dificultades para describir sus necesidades en términos generales (es decir, clases) y reglas generales (pseudocódigo). Del mismo modo, las personas comunes tienen problemas para comprender el pseudocódigo o para determinar si sus necesidades se han abordado correctamente. Sin embargo, estas personas conocen muy bien su negocio y, con la ayuda de ejemplos y escenarios concretos, a las personas comunes les resulta muy fácil detectar casos problemáticos y determinar si sus necesidades se han abordado adecuadamente.

El modelado basado en historias ha madurado desde sus inicios en 1997. En 2013 se utiliza para la enseñanza, por ejemplo, en la Universidad de Kassel, la Universidad de Paderborn, la Universidad de Tartu, la Universidad de Amberes, la Universidad Nazarbayev de Astana, el Instituto Hasso Platner de Potsdam, la Universidad de Victoria , ...

Véase también

Referencias

  1. Norbisrath, Ulrich; Zündorf, Albert; Jubeh, Ruben (2013). Story Driven Modeling . p.  333. ISBN 9781483949253.
  2. Zündorf, Albert; Schürr, A.; Winter, AJ (1999). "Modelado basado en historias". Universidad de Paderborn . Informe técnico (tr-ri-99-211).
  3. Diethelm, Ira; Geiger, L.; Zündorf, A. (enero de 2004). "Modelado sistemático basado en historias: un estudio de caso". Tercer Taller Internacional sobre Escenarios y Máquinas de Estados : 65–70 .
  4. van Gorp, Pieter (2008). "Evaluación de la metodología de modelado basada en historias: de torres a modelos". Informe técnico de la Universidad de Amberes .
  5. Eickhoff, Christoph; Geiger, N.; Hahn, M.; Zündorf, A. (2012). «Desarrollo de aplicaciones web empresariales mediante el enfoque de modelado basado en historias». Tendencias actuales en ingeniería web . LNCS. Vol. 7059. pp. 196–210 . doi : 10.1007/978-3-642-27997-3_21 . ISBN   978-3-642-27996-6.
  6. Ryser, J.; Glinz, M. (2000). "Mejora de la calidad de los requisitos con escenarios". Actas del Segundo Congreso Mundial sobre Calidad de Software. Yokohama : 55–60 .
  7. Zündorf, Albert; Leohold, J.; Müller, D.; Gemmerich, R.; Recordord, C.; Schneider, C.; Semmelroth, S. (2006). "Uso de escenarios de objetos para el análisis de requisitos: un informe de experiencia". Modellierung 2006 : 269– 278.