lunes, 7 de diciembre de 2015

APO1 - Nivel 4 - Club Social

Índice

1. Introducción
2. Palabras Clave
3. Problema
3.1 Enunciado
3.2 Interfaz gráfica de usuario (versión Java)
4. Requerimientos
4.1 R1 - Registrar una persona autorizada por un socio
4.2 R2 - Pagar una factura
4.3 R3 - Afiliar un socio al club
4.4 R4 - Registrar un consumo en la cuenta de un socio
5. Modelo del Mundo del Problema
6. Modelo de la Interfaz Gráfica de Usuario
7. Modelo de Pruebas Unitarios
8. Repositorio: Exploración de Código Fuente C#
9. Recursos
9.1 Java
9.2 C#
9.2.1 Solución y proyectos
9.2.2 Documentación código fuente
9.2.3 Aplicación en ejecución
9.2.3.1 Capturas de pantalla
9.2.3.2 Demostración
10. Cambios
11. Conclusiones
12. Literatura & Enlaces

1. Introducción

Se inicia esta serie de aplicaciones del Nivel 4 de Algoritmia y Programación Orientada a Objetos 1 (APO1) donde principalmente se comprende los conceptos de definición de contrato de un método, uso del contrato para la invocación de un método, asignación de responsabilidades a clases, uso de la técnica de dividir y conquistar para facilitar la resolución de un problema, entre otras más.


En cuanto a la primea aplicación a desarrollar en este nivel, ésta consiste en la administración de un club social. En esta aplicación se crean socios y asignar las personas que poseen autorización para el ingreso al club y uso de sus servicios. Además, cuenta con la administración de los gastos generados por las personas autorizadas; gastos que serán cargados a la cuenta del socio.

2. Palabras Clave

  • .NET
  • Aplicación
  • Clase
  • Cupi2
  • Cupi2.NET
  • Enumeración
  • Excepción
  • Software

3. Problema

3.1 Enunciado

Descripción literal del problema original "Enunciado" (2015):

Se quiere construir una aplicación para un club, el club tiene socios afiliados y personas autorizadas por los socios. Cada socio está identificado con su nombre y su cédula, el autorizado se caracteriza por su nombre y la cédula del socio quien lo autoriza. Dentro del club se pueden realizar consumos que serán cargados al socio, esto se manejará en la contabilidad del club. Estos consumos se caracterizan por un concepto que lo identifica y el valor de los consumido.

Las cuentas pendientes de un socio es la lista de sus facturas. Cada factura contiene el concepto y el valor del consumo o servicio que el club lee prestó. Los pagos se realizarán de acuerdo con la factura que el usuario seleccione.

3.2 Interfaz gráfica de usuario (versión Java)


En la Figura 1 se presenta la interfaz gráfica de usuario de la aplicación Club construida con los elementos de programa del lenguaje de programación Java.
GUI en Java
Figura 1. GUI en Java.

4. Requerimientos

4.1 R1 - Registrar una persona autorizada por un socio

Código: R1

Nombre: Registrar una persona autorizada por un socio

Descripción: Los socios tienen un conjunto de personas autorizadas que pueden ingresar al club y hacer consumos en sus restaurantes. Este requerimiento permite a un socio registrar una de estas personas.

Entradas:
  • Nombre: Nombre de la persona autorizada por el socio.
  • Cédula: Cédula del socio al que se registrará el autorizado.
Resultados:
  • Registro de autorizado: El socio tiene una nueva persona autorizada.

4.2 R2 - Pagar una factura

Código: R2

Nombre: Pagar una factura

Descripción: La factura que quiere pagar el socio, de su lista de facturas pendientes.

Entradas:
  • Socio: Cédula del socio que pagará la factura.
  • Factura: La factura que quiere pagar el socio, de su lista de facturas pendientes.
Resultados:
  • La factura ha sido pagada: La factura cancelada ya no está pendiente para el socio.

4.3 R3 - Afiliar un socio al club

Código: R3

Nombre: Afiliar un socio al club

Descripción: Se agregar un nuevo socio al club.

Entradas:
  • Nombre: Nombre del socio.
  • Cédula: Cédula del socio.
Resultados:
  • Afiliación del socio: Se adicionó el nuevo socio al club.

4.4 R4 - Registrar un consumo en la cuenta de un socio

Código: R4

Nombre: Registrar un consumo en la cuenta de un socio

Descripción: El socio o una de sus personas autorizadas, puede agregar un consumo a la cuenta del socio.

Entradas:
  • Concepto: Concepto del consumo.
  • Valor: Valor por el cual fue el consumo.
  • Nombre: Persona que realizó el consumo.
Resultados:
  • Registro de consumo: Se crea una nueva factura por el valor del consumo y se rgistra al socio.

5. Modelo del Mundo del Problema

En la Figura 2 se describe el diagrama UML con las entidades que integran el modelo del mundo del problema (dominio). (Original en "Modelo conceptual" (2015)).
Modelo del mundo del problema
Figura 2. Modelo del mundo del problema.

6. Modelo de la Interfaz Gráfica de Usuario

En la Figura 3 se muestra el diagrama UML que describe los controles visuales que integran la interfaz gráfica de usuario. (Original en "Interfaz" (2015)).
Modelo de la interfaz gráfica de usuario
Figura 3. Modelo de la interfaz gráfica de usuario.

7. Modelo de Pruebas Unitarias

En el diagrama UML presentando en la Figura 4 se modelan las clases de pruebas del modelo del mundo del problema. (Original en "Pruebas" (2015)).
Modelo de pruebas unitarias
Figura 4. Modelo de pruebas unitarias.

8. Repositorio: Exploración de Código Fuente C#

En el siguiente enlace de repositorio en GitHub se puede explorar todo el código fuente de la aplicación; el cual comprende:
  • Modelo del mundo del problema
  • Controles de la interfaz gráfica de usuario
  • Archivos de configuración
  • Recursos (imágenes, íconos, cadenas de texto, entre otros)
  • Clases de pruebas unitarias del comportamiento y estado de las entidades del modelo del mundo del problema.

9. Recursos

9.1 Java

Recursos del proyecto en su versión original:

9.2.1 Solución y proyectos

Enlaces de descarga de archivos ZIP con la solución y los proyectos integrales de la aplicación en Visual Studio:

9.2.2 Documentación código fuente

Archivo CHM con la documentación del código fuente C#:

9.2.3 Aplicación en ejecución

9.2.3.1 Capturas de pantalla
Club Social en C#
Figura 6. Club Social en C#.
9.2.3.2 Demostración

10. Cambios

Cambios sobresalientes en la solución respecto al proyecto original:

Clase Factura:
  • El tipo de dato para el campo valor pasa de double a decimal (apto para representar valores que requieren precisión).
  • Se remueven los métodos darConcepto, darValor y darNombre y se usan propiedades para obtener el valor de los campos correspondientes.
Clase Socio:
  • En lugar de los métodos darCedula, darNombre, darFacturas y darAutorizados, se crearon propiedades de solo lectura.
  • El método AfiliarSocio recibe, ahora, un parámetro de tipo Socio.
Nuevo:
  • Agregada la clase AutoreferenciaSocioException que hereda de System.Exception. Útil para manejar la excepción cuando el autorizado es el mismo socio.
  • Agregada la clase SocioExisteException que hereda de System.Exception. Clase útil para la gestión de excepciones relacionadas con la existencia de un socio.
  • Agregada la clase AutorizadoExisteException que hereda de System.Exception. Clase útil para la gestión de excepciones relacionadas con la existe de autorizado.
  • Agregada enumeración Operaciones para determinar el tipo de operación que debe asociar en la búsqueda de socio desde un control personalizado.

11. Conclusiones

A través de esta aplicación se ha adquirido conocimiento práctico acerca de una de las estructuras de datos integrados en .NET Framework: ArrayList.Estructura útil para el almacenamiento y manipulación de objetos. Se realizaron cambios en el proyecto C# con el propósito de aprovechar sus componentes sintácticos de descripción de entidades de un modelo: propiedades, enumeraciones; en especial. En la próxima publicación se desarrollará una aplicación controlar un brazo mecánico de una bodega.

12. Literatura & Enlaces

Universidad de los Andes - Colombia (2015, diciembre 7). Recuperado desde: http://www.uniandes.edu.co/.
Cupi2 (2015, diciembre 7). Recuperado desde: http://cupi2.uniandes.edu.co/sitio/.
APO1 (2015, diciembre 7). Recuperado desde: http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1.
Enunciado (2015, diciembre 7). Recuperado desde: http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-4/club.
Modelo Conceptual (2015, diciembre 7). Recuperado desde: http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-4/club/modeloconceptual-n4club.
Interfaz (2015, diciembre 7). Recuperado desde: http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-4/club/interfaz-n4club.
Pruebas (2015, diciembre 7). Recuperado desde: http://cupi2.uniandes.edu.co/sitio/index.php/cursos/apo1/nivel-4/club/pruebas-n4club.


V

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.