Ris2K Ingeniería del Software II Click to edit city and date
2 Presentación Grupo Marta Gallego Vázquez Carlos “Betisman” Jiménez Ramón Ramos Quintáns Mariano Sánchez Fernández Juan Antonio “El amigo” Weil
3 Presentación RIS2K Versión del conocido juego de mesa, adaptada para su juego a través de la Web.
4 Contenidos de la presentación Desarrollo de la aplicación –Metodología –Tecnologías Detalles más significativos del desarrollo: –Planificación –Tratamiento de excepciones particularizado –Pruebas –Recodificación –Sistema de Log Demostración –Demostración del Log –Demostración de la planificación –Demostración general del programa –Demostración del tablero –Demostración del automatismo de pruebas
5 Desarrollo de la aplicación: Metodología Metodología ágil XP Prácticas más destacadas: –Metáfora bien definida –Planificaciones con plazos muy cortos –Código colectivo en repositorio común –Integración continua –Programación en parejas –Recodificación –Diseño orientado por pruebas
6 Desarrollo de la aplicación: Metodología Otras prácticas empleadas (en la medida de lo posible): –Entregas pequeñas –Diseño simple –Cliente in situ –Estándares de codificación Prácticas no empleadas –Semana de 40 horas
7 Desarrollo de la aplicación: Tecnologías Java (Entorno NetBeans) JavaScript JSP XML - SVG AJAX: JMaki, Mochikit, DWR JUnit Selenium Subversion MySQL Log4J
8 Detalles más significativos del desarrollo: Planificación Semana a semana. Actualizaciones y correcciones continuas Compartida en repositorio. Ejemplo: primera planificación del grupo Vinculo a la planificación
9 Detalles más significativos del desarrollo: Tratamiento de excepciones particularizado ris2kException –Extensión de la clase ‘exception’ –Característica: mensajes particularizados Muy útil para: –Controlar mejor la depuración de errores –Mensajes al usuario controlados Se agrupan las pantallas de error en una sola
10 Detalles más significativos del desarrollo: Pruebas Pruebas Unitarias –JUnit –Empleo de las excepciones particularizadas Pruebas Funcionales –Manuales –Automáticas: Selenium
11 Detalles más significativos del desarrollo: Pruebas public void testPersistirJugadorValido() { Jugador jugador = new Jugador(); GregorianCalendar now = new GregorianCalendar(); String prueba = String.valueOf(now.getTimeInMillis()); jugador.setUser("prueba"+prueba); jugador.setPassword("prueba"); try { boolean expResult = true; boolean result = MysqlJugador.persistirJugador(jugador); assertEquals(expResult, result); } catch (Exception ex) { String mensaje = ex.getMessage(); fail("Se ha detectado una excepción: "+ mensaje +""); } return; }
12 Detalles más significativos del desarrollo: Pruebas public void testPersistirJugadorNulo() throws Exception{ Jugador jugador = new Jugador(); try { MysqlJugador.persistirJugador(jugador); } catch (ris2kException ex) { String expResult = "Se introdujeron valores nulos"; String result = ex.getMessage(); assertEquals(expResult, result); return; } fail("Se esperaba la excepción: Se introdujeron valores nulos "); }
13 Detalles más significativos del desarrollo: Pruebas Consecuencias de las pruebas: –Garantía de funcionamiento de las clases –Se dirige el diseño de las clases y sus métodos –Reducción muy significativa de uso del depurador –Entorno seguro para recodificar
14 Desarrollo de la aplicación: Recodificación Gracias a las pruebas, se realiza con seguridad Se reduce tamaño del código en las clases en que se ha aplicado Se realiza un código de mayor calidad Se eliminan pantallas innecesarias –Empleo de la excepción ris2k para agrupar todas las pantallas en una sola
15 Desarrollo de la aplicación: Log Se pueden definir los tipos de avisos que queremos obtener durante la implantación y el desarrollo de la aplicación Al igual que las pruebas, reduce el uso del depurador
16 Demostraciones Demostración del Log Demostración general del programa Demostración del tablero Demostración del automatismo de pruebas