jueves, 27 de enero de 2011

PROYECTO: Diseño de clases

Taller de Lenguajes de Programación - Semana 2 - Reporte 2


Que tal compañeros!!!

Esta vez les mostrare el esqueleto de mi proyecto, aún le falta pulir y perfeccionar bastante:

CLASE Facturacion

Como ya lo mencione, esta sera la clase padre de todo, quien se encargara de generar la ventana, redibujarla en cada acción, importar las facturas a otros formatos, etcétera
package Facturar;

import javax.swing.*;
import java.awt.*;

public class Facturacion extends JFrame {

    private Factura f;

    JButton Boton = new JButton();
    JPanel Herramientas = new JPanel();
    
    public void buscar () {
 return;
    }

    public void imprimir() {
 return;
    }

}

CLASE Factura

Es la encargada de generar las facturas y los datos que irán dentro de la misma, aún no defino algunos métodos para esta clase.
package Facturar;

public class Factura {

    private Cliente c;
    private Pedido i;
    private Proveedor p;

}

CLASES Cliente, Proveedor, Pedido

Estas clases tienen como atributos los datos fiscales de las 2 personas que intervienen en la compra-venta de los servicios y productos. La clase pedido tiene como atributos los datos de cada artículo a registrar.
package Facturar;

public class Proveedor {
    
    private String nombre;
    private String direccion;
    private String rfc;

}



package Facturar;

public class Cliente {

    private String nombre;
    private String direccion;
    private String rfc;

}



package Facturar;

public class Pedido {

    private String codigo;
    private String articulo;
    private int cantidad;
    
}

CLASE Comunicacion

El nombre de esta clase esta en debate. Su función es la de realizar el intercambio de informacón entre todas las partes del programa, intercambiando información entre las bases de datos y la aplicación
package Facturar;

import java.io.*;
import java.util.StringTokenizer;

public class Comunicacion {

    BufferedReader input = new BufferedReader(newFileReader(archivo));

    public void buscar() {
 return;
    }

    public void guardar() {
 return;
    }
    
    public void modificar() {
 return;
    }

    public void eliminar() {
 return;
    }

}


Bueno, estas son las clases muy austeramente creadas de mi proyecto. :)

SALUDOS

martes, 25 de enero de 2011

PROYECTO: Definición de Clases

Programacion Orientada a Objetos - Semana 2 - Reporte 2

Para esta entrada trataré de explicar para que servirán algunas de las clases de mi código, las que mostraré aqui son las mas evidentes y conforme el código vaya creciendo se iran agregando mas clases.

Teniendo como ejemplo nuevamente la imagen de mi entrada anterior enlistare las clases que son identificables:



Clase Facturación:



Esta clase yo la visualizo como la principal, uno de sus objetivos es dibujar la ventana en la cual se llevaran acabo todas las acciones del programa, por consiguiente algunos de sus atributos seran efectivamente el tamano de la ventana, su forma, etc. Otro de sus objetivos será redireccionar todas las acciones generales del programa mediante botones porque una de mis intenciones es colocar una barra de herramientas que permita llamar a diferentes comandos directamente tales como abrir la base de datos, imprimir o modificar una factura, buscar, etcétera.

Clase Factura



La misma factura sera una clase, ya que tendrá diferentes atributos como el número de serie, el sello digital, datos del cliente y del vendedor y los artículos o servicios que se estan facturando. Puede crear un cliente, un proveedor y un pedido. Algunos de sus métodos serán ir armando la factura con los datos que se vayan pidiendo, importar la misma a otros formatos como PDF o formato electrónico (XML), imprimir o simplemente mostrar en pantalla la factura.

Clase Cliente


Esta clase como su nombre lo dice tendrá como atributos todos los datos personales y fiscales del cliente: nombre, dirección, RFC, etcétera.
Sus funciones realmente no son muchas y su funcionalidad depende mucho de la clase comunicación ya que esta clase envía sus datos a la clase comunicación quien después los manipula de diferentes formas.

Clase Proveedor


Será parecida a la clase cliente ya que almacenara todos los datos personales y fiscales del proveedor: nombre, dirección, RFC, etcétera.

Clase Pedido


Como su nombre indica, esta clase contendrá los datos necesarios para generar un producto: artículos, cantidad, precio, número de producto, etcétera. Como en la clase cliente esta necesita estar conectada a la clase comunicación quien es la que manipula los datos de diferentes maneras.

Clase Comunicación


Es posiblemente otra de las más importantes, tiene como atributos algunas variables que guardarán los datos enviados por las otras clases. Su función será la de apertura y cierre de archivos; lectura, escritura, borrado o modificación de las bases de datos. Como ya se habrán dado cuenta su función es ser intermediario entre el proceso de entrada y salida pues las clases Pedido o Cliente piden y generan datos y después esta clase los guarda, o también,mediante una petición previa, extrae datos de la base y después los reedirige ya sea a la clase Cliente o la clase Pedido.

Espero y tengan una perspectiva más amplia de mi proyecto :)

Referencias:
http://elvex.ugr.es/decsai/java/pdf/3B-Clases.pdf

domingo, 23 de enero de 2011

PROYECTO: Herramientas

Taller de Programación Orientada a Objetos - Semana 1 - Reporte 1

Hola a todos !!

En esta entrada vamos a repasar las herramientas que vimos en clase y que nos serán útiles para nuestros proyectos.

LENGUAJES


Python


Este es un poderoso lenguaje de programación, se trata de un lenguaje multiparadigma y de alto nivel. Es muy fácil de aprender ya que su sintaxis es muy sencilla y ligera lo cual le otorga muchos puntos a favor.
Otra de las características es que cuenta con un soporte bastante completo en la web y librerías que facilitan el desarrollo de aplicaciones.
Es muy utilizado en las interfaces CGI.

Cómo empezar


Realmente no hay que empezar, Python viene completamente cargado en Ubuntu, para verificar su existencia basta con entrar a la Terminal y teclear:

which python

Lo que resultara en una ventana como la siguiente:


Esa línea que se nos es mostrada (que por lo general es /usr/bin/python) es lo que se conoce como interprete, esa línea hay que incluirla en cada uno de los códigos que escribamos en este lenguaje, por ejemplo:
 #!/usr/bin/python
print "\t\tOBTENER EL PORCENTAJE DE UN TOTAL\n"
x = float(input("Dame el valor total ->  "))
y = float(input("Porcentaje  obtener ->  "))
porcentaje = x*y/100
print "El resultado es -> "
print porcentaje

El script es un ejemplo muy austero de cómo obtener un porcentaje.

ESTA ES UNA ENTRADA ANTERIOR DONDE EXPLICO MUY A FONDO LAS CARACTERÍSTICAS DE PYTHON: Click aqui

C++


Es una extensión del lenguaje C, a través de la cual se le proporciona de programación orientada a objetos. Para los que hemos programado en C nos será relativamente fácil entender este lenguaje ya que la sintaxis es la misma a excepción por supuesto de aquellas funciones de la POO.

Cómo empezar


Depende de la versión de Ubuntu, la versión 10.04 incluía el compilador g++, pero, la versión 10.10 ya no lo incluye.

Para verificar su existencia basta con entrar a la terminal y teclear:

g++

Se nos pueden presentar 2 situaciones, si existe veremos algo asi:


Si no existe veremos algo asi:



Entonces será necesario instalarlo. Para ello teclearemos en la terminal:

sudo apt-get update

para obtener las listas actualizadas de los repositorios:


Despues teclearemos:

sudo apt-get install g++

y la instalacion comenzara. Cuando sea necesario presionamos Y


y dejamos que la instalación concluya. Después volveremos a teclear g++ para verificar que realmente se haya instalado con éxito:


EN ESTA ENTRADA PODRÁN VER UNA RESEÑA MUY COMPLETA HECHA POR MI SOBRE ÉSTE LENGUAJE: Click aqui!!

JAVA


Otro lenguaje muy completo y muy poderoso, utilizado muy ampliamente por desarrolladores de juegos y aplicaciones. Éste será el lenguaje que usaré para escribir mi proyecto.
Cuenta con muchos soportes técnicos (oficiales y no oficiales) muy completos en línea.

Cómo empezar


Para comenzar a utilizar Java necesitamos instalar el Java Development Kit (JDK), este incluye el compilador y el runtime para probar nuestras aplicaciones.
Para instalar esta herramienta teclearemos en la terminal:

sudo apt-get install openjdk-6-jdk

Verermos algo como esto:



Presionamos Y para aceptar la instalacion y esperamos a que ésta concluya.

Para verificar que se haya instalado con éxito tecleamos en la Terminal

javac

Lo que mostrara un texto parecido a ésto:


Tambien tecleamos

java

Con lo que veremos algo como esto:


Aquí pueden ver la documentación de JAVA 6: API

Herramientas


Diagramas UML


“ Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocio y funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y componentes reutilizables.

Es importante resaltar que UML es un "lenguaje de modelado" para especificar o para describir métodos o procesos. Se utiliza para definir un sistema, para detallar los artefactos en el sistema y para documentar y construir. En otras palabras, es el lenguaje en el que está descrito el modelo.”

Fuente: http://es.wikipedia.org/wiki/Lenguaje_Unificado_de_Modelado


Los diagramas UML son muy útiles ya que nos ayudan a diseñar nuestro sistema por medio de una iinterfaz muy intuitiva. Cada una de nuestras las parte de nuestro programa es representada por medio de un nodo de un diagrama de árbol, y cada parte la podemos interconectar con otras con las cuales es necesario entablar comunicación. Una vez ensamblado nuestro sistema es posible generar el código del mismo en diversos lenguajes.

Podemos instalar diversas herramientas para generar diagramas UML, dos de ellas son Bouml y Umbrello

Instalar UMBRELLO


1. Entrar al menú APPLICATIONS
2. Entrar al programa UBUNTU SOFTWARE CENTER
3. En la ventana de UBUNTU SOFTWARE CENTER, teclear en la caja de busqueda "UMBRELLO"
4. Dar click en "INSTALL"


INTERFAZ



Instalar BOUML


1. Entrar al menú APPLICATIONS
2. Entrar al programa UBUNTU SOFTWARE CENTER
3. En la ventana de UBUNTU SOFTWARE CENTER, teclear en la caja de busqueda "BOUML"
4. Dar click en "INSTALL"


INTERFAZ



Espero les sirvan estas herramientas, en la barra de la derecha en "RECURSOS" hallaran muchas mas herramientas.

SALUDOS :)

PROYECTO: Sistema de Facturación

Programación Orientada a Objetos - Semana 1 - Reporte 1

Que tal compañeros!

La idea de mi proyecto nació de una petición que se me hizo a finales del año pasado del que ahora considero mi cliente. Él es dueño de una empresa de transportación y su necesidad principal es tener un sistema completo de facturación para poder manipular toda su base de datos sin necesidad de depender de programas como Excel; además de necesitar un sistema que le permita crear facturas electrónicas ya que este método de facturación es obligatorio para todos los empresarios contribuyentes a partir de éste año

Entonces mi objetivo es desarrollar un sistema de facturación que además de facturar tenga algunos extras para facilitar el trabajo del cliente, recordemos que al desarrollar una aplicación hay que tomar en cuenta la optimización de tiempos y procesos, eso es algo que intentare lograr con mi sistema.



OBJETIVOS DEL PROYECTO


PROGRAMACIÓN


Para la programación utilizaré el lenguaje Java, ya que es el más adhoc a mis necesidades, una de las cosas que me hizo decidirme por este lenguaje es la existencia de librerías que ayudan a certificar y validar facturas electrónicas.

INTERFAZ


No es muy necesario contar con una interfaz, pero en la actualidad es un poco engorroso y poco atractivo manipular una aplicación desde una terminal.
Una interfaz minimalista que trabaje por medio de campos de texto para ingresar datos y botones para realizar diversas acciones

BASE DE DATOS


Crear una base de datos que permita automatizar el proceso de captura de datos.
La base de datos alojaría todos los datos necesarios de los clientes y vendedores. Serán posibles también acciones como dar de alta, dar de baja o modificar información de un cliente.
Esto me servirá también para automatizar el proceso de facturación: al introducir por ejemplo el nombre del cliente los campos con la información personal del mismo serán rellenados automáticamente.

FACTURACIÓN


El objetivo principal de mi sistema.
El programa facturara procesos y servicios, posteriormente estas facturas podrán ser impresas ya sea en papel, PDF, o electrónicamente (XML). Así mismo se podrán guardar en algún formato propio para manipularse posteriormente.

CREACIÓN DE CFD


Siglas de “Comprobante Fiscal Digital” posiblemente una de las etapas más complicadas del sistema, generar facturas electrónicas. Para poder generar un CFD necesito contar con una clave que el SAT proporciona a todos aquellos contribuyentes que facturen servicios y un certificado de seguridad, con estos datos el módulo o clase que programaré tendrá que cifrar y validar una firma digital para que el comprobante sea válido.


Ésta es la descripción de mi proyecto para el semestre, como tal vez pudieron notarlo estoy muy entusiasmado por lograr mi objetivo y pronto iré mostrando avances y también espero que dichos avances sean útiles para sus proyectos.

☺ ☻ ☺ ☻