Mostrando entradas con la etiqueta POO. Mostrar todas las entradas
Mostrando entradas con la etiqueta POO. Mostrar todas las entradas

miércoles, 23 de noviembre de 2011

Actividad #13


Sistemas Distribuidos


En la actualidad vivimos el apogeo del soporte en la nube y de los dispositivos móviles, me resulta realmente interesante el contacto con esto ya que implementándose de este modo, mi programa sería capaz de tener una base de datos de consulta de los resultados de los eventos de halterófila realizados en diferentes partes del país o inclusive en diferentes partes del mundo, además los atletas tendrían un registro de entrenamiento que tenga la seguridad de no perderse inclusive si cambian de estado por el que compiten o incluso país.

Para esto agregaría al programa un login para ingresar como “Entrenador” y como “Atleta”, además si el entrenador borra a un atleta de su tabla de entrenamiento convertir al atleta en un “agente libre” el cual podría ser agregado a otra tabla de entrenamiento  sin perder su registro de entrenamientos, además de hacer una versión optimizada para dispositivos móviles ya sea que posean IOS o Android. Para que el “Entrenador” o el “Atleta” puedan usar  el programa solo necesitaría un navegador actualizado y soportar java en su PC, Laptop o poseer el software para el dispositivo móvil.

Actividad #12

Pruebas Unitarias


martes, 1 de noviembre de 2011

Actividad #11

Interfaz gráfica


La tarea de esta entrada era dar una idea de la interfaz gráfica del proyecto, para esto lo ilustrare con dibujos realizados pro mi.

Primero mostrare mi menú central en el solo se pueden seleccionar  con botones una de las 2 utilidades de mi programa.


La segunda ventana es la que se despliega de la opción de "Atletas en Entrenamiento"en ella buscaremos un atleta antes almacenado en la base de datos o Añadir un atleta nuevo.



En esta ventana surge de la búsqueda de un atleta, mostrando sus características y dando oportunidad para la modificación de algunas de ellas y un botón (Regresar) que permitirá volver a la anterior, igualmente la anterior ventana  tenia este botón, aparte  el botón de añadir nuevo entrenamiento y la lista desplegable para seleccionar un entrenamiento anterior.


La siguiente ventana viene de el botón "añadir" de la ventana anterior permitiendo añadir nuevos ejercicios realizados el en el dia 


Esta ventana se despliega al elegir uno de los ejercicios anteriores en la lista desplegable, la ventana posee un botón llamado modificar con el cual se desplegara otra ventana.


Esta ventana se despliega al al marcar el botón modificar permitiendo modificar la base de datos, al presionar este botón de subir  ademas de reportar la subida exitosa  te regresaría a la segunda ventana mostrada.


Estas son unas de las ventanas que de mi proyecto decidí poner estas puesto que el formato es muy parecido a las de la opción de competencias y es una parte que diferencia mi programa del programa en que me baso, como una nota seria mencionar que el campo de texto para ejercicios aun no es la versión definitiva también e pensado ponerla como listas de los ejercicios mas comunes de la halterofilia pero por sus variaciones y la multitud de ejercicios creo que es mi mejor opción pese a los problemas que podría tener con la base de datos.

Actividad #10

Eventos, excepciones y errores


Para en pesar hablare de lo que son los eventos, excepciones y errores:

  • Eventos: un evento es una acción indicada por el usuario.
  • Excepciones: una excepción que aun siendo correcta causa un error al intentar ejecutarla.
  • Errores: una excepción que no se detecto en la ejecución o algo que realmente no se pudo manejar.
A continuación mostrare los posibles Eventos:



Errores y Excepciones:






Actividad #9

Patrones de Diseño


Los patrones de diseño son realmente útiles como soluciones a problemas de desarrollo de software y desarrollo de intercases,
los patrones son reutilizables y deben de ser efectivos  en diferentes problemas de diseño y en distintas circunstancias

Un par de patrones de diseño:

  • Abstactic factory: es usado cuando debemos crear diferentes objetos, todos pertenecientes a la misma familia.
  • Singleton: esta diseñado para restringir la creación de objetos  pertenecientes a una clase o el valor de un tipo a un único objeto.


Observando las características de mi Proyecto usare el patrón Abstractic Factory implementandolo en la GUI de mi proyecto, aunque no e mencionado mucho la GUI ni su actuaccion (obvia)
en mi proyecto creo que sera conveniente el uso del patron dentro de ella.


Consultas:

Actividad #8

Diagramas de Secuencia
Un diagrama de secuencia es una forma de diagrama de interacción que muestra los objetos como líneas de vida a lo largo de la página y con sus interacciones en el tiempo representadas como mensajes dibujados como flechas desde la línea de vida origen hasta la línea de vida destino. Los diagramas de secuencia son buenos para mostrar qué objetos se comunican con qué otros objetos y qué mensajes disparan esas comunicaciones. Los diagramas de secuencia no están pensados para mostrar lógicas de procedimientos complejos.

En esta entrada de blog mostrare 3 diagramas de secuencia


Crear nueva tabla de atleta: se utilizara mucho tanto en competencia como en entrenamiento.



Modificar entrenamiento.


Buscar Atleta

Consultas:






Actividad #7

Retroalimentación

En la retroalimentacion intercambiamos ideas respecto a nuestros proyectos una de las cuales fue sobres las tablas que haría en sql ideas tales como asignar una tabla a a cada atleta y otra al registro, copiar la tabla del registro de atletas en entrenamiento a la de competencias para ahorrar tiempo ya que casi siempre los atletas en entrenamiento participan en las competiciones, ademas de descubrir el caso de herencia mencionado en un post anterior.

Actividad #6

Diagrama de Clases 

Un diagrama de clases describe el funcionamiento del sistema, mostrando sus clases, atributos, métodos y sus relaciones entre si.
Diagrama de Clases de mi Proyecto






Actividad #5

Documentación Técnica

La documentacion tecnica es la informacion que nos describe que hacen los sistemas,
generalmente nuestra idea de documentacion tecnica son los diagramas de clases.
La documentación técnica es una gran herramienta puesto que con ella podemos una idea de el sistema y su funcionamiento, ademas de poder reutilizar una parte del programa sin la necesidad de saber el código.

La documentación técnica es de dos tipos:

  • De Usuario: es para facilitar el uso del sistema por parte del usuario , esto incluye referencias, manuales de operación y tutoriales.
  • De Sistema: que es mas enfocada para desarrolladores y toca puntos tales como los requerimientos, la arquitectura, diagramas de clase y secuencia ademas del la documentación del código creado
Existen varios software que generan la documentación técnica tales como:
  • Javadoc para Java
  • Ddoc para D
  • Doxygen para C/C++, Java,IDL
  • PHPDoc para PHP.
En mi caso Utilizare Javadoc la cual es una herramienta de Oracle para la generación
de de documentación apartir del lenguaje java.Javadoc posee ciertas palabras reservadas como:


Consultas:


Actividad #4

Herencia y Polimorfismo



Para empezar a debemos saber a que se refiere la herencia y el polimorfismo:
  • La herencia es un mecanismo de la programación orientada a objetos, por medio del cual una clase se deriva de otra, llamada entonces clase base o clase padre.
  • El polimorfismo en programación orientada a objetos se refiere a la capacidad para que varias clases derivadas de una antecesora utilicen un mismo método de forma diferente.
Viendo esto y aplicándolo a mi proyecto veo que la clase "Competencia" y "Entrenamiento" comparten atributos y métodos pudiendo hacer la clase "Entrenamiento" la clase padre de la clase "Competencia" heredando los atributos "dia","mes","año" y el método "UpBD" de su clase padre.

En el caso de polimorfismo no encuentro una forma de usarlo correctamente asi que que no lo utilizare.


Consulta:

lunes, 29 de agosto de 2011

Actividad #3


Casos de Uso

Un caso de uso es una descripción de pasos o las actividades que deberán realizarse para llevar a cabo algún proceso. Los personajes o entidades que participan en un caso de uso se denominan actores.








Referencias:

Actividad #2




Clases,Atributos y Métodos

En esta entrada veremos cuales son las clases, atributos, métodos y la visibilidad de cada uno de estos conceptos en mi proyecto, para esto necesitamos saber lo que son cada una de ellas.

Clases: una construcción que se utiliza como modelo, describiendo el estado y comportamiento de todos los objetos que comparten la clase,a menudo es un sustantivo.

Atributos: es una especificación que define una propiedad o característica de un objeto.

Métodos: es una subrutina asociada a una clase(método de clase o método estático) o a un objeto(método de instancia).

Visivilidad:

-Privada: solo pueden acceder a ella los miembros de la clase.

-Protegida: acceden a ella los miembros de la clase y las clase que hereden de ella.

-Publica: todos pueden acceder.

Una vez definidos los conceptos estas serian mis clases, atributos, métodos y sus visibilidades

Clase: Atleta(Publico)
Atributos:
Registro(Privado)
Peso(Publico)
Edad(Publico)
Marcas(Publico)
Métodos:
Alta(Publico)
Baja(Publico)
UpBD(Publico)
VisualizarMarca(Publico)

Clase: Entrenamiento(Publico)
Atributos:
Día (Publico)
Mes(Publico)
Año(Publico)
Ejercicios(Publico)
Métodos:
Búsqueda(Publico)
UpBD(Publico)
VisualizarEjercicios(Publico)

Clase: Competencia(Publico)
Atributos:
Día (Publico)
Mes(Publico)
Año(Publico)
NombreEvento(Publico)
Atleta(Publico)
Peso(Publico)
Arranque1(Publico)
Arranque2(Publico)
Arranque3(Publico)
Envión1(Publico)
Envión2(Publico)
Envión3(Publico)
Total(Publico)
Métodos:
Procesos(Publico)
Resultados(Publico)
UpBD(Publico)

Clase: BaseDatos(Publico)
Métodos:
Registrar(Publico)
RegistroUnico(Publico)
SacarDatos(Publico)

Clase: Modificar(Publico)
Métodos:
PesoAtleta(Publico)
EdadAleta(Publico)
MarcasEntrenamientos(Publico)
PesoEntrenamiento(Publico)
EdadEntrenamiento(Publico)
MEjercicios(Publico)


Tengo que mencionar que estas clases, atributos, métodos y su visibilidad podría cambiar según el transcurso de la elaboración del proyecto.


Referencias:

Actividad #1




Descripción del Proyecto


En esta entrada daré a conocer mi proyecto de Programación Orientada a Objetos, en mi caso mi proyecto se basa en proyecto de un compañero que curso esta materia el semestre pasado, claro que mi proyecto poseerá cambios debido a el enfoque en el que se usara.


Captura del sistema en el que baso


Para que entiendan mi proyecto tengo que hablar de el proyecto de mi compañero; el hizo un programa enfocado a la recolección de de datos de eventos deportivos de atletismo, en mi caso haré algo muy parecido solo que enfocando a el deporte de la halterofilia, solo que ademas de almacenar las marcas alcanzadas por los participantes en la competencia dará los ganadores en cada categoría y podrá almacenar también los entrenamientos diarios de cada atleta, sirviendo así como registro de entrenamiento.



La halterofilia en un deporte olímpico que se basa en hacer levantamientos de peso en 2 formas (arranque y envión) y 3 formas de premiación que son en arranque, envión y total , en cada forma de levantamiento se tienen 3 oportunidades, en donde solo el levantamiento de mayor peso tiene relevancia para la premiación. Es necesario saber esto para comprender lo que mi proyecto hará, almacenara el peso del levantamiento valido(el levantamiento invalido es igual a 0 y gasta una oportunidad), comparara el peso máximo de cada participante en cada categoría y entrega los 3 mas altos en cada categoría, en cada forma de premiación. En su modalidad de almacenar registros de entrenamiento solo hará esto, obviamente relacionando el entrenamiento con el respectivo atleta.

Cabe resaltar que en la halterofilia no existe un programa con estas características para competencias de carácter nacional e inferior, se usa un programa pero solo a nivel olímpico y mundial desgraciadamente no poseo conocimiento de este debido al nivel en el que se maneja.





Referencias: