Oskar GRUPO Jon Ander Alex Lander Jorge Jose Luis Diego
INDICE 1- Introducción 2- Desarrollo técnico 3- Gestión del proyecto 4- Conclusiones 5- Demostración
Introducción - presentación Miembros: Jose Luis Outón (Coordinador) Jon Ander Zapirain (Secretario) Oskar Yanguas Jorge Martín Diego Lizarbe Lander Nava Alex Diaz
Desarrollo técnico 2.1- Captura de requisitos 2.2- Análisis 2.3- Arquitectura del sistema 2.4- Diseño 2.5- Implementación 2.6- Pruebas 2.7- Plan de implantación
2.1- Captura de requisitos Casos de uso del administrador:
2.1- Captura de requisitos Identificar usuario: Permite a un usuario identificarse frente al sistema Multiplan. El Usuario introduce su identificador y contraseña. Gestionar Tipo Excursión: Permite gestionar los Tipos de Excursión del Sistema Multiplan: bien para crear uno nuevo, bien para copiar uno existente como para eliminarlo. Crear y Copiar Tipo de Excursión: Permite generar tipos de excursión NUEVOS y sus excursiones asociadas. Gestionar Excursiones: Permite consultar y anular excursiones del Tipo de Excursión seleccionado. Planificar Excursiones: Permite anular las excursiones programadas para ese día.
2.2- Análisis Caso de uso PLANIFICAR EXCURSIONES Diagrama de secuencia:
2.3- Arquitectura del sistema y elección tecnológica Interfaz de usuario: JSP = JAVA + HTML. Utilización de formularios HTML para enviar y procesar información. Método GET: Enviar y recibir la información de los formularios. Capa de negocio: JAVA, ésta se encarga de hacer de intermediaria entre la interfaz de usuario y la capa de acceso a la base de datos. Se tratan los datos obtenidos de la BD.
2.3- Arquitectura del sistema Capa de base de datos: MySQL Utilizando JDBC en JAVA para comunicarnos con la capa de gestión de datos. Obtener/modificar la información de la base de datos Se utilizan procedimientos almacenados.
2.4 - Diseño Caso de uso PLANIFICAR EXCURSIONES ExcursionesHoy():listaInformacionExcursion
2.5 – Implementación public boolean conectar(){ boolean resultado=true; try { //Cargamos el puente JDBC => Mysql System.out.println("Intentando cargar el conector..."); Class.forName("com.mysql.jdbc.Driver"); //Intentamos conectarnos a la base de Datos en este caso una base llamada temp System.out.println("Conectando a la base..."); //con = DriverManager.getConnection("jdbc:mysql://10.227.131.23/multiplan", "diego", "diego"); con = DriverManager.getConnection(direccion, usuario, contrasena); con.setAutoCommit(false); System.out.println("Conexion a BD establecida"); System.out.println(); } catch (ClassNotFoundException e) { e.printStackTrace(); }catch (SQLException e){ resultado=false; }finally{ return resultado; }
2.5 – Implementación Llamada a una transacción y uso del ResulSet: public String validarPass(String u) throws SQLException{ String resultado=null; String sql="{CALL getPass(?)}"; CallableStatement s= con.prepareCall(sql); s.setString(1, u); ResultSet r=s.executeQuery(); if(r.next()){ resultado=r.getString("usuario.pass"); } r.close(); s.close(); return resultado;
2.5 – Implementación Implementación de una transacción: public void confirmar(Vector<Integer> ids) { GestorBD g=GestorBD.obtenerGestoBD(); g.conectar(); try { g.confirmarhoy(ids); g.commit(); } catch (SQLException e) g.rollback(); e.printStackTrace(); finally g.desconectar(); System.out.print("desconectado");
2.6 – Plan de Implantación -HARDWARE: -SOFTWARE: SERVIDOR: Es necesario como mínimo un servidor que soportará el Servidor de Base de datos así como el servidor Web. También pueden ir por separado. CLIENTES: Las necesidades Hardware del servicio para cliente son muy bajas. CONEXIÓN: La carga de tráfico que genera el sistema es relativamente baja por lo que con una conexión a Internet estándar seria más que suficiente para utilizar la aplicación de una forma ágil. -SOFTWARE: SERVIDOR: 1. S.O: Linux o Windows. Cualquiera de estos 2 sistemas operativos tiene versiones gratuitas de los programas recomendados. 2. Servidor Web: Apache, servidor Web con licencia GPL, multiplataforma y que se ha convertido en el principal servidor utilizado. 3. Servidor Base Datos: Nuestra elección tecnológica ha sido MySQL por las mismas razones que el servidor Web, seguridad, agilidad y multiplataforma. CLIENTE: La elección de este software corresponderá al cliente.
3-Gestión del Proyecto 3.1 - Método de Trabajo 3.2 - Incidencias relevantes 3.3 - Horas planificadas vs. horas reales; desglose por iteraciones.
3.1- Método de trabajo Para gestionar el proyecto hemos ido realizando reuniones (normalmente una por semana), para “discutir” aspectos del mismo. En estas reuniones la forma de llegar a un acuerdo ha sido por consenso de todos los miembros del grupo. Cada miembro del grupo realiza una parte de la tarea que haya que hacer en ese momento y después se pondrá en común en una reunión de grupo. En la segunda iteración hemos divido el grupo en 2 subgrupos excepto en la ultima entrega que cada miembro del grupo se ha encargado de hacer un caso de uso completo.
3.2 - Incidencias relevantes En principio el grupo estaba formado por 6 miembros pero tras la realización del DOP se incorporó un miembro mas por causas ajenas a nuestra voluntad. Otro problema ha sido conseguir reunirnos todos un mismo día y a una hora determinada, ya que cada uno es de un lugar diferente (Pamplona, Beasain, Zumarraga …). Intentamos solucionar este problema mediante Internet, con el uso de una cuenta de gmail y un blog. A la hora de juntar los trabajos de cada uno ha habido más conflictos de los esperados. Lo que esperábamos que fuese cosa de una hora escasa a veces a supuesto muchas horas de estrés y trabajo continuo. CONSEJO: más organización y comprensión del problema.
3.3-Horas planificadas VS horas reales
3.3-Procesos Tácticos y Operativos
3.3-Esfuerzo total por persona
4 – Conclusiones Puntos que consideramos mejorables: • Añadir la opción de visualizar la página en varios idiomas. Consideramos que es una opción útil en un producto real. Por ejemplo, además de en castellano, en Inglés, Catalán y Vasco. • Mayor seguridad con la base de datos y las contraseñas. • Aspecto: por ser nuestra primera aplicación de este estilo, no tenemos mucha experiencia, y ahora, tras terminarla, creemos que podríamos mejorarlo para una mejor visualización de la aplicación. La forma de presentarlo podría mejorarse para que al cliente le resultase más vistoso. Otros aspectos: • Uso de herramientas de libre distribución: con ellas podríamos conseguir un producto más abierto y de gran calidad. • Creemos que hemos tenido que desarrollar partes de la práctica sin tener referencias al respecto, lo que ha dificultado en gran medida poder realizarlas.
4 – Conclusiones Consideramos que la carga de horas de la aplicación ha sido excesiva, ya que la realización de este proyecto ha hecho que dediquemos menos horas a otras asignaturas. También habría que decir que ha sido de las pocas asignaturas que realmente nos van a ayudar en nuestro futuro laboral. Estamos muy orgullosos del resultado de nuestro esfuerzo, reflejado en la siguiente demostración.