16
Ris2K Ingeniería del Software II Click to edit city and date

Ris2K Ingeniería del Software II Click to edit city and date

Embed Size (px)

Citation preview

Page 1: Ris2K Ingeniería del Software II Click to edit city and date

Ris2K

Ingeniería del Software II

Click to edit city and date

Page 2: 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

Page 3: Ris2K Ingeniería del Software II Click to edit city and date

3

Presentación RIS2K

• Versión del conocido juego de mesa, adaptada para su juego a través de la Web.

Page 4: Ris2K Ingeniería del Software II Click to edit city and date

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

Page 5: Ris2K Ingeniería del Software II Click to edit city and date

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

Page 6: Ris2K Ingeniería del Software II Click to edit city and date

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

Page 7: Ris2K Ingeniería del Software II Click to edit city and date

7

Desarrollo de la aplicación: Tecnologías

• Java (Entorno NetBeans)

• JavaScript

• JSP

• XML - SVG

• AJAX: JMaki, Mochikit, DWR

• JUnit

• Selenium

• Subversion

• MySQL

• Log4J

Page 8: Ris2K Ingeniería del Software II Click to edit city and date

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

Page 9: Ris2K Ingeniería del Software II Click to edit city and date

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

Page 10: Ris2K Ingeniería del Software II Click to edit city and date

10

Detalles más significativos del desarrollo:Pruebas

• Pruebas Unitarias

– JUnit

– Empleo de las excepciones particularizadas

• Pruebas Funcionales

– Manuales

– Automáticas: Selenium

Page 11: Ris2K Ingeniería del Software II Click to edit city and date

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; }

Page 12: Ris2K Ingeniería del Software II Click to edit city and date

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 "); }

Page 13: Ris2K Ingeniería del Software II Click to edit city and date

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

Page 14: Ris2K Ingeniería del Software II Click to edit city and date

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

Page 15: Ris2K Ingeniería del Software II Click to edit city and date

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

Page 16: Ris2K Ingeniería del Software II Click to edit city and date

16

Demostraciones

• Demostración del Log

• Demostración general del programa

• Demostración del tablero

• Demostración del automatismo de pruebas