Upload
pedro-ramos-sanchez
View
214
Download
0
Embed Size (px)
Citation preview
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"); jugador.setEmail("[email protected]");
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