jueves, 24 de febrero de 2011

Semana 5 Programacion OO - Especificación Técnica - Taller

Esta entrada corresponde al Taller de programacion OO.


miércoles, 23 de febrero de 2011

jueves, 17 de febrero de 2011

Semana 4 Programacion OO - Documentación y herramientas de desarrollo - Taller

Bueno Esta entrada es para el taller.



Tag Descripción Uso
@author Nombre del desarrollador. nombre_autor
@deprecated Indica que el método o clase es antigua y que no se recomienda su uso porque posiblemente desaparecerá en versiones posteriores. descripción
@param Definición de un parámetro de un método, es requerido para todos los parámetros del método. nombre_parametro descripción
@return Informa de lo que devuelve el método, no se puede usar en constructores o métodos "void". descripción
@see Asocia con otro método o clase. referencia (#método(); clase#método(); paquete.clase; paquete.clase#método()).
@throws Excepción lanzada por el método nombre_clase descripción
@version Versión del método o clase. versión
Tabla de Wikipedia

En esta imagen podemos ver como compilar el codigo y como genera los archivos html.

Este es el link a mi servidor para ver mi Javadoc http://conglom-osoft.net/doc/                     

En esta imagen se muestra como se debe desplegar el html y como orgraniza la pagina por clases.


Saludos.. 

miércoles, 16 de febrero de 2011

Semana 4 Programacion OO - Documentación y herramientas de desarrollo

Hola... esta entrada es para la semana 4 de programacion orientada a objetos y hablaremos de documentacion en el diseño de Software y herramientas para su desarrollo...

Comunmente la documentacion de Softwares se realiza con archivos html y con txt dependiendo el metodo en el que se documente.

Es importante llevar la documentacion del codigo porque con esto podemos saber que cambios, como funciona y como esta formado el codigo, tambien sirve para cuando se esta trabajando en equipo o en grupo, es nesesario recordar que en documentacion de Javadoc solo va a mostrar la clases publicas, cuando usamos SVN cualquiera que puede entrar al svn  puede ver todo el codigo.

Existen varias formas para documentar el desarrollo de un Software.

Comunmente se utiliza lo que es un ChangeLog que cada cambio que se realize al codigo es añadido ahi con un comentario del resultado.

Otra forma de documentacion es el Subversion o SVN que esta es una pagina en la que se comparte el codigo a todos los que tengan acceso al svn y solo puede ser editado por los administradores o desarrolladores del proyecto, creo que este es un muy buen metodo porque en un svn puedes ver los cambios realizados, y tambien se puede comparar con el codigo anterior.
http://es.wikipedia.org/wiki/Subversion Para ver mas informacion.
http://svn.tech1.org/ Este Link puede servir como demo.



JavaDoc: sinceramente este metodo no lo conocia hasta la semana 4 y me parece un metodo muy simple, eficaz y gratuito. Este metodo explica claramente cada parte del codigo y sin la nesesidad de mostrarlo puedes ayudar a otras personas.

Para generar APIs con Javadoc han de usarse etiquetas (tag's) de HTML o ciertas palabras reservadas precedidas por el caracter "@".
Estas etiquetas se escriben al principio de cada clase, miembro o método, dependiendo de qué objeto se desee describir, mediante un comentario iniciado con "/**" y acabado con "*/".

Para compilar en Javadoc no es nesesario instalar algun paquete para Linux, solo es nesesario abrir la terminal y teclear javadoc *.java y la terminal mostrara la creacion de los archivos y si existe algun error.

http://es.wikipedia.org/wiki/Javadoc
http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html 

Algo.java
package docdemo;

import javax.swing.JFrame;

/** Esta clase no tiene sentido sino simplemente 
 * demuestra la manera
 * en la cual ponemos comentarios que se usan para generar la
 * documentacion en HTML sobre las clases en Java. */
public class Algo extends JFrame implements Comparable {

    /** Este es el metodo que exige la interfaz Comparable. 
     * No esta
     * bien implementado, ya que es puramente un ejemplo de
     * documentacion. 
     * @param o El objeto contra el cual estamos comparando.
     * @return Negativo si esta instancia viene antes del 
     * parametro, cero si son iguales y positivo en otro 
     * caso.
     */
    public int compareTo(Object o) { 
 return -1; 
    }

    /** Este es un atributo para poner un numero. */
    protected static int numero;

}
Este es el ejemplo visto en clase. Aqui se muestra como funciona el codigo y que debe llevar.



Saludos ;]

jueves, 10 de febrero de 2011

Semana 3 Programacion OO Herencia y Polimorfismo - Taller

En esta entrada veremos parte de los codigos para el proyecto.

Este codigo es el que genera una ventana para el programa. Este es hijo de JFrame que es el generador de la ventana.

Console.java
package video;
import javax.swing.JFrame;
  
public class Console extends JFrame {
 
 public static void main(String[] args) {
  JFrame f = new JFrame();
  f.setSize(800, 600);
  f.setLocation(100, 100);
  f.setTitle("Ventana");
  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  f.setVisible(true);
  return;
 }
}

Aqui podemos ver como la clase Renta es hija de Console... y como Renta hereda otras 2 clases que son Rentas y Entega aunque en esta entrada no queda claro pero si ya vieron la entrada de la clase se ve como las entradas tienen casi los mismo atributos.


Renta.java
package video;

public class Renta extends Console {
 private String titulo;
 private String socio;
 private String fechare;
 private String fechaen;
 private int adeudo;

 public void renta(){
 }

public class Rentas extends Renta {

}
public class Entrega extends Renta {

}

}

Este codigo es simplemente herencia del Console para generar la ventana

Socio.java
package video;
 
public class Socio extends Console {
 private String nombre;
 private String direccion;
 private int telefono;
 private int saldo;
 private String renta;
 
 public void alta(){
 }


}

Este codigo es simple porque solo Pelicula solo hereda 2 clases Dvd y Bluray. En este caso se utilizan los mismos atributos porque ambas clases hijas son lo mismo son una pelicula y la unica diferencia es el formato.


Pelicula.java
package video;

public class Pelicula extends Console {
 private String titulo;
 private String actores;
 private int copias;
 private String socio;
 private String genero;
 private String categoria;

 public void agregar(){
 }
public class Dvd extends Pelicula {

}

public class Bluray extends Pelicula {

}

}

Bueno despues de tanto tratar de enteder lo que es Herencia y Polimorfismo espero que este bien aplicado en mi proyecto seria importante que si tienen una sugerencia o encuentran un error en como estoy desarrollando el proyecto me gustaria saber cual es el problema...

Saludos :]

miércoles, 9 de febrero de 2011

Semana 3 Programacion OO - Herencia y Polimorfismo

Hola esta entrada corresponde a la semana 3 de la clase de programacion orientada a objetos en la cual se habla de lo que es herencia y polimorfismo.

En programación orientada a objetos la herencia es el mecanismo fundamental para implementar la reutilización y extensibilidad del software. Es la relación entre una clase general y otra clase más especifica.

Un ejemplo de herencia sería si declaramos una clase párrafo derivada de una clase texto, todos los métodos y variables asociadas con la clase texto, son automáticamente heredados por la subclase párrafo.

Y en polimorfismo se refiere a la capacidad para que varias clases derivadas de una antecesora utilicen un mismo método de forma diferente.



Referente a mi proyecto:
Bueno la clase ventana es simplemente lo grafico y esta hereda lo que son renta, pelicula y socio.  

En la clase Renta hereda a 2 clases rentas y entrega.





  1. rentas: esta clase es para administrar las rentas.
  2. entrega: y esta sirve para saber si la pelicula fue entregada a tiempo o fuera de tiempo. La unica diferencia en sus atributos es que una maneja adeudo.








Pelicula
|
-----------------------------------------------
|                                               |
DVD                                      Blu-ray
DVD y Blu-ray van a tener los mismos atributos.

Es probable que en la clase pelicula sus clases generen mas clases mostrando claramente lo que es la herencia tomando de ejemplo:
GENERO que este va a derivar terror, accion, drama, comedia e infantil.
CATEGORIA: si es estreno o catalogo (si es vieja).

Creo yo que conforme avanze el proyecto me dare cuenta si este ocupa mas clases y si estas clases son heredadas.

Espero que esta entrada cumpla con el objetivo de la semana si hay algo en lo que este mal por favor diganme todos nesesitmos una segunda opinion xD

Saludos.

miércoles, 2 de febrero de 2011

Semana 2 Programacion OO - Clases

Clases de objetos

  • Las clases de objetos representan conceptos o entidades significativos en un problema determinado.  
  • Una clase describe las características comunes de un conjunto de objetos, mediante dos elementos:
     
    • Atributos (o variables miembro, variables de clase). Describen el estado interno de cada objeto
       
    • Operaciones (o métodos, funciones miembro). Describen lo que se puede hacer con el objeto, los servicios que proporciona

Un Ejemplo para entender que es una Clase:
clase Coche: 4 ruedas, 1 volante, 5 asientos, acelerar, frenar, girar  

Como podemos ver, esta clase no sólo describe qué cosas posee un coche, sino que también describe qué acciones puede realizar un coche (acelerar, frenar y girar). Es decir, una clase define los atributos y las acciones (o métodos) que puede realizar un objeto de la clase.

Además podemos comprobar que un objeto puede estar formado por otros objetos, por ejemplo el coche posee 4 objetos de la clase Rueda.

Este es un pequeño ejemplo en JAVA.
//////CLASE
public class Cuenta
{
///// ATRIBUTOS (variables de instancia)
 private double balance = 0;
 private double limit;

//////OPERACIONES (metodos)
public void ingresar (double cantidad)
 {
    balance = balance + cantidad;
 }

public void retirar (double cantidad)
 {
balance = balance - cantidad;
 }
}

Aqui hay unos links para leer mas sobre Clases, metodos, objetos, etc...
http://elvex.ugr.es/decsai/java/pdf/3B-Clases.pdf
http://aprendeenlinea.udea.edu.co/lms/moodle/file.php/561/Poo_-_Fundamentos/presentacion_Java_1.pdf
*-----------------------------------------------------------------------------------------------------------------------------*

Respecto al Proyecto... las clases que usare son Socio, Peliculas y Rentas..

Clase              Atributos

Socio:       Nombre, Direccion, saldo (a favor o negativo).

Peliculas:  Titulo, genero, actores

Rentas:      Socio y peliculas


Socio.java
package video;
 
public class Socio {
 private String nombre;
 private String direccion;
 private int telefono;
 private int saldo;
 private String renta;
 
 public void alta(){
 }


}

Pelicula.java
package video;

public class Pelicula {
 private String titulo;
 private String actores;
 private int copias;
 private String socio;
 private String genero;
 private String categoria;

 public void agregar(){
 }


}

Renta.java
package video;

public class Renta {
 private String titulo;
 private String socio;
 private String fechare;
 private String fechaen;

 public void renta(){
 }


}

Saludos