viernes, 5 de octubre de 2012

Avance Módulo 5 - Metodologías de análisis y desarrollo de sistemas orientadas a objetos.

En el módulo 5 elaboramos la documentación necesaria para planear y realizar un proyecto, asimismo entendimos el concepto del lenguaje unificado de modelado UML.
 

Introducción

 

En mi particular caso, desarrollé los diagramas indicados en el árbol mostrado en la imagen de la derecha, apegándonos a la metodología del proceso unificado racional (RUP) para llevar a cabo el análisis del proyecto personal.

Desde las cuatro vistas, es posible observar como se define el proyecto y se establece su propósito, de forma que las iteraciones con un cliente en particular permitan realizar las modificaciones necesarias para adaptarse completamente a sus necesidades.

En la vista de casos de uso podemos observar al diagrama de casos de uso y el modelo de Estado/Actividad, que nos muestran cuales son las entidades y actividades que intervienen en la ejecución del sistema, así como el flujo de trabajo correspondiente, respectivamente.

En la vista lógica podemos observar las clases y paquetes por las que se conforma el sistema, así como la realización de los casos de uso, mientras que en la vista de componentes podemos ver las capas en las que se divide el sistema.

Por otra parte la vista de distribución nos muestra el modelo conceptual de la distribución del sistema.

Vista de Casos de Uso



Diagrama de Casos de Uso

Los casos de uso identificados fueron: Crear proyecto, Agregar Objetivos, Reportar Actividades y Consultar registros, que a su vez extiende el caso de Modificar Registros, que se aplica directamente a las primeras tres clases, toda vez que un registro ya creado tiene que ser consultado primero para sufrir alguna modificación.






Diagrama de Estado/Actividad

El flujo normal del sistema es el indicado por el diagrama, primero un administrador define un proyecto y crea sus objetivos, posteriormente un usuario puede reportar sus avances hasta cumplir con los objetivos señalados. No se pueden reportar actividades si no se ha creado un objetivo y estos dependen a su vez de la definición de un proyecto.


 

Vista lógica

Diagrama de clases
 
El diagrama de clases comienza por la definición de cuatro paquetes, para dividir las capas de Modelo (persistencia empleando el patrón de diseño DAO y una base de datos MySQL), Controlador y Vista.

Paquete BEANS

El paquete Beans, contiene las clases que representan el modelo de la base de datos de persistencia.








Paquete DAO

El paquete DAO tiene las interfases y clases de implementación que resuelven el problema de Actualización, Creación, Consulta y Eliminación de registros en la base de datos de persistencia.








Paquete Util

El paquete Util, contiene clases con código reaprobechable y de uso genérico, con el fin de ser extendidas o importadas. En el caso de este avance solo contemplo una utilidad para la conexión y desconexión de la base de datos




Paquete View

El paquete View contiene clases que resuelven la interfaz del usuario. En el caso de este avance de proyecto, solamente resuelvo una clase MAIN.








Diagrama de Casos de Uso Implementación
 
En este diagrama se indica que cada uno de los casos de uso será implementado.
 
 
 
 
 
 
 
 
Diagrama de Colaboración
 
En este diagrama se indica como interactuan las clases, con el fin de exponer en que secuencia se obtiene la información y como se almacena en los BEANS respectivos.
 
 
 
 
 
Diagrama de Secuencia
 
El diagrama de secuencia nos muestra el flujo de interaccion de los usuarios y el sistema, el administrador es el que comienza las interaciiones con el sistema, hasta haber realizado la definición del proyecto y la creación de los objetivos, posteriormente el usuario interactua con el sistema hasta concluir el reporte de sus actividades.
 
 
 
 
 
 
 
 

Vista de Componentes

 
Diagrama de componentes
 
El diagrama de componentes nos muestra las capas en las que se divide el sistema. En este caso son Vista, Controlador y Modelo.

Vista de Distribución

Diagrama de Distribución

El diagrama de distribución contempla un servidor y dos terminales (una para el administrador y otra para el usuario).
 


domingo, 30 de septiembre de 2012

Avance Modulo 7. Componentes Java para aplicaciones Web (pasando SWING a WAR)

La aplicación web fue desarrollada para consultar las tablas de la base de datos que fue depositada en la plataforma, esta consiste en una página JSP, que invoca a un SERVLET el cual lleva a cabo las transacciones con las clases de negocios y de modelo.


El script de la base de datos de ejemplo, código fuente y archivo de aplicación web (WAR) fueron depositados en la plataforma moodle, siendo la configuración del servidor MySQL la siguiente:
Host: Localhost
Puerto: 3306 (default)
Usuario: root
Contraseña: admin

Modulo 4. MVC/DAO y uso de XML


El avance de proyecto del módulo 4 Uso de XML en la creación de interfaces web e intercambio de información, complementa al proyecto personal con una potente herramienta de intercambio de información, que es el análisis de documentos XML, la estructura de la aplicación de este avance tiene por objeto seguir los patrones de diseño VMC y DAO, buscando abstraer al usuario del manejo directo de la base de datos, así como del procesamiento y las validaciones que la información requiere antes de ser almacenada, a fin de evitar fallas en la manipulación de los datos que produzcan inconsistencias en el manejador de base de datos.

La interfaz de usuario de esta aplicación es una vista de consola que produce un archivo XML, que hace referencia a un archivo de definición DTD y a un archivo de hoja de estilo CSS para que al ejecutarlo se muestre la información en el navegador web predeterminado con un formato y estilo comprensibles.
Se revisa el archivo XML para verificar la estructura de los datos (el navegador web indica si existe alguna inconsistencia) y posteriormente se edita el archivo XML para quitar las líneas de comentario del modelo de la hoja de estilo CSS.


Asimismo se subió a la plataforma copia de la base de datos empleada, la cual tiene la siguiente configuración:
Host: localhost
Puerto: 3306
Usuario: root
Contraseña: admin.

Ejecutando el programa MainXML.java (respuesta en consola y creación de archivo)

Revisando el archivo XML en el Navegador Web



Editando el archivo XML

Resultado final (presentación de la información)






lunes, 9 de julio de 2012

Especificación del diseño de software


Especificación del diseño de software (SRS).

1.- Se quiere requiere el diseño de una aplicación de escritorio hecha con swing, para el registro y administración de proyectos de desarrollo de hardware electrónico, en la que se pueda crear y almacenar toda la documentación necesaria para reproducir el modelo del prototipo en cuestión.
2.- Para efectos, se debe poder asignar un nombre al proyecto y una descripción que declare su concepto o idea general. Asimismo debe poderse delimitar límites en su fecha de entrega y cantidad de recursos financieros asignados.
3.- Para calcular el avance del proyecto, un usuario con rol de administrador debe poder fijar objetivos, mientras que otro usuario con rol de usuario debe poder cerrar los mismos, lo que concluirá con una sencilla fórmula de:
%Avance = Objetivos cerrados
                  Objetivos fijados

 4.- Para poder cerrar un avance, el usuario debe haber documentado al menos una actividad realizada para alcanzar el objetivo.

Diagrama Entidad Relación del Proyecto:


Avance de Proyecto.
La interfaz gráfica de mi proyecto no es totalmente funcional, sin embargo los componentes del servicio están homologados para hacer las correcciones necesarias a la interface hecha con swing.
El avance consta de unas clases que servirán como wrappers y sus respectivos métodos de lectura, captura, modificación y eliminación:

Las interfaces gráficas no están terminadas todavía y por el momento solo contemplo la administración de las tablas de Proyectos y Usuarios. La ventana principal muestra ambas administraciones, con sus respectivos botones para ejecutar las acciones necesarias, los botones abren una ventana secundaria que nos permite ver el detalle del registro a agregar o del registro a modificar.


Ventana Principal

Ventana de apoyo para ver el detalle del registro de un proyecto.

Ventana de apoyo para ver el detalle del registro de un usuario.

sábado, 30 de junio de 2012

Vistas del proyecto


Universidad Nacional Autónoma de México
Dirección General de Tecnologías de la Información y Comunicación
Centro Mascarones en T.I.C.


Avance de Proyecto: Sistema de seguimiento de proyectos.


Alfredo Nataniel Flores Delón



La ventana mostrada a continuación, contiene un reloj digital que corre con su propio hilo de ejecución, así como los botones del menú (actionListener).

La primera opción del menú mostrado anteriormente nos abre una pantalla que nos permite iniciar el servidor RMI donde se alojará la información sobre los proyectos a los que se les está dando seguimiento.
Si el servidor es usado por primera vez, necesitará un archivo base con datos de prueba, que podrán ser cargados desde esta misma pantalla usando la segunda opción de esta ventana (crear archivo).
Es indispensable iniciar el servicio de RMIRegistry, antes de querer iniciar el servidor, en caso contrario este producirá excepciones por fallas en la comunicación, ya que los Stubs y Skeleton no estarán disponibles.


         
La segunda opción de la primera ventana nos permite abrir la ventana de control del servicio de red por socket para el intercambio de conocimiento a través de una herramienta tipo chat. Solo tiene la opción de abrir puerto, ya que al cerrar la ventana, el hilo de ejecución muere y queda libre el puerto nuevamente.
La tercera y última opción del primer menú es la ventana del cliente, en este avance, solo se concretó la identificación del usuario y no su autenticación, por lo que el sistema solo pedirá información sobre el nombre del usuario y la dirección url del servidor donde se iniciaron los servicios de RMI y SocketServer.

Después de identificarse, el sistema se conectará por red para obtener información sobre los proyectos cargados en el servidor vía RMI, y un hilo de ejecución correrá por el servidor para localizar la colección almacenada en el disco duro del servidor y por medio de genéricos asegura la integridad de la información transmitida al cliente. El cliente recibe una lista ligada de <proyectos> y los presenta sobre una tabla para su manipulación gráfica.

El usuario puede agregar o editar la información contenida en la tabla expuesta anteriormente, para editar solo debe seleccionar el proyecto en cuestión y hacer clic sobre el botón Editar y para crear un nuevo registro, basta con hacer clic sobre el botón Nuevo.

Por otra parte, se encuentra el botón de Participar, con el cual, el usuario se pone en contacto con otros usuarios en una herramienta tipo Chat, para tratar asuntos relacionados con el proyecto en cuestión, mismo que se les presenta en la ventana para su constante seguimiento de los objetivos planteados en la descripción del proyecto.

Avances en el proyecto

Avance de Proyecto,

Módulo 2. Aplicaciones de Escritorio.


En la plataforma ya se encuentra un archivo comprimido con el código fuente de lo que es mi avance de proyecto, que resulta ser una integración de las herramientas y conocimientos adquiridos durante el desarrollo de las prácticas del módulo.


1.- Hilos, utilicé el ejemplo del relojDijitalJpane, pero así mismo también se emplearon hilos para realizar las conexiones en red del tipo Socket.
2.- Colecciones, tengo una colección sobre los proyectos que deseo administrar.
3.- Genéricos, los genéricos los empleé para asegurarme de que las colecciones mantengan su consistencia en tiempo de compilación y evitar problemas a futuro por el mantenimiento.
4.- Red,. integré el chat como la herramienta de colaboración para trabajar con los proyectos que administra el sistema.
5.- JNDI y 6.- RMI.- Por medio de este servicio almaceno la información en el disco duro del servidor y la recupero para poder emplearla.
7.- Swing.- Todas las interfaces gráficas y pantallas empleadas están desarrolladas empleando el API de Swing.


lunes, 21 de mayo de 2012

Planteamiento del proyecto de sistema con Tecnología JAVA


Foro del Proyecto del Diplomado en Desarrollo de Sistemas con Tecnología JAVA


Proyecto:

Sistema de información basado en computadora para la gestión de proyectos de diseño de prototipos electrónicos.

Objetivo

Desarrollar un sistema informático para la gestión de recursos y tareas designadas al desarrollo de prototipos electrónicos, a fin de controlar y documentar los progresos de un proyecto.

Objetivos Específicos

  • Crear una aplicación para documentar los propósitos del proyecto de desarrollo electrónico.
  • Agregar a la aplicación la funcionalidad de programación de actividades y asignación de tareas.
  • Añadir elementos para establecer metas individuales que logren satisfacer las tareas asignadas.
  • Proporcionar herramientas para documentar los consumos de material en la realización de las metas.
  • Proveer un espacio para documentar y compartir los resultados de las actividades programadas, con herramientas para anexar sus diseños (.pcb, .sch, .c, . pas, etc.).

Introducción

Considero que proporcionar un sistema que ayude a documentar el desarrollo profesional de prototipos electrónicos es una herramienta útil que fomenta el intercambio de conocimiento tecnológico ya sea libremente o dentro de un régimen privado, ya que el debido registro y control de los recursos empleados en su desarrollo sustenta el trabajo realizado por los ingenieros involucrados y además ayuda a los nuevos ingenieros a integrarse rápidamente a un proyecto existente, por otra parte servirá para mejorar la estimación de costos cuando el prototipo pase a la fase de producción.