Sunteți pe pagina 1din 7

5 de mayo de 2011

Proyecto Java Case Negocios


Objetivos del Proyecto:
Construir una software que permita el desarrollo de sistemas informticos de manera anloga a como se construyen los elementos electrnicos, es decir, poder implementar una pieza de software a partir de otras piezas de software que en teora no permita o no se requiera cdigo adicional, incluso entre las conexiones entre piezas.

Como Sera:
Para construir una nueva pieza de software, se requiere de una panel o frame en el que se insertaran otras piezas de software, como primer paso.

En este panel se agregan los distintos componentes, distribuidos de manera conveniente para dar el carcter final que se desea de la nueva pieza de software.

Una vez agregados los componentes en el panel se debe agregar la lgica correspondiente, la cual le dar el comportamiento buscado a la nueva pieza de software.

El resultado de esto es una pieza de software, la que puede clasificarse como intermedia, llamada Componente, cuyo objetivo es estar disponible para crear otras piezas de software o final denominada Funcin la que forma parte de un sistema final que utilizar el usuario.

rbol de Construccin:
De lo anterior se puede resumir que la metodologa utilizada, se comporta o da la estructura de un rbol, cuyas raz correspondera a una Funcin, lo que equivale a decir que la raz esta formada por todas los Componentes que cuelgan desde las ramas y hojas.

Funcin
Piezas de Software

Funcin para el usuario final

Componente Compo. Compo.

Componente

Componente
Componentes

Compo.

Compo.
Hojas

Observe que las hojas podran interpretarse como objetos indivisible, la verdad que s lo son, pero se har una diferenciacin entre lo que sera una hoja para una Funcin y para un Componente de acuerdo al estudio de este proyecto. Partiendo de la base el objetivo del Constructor de Funciones, es que no tenga contacto con lineas de cdigo del lenguaje, las hojas seran slo componentes y el rbol tendra altura igual 1 (un rbol de un nivel) y como el objetivo de un Constructor de Componentes no contempla evitar la interaccin con lineas de cdigos y objetos del lenguajes, las hojas de este rbol podran ser tanto componentes como lneas de cdigos y objetos del lenguaje. Creacin de una Funcin Funcion Compon Compon Compon 1 o ms componentes Compon Compon Boton Creacin de un Componente Compo Compon List Codigo

Por qu una Funcin no es reutilizada:


Esta tcnica no propicia la reusabilidad de una Funcin, dado a su caracterstica de estado final. No obstante el constructor del sistema puede darle quizs un grado de reusabilidad pero no es el objetivo de este proyecto. Para entender mejor esta situacin se explicar la diferencia entre Funcin y Componentes, a pesar de que el lector ya debe tener una idea de sus diferencias. La gran diferencia esta en el valor de las Propiedades, dado que las Funciones por su carcter de interactuar con el usuario final, ya tienen valorizados las Propiedades y los Componentes no, muy por el contrario, producto que un componente es una clase y en las clases las propiedades no tiene valor hasta su instancia por medio de un objeto, quien es el que tiene los valores de las propiedades. Para aclarar mas esta diferencia, se dar un ejemplo. Suponga que un componente C tiene una propiedad sp_name_get (nombre del procedimiento almacenado utilizado por un mtodo para llenar una grilla). Y suponga que este componente C es insertado en un panel para crear una funcin F. La funcin F dispondr de la propiedad sp_name_get, la cual es valorizada con el nombre del procedimiento almacenado obtener_proveedores. Con esto se explica si reutilizamos la funcin F, el valor de la propiedad ya estar definido.

Cmo realizar un Componente:


Un Componente es un Bean de Java. Bsicamente lo que trata es armar un bean a partir de objetos bsicos del lenguaje y de otros componentes definidos, adems de definir las propiedades si as fuese necesario. Primeramente se debe tener claro para que se esta creando el Componente, es decir, debe tener completamente definido el rol que cumplir este Componente, cual va a ser su ambiente de reusabilidad, alcances y limitaciones. Luego se buscan los objetos y componentes necesarios para darle la forma pretendida y posteriormente realizar las conexiones pertinentes. Suponga que se quiere realizar un Componente que denominar Rango_de_Fecha. Para este nuevo Componente se requerir de un par de objetos fecha (Objeto del lenguaje si ya lo posee o un componente previamente creado), un dos label para textos, los que se insertarn en un panel. Panel Txt con Mask Fecha. De / / a / / Label Ya teniendo el Componente armado, se deben agregar los propiedades que le darn la capacidad de conectarse a otos paneles para ser rutilizable, como un componente electrnico es usado para crear una tarjeta de video, sonido, etc. En este caso las propiedades seran fecha_de_inicio y fecha_de_termino (pudiendo crear otras como color, formato, tamao, etc.) De / / a / /

Crear un Componente ms complejo:


El ejemplo anterior, trata de un componente que puede ser formado a partir de slo objetos del lenguaje. Pero la idea bsica de este proyecto es la Reusabilidad de Cdigo y como tal, lo que se quiere es poder usar el componente ya realizado en otros Componente o Funciones ms complejos. Para formar un componente a partir de otros componentes, se utiliza exactamente la misma metodologa vista cuando se creo el componente Rango_de_Fecha, y precisamente ese es el objetivo buscado, poder formar componentes complejos de una manera sencilla y rpida. Para entender mejor, se dar un ejemplo de una tpica pantalla que despliega un listado de datos a partir de un rango de fecha. Para esto se cuenta con dos componentes principalmente y dos objeto del lenguaje. Componente A: Rango_de_Fecha. Componente B: Lista. Este componente previamente creado, cuenta con un mtodo buscar_datos y una propiedad nombre_procedimiento_almacenado que hace uso de dos parmetros fecha de inicio y fecha de termino. Objeto 1: Botn Buscar Objeto 2: Botn Cerrar Se procede a armar el nuevo componente incrustando los componente mencionados y los objetos, lo que da como resultado: De / / Componente Rango de Fecha Objetos del lenguaje Panel Cerrar Buscar a / / Buscar Buscar Componente Lista

Solo falta, ahora crear las propiedades que este componente va a tener. Recuerde que un componente no interacta con el usuario, pero debe tener los canales de comunicacin (conexiones abiertas) para poder ser parte de una Funcin que si interacta con el usuario. Para el ejemplo que se est analizando se determinarn tres propiedades: nombre_procedimiento_almacenado, heredado del componente Lista. fecha_de_inicio y fecha_de_termino, heredados del componente rango_de_fechas.

Crea una Funcin:


A esta altura el lector ya est en condiciones de entender como se crea una Funcin que es la pieza de software que interactuar directamente con el usuario. Los componentes slo son vistos por los constructores de componentes y funciones y no forman parte de ningn proceso funcional, es ms en ellos no se despliegan datos ni gatillan actividades y no son vistos por los usuarios finales directamente. Sin embargo estos componentes si interactan con los usuarios de manera indirecta por medio de una funcin. Los Componentes son herramientas para construir Funciones, y la calidad de las funciones va a depender de dos cosas fundamentalmente:

1. Se tiene una diversidad de componentes que cubra una gama amplia de funciones. 2. Utilizar el componente ms adecuado para la construccin de lo que estoy pretendiendo.
La primera aseveracin, va depender del dominio de solucin que se quiere abarcar. Por ejemplo si un negocio productor de software se dedica a crear software para soluciones administrativas financieras, lo ms probable que sus diversidad de componentes no sean de una alta reusabilidad para desarrollar software orientado a la manufactura o control de procesos operativos on-line. Lo ms probable que este ltimo se requieran otra gamma de componentes. En los negocios administrativos financieros, los componentes que se deberan tener se orientan por ejemplo a los master-detail, list, master-list, list-detail, mantenedores entre otros. La segunda aseveracin, es un poco ms difcil de de controlar dado que va a depender de la destreza del constructor de funciones, pero a su vez esto tiende a la mejora dado el proceso de aprendizaje. Sin embargo se explicar brevemente como es posible implementar funciones. Cuando se tiene un requerimiento del usuario, este puede ser satisfecho con una o ms funciones, y es aqu donde esta la clave de la solucin, la idea fundamental es crear funciones que fcilmente son resulta con los componentes que se cuenta, esto se denomina versatilidad de componentes. El siguiente ejemplo explica mejor la situacin planteada. Suponga que se tiene el siguiente requerimiento: Poder saber las ventas realizadas de manera diaria, semanal y mensual. 1. Solucin sin la utilizacin de componentes Esta podra ser tomando directamente objetos del lenguaje y escribiendo muchas lineas de cdigo sin importar si esta ya fueron escritas previamente para solucionar otros requerimientos. 2. Solucin utilizando componentes previamente desarrollados. Para esto se revisa el set de componentes con el que se cuenta y se plantea la solucin. De acuerdo a los ejemplo de componentes que se han descrito en este documentos, se puede perfectamente usar el ltimo componente creado. Para dar la solucin se toma el

componente el cual es insertado en un form (JDialog en java) y se valorizan las propiedades, en este caso a la propiedad nombre_procedimiento_almacenado le damos el procedimiento almacenado obtener_ventas_list que tiene la siguiente forma:
Create procedure obtener_ventas_list @fecha_ini datetime, @fecha_fin datetime as begin select fecha ,cliente, monto, etc.. From Ventas, Clientes, Productos Where fecha between @fecha_ini and @fecha_fin . end

las propiedades fecha_de_inicio y fecha_de_termino, van a ir tomando valores a medida que el usuario digite fechas las cuales sern transferidas como parmetros a la llamada del procedimiento almacenado. Finalmente la funcin queda de la siguiente manera, dando solucin al requerimiento planteado.

De 01/05/2011 a

31/05/2011

Buscar Buscar
.

Fecha Client Monto

Cerrar Buscar Por supuesto que esta solucin no tiene porque ser solo para ventas. Sobre este componentes se puede implementar listas por periodos para muchas otras entidades como compras, guas, facturas, etc..

Conclusin:
La reusabilidad de cdigo es la clave para la minimizacin de costos en la produccin de software, slo as se puede lograr mejorar los tiempos de implementacin (codificacin) y no solamente acortar los tiempos, si no que se puede trabajar en estndares de programacin que facilitaran principalmente. el diseo lgico, ya que este tendr que seguir ciertas normativas para maximizar la utilizacin de piezas de software reusables y la mantencin del software post implementacin. Otra cosa importante y rescatable, es la calidad de la produccin del software puesto que la calidad de las piezas reusables es heredada por el software final y las pruebas, subetapa importante del ciclo de vida, se limita slo a testear el requerimiento funcional concentrndose siempre en el cumplimiento de este y no distrayndose con formatos de nmeros, fecha, conexiones a db, tipos de datos, etc. Por medio de este proyecto, se trabaja en poner en prctica el concepto de reusabilidad y se hace por los medios que se han descritos brevemente en este documento. El autor de este proyecto, ya cuenta con un set de componentes desarrolladas en java y ha sido puesto en practicas por varios sistemas que son parte de soluciones de algunas pymes.

S-ar putea să vă placă și