viernes, 15 de julio de 2011

Demostracion Final

Para la demostracion final aqui les aniado los archivos del codigo que genere y tambien la Documentacion de usuario.

Codigo

Manual del Usuario





Gracias y espero sea de su agrado! :)

Interfaz Grafica

Para mi sistema inicialmente trabaje en terminal y asi es como se ve al funcionar la clase de articulos:



Sistemas distribuidos

Inicialmente la idea principal de mi sistema es que sea un sistema distribuido, ya que este trabajara en linea.

Como implementarlo para que sea distribuido?

Algo que me parecio importante es que el sistema sea compatible con los diferentes sistemas operativos que existen para que no existan problemas en la visibilidad de estos, ademas de que el manejo sea mas facil para los usuarios.

Otra cosa que me parecio importante es que la seguridad de este sistema no debe faltar ya que como es en linea corre riesgos a que quiera ser daniado etc..

Documentacion Tecnica

La Documentacion Tecnica que obtuve con la herramienta javadoc fue la siguiente:




Estas son algunas de las pantallas de la documentacion obtenida de la clase de articulos:

Liga a los archivos generados:
http://www.megaupload.com/?d=71EVP4C0

jueves, 14 de julio de 2011

Auto-generacion de codigo

En la comparacion de auto-generacion de codigo, que me facilito el programa Umbrello a partir del diagrama de clases es un tanto diferente al codigo que actualmente tengo implementado, esto es porque conforme estaba programando tuve ke ir cambiando algunas cosas que probablemente en un inicio no habia contemplado, o por ejemplo en yo tenia pensado realizar una clase llamada busqueda pero me resulto mejor implementarla como un atributo de la clase de articulos.

Esta es una de las clases que me genero el Umbrello y en la que trabaje yo:

import java.util.*;

public class articulos {
private String NombreArticulo;
private int Codigo;
private double Costo;
private boolean disponibilidad;
private char descripcion;

public articulos () { }; //Constructor

private void setNombreArticulo ( String newVar ) {
NombreArticulo = newVar;
}
private String getNombreArticulo ( ) {
return NombreArticulo;
}
//Pedir o asignar el nombre del articulo
private void setCodigo ( int newVar ) {
Codigo = newVar;
}
private int getCodigo ( ) {
return Codigo;
}// Pedir o asignar el Codigo para el articulo
private void setCosto ( double newVar ) {
Costo = newVar;
}
private double getCosto ( ) {
return Costo;
}// Pedir o asignar el Costo para el articulo
private void setDisponibilidad ( boolean newVar ) {
disponibilidad = newVar;
}
private boolean getDisponibilidad ( ) {
return disponibilidad;
}// Pedir o asignar la disponibilidad para el articulo
private void setDescripcion ( char newVar ) {
descripcion = newVar;
}
private char getDescripcion ( ) {
return descripcion;
}
public boolean Seleccionar( )
{
}
public int VerArticulos( )
{
}
public String AgregarArticulos( )
{
}
}//Fin de Articulos


y esto es lo que yo hice de codigo de la misma clase:

import java.io.*;
import java.util.*;
import java.sql.ResultSet;

public class Articulos {
public static void main(String[] args) throws Exception{
Scanner u= new Scanner(System.in);
Inventario con = new Inventario();
Inventario bdm= new Inventario();
bdm.mostrarArticulos();

int opcion=0;
do //Menu de articulos
{
System.out.println("Menu");
System.out.println("1.-Agregar");
System.out.println("2.-Buscar");
System.out.println("3.-Eliminar");
System.out.println("4.-Salir");
opcion = Integer.parseInt(u.nextLine());

switch(opcion)
{
case 1://Agregar articulos a la base
System.out.println("--------Agregar Articulo-------");
System.out.println("Nombre del articulo:");
String NombreArticulo= u.nextLine();
System.out.println("Codigo:");
int Codigo= Integer.parseInt(u.nextLine());
System.out.println("Costo:");
int Precio= Integer.parseInt(u.nextLine());
System.out.println("Palabra Clave:");
String Palabraclave= u.nextLine();
System.out.println("Cantidad:");
int Cantidad = Integer.parseInt(u.nextLine());
con.ingresar(NombreArticulo,Codigo,Precio, Palabraclave,Cantidad);
break;

case 2: //Busqueda de articulos
System.out.println("Codigo a buscar: ");
int codig = Integer.parseInt(u.nextLine());
ResultSet resultado=con.buscar(codig);
if(resultado.next())
{
System.out.println("Nombre del Articulo: "+resultado.getString(1));
System.out.println("Codigo: "+resultado.getString("Codigo"));
System.out.println("Costo: "+resultado.getString("Precio"));
System.out.println("Palabra clave: "+resultado.getString("Palabraclave"));


}else
System.out.println("Este articulo no se ha encontrado es posible ke halla sido eliminado.");
System.out.println(con.estado);
break;

case 3: //Eliminar Articulo
System.out.println("Codigo del articulo que desea eliminar: ");
int codi = Integer.parseInt(u.nextLine());
ResultSet result=con.buscar(codi);
if(result.next())
{
con.Eliminar(codi);
System.out.println("Articulo Eliminado");
}else
System.out.println("Este articulo no existe");
break;
}//Fin Switch
}while(opcion!=4);
}//fin main

}//**fin clase

Pruebas unitarias

Para realizar las pruebas unitarias Utilice la herramienta JUnit desde la terminal de ubuntu en donde le realice las pruebas necesarias a mi codigo y esto fue lo que obtuve:Esta prueba la realice para la clase de Articulos

Y esta para la clase de Inventario.

Retroalimentacion

Para la retroalimentacion, decidi comentar con mis companieros algunos temas los cuales fueron los siguientes:

Casos de Uso: es un forma de ver la interaccion con el sistema, viendo que actores pueden hacer tal cosa y como estas estan relacionadas con otras funciones

Diagramas de Secuencia:respresentan el comportamiento del sistema y ke muestran ordenadamente como van sucediendo los escenarios de casos de uso y se realiza uno por cada caso de uso.

Clases: uelen ser publicas con sus atributos privados y metodos publicos nos sirven para divir en varias partes lo que vendria siendo el programa para la hora de codificar no oscureser el codigo teniendo todo en un solo main
Tambien podemos identificar las clases del sistema como sustantivos, los atributos cono caracteristicas y los metodos como verbos.

Documentacion:la documentacion sirve para mostrarnos los requerimentos del sistema, como los casos etc.. el disenio,: como la arquitectura del sistema los diagramas de clase y de secuencia, y la tecnica del sistema ke es el codigo creado, es importante documentar bien todo lo que hacemos porque por ejemplo nunca sabemos quien mas va a estar trabajando en el codigo pudiera ser alguien que no lo diseno y debe ser claro cada una de las cosas que hace para que cualquier persona pueda trabajar en el.

Las pruebas unitarias: nos ayudan a encontrar posibles errores de los cuales no nos hayamos percatado y de esta manera probar si el funcionamiento es correcto, una herramienta util es JUnit.

Otra cosa importante es que en la prgramacion OO tenemos la reutilizacion de codigo, lo que nos permite ahorrarnos tiempo, y un poco de trabajo.