Aplicación de Scrum y Uml para El Desarrollo de Un Sistema de Ventas
Aplicación de Scrum y Uml para El Desarrollo de Un Sistema de Ventas
Aplicación de Scrum y Uml para El Desarrollo de Un Sistema de Ventas
Autor:
Saúl Mamani Mamani
Cochabamba – Bolivia
2019
Dedicatoria y agradecimientos
A Dios, a mis padres, a mi novia, y a mis docentes por todo su apoyo
Gracias por compartir su conocimiento
ÍNDICE GENERAL
Resumen .................................................................................................................................... 1
1 Introducción ......................................................................................................................... 2
2 Antecedentes....................................................................................................................... 2
2.1 Antecedentes generales ............................................................................................... 2
2.2 Antecedentes específicos ............................................................................................. 3
3 Planteamiento del problema ................................................................................................ 4
4 Metodología de investigación............................................................................................... 4
4.1 Método bibliográfico...................................................................................................... 4
4.2 Método analítico ........................................................................................................... 4
4.3 Método empírico o de campo ....................................................................................... 4
5 Justificación ......................................................................................................................... 4
6 Aportes ................................................................................................................................ 5
7 Alcances y limitaciones ........................................................................................................ 5
8 Marco teórico ....................................................................................................................... 6
8.1 Manifiesto ágil............................................................................................................... 6
8.2 Scrum ........................................................................................................................... 6
8.3 Historias de usuario ...................................................................................................... 7
8.4 Lenguaje de Modelado Unificado.................................................................................. 7
8.5 Product Vision Board .................................................................................................... 8
8.6 Trello ............................................................................................................................ 8
8.7 Git................................................................................................................................. 8
8.8 Heroku .......................................................................................................................... 9
8.9 Puntos de historia ......................................................................................................... 9
9 Marco Práctico ................................................................................................................... 10
9.1 Modelo del negocio..................................................................................................... 10
9.1.1 Product Vision Board ........................................................................................... 10
9.2 Roles y stackeholders................................................................................................. 10
9.3 Historias de usuario .................................................................................................... 10
9.4 Product backlog .......................................................................................................... 14
9.5 Estimación del product backlog .................................................................................. 15
9.6 Definición de hecho .................................................................................................... 16
9.7 Definición de la arquitectura ....................................................................................... 16
9.7.1 Diagrama de componentes .................................................................................. 16
9.8 Primer sprint ............................................................................................................... 17
9.8.1 Sprint planning..................................................................................................... 17
9.8.2 Diagrama de casos de uso .................................................................................. 17
9.8.3 Diagrama de clases persistentes ......................................................................... 18
9.8.4 Especificación de casos de uso ........................................................................... 19
9.8.5 Sprint backlog ...................................................................................................... 23
9.8.6 Sprint execution ................................................................................................... 23
9.8.7 Sprint review ........................................................................................................ 25
9.8.8 Sprint retrospective .............................................................................................. 27
9.9 Segundo sprint ........................................................................................................... 28
9.9.1 Sprint planning..................................................................................................... 28
9.9.2 Diagrama de casos de uso .................................................................................. 28
9.9.3 Diagrama de clases persistentes ......................................................................... 29
9.9.4 Especificación de casos de uso ........................................................................... 29
9.9.5 Sprint backlog ...................................................................................................... 32
9.9.6 Sprint execution ................................................................................................... 32
9.9.7 Sprint review ........................................................................................................ 34
9.9.8 Sprint retrospective .............................................................................................. 35
9.10 Tercer sprint ............................................................................................................... 36
9.10.1 Sprint planning..................................................................................................... 36
9.10.2 Diagrama de casos de uso .................................................................................. 36
9.10.3 Diagrama de clases persistentes ......................................................................... 37
9.10.4 Especificación de casos de uso ........................................................................... 37
9.10.5 Sprint backlog ...................................................................................................... 38
9.10.6 Sprint execution ................................................................................................... 39
9.10.7 Sprint review ........................................................................................................ 41
9.10.8 Sprint retrospective .............................................................................................. 43
9.11 Diagrama general de casos de uso ............................................................................ 44
9.12 Diagrama de despliegue ............................................................................................. 45
10 Conclusiones y recomendaciones .................................................................................. 46
10.1 Conclusiones .............................................................................................................. 46
10.2 Recomendaciones ...................................................................................................... 46
Bibliografía................................................................................................................................ 47
ÍNDICE DE TABLAS
La presente monografía muestra cómo una metodología ágil puede trabajar en conjunto con una
notación de modelado visual, sin afectar los principios y valores del manifiesto ágil.
Se emplea Scrum como metodología ágil de desarrollo de software; aplicando sus principios,
valores y prácticas.
Para modelar de forma visual la funcionalidad, la arquitectura lógica, y la arquitectura física del
sistema; se utilizan algunos diagramas del Lenguaje de Modelado Unificado. UML 2.5.
Estos conceptos se ponen en práctica desarrollando un sistema para la venta de comidas y
bebidas. Se comprende mejor la visión del proyecto con un product vision board, los
requerimientos funcionales son capturados con historias de usuario escritas por el product owner,
se organizan y priorizan las historias de usuario en un product backlog, se estiman el esfuerzo y
el tiempo de cada historia, y se dividen las historias en tres iteraciones (sprints). El modelado
visual de cada iteración se lo realiza con diagramas de casos de uso y diagramas de clases.
Además, se realiza el seguimiento de todas las tareas programadas en un tablero Kanban, y se
lleva un historial de todo el código fuente con una herramienta de control de versiones. En cada
iteración se realiza el sprint review y el sprint restrospective.
Para finalizar, se muestra la funcionalidad global del sistema en un diagrama de casos de uso,
un diagrama de componentes muestra la arquitectura del sistema y lo componentes necesarios
para desarrollarlo, y un diagrama de despliegue muestra la arquitectura física de la red, los
servidores y la tecnología necesaria para que el sistema sea puesto en producción.
1
1 INTRODUCCIÓN
La información es considerada el activo más importante en cualquier institución, empresa u
organización. La buena o mala administración de este activo es fundamental, principalmente en
lo que se refiere a la toma de decisiones, ya que podría determinar el éxito o el fracaso de los
proyectos o tareas que realizan la institución. Es por esto que las instituciones dependen cada
vez más de la creación, gestión y publicación de sistemas informáticos; capaces de automatizar
y administrar su información de manera fiable y eficiente.
En este contexto la ingeniería de software juega un papel muy importante, ya que nos brinda un
conjunto de metodologías, métodos, técnicas, y herramientas para desarrollar sistemas software
fiables, que cumplan con los requerimientos de los usuarios, y con los estándares de calidad
impuestos por la industria del software.
2 ANTECEDENTES
2.1 Antecedentes generales
El desarrollo de software se puede realizar de muchas maneras. Hay diferentes procesos de
desarrollo que los proyectos siguen, desde el modelo de la cascada hasta los procesos
basados en objetivos, pasando por los procesos iterativos e incrementales hasta las
metodologías ágiles.
Durante mucho tiempo el desarrollo de software siguió un proceso en cascada. En este
modelo analizamos los requisitos, diseñamos, desarrollamos, probamos y por último
desplegamos el sistema. Una de las principales limitaciones del modelo en cascada es que
no permite retroalimentación en cada una de sus etapas, después de algún tiempo cuando
terminamos el proyecto y se lo entregamos a los usuarios probablemente el negocio ha
experimentado cambios mientras nosotros construíamos el sistema, y los usuarios
responden “Esto es lo que pedí, pero ya no me sirve”.
Por todas las limitaciones del modelo en cascada surge el concepto de desarrollo iterativo e
incremental. Un proyecto puede verse como una serie de pequeñas cascadas, realizando
entregas incrementales a los usuarios finales, de los cuales recibimos retroalimentación para
la siguiente iteración. Siguiendo esta visión aparecen un sin fin de modelos; como la
metodología en Espiral, Prototipo, Incremental, el Proceso Unificado de desarrollo (UP o sus
variantes RUP, AUP, EUP, etc.), Ingeniería Web basada en UML (UWE), etc. Sin embargo,
estos modelos se enfocan en una planificación estricta antes de comenzar el desarrollo del
sistema, esto conlleva mucha documentación, burocracia e iteraciones largas; esto es bueno
para sistemas cuyos requisitos no cambian mucho, pero es un verdadero problema en
sistemas que están en constante cambio.
Por esta razón surgen las metodologías ágiles, como SCRUM, programación extrema (XP),
Kanban, etc. cuya visión se centra en el manifiesto ágil1. Estas metodologías se enfocan en
el trabajo en equipo, se considera al cliente como parte del equipo, y se realizan entregables
e iteraciones cortas para que el usuario o el cliente constantemente realice retroalimentación
para construir un producto de calidad acorde a sus necesidades.
La comunicación entre los clientes, usuarios y desarrolladores es muy importante para
construir el sistema. Los clientes exponen sus necesidades comerciales y los desarrolladores
lo plasman en requisitos funcionales y estos requisitos son transformados en código fuente;
a este proceso se lo conoce como modelado. El modelado se lo puede realizar de forma
1El manifiesto ágil es un documento que postula 4 valores y 12 principios para el desarrollo del software
con metodologías ágiles
2
textual, pero se mejora bastante si se utiliza una notación visual como el que nos ofrece el
Lenguaje de Modelado Unificado (UML).
2.2 Antecedentes específicos
«Todo en el software cambia. Los requisitos cambian. El diseño cambia. El negocio cambia.
La tecnología cambia. El equipo cambia. Los miembros del equipo cambian. El problema no
es el cambio en sí mismo, puesto que sabemos que el cambio va a suceder; el problema es
la incapacidad de adaptarnos a dicho cambio cuando éste tiene lugar.» Kent Beck.
Scrum es un marco de trabajo ágil que está basado en un pequeño conjunto de valores,
principios y prácticas. Scrum ha ganado popularidad en estos últimos años ya que se adapta
bien en proyecto cuyos requisitos cambian constantemente, proyectos no predecibles, y
proyectos de entorno complejos con gran incertidumbre.
El Lenguaje de Modelado Unificado ofrece una notación visual para modelar los artefactos
de los sistemas orientados a objetos, se considera un estándar de facto para el análisis y
diseño de sistemas. UML 2.5 ofrece un conjunto de diagramas que ayudan a mejorar la
comunicación entre todos los involucrados en el desarrollo del proyecto.
Con el fin de aplicar estos conceptos en un ejemplo práctico, esta monografía tiene como
objetivo desarrollar un sistema de ventas aplicando la notación de modelado visual UML y la
metodología ágil SCRUM.
Para lograr alcanzar este objetivo, se realizarán las siguientes tareas:
− Elaborar un product vision board para entender mejor el sistema que se va a
desarrollar y determinar la visión del proyecto.
− Capturar requerimientos funcionales, para determinar el ámbito del sistema a través
de historias de usuario escritas por los mismos clientes o por el product owner.
− Planificar las iteraciones necesarias para realizar la entrega de incrementos de calidad
que proporcionen valor al cliente.
− Estimar el esfuerzo y el tiempo de las historias de usuarios con el método puntos
historia y planning pocker.
− Identificar los diagramas UML necesarios para modelar de manera visual los artefactos
del sistema.
− Utilizar herramientas de control de versiones, para llevar un control adecuado de los
cambios a lo largo del desarrollo del sistema.
3
− Desarrollar el sistema de ventas empleando las herramientas y la tecnología
apropiada.
3 PLANTEAMIENTO DEL PROBLEMA
Muchas veces se mal interpreta el manifiesto ágil referente al valor “software que funciona sobre
documentación exhaustiva”. Esto no significa que se descarte toda documentación, sino, que se
logre obtener la documentación adecuada y necesaria que sirva de ayuda tanto para los
miembros del equipo scrum como para los stakeholders2.
El Lenguaje de Modelado Unificado a priori podría significar mucha burocracia y una carga
innecesaria a la documentación del producto cuando se está utilizando una metodología ágil
como SCRUM. Sin embargo, esto no es siempre cierto si se lo maneja de manera adecuada
modelando solo los diagramas necesarios que ayuden a resolver el problema, ya que ofrece una
notación visual que podría ser muy bien aprovechada.
Por este motivo se plantea el siguiente problema:
¿Se puede desarrollar un sistema de ventas aplicando UML como notación de modelado y
SCRUM como metodología de desarrollo ágil?
4 METODOLOGÍA DE INVESTIGACIÓN
Se utilizan los siguientes métodos de investigación para la elaboración del presente trabajo.
4.1 Método bibliográfico
Se realiza la compilación y la lectura de libros relacionados con ingeniería de software,
metodologías de desarrollo de software, metodologías ágiles, análisis y diseño de sistemas,
programación y base de datos.
4.2 Método analítico
Se revisa y analiza ordenadamente documentos relacionados con el tema de estudio para la
realización el presente trabajo.
4.3 Método empírico o de campo
Se utilizan ejemplos de aplicaciones prácticas y experiencias específicas en el desarrollo de
sistemas de información.
5 JUSTIFICACIÓN
Uno de los valores del manifiesto ágil indica: “Software que funciona sobre documentación
exhaustiva”. Este manifiesto no indica que se deba prescindir de toda documentación, más bien,
se debe elaborar la documentación mínima y necesaria para el desarrollo y el mantenimiento del
sistema.
SCRUM basa el desarrollo del proyecto y sus iteraciones en historias de usuario que son
narraciones textuales de las características que debe tener el sistema. Las historias de usuario,
al ser independientes y pequeñas, a veces se vuelven complejas de comprender cuando se trata
de ver el funcionamiento o el objetivo global de la iteración o del sistema; y cómo estas
características trabajan entre sí. En este contexto UML, al ser una notación gráfica de modelado,
mostraría de manera clara el funcionamiento global del sistema, y ayudaría a comprender mejor
los objetivos de la iteración.
2 Stackeholder hace referencia a todas las personas que de alguna forma están involucradas en el
desarrollo del sistema, como los clientes, el gerente de la empresa, los contadores, etc. pero que no
necesariamente forman parte del equipo Scrum
4
6 APORTES
El empleo de una metodología ágil como SCRUM trabajando en conjunto con una notación de
modelado visual como UML, servirán de referencia bibliográfica a los estudiantes o profesionales
de las carreras de ingeniería de sistemas o ingeniería informática que cursen el diplomado y
quieran elaborar trabajos sobre el módulo de gestión de procesos de desarrollo software.
7 ALCANCES Y LIMITACIONES
Para poner en práctica la idea que se quiere mostrar en la presente monografía, se desarrolla un
sistema de ventas para restaurants, tiendas o franquicias se dediquen a vender comidas y
bebidas.
Se utiliza SCRUM como metodología de desarrollo ágil y UML como notación de modelado visual.
Se propone un sistema en plataforma web que se desarrolla bajo el patrón de arquitectura
Modelo, Vista y Controlador (MVC), Laravel 5.9 como framework de desarrollo, PHP como
lenguaje de programación backend, Bootstrap 4, Java script y VueJS para el desarrollo frontend,
y PostgreSQL como gestor de base de datos.
a) Alcances:
− Administración de usuarios, roles y permisos
− Gestión de productos (comidas y bebidas)
− Gestión de clientes
− Registro de venta de productos
− Anulación y restablecimiento de las ventas
− Generación de un recibo o nota de venta.
− Generación de informes económicos y reportes estadísticos
b) Limitaciones:
− Para mantener la simplicidad del proyecto, no se implementa un módulo de facturación
computarizada.
− La monografía está enfocada en el análisis, diseño y desarrollo del sistema. Por esta
razón no se documenta las pruebas realizadas ni la puesta en producción.
5
8 MARCO TEÓRICO
8.1 Manifiesto ágil
Como consecuencia de una reunión donde se acuño el término “Metodologías Ágiles”
(febrero 2001), se establecieron los valores de estas metodologías agrupándoles en cuatro
postulados; quedando esta agrupación denominada como Manifiesto Ágil. A continuación,
se mencionan los cuatro postulados de este manifiesto:
− Valorar más a los individuos y su interacción que a los procesos y las herramientas.
− Valorar más el software que funciona que la documentación exhaustiva.
− Valorar más la colaboración con el cliente que la negociación contractual.
− Valorar la respuesta al cambio que el seguimiento de un plan.
Esto quiere decir que se valora más lo primero, sin dejar de lado lo segundo
8.2 Scrum
Scrum es un marco de trabajo para la gestión y desarrollo de productos complejos, en un
proceso iterativo e incremental utilizado comúnmente en entornos donde existe gran
incertidumbre.
Scrum está basado en un pequeño conjunto de valores, principios, y prácticas; que se basan
en los principios de inspección y adaptación, enfocado más en el aspecto humano y el trabajo
en equipo donde se involucra totalmente al cliente en todo el proceso.
6
Ilustración 3: Practicas de SCRUM
Fuente: (Rubin, 2013)
Es una narración que describe una funcionalidad del sistema que tiene valor para un usuario.
Las historias de usuario deben ser independientes, negociables, evaluables, estimables,
pequeñas, y se las deben probar.
7
UML es una notación de modelado para sistemas orientados a objetos, independiente de la
metodología o del proceso de desarrollo.
a) Diagramas UML
8.6 Trello
Trello es un software de administración de proyectos con interfaz web y con cliente para iOS
y Android para organizar proyectos.
Empleando el sistema Kanban para el registro de actividades con tarjetas virtuales organizar
tareas, permite agregar listas, adjuntar archivos, etiquetar eventos, agregar comentarios, y
compartir tableros.
8.7 Git
Git es un software de control de versiones, pensando en la eficiencia y la confiabilidad del
mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de
archivos de código fuente.
8
8.8 Heroku
Heroku es una plataforma como servicio de computación en la Nube que soporta distintos
lenguajes de programación.
Heroku es una de las primeras plataformas de computación en la nube, que fue desarrollada
desde junio de 2007, con el objetivo de soportar solamente el lenguaje de programación
Ruby, pero posteriormente se ha extendido el soporte a Java, Node.js, Scala, Python, y PHP.
La base del sistema operativo es Debian.
8.9 Puntos de historia
El método de los puntos de historia es la forma de realizar estimaciones de esfuerzo y tiempo
a las historis de usuario. También nos sirve para medir la velocidad del sprint en la reunión
de retrospectiva.
Se escoge una historia de usuario sencilla, una que todo el mundo entiende, para emplearla
como referencia. Esa sería la definición de 1 punto de historia en el proyecto. Para estimas
las otras historias de usuario, bastará con compararlo con la historia de referencia.
Se emplea la actividad de planning pocker para determinar el valor de los puntos y el tiempo
de las historias de usuario, según el siguiente cuadro.
XtraSmall (XS) 1 ½
Small (S) 2 1
Medium (M) 3 2
Large (L) 5 3
XtraLarge (XL) 8 5
9
9 MARCO PRÁCTICO
9.1 Modelo del negocio
El sistema de información propuesto según los alcances y limitaciones [Pág. 5], está
orientado para cualquier negocio o empresa cuyo rubro principal consiste en la venta de
comidas y bebidas; éstas pueden ser restaurant, pensiones, fondas, franquicias de comida
rápida, etc.
Como el proyecto no se enfoca en un negocio o empresa en particular, se hace uso del
product vision board para comprender mejor la visión del producto que se va a desarrollar.
9.1.1 Product Vision Board
• Sistema de • Control
• Restaurants • Controlar las
información web económico
• Pensiones ventas que se
• Administración fiable
• Fondas realizan
de usuarios y • Reportes
• Pollerías • Realizar
permisos estadísticos
• Franquicias de Informes
• Gestión de confiables
comida rápida económicos
diarios y productos • Publicidad
mensuales • Gestión de • Descuentos a
• Realizar clientes clientes
reportes • Administración potenciales
estadísticos de las ventas
para publicidad • Generación de
o descuentos recibos
• Generación de
informes
económicos
• Generación de
reportes
estadísticos
Tabla 2: Product Vision Board del proyecto
10
HU1: Ingresar al sistema como administrador
Como Administrador
Como Vendedor
Como Administrador
Como Vendedor
Como Vendedor
11
HU6: Gestionar productos
Como Vendedor
Como Vendedor
Como Vendedor
Como Vendedor
12
HU10: Generar número de ticket
Como Vendedor
Como Vendedor
Como Vendedor
Como Vendedor
13
HU14: Generar informe económico
Como Vendedor
Como Administrador
Historia de
Descripción Prioridad
usuario
HU1 Ingresar al Sistema como administrador 1
HU2 Ingresar al sistema como vendedor 1
HU3 Gestionar usuarios del sistema 1
HU4 Administrar perfil de usuario 1
HU5 Cambiar contraseña 1
HU6 Gestionar productos 1
HU7 Gestionar clientes 1
HU8 Listar ventas 2
HU9 Registrar ventas 2
HU10 Generar número de ticket 2
HU11 Generar recibo 2
HU12 Anular ventas 3
14
HU13 Restablecer ventas 3
HU14 Generar informe económico 3
HU15 Generar reportes estadísticos 3
Puntos Tiempo
Sprint HU Descripción Size de
historia [Días]
15
9.6 Definición de hecho
Se establece la “definición de hecho” cuando todas las tareas definidas en el sprint backlog
de una iteración se hayan completado, se han verificado los criterios de aceptación, y se ha
desplegado el product increment en un servidor de pruebas como Heroku.
9.7 Definición de la arquitectura
Para modelar y analizar la arquitectura del sistema se utiliza el diagrama de componentes y
el diagrama de despliegue del Lenguaje de Modelado Unificado.
9.7.1 Diagrama de componentes
El diagrama de componentes muestra la arquitectura lógica del sistema software y los
cmp Component Model
componentes necesarios para construir la aplicación web.
«library»
vue.js 2
«library»
jQuery.js 3.2
«templates»
AdminLTE 5.7
«web application»
Views ctrlFOOD Models
«PHP library»
domPDF 0.8
Controllers
«PHP framework»
Laravel 5.8
.env
«data base»
postgreSQL 11
Descripción:
ctrlFOOD: La aplicación web que se va a desarrollar bajo laarquitectura MVC
.env: Archivo de configuración del sistema
postgreSQL 11: Gestor de base de datos
vue.js 2: Framework progresivo para construir interfaces de usuario
jQuery 1.11: Biblioteca multiplataforma java script
AdminLTE 2: Panel de administración de usuario para Bootstrap
domPDF: Librería PHP para la generación de reportes en PDF
Laravel 5.8: Framework de código abierto para desarrollar aplicaciones y servicios web con PHP
16
9.8 Primer sprint
9.8.1 Sprint planning
El sprint planning muestra qué3 es lo que se tiene que desarrollar en esta iteración, y
los tiempos comprometidos para finalizar cada historia de usuario.
Puntos Tiempo
HU Descripción de Inicio Finalización
[Días]
historia
Ingresar al Sistema 02/09/2019 02/09/2019
HU1 1 ½
como administrador
Ingresar al sistema 02/09/2019 02/09/2019
HU2 1 ½
como vendedor
Puntos de historia/Tiempo
estimado 10 5
(Time Boxing)
3 La palabra qué es lo que se tiene que hacer, hace referencia al análisis de sistemas dentro el ciclo de
vida un proyecto de desarrollo de software.
17
uc Primer Sprint
«login»
Iniciar Sesión
Administrar Perfil
Vendedor
«CRUD»
«extend»
Gestionar clientes
Cambiar contraseña
«CRUD»
Gestionar productos
«CRUD»
Administrador Gestionar usuarios
Product User
«dataType»
Categoria - fotografia: char - email: char
- nombre: char - email_verified_at: timestamps
- Bebida: char «derive» - precio: float - fotografia: char
- Comida: char - name: char
«enum»
- password: char
- categoria: Categoria
«enum»
- rol: Rol
Client
«derive»
- nit: int
- razon_social: char
«dataType»
Rol
- Administrador: char
- Vendedor: char
18
9.8.4 Especificación de casos de uso
Para la especificación de los casos de uso utilizamos historias de usuario detallados.
20
Eliminar
− El actor selecciona un registro presiona el
botón Eliminar
− El sistema muestra un mensaje de
confirmación
− El actor confirma el mensaje
− El sistema elimina el registro de la base de
datos
Elaborado por: Responsable: Versión:
Saul Mamani Saul Mamani 1.0
Tabla 23: Caso de uso gestionar clientes
21
− El actor confirma el mensaje
− El sistema elimina el registro de la base de
datos
Elaborado por: Responsable: Versión:
Saul Mamani Saul Mamani 1.0
Tabla 24: Caso de uso gestionar productos
22
9.8.5 Sprint backlog
Para determinar cómo4 se va a desarrollar el sprint, se identifican una o varias tareas
por historia de usuario, las cuales son agrupadas en un sprint backlog y asignadas a
los miembros del equipo de desarrollo.
HU Descripción Tareas
4La palabra cómo se va a desarrollar, hace referencia al diseño de sistemas dentro el ciclo de vida un
proyecto de desarrollo de software.
23
Ilustración 11: Tablero Kanban primer sprint
Fuente: Elaboración propia
Para controlar el avance del código fuente se utiliza el sistema de control de versiones
GIT, el cual se encuentra en GitHub bajo en el siguiente repositorio:
http://github.com/saulmamani/ctrlFood
24
Ilustración 13: Modelo relacional de la base de datos del primer sprint
Fuente: Elaboración propia
25
Ilustración 15: Pantalla administrar perfil de usuario
Fuente: Elaboración propia
26
9.8.8 Sprint retrospective
El desarrollo del primer sprint se concluyó de manera adecuada cumpliendo las tareas,
los tiempos establecidos, y la definición de hecho establecido al inicio del sprint. Esta
evolución se puede apreciar en el gráfico burndown.
Primer sprint
10 8
8
Story Points
6
6 8 4
6,4 3
4 2
4,8
2 3,2 0
0 1,6
Beginning 1 2 3 4 5
4,44089E-16
Balance
Days
27
9.9 Segundo sprint
9.9.1 Sprint planning
El sprint planning muestra qué es lo que se tiene que desarrollar en esta iteración, y
los tiempos comprometidos para finalizar cada historia de usuario.
Puntos
Tiempo
HU Descripción de Inicio Finalización
[Días]
historia
HU8 Listar ventas 2 1 08/09/2019 09/09/2019
HU9 Registrar ventas 5 3 10/09/2019 12/09/2019
HU10 Generar nro. de ticket 1 ½ 13/09/2019 13/09/2019
HU11 Generar recibo 1 ½ 13/09/2019 13/09/2019
Puntos de historia / Tiempo
estimado 9 5
(Time Boxing)
Tabla 28: Segundo sprint planning
«CRUD»
Gestionar clientes
Registrar ventas
extension points
imprimir recibo «include»
«include»
Administrador
(from Generar recibo
Primer
Sprint)
28
9.9.3 Diagrama de clases persistentes
class Segundo
SeSprint
emplea el diagrama de clases para modelar el esquema lógico de la base de datos.
User «dataType»
«derive» Rol
- email: char 1
- email_verified_at: timestamps - Administrador: char
- fotografia: char +Vendedor - Vendedor: char
*
- name: char
- password: char Sale
«enum»
- rol: Rol - concepto: char
- estado: boolean Client
- fecha: date
«dataType» - nit: int - nit: int
Categoria 0..1 1 - razon_social: char
- numero: int
- numero_ticket: int
- Bebida: char
- razon_social: char
- Comida: char
1
«derive»
Product
1..*
- fotografia: char
- nombre: char
Detail
- precio: float
«enum» 1 1 - cantidad: int
- categoria: Categoria - precio: float
29
− El actor llena los datos del
formulario y pulsa el botón Buscar
− El sistema actualiza el listado
según los parámetros de búsqueda
Elaborado por: Responsable: Versión:
Saul Mamani Saul Mamani 1.0
Tabla 29: Caso de uso Listar ventas
30
Caso de uso: Generar número de ticket Historia de usuario: HU10
Actor: Vendedor Depende de: HU9
Descripción: Genera el número de ticket de la transacción
Criterio de Aceptación:
− Al registrar una nueva venta, el sistema genera un número de ticket que
se va incrementando de uno en uno, y empieza en 1 al inicio de cada
jornada.
31
9.9.5 Sprint backlog
Para determinar cómo se va a desarrollar el sprint, se identifican una o varias tareas
por historia de usuario, las cuales son agrupadas en un sprint backlog y asignadas a
los miembros del equipo de desarrollo.
HU Descripción Tareas
T1. Diseñar el Formulario de búsquedas
HU8 Listar ventas
T2. Desarrollar los listados
T3. Listar los productos a ser vendidos
T4. Registrar en el carrito de ventas
HU9 Registrar ventas
T5. Calcular los totales
T6. Registrar la venta
HU10 Generar nro. de ticket T7. Generar el número de ticket
HU11 Generar recibo T8. Diseñar el recibo integrando un código QR
Tabla 33: Segundo sprint backlog
32
Para controlar el avance del código fuente se utiliza el sistema de control de versiones
GIT, el cual se encuentra en GitHub bajo en el siguiente repositorio:
http://github.com/saulmamani/ctrlFood
33
9.9.7 Sprint review
El product increment representa los entregables realizados al product owner y al
cliente, estos entregables reflejan el cumplimiento del segundo sprint.
Se ha desplegado el sistema en la siguiente dirección URL, a modo de prueba para su
revisión: https://ctrlfood.herokuapp.com
34
9.9.8 Sprint retrospective
El desarrollo del segundo sprint se concluyó de manera adecuada cumpliendo las
tareas, los tiempos establecidos, y la definición de hecho establecido al inicio del sprint.
Esta evolución se puede apreciar en el gráfico burndown.
Segundo sprint
10
8
8
6
Story Points
8
6
6,4 4
4 3
4,8 2
2 3,2
0
0 1,6
Beginning Balance 1 2 3 4 5
4,44089E-16
Days
35
9.10 Tercer sprint
9.10.1 Sprint planning
El sprint planning muestra qué es lo que se tiene que desarrollar en esta iteración, y
los tiempos comprometidos para finalizar cada historia de usuario.
Puntos
Tiempo
HU Descripción de Inicio Finalización
[Días]
historia
HU12 Anular ventas 1 ½ 16/09/2019 16/09/2019
HU13 Restablecer ventas 1 ½ 16/09/2019 16/09/2019
HU14 Generar informe económico 3 2 17/09/2019 18/09/2019
Generar reportes
HU15 3 2 19/09/2019 20/09/2019
estadísticos
Puntos historia/Tiempo estimado
8 5
(Time Boxing)
Tabla 34: Tercer sprint planning
Listar ventas
extension points
imprimir recibo «extend»
anular ventas
restablecer ventas
Vendedor
(from Generar reportes «extend»
Primer
Sprint)
Restablecer ventas
Generar número de
Administrador ticket
Reportes estadísticos
(from
Primer
Sprint) (from Segundo Sprint)
36
9.10.3 Diagrama de clases persistentes
Se emplea
class Tercer Sprint el diagrama de clases para modelar el esquema lógico de la base de datos.
User
«derive» «dataType»
- email: char
Rol
- email_verified_at: timestamps
- fotografia: char - Administrador: char
- name: char 1 - Vendedor: char
- password: char +Vendedor *
«enum»
- rol: Rol Sale
- concepto: char
«dataType» - estado: Estado Client
Categoria - fecha: date
0..1 - nit: int
- nit: int 1
- Bebida: char - razon_social: char
- numero: int
- Comida: char
- numero_ticket: int
- razon_social: char
«derive» 1 «derive»
Product 1..*
«dataType»
- fotografia: char Estado
- nombre: char Detail
- precio: float - Activo: boolean
- cantidad: int
1 1 - - Anulado: boolean
«enum» precio: float
- categoria: Categoria
37
Caso de uso: Restablecer ventas Historia de usuario: HU13
Prioridad: Baja Depende de: HU12
Descripción: Restablece ventas anuladas por error
Criterio de Aceptación:
− El sistema muestra la lista de ventas anuladas de
la fecha actual.
− El actor pulsa el botón Restablecer
− El sistema cambia el estado de la venta en la base
de datos y recarga la lista.
Elaborado por: Responsable: Versión:
Saul Mamani Saul Mamani 1.0
Tabla 36: Caso de uso Restablecer ventas
38
9.10.6 Sprint execution
Para controlar la ejecución del sprint y el avance de las tareas, empleamos un tablero
Kanban con la herramienta Trello.
39
Para controlar el avance del código fuente se utiliza el sistema de control de versiones
GIT, el cual se encuentra en GitHub bajo en el siguiente repositorio:
http://github.com/saulmamani/ctrlFood
40
9.10.7 Sprint review
El product increment representa los entregables realizados al product owner y al
cliente, estos entregables reflejan el cumplimiento del tercer sprint.
Se ha desplegado el sistema en la siguiente dirección URL, a modo de prueba para su
revisión: https://ctrlfood.herokuapp.com
41
Ilustración 37: Pantalla reporte de ventas
Fuente: Elaboración propia
42
9.10.8 Sprint retrospective
El desarrollo del tercer sprint se concluyó de manera adecuada cumpliendo las tareas,
los tiempos establecidos, y la definición de hecho establecido al inicio del sprint. Esta
evolución se puede apreciar en el gráfico burndown.
Tercer sprint
10 8
8
Story Points
6
6 8 4
6,4 3
4 2
4,8
2 3,2 0
0 1,6
Beginning 1 2 3 4 5
4,44089E-16
Balance
Days
43
9.11 Diagrama general de casos de uso
Se puede ver la funcionalidad global del sistema, y su interacción con los actores, en el
uc Diagrama de casos de uso final
siguiente diagrama de casos de uso.
ctrlFOOD
«login»
Iniciar Sesión
Administrar Perfil
«extend»
(from Primer Sprint)
«extend»
Cambiar contraseña
Vendedor Registrar ventas
(from
Primer extension points (from Primer Sprint)
Sprint) Nuevo cliente
«include»
«extend»
(from Segundo Sprint)
«include»
«CRUD»
«extend»
Gestionar productos
Informes económicos
(from Tercer Sprint)
(from Tercer Sprint)
Administrador
(from Reportes estadísticos
Primer
Sprint)
44
9.12 Diagrama de despliegue
El diagrama de despliegue muestra la arquitectura física de red y los servidores donde
el software será puesto en producción, además de, las terminales de los clientes que
van a utilizar el sistema.
tcp/ip
«device»
router
1 1
tcp/ip tcp/ip
1 *
Administrador: PC Vendedor: PC
45
10 CONCLUSIONES Y RECOMENDACIONES
Después de haber culminado las diferentes etapas del desarrollo de la monografía, se puede
llegar a las siguientes conclusiones y realizar las algunas recomendaciones:
10.1 Conclusiones
Es posible trabajar con una metodología ágil como scrum en combinación con una notación
de modelado visual como UML, sin dañar el valor del manifiesto ágil que dicta: “Software
funcionando sobre documentación exhaustiva”, utilizando solamente los diagramas
necesarios que ayuden a comprender mejor la funcionalidad, las interacciones, y la lógica
del sistema.
UML, al ser una notación de modelado visual, mejora la comprensión del problema y el
objetivo de las iteraciones, además, mejora la comunicación entre los diferentes miembros
del equipo scrum y los stackeholders, puesto que con una notación visual se puede observar
mejor los distintos niveles de abstracción de un sistema.
Se han cumplido también las tareas planteadas al principio del proyecto. [Pág. 3]
− Con la ayuda del product vision board se logró comprender la visión del producto que
fue desarrollado como ejemplo para la monografía.
− El ámbito del sistema fue determinado con las historias de usuario escritas por el
product owner.
− Se ha cumplido con la planificación descrita en el product backlog, siguiendo los plazos
estimados dentro las iteraciones y las entregas establecidas en el despliegue.
− Se han modelado diagramas de casos de uso, para tener una visión global de la
funcionalidad dentro de cada iteración o de cada sprint, y diagramas de clases para
representar la lógica de la base de datos. Además, se ha modelado el diagrama de
componentes y el diagrama de despliegue para mostrar la arquitectura del sistema, la
arquitectura física, los servidores, y la tecnología que se necesita para la puesta en
producción del sistema.
− Para controlar el avance de las tareas identificadas en el sprint backlog de cada
iteración, se ha utilizado un tablero virtual Kanban, apoyándonos en la herramienta
online Trello.
− Se tiene un historial completo de todos los cambios realizados al código del sistema
con la herramienta de control de versiones Git.
− El sistema fue desarrollado de acuerdo a lo planificado y se encuentra desplegado
Heroku como un servidor de pruebas. https://ctrlfood.herokuapp.com
10.2 Recomendaciones
Si se va utilizar una notación de modelado visual como UML con una metodología de
desarrollo ágil, se recomienda aplicar solo los diagramas que sean estrictamente necesarios
para resolver y comprender mejor el problema; de esta forma no dañará los valores y los
principios del manifiesto ágil.
46
BIBLIOGRAFÍA
− Conallen, J. (2011). Building Web Applications with UML. Boston: Addinson-Wesley.
− Group, O. M. (13 de 09 de 2019). omg. Obtenido de omg:
https://www.omg.org/spec/UML/About-UML/
− Hiromoto, H. (31 de 12 de 2017). scrumorganico. Obtenido de scrumorganico:
https://medium.com/scrumorganico
− Manifesto, A. (13 de 09 de 2019). agilemanifesto. Obtenido de agilemanifesto:
https://agilemanifesto.org/iso/es/manifesto.html
− Mercurial, A. (5 de 9 de 2019). Agile Mercurial. Obtenido de Agile Mercurial: https://agile-
mercurial.com/excel-templates/burndown-chart/
− Moreno, G. R. (2004). UML con Rational Rose. Lima: MEGABYTE SAC.
− Rubin, K. S. (2013). Essential Scrum. Boston: Addison Wesley.
− Rumbaugh, J., Jacobson, I., & Booch, G. (2007). El Lenguaje de Modelado Unificado 2.0.
Madrid: Perarson Addison Wesley.
− Rumbaugh, J., Jacobson, I., & Booch, G. (2007). El lenguaje de Modelado Unificado
Manual de Referencia. Madrid: PEARSON Addison Wesley.
− Saiz, J. (2018 de 09 de 13). js. Obtenido de js: http://jorgesaiz.com
− Sommerville, I. (2005). Ingenieria de Software. Madrid: PEARSON Addison Wesley.
47