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

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

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

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