miércoles, 13 de julio de 2011

Actividad # 8

Actividad # 8

En esta entrada mostrare la implementación de unos eventos, errores y excepciones de mi proyecto.

Las excepciones las maneje vía try-catch, utilice esta forma para evitar que lo realizado dentro de ellos cause que el programa truene.

Los eventos están en el actionPerformed el cual controlaría la acción de los botones.

Mostrare las excepciones de unas clases y explicare que hace cada uno:

Este try-catch lo utilizo para un resultset el cual hace de lo ultimo que logre implementar en el proyecto, realiza una llamada a una tabla que guarda el nombre de las tablas declaradas en la base de datos y almacenarlas en un ComboBox. Si en dado caso no hubiera pruebas pues no almacenaría nada en el ComboBox y así evitaría error en el llenado del mismo.
try
{ 
 rs = BDM.getSt().executeQuery("SELECT Tablas FROM NombreTablas Order BY Tablas");
 while(rs.next())
 {
  if(!(rs.getObject(1).equals("Memoria")))
  {
   Pruebas1.addItem(rs.getObject(1));
  }
 }
}catch(SQLException e)
{
 System.out.println("No Existen Pruebas Declaradas");
}

En el siguiente try-catch manejare un comando de JDBC, cabe indicar que todo lo manejado con JDBC debe de estar dentro de un try-catch si no el programa marcara un error en la compilación del programa, es buena idea incluir en el catch imprimir la instrucción para revisar errores en la escritura  y también el probar los comandos de mysql a utilizar dentro de la terminal de MySQL para revisar escritura o mejor forma de poner los comandos.
try
{
 rs = stind.executeQuery("SELECT Memoria.Identificador FROM Memoria WHERE Memoria.Numero = "+Numero);
 if(rs.next())
 {
  int Ref = rs.getInt(1);
  Identificador = Ref;
 }

 statldel.executeUpdate("DELETE FROM "+Prueba+" WHERE Identificador="+Identificador+"");
 System.out.println("Si Se Pudo Borrar Al Atleta");
}catch(SQLException e)
{
        System.out.println("DELETE FROM "+Prueba+" WHERE Identificador="+Identificador+"");
 System.out.println(e.getMessage());
} 

Como había comentado los eventos (de mis botones) los manejo con el actionPerformed, ya que en todas mis clases la forma de usar al actionPerformed es casi idéntica solo mostrare un solo código que muestro como hacer lo anterior.

public void actionPerformed(ActionEvent e)
{
 /** *Este if manda a llamar al Metodo Alta de la misma clase*/
 if(e.getSource() == Opcion1)
 {
  Ventana.dispose();
  Alta();

 /** *Este if manda a llamar al Metodo Baja de la misma clase*/
 }else if(e.getSource() == Opcion2)
 {
  Ventana.dispose();
  Baja();

 /** *Este metodo sirve para manejar los eventos generados por los botones utilizados en la Clase*/
 }else if(e.getSource() == Enviar)
 {
  if(x == 1)
  {
   X = Pruebas1.getSelectedItem();
   Prueba = X.toString();
     Num = Numero2.getText();
     Nombre = Nombre2.getText();
     Equipo = Equipo2.getText();

   /** *@exception Para Evitar que cuando se convierta la variable y no fuera lo que utilice truene el Programa*/
   try
   {
    int Numero = Integer.parseInt(Num);
    /** *@return Estos Valores se mandan al Metodo InAtl de la clase BDManagement*/
    BDM.InAtl(Prueba, Numero, Nombre, Equipo);
   }catch (Exception Ex)
   {
    System.out.println("No se pudo Dar de Alta al Atleta en la Prueba "+Prueba+"");
   }
  }else if(x == 2)
  {
   X = Pruebas2.getSelectedItem();
   Prueba = X.toString();
     Num = Numero2.getText();

   /** *@exception Para Evitar que cuando se convierta la variable y no fuera lo que utilice truene el Programa*/
   try
   {
    int Numero = Integer.parseInt(Num);
    /** *@return Estos Valores se mandan al Metodo DelAtl de la clase BDManagement*/
    BDM.DelAtl(Prueba, Numero);
   }catch(Exception Ex)
   {
    System.out.println("Error este Número no existe en la Prueba "+Prueba+"");
   }
  }
 }
}//Fin del Metodo actionPerformed

Actividad # 7

Actividad # 7

Esta entrada consiste en mostrar la documentación técnica de nuestros proyectos.

Como había comentado en la entrada de la materia la documentación la realice en JavaDOC porque aparte de que me sirve para dejarle comentarios al código, mantiene estético el HTML.

El documento HTML esta en el link para descargar el cual mostrare mas abajo.

martes, 12 de julio de 2011

Actividad # 6

Actividad # 6

En esta entrada mostrare alguna parte del código autogenerado gracias al diagrama de clase hecho en Umbrello y comparar esos mismos con lo que yo e codificado en mi proyecto y por ultimo incluiré un link para poder descargar el código completo autogenerado por el diagrama de clases.


Código autogenerado solo mostrare el de dos clases.

import java.util.*;
/**
 * Class Atleta
 */
public class Atleta {
  //
  // Fields
  //
  private int Num;
  private String Prueba;
  private String Nombre;
  //
  // Constructors
  //
  public Atleta () { };
  
  //
  // Methods
  //
  //
  // Accessor methods
  //

  /**
   * Set the value of Num
   * @param newVar the new value of Num
   */
  private void setNum ( int newVar ) {
    Num = newVar;
  }

  /**
   * Get the value of Num
   * @return the value of Num
   */
  private int getNum ( ) {
    return Num;
  }

  /**
   * Set the value of Prueba
   * @param newVar the new value of Prueba
   */
  private void setPrueba ( String newVar ) {
    Prueba = newVar;
  }

  /**
   * Get the value of Prueba
   * @return the value of Prueba
   */
  private String getPrueba ( ) {
    return Prueba;
  }

  /**
   * Set the value of Nombre
   * @param newVar the new value of Nombre
   */
  private void setNombre ( String newVar ) {
    Nombre = newVar;
  }

  /**
   * Get the value of Nombre
   * @return the value of Nombre
   */
  private String getNombre ( ) {
    return Nombre;
  }

  //
  // Other methods
  //
  public void Atleta(  )
  {
  }

  public void Accion(  )
  {
  }

  public void Alta(  )
  {
  }

  public void Baja(  )
  {
  }

  public void actionPerformed(  )
  {
  }
}
import java.util.*;
/**
 * Class Tabla
 */
public class Tabla {
  //
  // Fields
  //
  private String Prueba;

  //
  // Constructors
  //
  public Tabla () { };
  
  //
  // Methods
  //
  //
  // Accessor methods
  //

  /**
   * Set the value of Prueba
   * @param newVar the new value of Prueba
   */
  private void setPrueba ( String newVar ) {
    Prueba = newVar;
  }

  /**
   * Get the value of Prueba
   * @return the value of Prueba
   */
  private String getPrueba ( ) {
    return Prueba;
  }

  //
  // Other methods
  //

  public void Generator(  )
  {
  }

  public void Accion(  )
  {
  }

  /**
   * @param        Prueba
   */
  public void MostrarTabla( String Prueba )
  {
  }

  public void MostrarMemoria(  )
  {
  }

  public void actionPerformed(  )
  {
  }
}

Continuando con lo siguiente a mostrar en esta entrada, las diferencias que capte del código autogenerado con el que codificado por mi para el proyecto.

En primera que todo el código autogenerado lo documenta con JavaDOC (ahí seria una buena de aprender este tipo de forma de documentar el código JAVA) y me muestra que parte del código son métodos, o atributos o el mismo constructor.

El código de los métodos en el autogenerado en comparación con el realizado en mi proyecto, hay una diferencia, aunque si tiene los métodos que utilice, agrego unos métodos que nunca los utilice para mi proyecto esa diferencia podría ser en las multiplicidades indicadas en el diagrama de clases del cual se autogenero el código.

Otra forma que pudo haber causado eso, seria que utilizo esos métodos el "get" y el "set" eso en lugar de utilizar objetos como yo los utilice para realizar mi proyecto.

También que importo una librería en el código para trabajar (la java.util), eso no sabría como explicar lo sucedido.

Y por ultimo incluiré un link para descargar todo el código autogenerado por el Umbrello (lo metere en una carpeta comprimida para que solo sea un link).

lunes, 11 de julio de 2011

Actividad # 6

Actividad # 6

En esta entrada mostrare los diagramas de secuencia de mi proyecto.

Cabe indicar que solo pondré 3 ya que fue el requisito mínimo solicitado por la Dra.

Decidí mostrar estos 3 ya que en mi opinión son los que mas se utilizarían y por ende de mas uso en mi proyecto o de mayor trascendencia en el.

Los 3 diagramas que use son en base a los casos de uso:

Crear Memoria.- Ya que sin este no podría manejar nada de las demás clases ya que sin este caso no pudiera ni dar de alta, o insertar marcas y todo lo relacionado a los atletas.



Agregar Prueba.- Este se utilizaría mucho ya que serian las pruebas en las que se podrán registrar a los Atletas.


Agregar Atleta a una Prueba.- Sin este habría pruebas pero no habría atletas a registrar en las pruebas.

Actividad # 9

Actividad # 9

En esta entrada explicare acerca de la documentación técnica y la importancia de este en la programación.

Varios programadores entienden que el documentar software consisten en solo hacer el Diagrama de Clases o de Secuencia del código. La documentación no consiste en eso, y muchas veces los programadores no documentan los proyectos y no acompañan a los desarrolladores en el proceso de documentación.
http://www.gratisblog.com/weblogs/darkdreams26/diagrama_de_clases.JPG

De los beneficios de esto es facilitar la utilización del código por parte del usuario y recordar que se realizo en el código para llegar  a lo que esta codificado, ya que documentando lo realizo alguien puede tomar el código y puede acortarlo o hacerlo mas funcional esto garantiza la permanencia y disminuye los costos de operación y de ejecución del proyecto como tal.
http://cubodedatos.com/images/site/especialistasistemasinformacion-918.jpg

Para realizar la documentación hay varios programas dependiendo el código que manejes o simplemente documentan cualquier código utilizado o con el solo hecho de poner comentarios en la estructura del código.

Por ejemplo en mi caso yo pienso utilizar JAVADoc para realizar lo anterior ya que aparte que me documentaría el código de mi proyecto podre ponerle comentarios para cuando vuelva a ver mi proyecto recuerde como realice eso.

Otra forma de documentar aunque lo recomendable es con un software que realice esto, seria realizar un documento que tenga información del proyecto:
  • Dar una breve descripción de lo que realice tu código.
  • Lenguaje utilizado y porque.
  • Clases del software y explicar cual es la función principal de esa clase.
  • Métodos y lo que haría cada uno.
Referencias
http://mx.globedia.com/documentacion-de-software
http://www.dosideas.com/noticias/metodologias/298-como-documentar-la-arquitectura-de-software.html