Sistema que administra una biblioteca
...
viernes, 17 de diciembre de 2010
jueves, 16 de diciembre de 2010
Semana 13 - Sistemas distribuidos
Ejemplo:
-----------------------
Referencias:
http://www.unsj-cuim.edu.ar/portalzonda/congreso/papers/1999/Java_RMI.html
http://ehcache.org/documentation/distributed_caching_with_rmi.html
http://docs.google.com/viewer?a=v&q=cache:RVcHAb5NlowJ:www.ldc.usb.ve/~mcuriel/Cursos/redes/RMIclase.ppt+Remote+Method+Invocation+(RMI)&hl=es&gl=mx&pid=bl&srcid=ADGEESgsOFIjNbFbrOgJuCV9MwBHUaoGi7yaf8TI9opve6JSMrDlBO7uDYvv0y1KEdSwwpaoxtnF75tbQXeCIetZrGmGytCWS5y-7xhflE5G5h-lixOzkfYvpDXEsvNyOLCwxu6h9jv2&sig=AHIEtbQpOFczRtSaYFXNMSmjjd_qR2_T_Q
http://catarina.udlap.mx/u_dl_a/tales/documentos/msp/picen_x_pg/capitulo3.pdf
http://www.matematicas.unam.mx/jloa/rmi.pdf
...
miércoles, 15 de diciembre de 2010
Semana 12 - Interfaces gráficas de usuario
Realicé dos pantallas en Java utilizando el IDE de Eclipse.
La pantalla principal contiene:
* Una sección para mostrar el listado de libros o revistas dados de alta.
* Un botón para eliminar de la lista un libro o revista.
* Un botón para reservar un libro o revista de la lista.
* Una barra de menus con dos menus: Registro y Ayuda.
En el menú Registro contiene:
* Agregar material (es para dar de alta los libros o revistas).
En el menú Ayuda contiene:
* Acerca de... (no muestra nada).
* Salir (Sale del programa).
Capturas de pantallas:
------------------------
Link de descarga de la clase Pantalla2.java:
http://www.box.net/shared/f1jvq21l9s
-------------------------
Referencias:
Ejemplos de:
http://eduardomen.blogspot.com/
Tutoriales para programar interfaces gráficas en Java:
http://www.wikilearning.com/curso_gratis/introduccion_al_lenguaje_java-interfaz_grafica_de_usuario_awt/5054-12
http://doutdex.wordpress.com/2007/06/09/gui-graphical-user-interface-interface-grafica-de-usuario-en-java/
http://casidiablo.net/codigo-java-jmenu-jmenubar-jmenuitem-jpopupmenu/
....
La pantalla principal contiene:
* Una sección para mostrar el listado de libros o revistas dados de alta.
* Un botón para eliminar de la lista un libro o revista.
* Un botón para reservar un libro o revista de la lista.
* Una barra de menus con dos menus: Registro y Ayuda.
En el menú Registro contiene:
* Agregar material (es para dar de alta los libros o revistas).
En el menú Ayuda contiene:
* Acerca de... (no muestra nada).
* Salir (Sale del programa).
Capturas de pantallas:
Pantalla principal |
Pantalla principal con el menú Registro activado |
Pantalla principal con el menú Ayuda activado |
Pantalla Agregar Material |
Pantalla Agregar Material mostrando los tipos de materiales a dar de alta |
------------------------
Link de descarga de la clase Pantalla2.java:
http://www.box.net/shared/f1jvq21l9s
-------------------------
Referencias:
Ejemplos de:
http://eduardomen.blogspot.com/
Tutoriales para programar interfaces gráficas en Java:
http://www.wikilearning.com/curso_gratis/introduccion_al_lenguaje_java-interfaz_grafica_de_usuario_awt/5054-12
http://doutdex.wordpress.com/2007/06/09/gui-graphical-user-interface-interface-grafica-de-usuario-en-java/
http://casidiablo.net/codigo-java-jmenu-jmenubar-jmenuitem-jpopupmenu/
....
martes, 14 de diciembre de 2010
Semana 11 - Pruebas unitarias
Utilicé Java con el IDE de Eclipse.
...
Link de descarga del código en .rar:
Link de descarga del código en .jar:
El código en .rar funciona utilizando Eclipse, NetBeans, o cualquier IDE que contenga Java.
El archivo en .jar funciona en cualquier máquina que tenga Java.
---------------------------
Fuentes:
Me basé en los tutoriales de Eclipse:
...
domingo, 12 de diciembre de 2010
martes, 30 de noviembre de 2010
Semana 9 – Patrones de diseño
Los patrones de diseño son soluciones a problemas comunes en el desarrollo de software que nos encontramos en el desarrollo de aplicaciones del mundo real.
Para que una solución sea considerada un patrón debe poseer ciertas características. Una de ellas es que debe haber comprobado su efectividad resolviendo problemas similares en ocasiones anteriores. Otra es que debe ser reusable, lo que significa que es aplicable a diferentes problemas de diseño en distintas circunstancias.
Los patrones de diseño tuvieron un gran éxito en el mundo de la informática a partir de la publicación del libro Design Patterns escrito por el grupo Gang of Four (GoF) compuesto por Erich Gamma, Richard Helm, Ralph Johnson y John Vlisides, en el que se recogían 23 patrones de diseño comunes.
Ellos, clasificaban los patrones de diseño en tres grupos: Creacionales, Estructurales y de Comportamiento.
PATRONES CREACIONALES
Abstract Factory (Fábrica abstracta): Crea una instancia de varias familias de clases.
Builder (Constructor virtual): Separa la construcción de objetos de su representación.
Factory Method (Método de fabricación): Crea una instancia de varias clases derivadas.
Prototype (Prototipo): Crea nuevos objetos clonándolos de una instancia ya existente.
Singleton (Instancia única): Una clase de las que sólo una sola instancia puede existir.
PATRONES ESTRUCTURALES
Adapter (Adaptador): Adapta una interfaz para que pueda ser utilizada por una clase que de otro modo no podría utilizarla.
Bridge (Puente): Desacopla una abstracción de su implementación.
Composite (Objeto compuesto): Una estructura de árbol de objetos simples y compuestos.
Decorator (Envoltorio): Añade funcionalidad a una clase dinámicamente.
Facade (Fachada): Una clase única que representa un subsistema.
Flyweight (Peso ligero): Reduce la redundancia cuando gran cantidad de objetos poseen idéntica información.
Proxy: Tiene un objeto que representa a otro objeto.
PATRONES DE COMPORTAMIENTO
Chain of Responsibility (Cadena de responsabilidad): Permite establecer la línea que deben llevar los mensajes para que los objetos realicen la tarea indicada.
Command (Orden): Encapsular un comando de la petición como un objeto.
Interpreter (Intérprete): Una manera de introducir los elementos de un lenguaje a un programa.
Iterator (Iterador): Permite realizar recorridos sobre objetos compuestos independientemente de la implementación de estos.
Mediator (Mediador): Define un objeto que coordine la comunicación entre objetos de distintas clases, pero que funcionan como un conjunto.
Memento (Recuerdo): Permite volver a estados anteriores del sistema.
Observer (Observador): Una forma de notificar el cambio a una serie de clases.
State (Estado): Alterar el comportamiento de un objeto cuando su estado cambia.
Strategy (Estrategia): Permite disponer de varios métodos para resolver un problema y elegir cuál utilizar en tiempo de ejecución.
Template Method (Método plantilla): Aplazar los pasos exactos de un algoritmo para una subclase.
Visitor (Visitante): Define una nueva operación a una clase sin cambios.
------------------------
Los ejemplos explicados a continuación no los apliqué a mi proyecto, pero si mencioné ejemplos.
EJEMPLOS DE PATRONES:
------------------------
Fuentes:
...
domingo, 28 de noviembre de 2010
Semana 8 - Diagramas UML de Clase y Actividad en el proyecto
*** MODIFICADO ***
Programa que administra una biblioteca.
Programa que administra una biblioteca.
Me apoyé en un libro facilitado por un profesor de la FCFM:
Prentince Hall.
...
Semana 7 - Diagramas de actividad de UML
*** MODIFICADO ***
Explicación de los diagramas de actividades y ejemplos:
-------------------------
Fuentes:
Joseph Schmuller, Aprendiendo UML en 24 horas.
Prentince Hall.
...
Explicación de los diagramas de actividades y ejemplos:
-------------------------
Fuentes:
Joseph Schmuller, Aprendiendo UML en 24 horas.
Prentince Hall.
...
lunes, 8 de noviembre de 2010
Semana 6 - Diagramas de clase de UML
*** MODIFICADO ***
Diagramas de clase de UML
Diagramas de clase de UML
Programa que administra una biblioteca.
El programa contará con la clase principal BIBLIOTECA que cargará lo necesario para ejecutar el programa.
--------------------------
La clase MATERIAL contiene los campos y métodos para los libros y revistas que se prestarán.
La clase LIBRO se hereda de la clase material, hereda sus campos y métodos.
La clase REVISTA también se hereda de la clase material heredando sus campos y métodos.
Los métodos que tendrán los libros y revistas serán: darse de Alta, Baja y Cambios.
--------------------------
La clase PERSONA contiene los campos y métodos de los alumnos y profesores que pueden pedir prestado los libros y revistas.
La clase ALUMNO se hereda de la clase persona, hereda sus campos y métodos.
La clase PROFESOR también se hereda de la clase persona heredando sus campos y métodos.
Los métodos que tendrán los alumnos y profesores serán: llevar un libro o revista, y devolver el libro o revista.
--------------------------
La clase PRESTAMO realizará el préstamo entre la persona y el material a prestar.
--------------------------
Me apoyé en presentaciones:
También me apoyé en un libro facilitado por un profesor de la FCFM:
Prentince Hall.
domingo, 7 de noviembre de 2010
Semana 5 - Definición de proyectos individuales: presentaciones de temas
Tema: Administración de una Biblioteca
Lo presentado anteriormente puede estar sujeto a cambios si así lo requiera a la hora de programar.
...
Proyecto biblioteca
View more presentations from TerryJoss.
Lo presentado anteriormente puede estar sujeto a cambios si así lo requiera a la hora de programar.
...
sábado, 6 de noviembre de 2010
Semana 4 - Documentación y herramientas de desarrollo
Mi elección fue Eclipse (Java).
Versión que utilicé: Eclipse – Europa (3.3.2)
Sitio web donde me apoyé en descargas y tutoriales:
LINKS DE DESCARGA:
Eclipse versión Europa (3.3.2):
Tutorial en PDF:
Tutoriales en videos (16 lecciones):
-------------------------------
Con los tutoriales creé un proyecto que contiene: clases, atributos, métodos, campos, constructores, arreglos de lista, clases de prueba, ciclos, condiciones, etc.
Se trata de una aplicación que administra una librería, en donde se dan de alta libros que tengamos, personas, y cuáles de esas personas han tomado prestado nuestros libros.
El proyecto contiene tres clases en java:
- Persona: Que tiene de atributos su nombre y el máximo de libros que haya tomado prestados en una pedida.
- Libro: Que contiene de atributos el título, autor y persona que lo tomó prestado.
- Mi Librería: Que contiene un nombre, una lista de libros y una lista de personas.
-------------------------------
Pantalla de bienvenida:
Proyecto Mi Librería:
Clase Persona |
Clase Libro |
Clase Mi Librería |
En el programa hacemos que existan 2 libros (Grandes Esperanzas y Guerra y Paz) y 2 personas (Jim y Sue) y que cada una de estas personas tome prestado un libro y lo devuelva.
Captura de la clase ejecutada desde Eclipse:
Al finalizar las 16 lecciones, exporté el proyecto para crear la aplicación en .jar y poderlo ejecutar desde la consola:
-------------------------------
COMENTARIOS PERSONALES:
Lo que más me gustó de Eclipse fue el tan usado “Ctrl + 1” llamado Quick Fix, que facilita mucho la programación al desplegar listas de sugerencias al tener errores de compilación.
Lo que no me agradó tanto fue que primero empecé a trabajar con una versión de Eclipse más reciente, Eclipse – Galileo (3.5.0) y tuve muchos problemas con las librerías que no se importaban bien y eso causó problemas a la hora de compilar. Por eso trabajé con la versión 3.3.2.
...
viernes, 8 de octubre de 2010
Semana 3 - Herencia y Polimorfismo
Herencia
En este link, se explica otro ejemplo utilizando bibicletas, que también está entendible:
(Imagen) Con este ejemplo me quedó más clara la definición de herencia:
En este link, se continúa el ejemplo de las bicicletas pero con el polimorfismo:
(Imagen) Con este ejemplo me quedó más clara la definición de polimorfismo:
VIDEOS
Este video explica de manera muy básica las definiciones de herencia y polimorfismo utilizando ejemplos básicos como animales, figuras geométricas y autos.
En este otro video explican herencia y polimorfismo en Python 3:
________________________________________
Herencia y Polimorfismo aplicado al tema de reservaciones y vuelos en una aerolínea
*** HERENCIA ***
*** POLIMORFISMO ***
Al dar de alta a un capitán, un auxiliar de vuelo o un sobrecargo, se utilizan los mismos métodos pero con parámetros diferentes:
AltaCapitan(idCrew, Licencia)
AltaAuxiliar(idCrew, Licencia, Categoria)
AltaSobrecargo(idCrew, Categoria)
...
Una característica clave en la programación orientada a objetos es la reutilización de software, ya que esto es muy útil, porque si se pudiera reutilizar algo de software que ya existe, que fue probado, depurado y utilizado muchas veces, nos ahorraríamos tiempo y esfuerzo para desarrollar y probar de nuevo.
La herencia es cuando una clase (subclase) se deriva de otra (superclase), de manera que extiende su funcionalidad.
Una subclase hereda todos los miembros (campos, métodos y clases anidadas) de su superclase, como por ejemplo:
Si tenemos una clase Vehículo, esta es una superclase, ya que hereda 2 subclases y además contiene 3 campos. Las subclases Automóvil y Camión heredan a Vehículo, quiere decir que estas también tendrán los 3 campos de Vehículo y además sus campos propios.
Fuentes:
Me apoyé en tutoriales Java para la consulta de la definición herencia:
En este link, se explica otro ejemplo utilizando bibicletas, que también está entendible:
(Imagen) Con este ejemplo me quedó más clara la definición de herencia:
Polimorfismo
Es la capacidad de que una acción o método realice diferentes cosas en el objeto del que está actuando. Es decir, que varias subclases utilicen un mismo método pero de forma distinta.
Por ejemplo:
En la figura anterior se tiene la clase FiguraGeo en donde se tienen las funciones de Área y Perímetro. Las clases Triángulo, Círculo y Cuadrado, heredan de la clase FiguraGeo sus métodos. Y en la clase Main es donde se calcula el área y perímetro según la figura que corresponda, y es aquí en donde se aplica el polimorfismo, ya que se está utilizando el método CalculaAP de manera distinta según la subclase que la utilice.
Fuentes:
Al igual que en la herencia, en el polimorfismo me auxilié de tutoriales Java, en :
En este link, se continúa el ejemplo de las bicicletas pero con el polimorfismo:
(Imagen) Con este ejemplo me quedó más clara la definición de polimorfismo:
VIDEOS
Este video explica de manera muy básica las definiciones de herencia y polimorfismo utilizando ejemplos básicos como animales, figuras geométricas y autos.
En este otro video explican herencia y polimorfismo en Python 3:
________________________________________
Herencia y Polimorfismo aplicado al tema de reservaciones y vuelos en una aerolínea
*** HERENCIA ***
Superclase:
- Tripulación
Subclases:
- Capitan
- Auxiliar_de_vuelo
- Sobrecargo
* TRIPULACION | ||
Atributos: | Métodos: | |
· idCrew · Nombre · ApellidoPaterno · ApellidoMaterno · Dirección · Teléfono · RFC | · Alta de tripulación · Baja de tripulación · Modificación de tripulación | |
* CAPITAN | ||
Atributos: | Métodos: | |
→ TRIPULACION · Licencia | ||
* AUXILIAR_DE_VUELO | ||
Atributos: | Métodos: | |
→ TRIPULACION · Licencia · Categoria (copiloto o auxiliar) | ||
* SOBRECARGO | ||
Atributos: | Métodos: | |
→ TRIPULACION · Categoria |
*** POLIMORFISMO ***
Al dar de alta a un capitán, un auxiliar de vuelo o un sobrecargo, se utilizan los mismos métodos pero con parámetros diferentes:
AltaCapitan(idCrew, Licencia)
AltaAuxiliar(idCrew, Licencia, Categoria)
AltaSobrecargo(idCrew, Categoria)
...
Suscribirse a:
Entradas (Atom)