Está en la página 1de 18
Universidad Autónoma de Nuevo León Facultad de Ingeniería Mecánica y Eléctrica Portafolio de Programación Orientada a

Universidad Autónoma de Nuevo León

Universidad Autónoma de Nuevo León Facultad de Ingeniería Mecánica y Eléctrica Portafolio de Programación Orientada a

Facultad de Ingeniería Mecánica y Eléctrica

Portafolio de Programación Orientada a Objetos

DR. Sara Elena Garza

Alumno: Angel Javier Esquivel Acevedo Matricula: 1378746

Índice

Portada

1

Índice

2

Actividad #1: Descripción del Proyecto

3

Actividad #2: Clases, Atributos y Métodos

4

Actividad #3: Casos de Uso

5

Actividad #4: Herencia y Polimorfismo

6

Actividad #5: Documentación Técnica

7

Actividad #6: Diagrama de Clases

8

Actividad #7: Retroalimentación

8

Actividad #8: Diagramas de Secuencia

9-10

Actividad #9: Patrones de Diseño

11

Actividad #10: Eventos, excepciones y errores

11-12

Actividad #11: Interfaz gráfica

13-15

Actividad #12: Pruebas Unitarias

16-17

Actividad #13: Sistemas Distribuidos

17

Consultas y Referencias

18

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.

Actividad #1: Descripción del Proyecto En esta entrada daré a conocer mi proyecto de Programación Orientada

Captura del sistema en el que baso

Para que entiendan mi proyecto tengo que hablar del proyecto de mi compañero; el hizo un programa enfocado a la recolección 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 además 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 más 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.

Actividad #1: Descripción del Proyecto En esta entrada daré a conocer mi proyecto de Programación Orientada

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.

Actividad #2: Clases, Atributos y Métodos

En esta entrada veremos cuáles 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

Visibilidad:

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).

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. Pública: todos pueden acceder.

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

Clase

Atributo

Método

Atleta(Publico)

Registro(Privado)

Alta(Publico)

Peso(Publico)

Baja(Publico)

Edad(Publico)

UpBD(Publico)

Marcas(Publico)

VisualizarMarca(Publico)

Entrenamiento(Publico)

Día (Publico)

Búsqueda(Publico)

Mes(Publico)

UpBD(Publico)

Año(Publico)

VisualizarEjercicios(Publico)

Competencia(Publico)

Ejercicios(Publico) Día (Publico)

Procesos(Publico)

Mes(Publico)

Resultados(Publico)

Año(Publico)

UpBD(Publico)

 

NombreEvento(Publico) Atleta(Publico) Peso(Publico)

 

Arranque1(Publico)

Arranque2(Publico)

Arranque3(Publico)

Envión1(Publico)

Envión2(Publico)

Envión3(Publico)

Total(Publico)

BaseDatos(Publico)

 

Registrar(Publico)

RegistroUnico(Publico)

SacarDatos(Publico)

Modificar(Publico)

 

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ían

cambiar según el transcurso de la elaboración del proyecto.

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.

Actividad #4: Herencia y Polimorfismo Para empezar debemos saber a qué se refiere la herencia y

Actividad #4: Herencia y Polimorfismo

Actividad #4: Herencia y Polimorfismo Para empezar debemos saber a qué se refiere la herencia y

Para empezar debemos saber a qué 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 "día","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.

Actividad #5: Documentación Técnica

La documentación técnica es la información que nos describe que hacen los sistemas, generalmente nuestra idea de documentación técnica son los diagramas de clases.

La documentación técnica es una gran herramienta puesto que con ella podemos una idea del sistema y su funcionamiento, además 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 más enfocada para desarrolladores y toca puntos tales como los requerimientos, la arquitectura, diagramas de clase y secuencia además de 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 documentación a partir del lenguaje java. Javadoc posee ciertas palabras reservadas como:

En mi caso Utilizare Javadoc la cual es una herramienta de Oracle para la generación de

Actividad #6: Diagrama de Clases

Un diagrama de clases describe el funcionamiento del sistema, mostrando sus clases, atributos, métodos y sus relaciones entre sí.

En mi caso Utilizare Javadoc la cual es una herramienta de Oracle para la generación de

Diagrama de Clases de mi Proyecto

Actividad #7: Retroalimentación

En la retroalimentación 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, además de descubrir el caso de herencia mencionado en un post anterior.

Actividad #8: Diagramas de Secuencia

Actividad #7: Retroalimentación En la retroalimentación intercambiamos ideas respecto a nuestros proyectos una de las cualeshttp://www.monografias.com/trabajos67/diagramas-uml/image006.jpg 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 " id="pdf-obj-8-10" src="pdf-obj-8-10.jpg">

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.

procedimientos complejos. En esta entrada de blog mostrare 3 diagramas de secuencia:  Crear nueva tabla

Modificar entrenamiento.

 Buscar Atleta
Buscar Atleta
Actividad #9: Patrones de Diseño Los patrones de diseño son realmente útiles como soluciones a problemas

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 interfaces, 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: está 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 implementándolo en la GUI de mi proyecto, aunque no e mencionado mucho la GUI ni su actuación (obvia) en mi proyecto creo que será conveniente el uso del patrón dentro de ella.

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: una excepción que no se detecto en la ejecución o algo que realmente no

Errores y Excepciones:

Actividad #11: Interfaz gráfica La tarea de esta entrada era dar una idea de la interfaz

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 por mí.

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

Actividad #11: Interfaz gráfica La tarea de esta entrada era dar una idea de la interfaz

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

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.

En esta ventana surge de la búsqueda de un atleta, mostrando sus características y dando oportunidad

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

Esta ventana se despliega al elegir uno de los ejercicios anteriores en la lista desplegable, la

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 elegir uno de los ejercicios anteriores en la lista desplegable, la

Esta ventana se despliega al marcar el botón modificar permitiendo modificar la base de datos, al presionar este botón de subir además 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

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 he pensado ponerla como listas de los ejercicios más 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 #12: Pruebas Unitarias

Prueba #

1

Nombre

Añadir Atleta

Descripción

Introducir el nombre de atleta al entrenamiento

Objetivos

Añadir un atleta a la tabla del entrenamiento

Condiciones

El usuario debe de proporcionar una serie de caracteres(nombre del

atleta), presionar el botón de “subir Atleta” y que la serie de caracteres

dada no esté presente en la tabla

Resultado esperado

Añadir el atleta a la tabla de entrenamiento

Resultado obtenido

Satisfactorio, puesto que se añadió a la tabla entrenamiento

 

Prueba #

2

Nombre

Borrar Atletas

Descripción

Borrar a un Atleta del entrenamiento

Objetivos

Borrar un Atleta de la tabla de entrenamiento solamente, sin afectar su registro en tablas de competencias

Condiciones

Escoger el atleta a borrar y pulsar el botón aceptar

Resultado esperado

Que se borre al atleta de la tabla entrenamiento sin alterar su registro en las tablas de competencias.

Resultado obtenido

El atleta fue borrado de la tabla entrenamiento solamente

 

Prueba #

3

Nombre

Buscar Atleta

Descripción

Buscar Atleta en la tabla Entrenamiento

Objetivos

Encontrar al Atleta solicitado

Condiciones

El usuario debe de proporcionar una serie de caracteres (nombre del atleta) con el cual se buscara en la tabla entrenamiento a dicho atleta, presionar el botón Buscar.

Resultado esperado

Que el atleta sea encontrado en la tabla y pase a la siguiente pantalla que contendrá su nombre y datos personales.

Resultado obtenido

Satisfactorio, el atleta fue encontrado y se pasó a la pantalla con sus datos personales.

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.

Consultas y Referencias

Actividad #1: Descripción del Proyecto

http://sp.beijing2008.cn/spirit/pastgames/halloffame/d/n214375466.shtml

http://pedrito-poo.blogspot.com/

http://es.wikipedia.org/wiki/Halterofilia

Actividad #2: Clases, Atributos y Métodos

http://es.wikipedia.org/wiki/Clase_(inform%C3%A1tica)

http://es.wikipedia.org/wiki/Atributo_(inform%C3%A1tica)

http://es.wikipedia.org/wiki/M%C3%A9todo_(inform%C3%A1tica)

http://elvex.ugr.es/decsai/java/pdf/3D-Visibilidad.pdf

Actividad #3: Casos de Uso

http://es.wikipedia.org/wiki/Caso_de_uso

Actividad #4: Herencia y Polimorfismo

http://es.wikipedia.org/wiki/Polimorfismo_(inform%C3%A1tica)

http://es.wikipedia.org/wiki/Herencia_(inform%C3%A1tica)

Actividad #5: Documentación Técnica

http://www.dosideas.com/noticias/metodologias/298-como-documentar-la-arquitectura-de-software.html

http://es.wikipedia.org/wiki/Comentario_(inform%C3%A1tica)

http://gpd.sip.ucm.es/rafa/docencia/programacion/tema1/javadoc.html

http://es.wikipedia.org/wiki/Javadoc

Actividad #8: Diagramas de Secuencia

http://www.websequencediagrams.com/

Actividad #9: Patrones de Diseño

http://es.wikipedia.org/wiki/Patr%C3%B3n_de_dise%C3%B1o