El modelado basado en historias [1] [2] [3] es una técnica de modelado orientada 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 componentes básicos 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 tipo.
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:
- Escenarios textuales : para la característica que desea implementar, desarrolle una descripción del escenario textual para el caso más común. Mire solo un ejemplo a la vez. Intente utilizar términos específicos y nombres individuales en lugar de términos generales y, por ejemplo, nombres de roles:
- Barbacoa Scenario Go-Dutch
- Inicio: Este domingo, Peter, Putri y Peng se encuentran en el parque para disfrutar de una barbacoa holandesa. Usan la aplicación Cuenta de grupo para hacer la contabilidad.
- Paso 1: Peter trae la carne por $ 12. Peter agrega este elemento a la aplicación Cuenta de grupo.
- Paso 2: Putri trae ensalada por $ 9. Peter también agrega 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 traer estos $ 7, mientras que Peter obtiene $ 5 y Putri obtiene $ 2.
- Paso 3: ...
- Maquetas de GUI : para ilustrar la interfaz gráfica de usuario (GUI) para la función deseada, puede agregar algunos modelos de estructura alámbrica o maquetas de GUI a su escenario:
- Barbacoa Scenario Go-Dutch
- Inicio: Este domingo, Peter, Putri y Peng se encuentran en el parque para disfrutar de una barbacoa holandesa. Usan la aplicación Cuenta de grupo para hacer la contabilidad.
- Paso 1: Peter trae la carne por $ 12. Peter agrega este elemento a la aplicación Cuenta de grupo.
- Paso 2: Putri trae ensalada por $ 9. Peter también agrega 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 traer estos $ 7 mientras que Peter obtiene $ 5 y Putri obtiene $ 2:
- Paso 3: ...
- Storyboarding : A continuación, piensa en cómo una determinada situación, es decir, un cierto paso de un escenario, puede representarse dentro de una computadora mediante una estructura de objeto en tiempo de ejecución. Esto se hace agregando diagramas de objetos al escenario. En el modelado guiado por historias, un escenario con diagramas de objetos también se denomina guión gráfico.
- Barbacoa Scenario Go-Dutch
- Inicio: Este domingo, Peter, Putri y Peng se encuentran en el parque para disfrutar de una barbacoa holandesa. Usan la aplicación Cuenta de grupo para hacer la contabilidad.
- Paso 1: Peter trae la carne por $ 12. Peter agrega este elemento a la aplicación Cuenta de grupo.
- Paso 2: Putri trae ensalada por $ 9. Peter también agrega 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 traer estos $ 7 mientras que Peter obtiene $ 5 y Putri obtiene $ 2:
- Paso 3: ...
- 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 guiones gráficos.
Tenga en cuenta que el diagrama de clases sirve como referencia común para todos los diagramas de objetos. Esto asegura que, en general, se utilicen los mismos tipos y atributos. Usando una herramienta UML , puede generar una primera implementación a partir de este diagrama de clases. - Diseño de algoritmos : hasta ahora ha modelado e implementado las estructuras de objetos que se implementan en su aplicación. Ahora necesita agregar comportamiento, es decir, algoritmos y cuerpos de métodos. Programar el comportamiento de una aplicación es una tarea exigente. Para facilitarlo, primero debe describir el comportamiento en notación de pseudocódigo . Puede hacer esto, por ejemplo, con un juego de objetos. Por ejemplo, para actualizar los atributos de saldo de todas las personas, miras nuestra estructura de objeto y desde el punto de vista del objeto GroupAccount haces lo siguiente:
- Actualiza el saldo de todas las personas:
- visita cada artículo
- para cada artículo agregue el valor al valor total y agregue 1 al número de artículos
- Calcule la participación promedio de cada persona dividiendo el valor total por el número de personas.
- visita a cada persona
- para cada persona resetear el saldo
- por cada persona visita cada artículo comprado por esta persona
- para cada artículo agregue el valor al saldo de la persona actual
- para cada persona restar la parte del saldo
- Implementación de comportamiento : una vez que haya refinado el pseudocódigo de su algoritmo hasta el nivel de operaciones en estructuras de objetos, es sencillo derivar el código fuente que ejecuta las mismas operaciones en la implementación de su modelo de objeto.
- Pruebas : Finalmente, los escenarios pueden usarse para derivar pruebas JUnit automáticas . El pseudocódigo de una prueba para nuestro ejemplo podría verse así:
- Prueba actualizar el saldo de todas las personas:
- crear un objeto de cuenta de grupo
- agregue un objeto persona con el nombre Peter y un objeto persona con el nombre Putri y un objeto persona con el nombre Peng al objeto de la cuenta de grupo
- agregue un objeto de artículo con el comprador Peter, descripción Carne y valor $ 12 al objeto de cuenta de grupo
- agregue un objeto de artículo con el comprador Putri, la descripción Ensalada y el valor $ 9 al objeto de la cuenta de grupo
- método de llamada actualiza el saldo de todas las personas en el objeto de cuenta de grupo
- asegúrese de que el saldo del objeto Peter sea $ 5
- asegúrese de que el saldo del objeto Putri sea $ 2
- asegúrese de que el saldo del objeto Peter sea - $ 7
- asegúrese de que la suma de todos los saldos sea $ 0
- Tales pruebas automáticas aseguran que en la situación de ejemplo la implementación del comportamiento realmente hace lo que se describe en el guión gráfico. Si bien estas pruebas son bastante simples y es posible que no identifiquen todo tipo de errores, estas pruebas son muy útiles para documentar el comportamiento deseado y el uso de las nuevas funciones, y estas pruebas garantizan que la funcionalidad correspondiente no se pierda debido a cambios futuros.
Resumen
El modelado basado en historias ha demostrado funcionar muy bien para la cooperación con no expertos en TI. [7] Las personas de otros dominios suelen tener dificultades para describir sus necesidades en términos generales (es decir, clases) y reglas generales (pseudocódigo). Del mismo modo, las personas normales tienen problemas para comprender el pseudocódigo o para juzgar si sus necesidades se abordan adecuadamente o no. Sin embargo, estas personas conocen muy bien su negocio y, con la ayuda de ejemplos y escenarios concretos, es muy fácil para las personas normales detectar casos problemáticos y juzgar si sus necesidades se han abordado correctamente.
Story Driven Modeling ha madurado desde su inicio 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 de Nazarbayev Astana, el Instituto Hasso Platner de Potsdam, la Universidad de Victoria, ...
Ver también
Referencias
- ^ Norbisrath, Ulrich; Zündorf, Albert; Jubeh, Ruben (2013). Modelado basado en historias . Amazon Createspace. pag. 333. ISBN 9781483949253.
- ^ Zündorf, Albert; Schürr, A .; Invierno, AJ (1999). "Modelado basado en historias". Universidad de Paderborn . Informe técnico (tr-ri-99-211).
- ^ 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 Estado : 65–70.
- ^ van Gorp, Pieter (2008). "Evaluación de la metodología de modelado guiado por historias: de torres a modelos". Informe técnico de la Universidad de Amberes .
- ^ Eickhoff, Christoph; Geiger, N .; Hahn, M .; Zündorf, A. (2012). "Desarrollo de aplicaciones web empresariales utilizando el enfoque de modelado basado en historias". Tendencias actuales en ingeniería web . LNCS (7059): 196–210.
- ^ Ryser, J .; Glinz, M. (2000). "Mejora de la calidad de los requisitos con escenarios". Actas del Segundo Congreso Mundial de Calidad del Software. Yokohama : 55–60.
- ^ Zündorf, Albert; Leohold, J .; Müller, D .; Gemmerich, R .; Reckord, 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.