Está en la página 1de 26

Conceptos fundamentales de Java

3-4
Desarrollar y probar una aplicación

Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados.
Objetivos
En esta lección se abordan los siguientes objetivos:
• Demostrar las estrategias de prueba del programa
• Reconocer las fases para el desarrollo de una aplicación
de software

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 3
Desarrollar y probar una aplicación

3
Programar estrategias de prueba
• Un programador prueba un programa muchas veces
durante el transcurso de su desarrollo, a fin de
garantizar su correcto funcionamiento.
• Programar estrategias de prueba:
– Realice pruebas con frecuencia después de cada método, o una
secuencia de métodos.
– Si aparecen errores, corríjalos.
– Ejecute el programa para observar cómo los métodos hacen
que se muevan los objetos.
– Continúe agregando métodos y realice los ajustes necesarios.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 4
Desarrollar y probar una aplicación

Las pruebas son un aspecto importante en el desarrollo de software. Debe probar constantemente el
programa mientras escribe el código fuente, realiza la compilación y la ejecución. Contar con una estrategia
de prueba clara puede aumentar significativamente la calidad del software.

Probará personalmente algunos aspectos del código, pero otros aspectos serán probados por terceros.
Contar con otros usuarios, especialmente aquellos a los que está destinado el software, y probar el
programa lo ayudarán a evitar errores y a aumentar la funcionalidad de su software.

4
Compilación y depuración
• Todos los caracteres en el código fuente son
importantes.
• Si falta algún carácter o es incorrecto, el programa
puede fallar.
• En Greenfoot, la compilación resalta los errores de
sintaxis e indica los pasos necesarios para corregirlos.
• Esto permite desarrollar técnicas de programación
correctas.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 5
Desarrollar y probar una aplicación

Recuerde que compilar software de forma correcta no significa que esté libre de errores. Solo significa que
la sintaxis es correcta.

5
Pasos para depurar el programa
• Si no hay ningún error, aparece el mensaje "Class
compiled – no syntax errors".

• Si hay errores, se resalta la sintaxis incorrecta y un


mensaje intenta explicar el error.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 6
Desarrollar y probar una aplicación

6
Claves para reconocer errores de sintaxis
Java
1 Localice el principio y el final de un método.

2 Asegúrese de que aparecen las llaves de apertura { y cierre }.


Asegúrese de que aparecen todos los paréntesis abiertos ( y
3
cerrados ).
Asegúrese de que todas las líneas de código finalizan con un punto
4
y coma.
Asegúrese de que la ortografía y el uso de mayúsculas y minúsculas
5
en los nombres es correcto.
Revise todas las notaciones de puntos (por ejemplo,
6
System.out.println).
Asegúrese de que los caracteres de grafía similar son correctos
7
(número 1 y letra i).

8 Asegúrese de que todas comillas son dobles " no simples '.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 7
Desarrollar y probar una aplicación

Un sangrado de código correcto mejorará significativamente la legibilidad del código. Esto permite localizar
errores como los mencionados anteriormente de una forma mucho más sencilla y en menos tiempo.

7
Diseño automático
• Auto-Layout es una función muy útil en el editor de
código de Greenfoot.
• Comprobará que esta función estructura
automáticamente el código y es una magnífica
herramienta que permite encontrar los paréntesis y
corchetes que faltan.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 8
Desarrollar y probar una aplicación

El diseño automático realizará un sangrado del código entre corchetes. Esto demuestra las técnicas de
diseño óptimas para que el código sea más legible. Para Greenfoot no supone ningún problema que se
escriba todo el código en una línea, pero intentar buscar errores en el código se convierte en una tarea
muy difícil. Asimismo, el hecho de intentar leer cómo funciona el código se convierte en una tarea muy
tediosa.

8
Fases para desarrollar una aplicación
• Analizar el problema a resolver o la tarea a realizar.
• Diseñar la solución, que es habitualmente un juego en
Greenfoot.
• Desarrollar el juego en Greenfoot.
• Probar el juego para garantizar que funciona y que
cumple los requisitos de su análisis y diseño.
• El desarrollo de un juego en Greenfoot sigue los mismos
pasos que el desarrollo de una aplicación de software.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 9
Desarrollar y probar una aplicación

La planificación del juego antes iniciar la codificación le ahorrará mucho tiempo. Algunos juegos sencillos
requerirán muy poca planificación, pero a medida que aumenta la complejidad del juego también aumenta
la necesidad de utilizar técnicas de planificación adecuadas.

9
Fase de análisis
• En la fase de análisis, determine el problema que
resolverá el juego o la tarea que realizará utilizando un
análisis orientado al objeto.

En el análisis orientado a objetos, los programadores de Java


analizan un problema y, a continuación, crean objetos para
generar un sistema, o más concretamente, para resolver el
problema.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 10
Desarrollar y probar una aplicación

La identificación de los objetos necesarios en el software lo ayudará a determinar el número de subclases


necesarias en la clase Actor. Aunque normalmente tendremos un nivel de clases en Actor, en programas de
mayor envergadura podemos tener varios niveles con Actor -> subclase -> subclase, donde las clases
comparten campos y métodos comunes.

10
Tareas de la fase de análisis
• Identificar un problema para resolverlo.
• Escribir una breve sentencia del ámbito que indique el
tipo
de solución (juego) que resolverá el problema.
• Reunir los requisitos de los destinatarios.
• Se trata de las personas que con mayor probabilidad
jugarán al juego.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 11
Desarrollar y probar una aplicación

La recopilación de la información necesaria lo ayudará a planear mejor una solución.

11
Tareas de la fase de análisis
• Identificar y describir objetos en el juego.
– Objetos físicos (automóvil, persona, árbol).
– Objetos conceptuales ( "no físicos"), el temporizador que
cuenta el tiempo restante del juego.
– Atributos de todos los objetos, tales como el color, el tamaño,
el nombre y la forma.
– Operaciones que realizan los objetos (mover, girar, comer otros
objetos).

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 12
Desarrollar y probar una aplicación

La recopilación de la información necesaria lo ayudará a planear mejor una solución.

12
Ejemplo de análisis
Elemento de
Descripción
análisis
Dominio de Deseo crear un juego para enseñar a los alumnos a
problemas controlar una abeja con las teclas del cursor.
Requisitos del Debe resultar sencillo para los niños de todas las edades.
jugador Es necesario que el jugador disponga de un teclado.
1 objeto Abeja que capturará moscas.
Varios objetos Mosca.
Objetos
1 objeto Araña que capturará las moscas y la abeja.
1 mundo con un fondo de color claro.
Abeja: Mover, girar y capturar moscas.
Mosca: Mover aleatoriamente por la pantalla.
Operaciones de
Recuento de ciclo de vida: Realice un recuento regresivo
objetos
de 3 a 1 cada vez que una araña capture a la abeja.
Antecedentes: No hacer nada.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 13
Desarrollar y probar una aplicación

La definición de las acciones de un objeto le proporcionará la base de los métodos y campos necesarios en
sus subclases.

13
Condiciones previas y posteriores del análisis
• Capture información para permitir la prueba de:

Elemento a probar Ejemplo


Condiciones previas y posteriores Valores inicializados de la variable frente a
del juego. valores tras la ejecución del programa.
Tiempos de ejecución anticipados y Los ratios de ejecución pueden variar en
ratio de ejecución de comparación función de la varianza de tamaño de la
según un juego de condiciones. memoria de la computadora.

Resultados esperados en materia Un contador de bucles de tres producirá


de ejecución de la sentencia. tres nuevas variables.

Representaciones numéricas y
Valor máximo de un entero.
limitaciones.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 14
Desarrollar y probar una aplicación

Las pruebas pueden planificarse antes de que se haya iniciado cualquier codificación. Tiene la ventaja de
hacer que los programadores piensen en los elementos que se van a probar mientras comienzan a codificar
una solución.

14
Fase de diseño
• La solución que diseñe tendrá el formato de un juego de
Greenfoot que pueden jugar los destinatarios.
• Diseñe el juego en un storyboard textual que planee los
algoritmos o métodos que los objetos realizarán en
respuesta a los comandos del teclado o a los clics del
mouse.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 15
Desarrollar y probar una aplicación

Un diseño óptimo le permite pensar en el modo en el que actuarán e interactuarán todos los objetos.
Resulta sencillo al escribir código que no siga un diseño para quedar atrapado solo con el problema actual y
no con la imagen más grande. Puede dar lugar a soluciones codificadas de forma deficiente.

15
Ejemplo de storyboard textual
• Este storyboard textual en la siguiente diapositiva
describe un juego sencillo en el que se controla una
abeja para poner a prueba y capturar moscas mientras
esquiva a una araña.
• La araña también capturará moscas.
• Obtendrá puntos por cada mosca capturada y perderá
una vida cada vez que la araña capture a la abeja.
• El juego termina cuando se agotan las vidas.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 16
Desarrollar y probar una aplicación

16
Ejemplo de storyboard textual
• Al hacer clic en el botón Run, la abeja avanzará de
forma continua.
• El jugador utiliza las teclas de flecha en el teclado para
controlar los movimientos a izquierda y derecha de la
abeja.
• Cuando la abeja está en el mismo cuadro que una
mosca que se mueve de forma aleatoria, se captura y se
elimina del juego y se agrega otra mosca.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 17
Desarrollar y probar una aplicación

El storyboard textual se completa cuando se entrega a cualquier programador y otros usuarios obtendrían
resultados muy similares. Si todos ellos crearon soluciones completamente diferentes, significa que el
storyboard era el que estaba incompleto.

Para probar el storyboard, puede entregárselo a tres personas y hacer que estas le expliquen el
funcionamiento del juego. Si existen grandes diferencias en sus explicaciones, el storyboard requiere
información adicional.

17
Ejemplo de storyboard textual
• Una araña se moverá de forma aleatoria por la pantalla.
• Si la araña captura a una abeja, el usuario pierde una
vida.
• Si captura a una mosca, se elimina del juego.
• El juego termina cuando al usuario no le quedan vidas.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 18
Desarrollar y probar una aplicación

El storyboard textual se completa cuando se entrega a cualquier programador y otros usuarios obtendrían
resultados muy similares. Si todos ellos crearon soluciones completamente diferentes, significa que el
storyboard era el que estaba incompleto.

Para probar el storyboard, puede entregárselo a tres personas y hacer que estas le expliquen el
funcionamiento del juego. Si existen grandes diferencias en sus explicaciones, el storyboard requiere
información adicional.

18
Fase de desarrollo
• Tras finalizar el storyboard, desarrolle el juego en
Greenfoot.
• Consulte el storyboard para determinar los métodos
que necesita programar.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 19
Desarrollar y probar una aplicación

En esta diapositiva, no hemos escrito ningún código. Solo hemos creado las clases necesarias y agregado
instancias de estas clases a nuestro escenario para hacernos una idea del aspecto que va a tener el
programa.

19
Fase de pruebas
• Tras escribir una sección de código, compílela y, a
continuación, pruébela haciendo clic en el botón Run en
el entorno.
• Observe el juego y, a continuación, revise el código
según sea necesario.
• Para fines de control de calidad:
– Haga que otras personas prueben el juego y den su opinen.
– Busque personas con características similares a las de los
destinatarios del juego.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 20
Desarrollar y probar una aplicación

Probar el programa en pequeñas etapas le permite identificar errores de forma más fácil, ya que puede
hacerse una mejor idea del punto en el que probablemente residen. Si ha escrito el programa completo
antes de probarlo, le resultará mucho más laborioso detectar el punto en el que se pueden producir estos
errores.

20
Fase de pruebas
• Escriba planes de prueba que permitan:
– Examinar las condiciones previas y posteriores.
– Comparar los ratios de tiempo de ejecución y los recuentos de
ejecuciones.
– Probar de forma exhaustiva las limitaciones y representaciones
numéricas.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 21
Desarrollar y probar una aplicación

Probar el programa en pequeñas etapas le permite identificar errores de forma más fácil, ya que puede
hacerse una mejor idea del punto en el que probablemente residen. Si ha escrito el programa completo
antes de probarlo, le resultará mucho más laborioso detectar el punto en el que se pueden producir estos
errores.

21
Probar límites y representaciones numéricas
Ejemplo 1
• Por ejemplo, una solución de banca requiere que se
realice el redondeo numérico de forma precisa.
– Este programa podría producir resultados incorrectos si no se
ha definido el redondeo de una cifra a dos dígitos tras una
coma decimal.
– La suma de un 1/2 de céntimo multiplicado por un millón de
clientes podría producir un error de programación costoso.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 22
Desarrollar y probar una aplicación

22
Probar límites y representaciones numéricas
Ejemplo 2
• Por ejemplo, una construcción IF en un programa
espera un valor positivo de 5 a 9 para, a continuación,
sumar ese valor a otra variable.
– El programa alimenta de forma incorrecta un valor de 2 a la
variable.
– Esto hace que la construcción IF falle y que la variable que
espera un cambio condicional no obtenga la cantidad
esperada, de modo que la operación de la estructura de datos
será diferente.
– Este es un ejemplo del punto en el que el programa ejecutará
el resultado de la construcción condicional, incluso si no es el
correcto.

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 23
Desarrollar y probar una aplicación

23
Terminología
Términos clave que se han utilizado en esta lección:
• Bugs
• Documentación

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 24
Desarrollar y probar una aplicación

24
Resumen
En esta lección, debe haber aprendido a:
• Demostrar las estrategias de prueba del programa
• Reconocer las fases para el desarrollo de una aplicación
de software

JF 3-4 Copyright © 2019, Oracle e/ou suas empresas afiliadas. Todos os direitos reservados. 25
Desarrollar y probar una aplicación

25

También podría gustarte