Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Presentacion de titulacion

revisar ortografia
by

gonzalo Contreras Juarez

on 18 February 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Presentacion de titulacion

ANÁLISIS DEL DISEÑO Y ARQUITECTURA DE LA BASE DE DATOS DEL SISTEMA DE REPORTE DE ACTIVIDADES DE LANIA. (1 AL 12 DE AGOSTO 2011)
Instituto Tecnológico
de Tuxtepec.
REPORTE DE ACTIVIDADES DEL LABORATORIO NACIONAL DE INFORMÁTICA AVANZADA A.C. (LANIA)
PROYECTO:
PARA OBTENER EL TITULO:
INGENIERO EN SISTEMAS COMPUTACIONALES
PRESENTA:
GONZALO CONTRERAS JUÁREZ
INTRODUCCIÓN
El presente proyecto tiene como fin la solución del problema que presenta LANIA con respecto al proceso de captura y seguimiento de la productividad del laboratorio, para lograr una mayor eficiencia y agilidad en el documento anual del reporte de actividades que LANIA genera para evaluación de su uso interno.
Ante la inminente necesidad de dicha aplicación se retomó el proyecto “Reporte de Actividades de LANIA”, cuya primera fase consistió en la elaboración de la arquitectura de la base de datos de dicho proyecto.
La segunda fase consiste en elaborar un sistema Web para la administración de la información existente en el reporte de actividades. Dicho sistema está sustentado con Spring Framework lenguaje Java, herramientas de desarrollo como NetBeans, IReports, y manejador de base de datos postgresSQL.

Cada una de las antes mencionadas facilitará el proceso de creación del sistema, aplicando un modelo de desarrollo MVC (Model View Controller).
El Laboratorio Nacional de Informática Avanzada, requiere llevar el control de la productividad generada por el personal del laboratorio, y así generar un reporte que resuma las actividades realizadas. Es por esto que resulta de gran importancia la implementación de una aplicación Web permitiendo al personal de la institución la elaboración del reporte final mostrándoles los resultados de la productividad en el menor tiempo posible y con el mínimo margen de error.
JUSTIFICACIÓN
Realizar una aplicación Web para llevar el control y el seguimiento de la productividad de los investigadores de LANIA.
OBJETIVO GENERAL
1.- Identificar los usuarios que capturan los datos.
2.- Elaborar un sistema Web en capas que cubra dos secciones:
Sección de captura de datos
Generación del reporte de actividades.
OBJETIVOS ESPECÍFICOS
La participación en el proyecto es dentro de la Dirección del Centro de Servicios Tecnológicos CEST, área encargada de la consultoría para el desarrollo de software, control de calidad e infraestructura y redes. El rol asignado es el de programador-analista.
CARACTERÍSTICAS DEL ÁREA
Tomando en cuenta las normas de confidencialidad del Laboratorio Nacional de Informática Avanzada, no es posible mostrar el contenido parcial o total de la información almacenada en la base de datos así como los códigos fuente de dicha aplicación, sin embargo se presentan algunos datos a manera de documentación.
ALCANCES Y LIMITACIONES
El presente sistema deberá ser considerado como la nueva versión de los Reportes de Actividades de LANIA.

LANIA cuenta con tres direcciones CEL, CEST y CIIL, donde se medirá la productividad anual que tiene cada una según sus actividades correspondientes.

La Dirección CEL.

La Dirección CIIL.
Dentro de las limitaciones se encuentra la productividad del CEST (Centro de Servicios Tecnológicos) que se encarga de brindar servicios a clientes del laboratorio y clientes externos, almacenando toda esta productividad en un sistema ya existente y que aún no hemos abordado.

Otra limitante a considerar es el uso de FrameWorks específicos en LANIA para el desarrollo de sus aplicaciones, las cuales eran desconocidas por los residentes antes de iniciar el proceso de desarrollo.
HTML.

CSS.

PROGRAMACIÓN ORIENTADA A OBJETOS.

JSP.

JAVASCRIPT.

ARQUITECTURA Y CONTROL DEL MODELO MVC.

NETBEANS.

SPRINGFRAMEWORK.

POSTGRESQL.

TORTOISE.
MARCO TEÓRICO
ARQUITECTURA MVC.

MVC es un patrón de diseño de arquitectura de software usado principalmente en aplicaciones que manejan gran cantidad de datos y transacciones complejas donde se requiere una mejor separación de conceptos para que el desarrollo esté estructurado de una mejor manera, facilitando la programación en diferentes capas de manera paralela e independiente. MVC sugiere la separación del software en 3 estados: Modelo, Vista y Controlador.
CICLO DE VIDA DE MVC.

El ciclo de vida de MVC es normalmente representado por las 3 capas presentadas anteriormente y el cliente (también conocido como usuario). El siguiente diagrama representa el ciclo de vida de manera sencilla:
VENTAJAS Y DESVENTAJAS DE MVC.
Las principales ventajas de hacer uso del patrón MVC son:

• La separación del Modelo de la Vista, es decir, separar los datos de la representación visual de los mismos.

• Es mucho más sencillo agregar múltiples representaciones de los mismos datos o información.

• Facilita agregar nuevos tipos de datos según sea requerido por la aplicación ya que son independientes del funcionamiento de las otras capas.

• Crea independencia de funcionamiento.

• Facilita el mantenimiento en caso de errores.

• Ofrece maneras más sencillas para probar el correcto funcionamiento del sistema.

• Permite el escalamiento de la aplicación en caso de ser requerido.
Las desventajas de seguir el planteamiento de MVC son:

• La separación de conceptos en capas agrega complejidad al sistema.

• La cantidad de archivos a mantener y desarrollar se incrementa considerablemente.

• La curva de aprendizaje del patrón de diseño es más alta que usando otros modelos más sencillos.
MODELO.

Es la representación de la información que maneja la aplicación. El modelo en sí son los datos puros que puestos en contexto del sistema proveen de información al usuario o a la aplicación misma.
VISTA.

Es la representación del modelo en forma gráfica disponible para la interacción con el usuario. En el caso de una aplicación Web, la “Vista” es una página HTML con contenido dinámico sobre el cuál el usuario puede realizar operaciones.
CONTROL.

Es la capa encargada de manejar y responder las solicitudes del usuario, procesando la información necesaria y modificando el Modelo en caso de ser necesario.
PROCEDIMIENTO
FACTIBILIDAD.
FACTIBILIDAD TÉCNICA.
FACTIBILIDAD OPERATIVA.
FACTIBILIDAD ECONÓMICA.
LANIA cuenta con toda la infraestructura para llevar acabo el desarrollo de sistemas, contando con maestros y doctores dedicados a la investigación en su área de especialización; además LANIA da como uno de sus servicios, posgrados y consultoría, por lo cual obliga al laboratorio a contar con las herramientas suficientes para poder cubrir las necesidades en específico de los clientes en cuestión.
En LANIA para poder desarrollar el sistema, todos los recursos están a disponibilidad de los desarrolladores, contando con la cooperación de los asesores para ayudar en caso de que lo requiera, orientando para el mejor manejo de las herramientas, haciendo que el sistema sea viable. Ahorrando tiempo y esfuerzo.
Los costos para el desarrollo del sistema han sido mínimos ya que tanto el hardware como software, fueron proporcionados por LANIA, ya que es un proyecto de residencias profesionales, por lo que se puede decir que para la implementación y desarrollo del sistema, LANIA nos proporcionó las herramientas y materiales necesarios cumpliendo así de manera exitosa dicho proyecto.
DETERMINACIÓN DE REQUERIMIENTOS.
El reporte de actividades que se nos proporcionó y con el que se cuenta actualmente, nos facilitó la toma de los datos más importantes para poder generarlo, sin descartar los datos que no se muestran en el reporte de actividades. El resto de los requerimientos, como el diseño del sistema, se nos fue otorgado directamente de LANIA, para que se pasará a la brevedad posible a la parte de programación.
SPRINGFRAMEWORK.

Spring Framework es una plataforma Java que proporciona la infraestructura de apoyo integral para el desarrollo de aplicaciones Java. Spring se encarga de la infraestructura para que pueda centrarse en su aplicación.
El objetivo de Spring es no ser intrusito, aquellas aplicaciones configuradas para usar beans mediante, Spring no necesitan depender de interfaces o clases de Spring, pero obtienen su configuración a través de las propiedades de sus beans.
MÓDULOS.

Spring Framework se compone de funciones organizadas en alrededor de 20 módulos. Estos módulos se agrupan en contenedores básicos, acceso a datos / Integración, Web, AOP (Programación Orientada a Aspectos), Instrumentación, y prueba.
DAO. (DATA ACCESS OBJECT)
EL PATRÓN DAO SE UTILIZA PARA:

 Abstraer y encapsular los accesos a los datos.

 Gestionar las conexiones a los repositorios.

 Obtener o actualiza los datos almacenados en los repositorios.

Almacenar o consultar datos.
VENTAJAS.
Cualquier objeto no requiere conocimiento directo del destino final de la información que se manipula.

Se aíslan las conexiones a la fuente de datos en una capa fácilmente identificable y mantenimiento.

Se ocultan los detalles de implementación a la fuente de datos.

Separación de los datos (DTO) y el comportamiento (DAO).

DESVENTAJAS.
El repositorio no tiene porqué proporcionar un API común.

Las aplicaciones deben poder acceder de forma transparente a estos repositorios.

Requiere grandes volúmenes de código.

Escribir código para navegar por el modelo de objetos requiere una cierta comprensión del esquema de base de datos.
Para poder realizar dicho proyecto se necesitó de la colaboración de un asesor externo, siendo la persona Mtra. Ma. De Lourdes Hernández Rodríguez, quien nos asignó a un asesor y jefe a cargo del proyecto Beatriz Gutiérrez Almaraz quien nos proporcionó de la mejor manera toda la información para poder realizar este sistema.
Para el desarrollo e implementación del sistema se utilizaron dos computadoras las cuales cuentan con las siguientes características:

Máquina Memoria RAM Disco Duro SO Procesador

1 1.5Gb 80Gb Window 7 Pentium 4
2 1.5Gb 80Gb Window 7 Pentium 4
Debido a que el proyecto es un sistema, la única herramienta que se utiliza es equipo de cómputo, por lo tanto no se utilizó ningún material.
DISEÑO DE VENTANAS DEL SISTEMA SEGÚN SEA EL USUARIO A UTILIZAR EL SISTEMA. (22 AL 31 DE AGOSTO)
CAPACITACIÓN DEL MODELO DE DESARROLLO EN LANIA (2 DE SEPTIEMBRE 2011)
INSERCIÓN DE SECUENCIAS EN LA CAPA DE MODELO.(1 AL 2 DE SEPTIEMBRE INICIO DE LA CAPA 1 DEL PROYECTO DEL MODELO UTILIZADO “MVC”)
La labor en esta parte fue adentrarnos y familiarizarnos con el código. Lo que se realizó fue identificar en la capa del modelo, los objetos que llevan llaves generadas en secuencia, en este caso los id de cada objeto. Agregándole un código el cual genera los id de forma secuencial, gracias a la herramienta de SpringFramework. Este es un ejemplo de cómo se introducían las secuencias en el código de cada objeto que lo requería.
@Id
@Basic(optional = false)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="ALUMNOS_SEQ") @SequenceGenerator(name="ALUMNOS_SEQ", sequenceName="alumnos_id_alumno_seq", allocationSize=1)
@Column(name = "id_alumno") private Integer idAlumno;
CREACIÓN DE LA CAPA DAO “DATA ACCESS OBJECT”. (2 AL 5 DE SEPTIEMBRE DEL 2011 SE INICIÓ LA CAPA 2)
En esta capa lo que se realizó fue crear los Dao los cuales son interfaces que se comunican con el modelo para hacer consultas a la información, gracias al SpringFramework se extiende a una clase de spring y se heredan todos los métodos que tiene ya programados para acceder a la información contenida en la base de datos por medio del modelo.

También en esta capa se pueden agregar consultas personalizadas con algún resultado específico.

Este es un ejemplo de cómo se extiende la clase del spring
packagecom.lania.activitystore.dao;

importcom.lania.activitystore.model.Acervo;
importorg.springframework.data.jpa.repository.JpaRepository;

public interfaceAcervoDaoextendsJpaRepository<Acervo, Integer>{
}
CREACIÓN DE LOS SERVICIOS E IMPLEMENTACIONES.
(6 AL 12 DE SEPTIEMBRE DEL 2011).
(13 AL 20 DE SEPTIEMBRE DEL 2011).
Se realizó un análisis de donde estarían viviendo cada Dao en los servicios del sistema por lo cual se elaboró en papel la listas de servicios que existirían y nos resultaron 4 servicios. Los cuales se les agregaron la definición de los Dao correspondientes y los métodos que utilizaría cada Dao.
CREACIÓN DE LOS CONTROLADORES EN CONJUNTO DE LOS JSP
Se inició la construcción de las páginas JSP de acuerdo a los bosquejos en papel y el manejo de controladores, utilizando etiquetas de Spring dentro de los archivos JSP.

Para el desarrollo de los JSP y todo el sistema, se utilizó la herramienta de NetBeans
Algunas pantallas quedaron de la siguiente manera.
Gracias al manejo de objetos y spring, la manera de poder manejar estas formas de inserción de registros son más fáciles y con menos riegos de error de la inserción en la base de datos.
La lógica de cómo generar esa transacción es programada en la capa del servicio.
En esta vista se cargan los datos del registro seleccionado ya sea para la modificación o solo poder visualizar la información completa del registro.

Todo esto se realiza en la capa de Control, dentro del @RequestMapping que es el que nos manda la vista y el objeto cargado en ella.
El @RequestMapping son programados en el controlador de los objetos para poder mandar a mostrar las vistas, en este caso nuestro Mapping tiene como nombre formModificarInvestigador el cual recibe un entero que es el id del objeto y hace la búsqueda del objeto para poder regresarlo a la vista y así cargarlo de manera automática para ser modificado.
Todo esto va de la mano con las vistas que gracias a spring y utilizando sus etiquetas en los jsp se puede realizar con facilidad este procedimiento.

Los jsp son programados como un archivo HTML pero ocupan etiquetas especiales de spring que tienen como propiedades un atributo llamado path.
En la imagen anterior se muestra el uso de los path en las etiquetas de spring, para que el uso del path sea correcto la vista debe de recibir el objeto en su form, ya sea un objeto nuevo o un objeto a modificar. Tan solo se tiene que poner en el atributo modelAttribute en el form, el nombre del objeto que se pasará a la vista desde el controlador.
Para la captura de información en las vistas se deben de validar algunos campos obligatorios de tal forma que no tienen que llegar al controlador en blanco ya que son registros necesarios y obligatorios en la base de datos.

Para este caso se utilizó una clase de validación (hecha con JQUERY) que nuestro asesor nos proporcionó y se utilizaba de la siguiente manera.
Básicamente todo el sistema se basa en estas funcionalidades, solo se mostraron algunas como ejemplo de la realización de las vistas con sus controladores. Se cuenta con un total de 60 vistas aproximadas en el sistema. Las cuales varían por el uso de JavaScript en algunas funcionalidades de mostrar información pero todas realizan las operaciones de la misma forma en su totalidad.
Todo el proyecto se realizó mediante el uso de repositorios con la herramienta Tortoise que es un administrador de repositorios para que el sistema siempre estuviera disponible para cualquier desarrollador involucrado en él y así se lograra un trabajo en paralelo en grupo.
CONCLUSIONES.
Los conocimientos adquiridos por las aplicaciones de variantes del lenguaje de programación Java nos dieron una amplia vista con respecto a todos los aspectos en donde se puede trabajar con herramientas auxiliares a Java, haciendo que la construcción de un sistema con aplicación WEB, fuera cómodamente aplicable y razonable con las operaciones que se quisieran trabajar, y así de manera conjunta construir un sistema capaz de poder trabajar montado sobre un servidor WEB.

Gracias al trabajo constante del equipo de desarrolladores, se pudo ampliar los conocimientos con respecto a las capacidades de construcción de un sistema de lenguaje de programación, dedicados a ser enfocados en varios ámbitos de aplicaciones que muchas veces se desconoce.

El uso de FrameWorks es una opción de desarrollo de software más eficiente y económica que una herramienta de licencia.

Capacidad para el manejo correcto de una programación orientada objetos distinguiendo claramente entre cada una de sus características.

Adquisición de conocimiento de nueva arquitectura de desarrollo de software y el lenguaje java para plataformas Web.
RECOMENDACIONES.
Se recomienda seguir con la construcción del sistema ya que será de gran ayuda para la productividad de LANIA, y así se podrá agilizar la captura e impresión del formato anual que se tiene que entregar como reporte de actividades del laboratorio.

Cabe destacar que el sistema cuenta con código, que aparentemente es fácil, pero debemos aclarar que si no se tiene el conocimiento suficiente para poder hacerle cambios previos, leer un poco acerca de la estructura y como se trabaja bajo el modelo MVC, y así podrán entender cómo es que se relacionan cada una de las capas que se construyeron en la programación.
RESULTADOS
En el proceso de las residencias, personalmente obtuve los resultados siguientes.

El manejo de la programación orientada objetos basándonos en un modelo de arquitectura MVC el cual aporta una manera de desarrollo de software muy práctico y entendible. Ya que su forma de desarrollo es ordenada y en capas la cual hace de la arquitectura su cualidad más importante.
En el desarrollo del sistema, se utilizó en su totalidad la reutilización de código como lo que es la reutilización de las vista de capturas en la mayoría de los forms y salir de esa praxis que reutilizar código es copiar y pegar.
Una de las cosas que hizo interesante desarrollar este sistema fue el manejo del desarrollo por medio de los repositorios y programando en paralelo los dos residentes y nuestro asesor. Logrando así tener una mejor comunicación de todo lo relacionado al sistema, de una manera rápida y eficiente, evitando tener replicas erróneas del sistema y no saber cuál es la versión correcta.
Un gran resultado obtenido fue el conocer nuevas herramientas de desarrollo que no había utilizado totalmente e incluso unas nuevas. Como lo que son el uso del NetBeans, Spring, PostgreSQL, Tortoise.
Spring viene siendo una de las partes fundamentales de este desarrollo ya que el es el que nos da la arquitectura para el desarrollo del sistema.
Como resultado final me queda señalar que gracias al desarrollo de este sistema me di cuenta que existen diferentes maneras de trabajar y esta es una de las que más me han gustado.
PANTALLAS DEL SISTEMA
Full transcript