Índice
0. Introducción1. Enunciado del Problema
1. Enunciado
1.2 Interfaz gráfica (versión en Java)
2. Requerimientos
2.1 R1 - Adicionar un nuevo libro al catálogo
2.2 R2 - Agregar un libro al carro de compras del cliente
2.3 R3 - Retirar un libro del carro de compras+
3. Modelo del Mundo del Problema
4. Modelo de la Interfaz Gráfica de Usuario
5. Modelo de Pruebas Unitarias
6. Repositorio: Exploración de Código
6.1 Modelo
6.2 GUI
7. Recuros
7.1 Java
7.2 C#
7.2.1 Solución y proyectos
7.2.2 Documentación del código fuente de la aplicación
7.2.3 Aplicación en ejecución
7.2.3.1 Capturas de pantall
7.2.3.2 Vídeo
8. Cambios
9. Conclusiones
10. Glosario
11. Literatura & Enlaces
0. Introducción
En esta ocasión crearemos una aplicación de administración de una tienda de libros. Aplicaremos la metodología del proyecto Cupi2 del Departamento de Ingeniería de Sistemas y Computación de la Universidad de Los Andes; metodología que nos ayudará a entender, fortalecer, afianzar y dominar el proceso de desarrollo de aplicaciones basado en el enfoque de análisis, diseño e implementación orientado a objetos. En particular, esta aplicación permitirá al usuario la adición de libros disponibles a la venta, y al mismo tiempo realizar pedidos especificando datos básicos de la compra. Estas operaciones quedarán modeladas en un dominio que comprenderá los objetos y sus interacciones para lograr los objetivos de servicio de la aplicación a sus usuarios.
[Nota importante: Los materiales aquí usados del proyecto Cupi2 y que constituyen la base para el proceso de traducción desde la plataforma Java a la plataforma .NET, se mantienen como son.]
1. Enunciado del Problema
Enunciado del problema para la Tienda de Libros: (La versión original se halla en [5].)
1.1 Enunciado
Se quiere construir una aplicación para una tienda de libros. La tienda tiene un catálogo o colección de libros que ofrece para la venta. Los libros tienen un ISBN que los identifica de manera única, un título y un precio de venta. La tienda tiene una disponibilidad ilimitada de los libros que ofrece.
Cuando un cliente llega a la tienda a comprar libros, utiliza un carrito de compras. En el carrito de compras adiciona los libros que quiere comprar. El cliente puede llevar más de un ejemplar de cada libro. Al revisar la cuenta, el cliente debe poder ver el subtotal de cada libro según la cantidad de ejemplares que lleve de él, y el total de toda la compra que es igual a la suma de los subtotales.
1.2 Interfaz gráfica (versión en Java)
En la Figura 2 se muestra la versión de la aplicación construida en el lenguaje de programación Java.Figura 1. Tienda de Libros - GUI en Java. |
2. Requerimientos
A continuación se enumeran y se describen los requerimientos a implementar en el lenguaje de programación C#.
2.1 R1 - Adicionar un nuevo libro al catálogo
Código: R1
Nombre: Adicionar un nuevo libro al catálogo
Descripción: Se requiere adicionar un nuevo libro al catálogo que maneja la tienda. Para adicionar un libro debe definirse toda la información básica del libro.
Entradas:
- Título del libro
- ISBN del libro
- Precio del libro
Resultados:
- El catálogo queda actualizado con el nuevo libro adicionado.
2.2 R2 - Agregar un libro al carro de compras del cliente
Código: R2
Nombre: Agregar un libro al carro de compras del cliente.
Descripción: Cuando un cliente está en la librería puede ir seleccionando los libros que desea llevar y las cantidades para cada uno de ellos. Cuando el cliente selecciona un libro y su cantidad se adiciona un pedido al carro de compras que va conteniendo los ítems (libro-cantidad) de su compra.
Entradas:
- Libro que desea el cliente
- Cantidad de libros que desea el cliente
Resultados:
- El carro de compras con el nuevo ítem de compra adicionado
- El subtotal del ítem según su cantidad
- El total de compra que se lelva en el carro
2.3 R3 - Retirar un libro del carro de compra
Código: R3
Nombre: Retirar un libro del carro de compra
Descripción: El cliente requiere eliminar del carro la compra de todos los ejemplares de un libro.
Resultados:
- El carro de compras queda actualizado sin el libro del ISBN dado.
3. Modelo del Mundo del Problema
En la Figura 2 se describe el diagrama UML del modelo del mundo del problema: entidades y sus relacionales. (Original en [7].)
Figura 2. Modelo del mundo del problema. |
4. Modelo de la Interfaz Gráfica de Usuario
En la Figura 3 se describe en un diagrama UML los controles gráficos que integran la interfaz gráfica de usuario y sus relaciones. (Original en [8].)
Figura 3. Modelo de la interfaz gráfica de usuario. |
5. Modelo de Pruebas Unitarias
El diagrama UML de la Figura 4 muestra el modelo de clases de pruebas del estado y comportamiento de las entidades del modelo del mundo del problema (dominio). (Original en [9].)
Figura 4. Modelo de Pruebas Unitarias. |
6. Repositorio: Exploración de Código Fuente C#
6.1 Repositorio
En el siguiente enlace podrán encontrar el repositorio público de este proyecto:
Archivo C# Libro.cs [Enlace alternativo]:
Archivo C# TiendaLibros.cs [Enlace alternativo]:
6.2 GUI
Archivo C# ControlCarrito.cs [Enlace alternativo]:
Archivo C# ControlCatalogo.cs [Enlace alternativo]:
Archivo C# DialogoAdicionarLibro.cs [Enlace alternativo]:
Archivo C# Principal.cs [Enlace alternativo]:
Archivo C# ControlCatalogo.cs [Enlace alternativo]:
Archivo C# DialogoAdicionarLibro.cs [Enlace alternativo]:
Archivo C# Principal.cs [Enlace alternativo]:
7. Recursos
7.1 Java
Recursos del proyecto en su versión original (lenguaje de programación Java):
- [Pendientes]
7.2 C#
7.2.1 Solución y proyectos
Enlaces de descarga de archivos ZIP con la solución y los proyectos integrales (solución C# y pruebas unitarias) de la aplicación:
- Tienda de Libros (Dropbox)
- Tienda de Libros (Mediafire)
- Tienda de Libros (MEGA)
- Tienda de Libros (4Shared)
7.2.2 Documento de código fuente de la aplicación
Enlace de descarga de la documentación (formato CHM) del código fuente C# de la aplicación.
7.2.3 Aplicación en ejecución
7.2.3.2 Demostración
8. Cambios
Algunos de los cambios efectuados en la adaptación:
- Clase Libro: El campo precio ahora en decimal (antes en int).
- Clase ItemCompra: Removido método cambiarCantidadSolicitada. La propiedad CantidadSolicitada hace el trabajo de este método.
- Clase TiendaLibros: Varios métodos convertidos en propiedades debido a su naturaleza de recuperación y mutación en C#.
9. Conclusiones
Hemos desarrollado una aplicación que administra la adición y venta de libros en un librería. Durante el desarrollo de esta aplicación no sólo hemos traducido varios de los algoritmos que resuelven los requerimientos definidos tempranamente, sino que hemos realizado la adaptación a las construcciones disponibles en C# (e.g., propiedades). Nuevamente recurrimos a la personalización de controles para la construcción de la interfaz gráfica de usuario: el catálogo, y el carrito de compras como objetos DataGridView.
En el próximo ejercicio de traducción crearemos un apliación para jugar al ahorcado.
10. Glosario
- Aplicación
- Clase
- Control
- Entidad
- Modelo
- Prueba unitaria
11. Literatura & Enlaces
[1]: Universidad de los Andes - Colombia - http://www.uniandes.edu.co/[2]: Cupi2 - http://cupi2.uniandes.edu.co/sitio/
[3]: APO1 - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1
[4]: Nivel 3 - Manejo de Grupos de Atributos - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3
[5]: Enunciado - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/tienda-de-libros
[6]: Requerimientos - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/tienda-de-libros/requerimientos-1714
[7]: Modelo Conceptual - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/tienda-de-libros/modeloconceptual-n3carrocompraslibro
[8]: Interfaz - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/tienda-de-libros/interfaz-n3carrocompraslibro
[9]: Pruebas - http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-3/tienda-de-libros/pruebas-n3carrocompraslibro
J
No hay comentarios:
Publicar un comentario
Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.