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 los 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 más bien abstractos como los tipos y las características de los 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:
Escenarios textuales : para la función 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 utilizar términos específicos y nombres individuales en lugar de términos generales y, por ejemplo, nombres de roles:
Escenario Barbacoa Go-Dutch
Comienzo: Este domingo, Peter, Putri y Peng se reúnen en el parque para hacer una barbacoa holandesa. Usan la aplicación Group Account 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 agrega este artículo. La aplicación muestra que, a esta altura, la porción promedio es de $7 y que Peng todavía tiene que traer estos $7 mientras que Peter recibe $5 y Putri recibe $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:
Escenario Barbacoa Go-Dutch
Comienzo: Este domingo, Peter, Putri y Peng se reúnen en el parque para hacer una barbacoa holandesa. Usan la aplicación Group Account 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 agrega este artículo. La aplicación muestra que, a esta altura, la porción promedio es de $7 y que Peng todavía tiene que traer estos $7 mientras que Peter recibe $5 y Putri recibe $2:
Paso 3: ...
Guión gráfico : A continuación, se piensa en cómo una determinada situación, es decir, un determinado 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 basado en historias, un escenario con diagramas de objetos también se denomina guión gráfico.
Escenario Barbacoa Go-Dutch
Comienzo: Este domingo, Peter, Putri y Peng se reúnen en el parque para hacer una barbacoa holandesa. Usan la aplicación Group Account 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 agrega este artículo. La aplicación muestra que, a esta altura, la porción promedio es de $7 y que Peng todavía tiene que traer estos $7 mientras que Peter recibe $5 y Putri recibe $2:
Paso 3: ...
Derivación de diagramas 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 garantiza que se utilicen los mismos tipos y atributos en general. Con 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 facilitarla, primero debe delinear 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, observe nuestra estructura de objetos y, desde el punto de vista del objeto GroupAccount, haga lo siguiente:
Actualizar 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.
Calcular la participación media de cada persona dividiendo el valor total por el número de personas.
visitar a cada persona
Para cada persona se reinicia el saldo
Para cada persona, visite cada artículo comprado por esta persona
Para cada artículo agregue el valor al saldo de la persona actual
por cada persona restar la parte del saldo
Implementación del 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 objetos.
Agregue 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.
Agregue un objeto de artículo con el comprador Peter, la descripción Meat y el valor $12 al objeto de cuenta de grupo
Agregue un objeto de artículo con el comprador Putri, la descripción Salad y el valor $9 al objeto de cuenta de grupo
Llamar al método para actualizar 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
Estas pruebas automáticas garantizan que, en la situación de ejemplo, la implementación del comportamiento realmente haga 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, son muy útiles para documentar el comportamiento deseado y el uso de las nuevas funciones, y garantizan que la funcionalidad correspondiente no se pierda debido a cambios futuros.
Resumen
Se ha demostrado que el modelado basado en historias funciona muy bien para la cooperación con personas que no son expertas 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). De manera similar, las personas normales tienen problemas para comprender el pseudocódigo o para juzgar si sus necesidades se han abordado 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 adecuadamente.
El modelado impulsado por 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, ...
^ Norbisrath, Ulrich; Zündorf, Albert; Jubeh, Ruben (2013). Modelado basado en historias . p. 333. ISBN9781483949253.
^ Zündorf, Albert; Schürr, A.; Winter, 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 estados : 65–70.
^ van Gorp, Pieter (2008). "Evaluación de la metodología de modelado basado en 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 mediante el enfoque de modelado basado en historias". Tendencias actuales en ingeniería web . LNCS. 7059 (7059): 196–210. doi : 10.1007/978-3-642-27997-3_21 . ISBN978-3-642-27996-6.
^ Ryser, J.; Glinz, M. (2000). "Mejora de la calidad de los requisitos con escenarios". Actas del Segundo Congreso Mundial sobre Calidad del Software. Yokohama : 55–60.
^ Zündorf, Albert; Leohold, J.; Müller, D.; Gemmerich, R.; Record, 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.