Tema Evaluación / Pruebas del Software

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Tema Evaluación / Pruebas del Software"

Transcripción

1 1 DISEÑO DE SISTEMAS DE INFORMACIÓN Tema Evaluación / Pruebas del Software

2 2 Tema 3. Evaluación / Pruebas del Software

3 3 Índice Introducción Objetivos y principios de las pruebas Diseño de casos de prueba del software Cuál debe ser el conjunto de casos de prueba que tenga la mayor probabilidad de descubrir defectos en el software? Estudio de técnicas de diseño de casos de prueba: caja negra y caja blanca Las pruebas en el proceso unificado de desarrollo de software Cómo integrar las técnicas de diseño de casos de prueba en una serie de pasos bien planificados que obtienen una construcción correcta del software?

4 Introducción. Objetivos de una prueba 4 La prueba es un proceso de ejecución con la intención de descubrir errores. Un buen caso de prueba es aquel que tiene una probabilidad muy alta de descubrir un nuevo error. Un caso de prueba no debe ser redundante. Debe ser el mejor de un conjunto de pruebas de propósito similar. No debe ser ni muy sencillo ni excesivamente complejo: es mejor realizar cada prueba de forma separada si se quiere probar diferentes casos. Una prueba tiene éxito si descubre un nuevo error Lo que no hace una prueba Una prueba no asegura la ausencia de defectos, sólo puede demostrar que existen errores en el software.

5 5 Introducción. Principios de las pruebas Se debe hacer un seguimiento hasta ver si se cumplen los requisitos del cliente. Las pruebas deberán planificarse mucho antes de que empiecen. El principio de Pareto es aplicable a la prueba del software. El 80% de los errores está en el 20% de los módulos. Hay que identificar esos módulos y probarlos muy bien Empezar por lo pequeño y progresar hacia lo grande. No son posibles las pruebas exhaustivas. Son más eficientes las pruebas dirigidas por un equipo independiente.

6 Caso de prueba 6 Es un conjunto de entradas de prueba, condiciones de ejecución y resultados esperados Tiene un objetivo concreto (probar algo) Ejemplo: CASO de PRUEBA CP1 para CASO de USO Entrada Sistema ENTRADA: usuario hacker password kaixo CONDICIONES DE EJECUCIÓN: no existe en la tabla CUENTA(usuario,pass,intentos) la tupla < hacker, kaixo,x> pero sí una tupla < hacker, hola,x> RESULTADO ESPERADO: no deja entrar y cambia la tupla a < hacker, hola,x+1> Objetivo del caso de prueba: comprobar que no deja entrar a un usuario existente con un password equivocado.

7 Procedimiento de prueba 7 Pasos que hay que llevar a cabo para probar uno (o varios) casos de prueba: cómo probar el caso de prueba y verificar si ha tenido éxito? Ejemplo: Procedimiento de prueba para CP1 - Ejecutar la clase Presentacion - Comprobar que en la BD passwords.mdb existe la tupla < hacker, hola,x> - Escribir hacker en la interfaz gráfica (en el campo de texto etiquetado Escribe nombre usuario - Escribir kaixo en la interfaz gráfica (en el campo de texto Escribe password ) - Pulsar botón Acceder al sistema - Comprobar que no deja entrar al sistema y que en la BD la tupla ha cambiado a < hacker, hola,x+1>

8 Componente de prueba 8 Programa que automatiza la ejecución de uno (o varios) casos de prueba Una vez escrito, se puede probar muchas veces (cada vez que haya un cambio en el código de una clase que pueda afectarle) public class ComponentePruebaEntrSistema { InterfaceLogicaNegocio ln; InterfaceOperacionesParaPruebas lp; public static void main(string[] args) { lp.aniadirusuario( hacker, hola,3); // Crea usuario con pass y numint. boolean b = ln.hacerlogin( hacker, kaixo ); if (b) System.out.println( Error CP1: Permite entrada ); else { int j = lp.comprobarusuario( hacker, hola ); // Dev. Nº intentos if (j!=4) System.out.println( Error CP1: No incr. ); else System.out.println( CP1 correcto );} // Fin caso prueba CP1 NOTA: se necesitarán otros métodos como comprobarusuario,aniadirusuario que pueden pertenecer a la lógica del negocio o no (en este caso se considera que no)

9 Cómo escribir componentes de prueba? 9 Se puede escribir ad hoc Por cada caso de prueba, se escribe el código correspondiente en el componente (cambiaría el código) Se escribe el código del componente de tal manera que recorra en una BD los casos de prueba y los ejecute. Cada vez que se añada un caso de prueba, simplemente se añade en la BD, pero el código del componente no cambiaría Se pueden usar entornos de trabajo disponibles para pruebas Ejemplo: JUnit para Java

10 Diseño de casos de prueba. 10 Definir los casos de prueba que tengan la mayor probabilidad de encontrar el mayor número de errores con la mínima cantidad de esfuerzo y tiempo. Pruebas de caja blanca Encontrar casos de prueba viendo el código interno Pruebas de caja negra Encontrar casos de prueba viendo los requisitos funcionales

11 Pruebas de Caja Blanca: viendo el código interno Aseguran que la operación interna del programa se ajusta a las especificaciones y que todos los componentes internos se han probado adecuadamente. 11 Usa la estructura de control para obtener los casos de prueba. Intentan garantizar que todos los caminos de ejecución del programa quedan probados. Pruebas de estructura de control: Del camino básico: Diseñar un caso de prueba por cada camino indpte De condición: Diseñar casos de prueba para que todas las condiciones del programa se evalúen a cierto/falso De bucles: Diseñar casos de prueba para que se intente ejecutar un bucle 0,1,,n-1,n y n+1 veces (siendo n el número máximo)

12 Ejemplo: EsPrimo 12 El método Esprimo.esPrimo puede ser llamado con un array de Strings

13 Ejemplo: casos de prueba de caja blanca para EsPrimo 13 ENTRADA OBJETIVO A PROBAR -Probar todos los caminos -Probar todas las condiciones -Probar bucles

14 Ejemplo: Componente de prueba para EsPrimo 14 public class ComponentePruebaEsPrimo { public static void main(string[] args) { String[] s1 = new String[0]; try {boolean b1 = Esprimo.esPrimo(s1); System.out.println( CP1 incorrecto );} catch (ErrorFaltaParametro e) {System.out.println( CP1 correcto );} catch (Exception e) {System.out.println( CP1 incorrecto );} String[] s2 = new String[2]; s2[0]= xx ; s2[1]= yy ; try {boolean b1 = Esprimo.esPrimo(s2); System.out.println( CP2 incorrecto );} catch (ErrorSolo1Parametro e) {System.out.println( CP2 correcto );} catch (Exception e) {System.out.println( CP2 incorrecto );}...}

15 Ejemplo: Componente de prueba para EsPrimo (usando JUnit) 15 java junit.swingui.testrunner PruebasConJUnit.ComponentePruebaEsPrimo package PruebasConJUnit; public class ComponentePruebaEsPrimo { // Un método por cada caso de prueba public void testprimosinpars() { num = new String[0]; try {result= Esprimo.esPrimo(num); asserttrue(false);} catch (Exception e) {asserttrue(e instanceof ErrorFaltaParametro);} } // RESTO DE CASOS DE PRUEBA... }

16 Pruebas de Caja Negra 16 Se centra en los requisitos funcionales del software. Permite obtener un conjunto de condiciones de entrada que ejerciten completamente los requisitos funcionales del programa. No es una alternativa a la prueba de caja blanca. Complementan a las pruebas de caja blanca Mejor diseñar los casos de prueba usando los dos tipos de técnicas

17 Prueba de Caja Negra 17 Prueba de los valores límite Los errores suelen situarse en los límites. Si la entrada se encuentra en el rango a..b entonces hay que probar con los valores a -1, a, a + 1, b - 1, b y b + 1 Si la entrada es un conjunto de valores entonces hay que probar con los valores max-1, max, max+1, min-1, min y min+1

18 Ejemplo: casos de prueba de caja negra para EsPrimo 18 ENTRADA OBJETIVO A PROBAR -Valores límite

19 Prueba de Caja Negra 19 Prueba de la partición equivalente Método de prueba de caja negra que divide el dominio de entrada de un programa en un conjunto de clases de datos de los que se pueden derivar casos de prueba Si la entrada es un código formado por 2 partes, la primera un prefijo opcional de 3 dígitos, que empiece por 9 y la contraseña que sea una cadena de hasta 6 caracteres que empiece necesariamente por una letra y que puede contener letras, dígitos y el símbolo $ prefijo contraseña Se pueden diseñar casos de prueba, cada uno de los cuales representa a un conjunto de casos de prueba

20

21 Prueba de Caja Negra 20 prefijo puede ser prefijo contraseña representa a entrada en blanco 743 representa a número < representa a número entre 900 y representa a número >999 8pW representa a cadena que contiene carácter no dígito contraseña puede ser representa a entrada en blanco 4a2cd$ representa a cadena que empieza por dígito y que sólo contiene letras, dígitos y $ 4a;2c$ representa a cadena que empieza por dígito y que contiene algún carácter no letra, dígito o $ $ab4$b representa a cadena que no empieza por dígito y que sólo contiene letras, dígitos y $ b$$;a5 representa a cadena que no empieza por dígito y que contiene algún carácter no letra, dígito o $

22 Ejemplo: casos de prueba de caja negra para EsPrimo 21 Los siguientes casos de prueba (que ya estaban) también salen aplicando el criterio partición equivalente

23 Pruebas en entornos y aplicaciones especializadas 22 Pruebas de interfaces gráficas de usuario Pruebas sobre ventanas. Pruebas sobre menús y uso del ratón. Pruebas de entrada de datos. Pruebas de documentación y de ayuda.

24 Ejemplo: casos de prueba de negra para EsPrimo 23 Ejemplos de CASOS de PRUEBA -Al cerrar (minimizar,..) la ventana se cierra (minimiza, ) -Al pulsar el botón, aparece en el campo de texto el resultado -Buscar ayuda de cómo utilizar la interfaz

25 Ejercicio 24 Diseñar un caso de prueba de caja blanca, un caso de prueba de caja negra basado en la partición equivalente, un caso de prueba de caja negra basado en los valores límites y un caso de prueba de interfaz de usuario gráfica para el caso de uso ENTRAR EN EL SISTEMA que se describe a continuación. El flujo de eventos del caso de uso ENTRAR EN EL SISTEMA -El usuario escribe su nombre y el password -El sistema comprueba que existe una cuenta con ese nombre y password y, si es así, se le da permiso para entrar en el sistema. -Si existe el nombre de usuario pero el password es incorrecto permite reintroducir el password hasta un máximo de tres veces. Requisitos no funcionales del caso de uso ENTRAR EN EL SISTEMA -El password no debe ser visible -Los nombres de usuarios sólo pueden contener letras y como mínimo 5 letras.

26 Ejercicio: Escribir componente de prueba, que pruebe el siguiente CP Caso de prueba CP2 Entrada: usuario correcto password acertado Condiciones de ejecución: en la tabla existe ese usuario con ese password y con 1 intento fallido anterior (número inferior a 3) Resultado esperado: dar paso y el número de intentos en la tabla USUARIO(cuenta,passord,numIntentos) para correcto es 0 25

27 Pruebas en el proceso unificado 26 Inicio Elaboración Construcción Transición Requisitos Análisis Diseño Implementación Prueba Iteraciones: ite r. #1 ite r. #2 ite r. #n ite r. #n + 1 ite r. #n + 2 ite r. #m ite r. #m + 1 Objetivos: Planificar // Diseñar e implementar // Realizar las pruebas

28 Modelo de pruebas 27 1 Modelo de pruebas Sistema de pruebas * * * X Caso de prueba X Procedimiento de prueba Componente de prueba

29 28 Modelo de pruebas Artefacto: caso de prueba Un caso de prueba especifica una forma de probar el sistema, incluyendo la entrada y salida con la que se ha de probar y las condiciones bajo las que ha de probarse Artefacto: procedimiento de prueba Un procedimiento de prueba especifica cómo realizar uno o varios casos de prueba Artefacto: componente de prueba Automatiza uno o varios procedimientos de prueba o partes de ellos.

30 Actividad del flujo de trabajo de Implementación 29 Actividad: realizar prueba de unidad Probar componentes implementados como unidades individuales prueba de especificación (de caja negra) que verifica el comportamiento observable externamente prueba de estructura (de caja blanca) que verifica la implementación interna

31 Actividades del flujo de trabajo de Prueba 30 Actividad: planificar prueba Describir una estrategia de prueba, estimar los requisitos y planificar el esfuerzo de la prueba Actividad: diseñar prueba identificar casos de prueba y procedimientos de prueba diseñar casos de prueba de integración (para verificar que los componentes interaccionan correctamente) diseñar la prueba del sistema (para verificar que el sistema funciona correctamente como un todo) diseñar los casos de prueba de regresión Al añadir un nuevo módulo puede haber problemas con módulos que antes iban bien. Las pruebas de regresión son un conjunto de pruebas (ya realizadas antes) que aseguran que los cambios no han dado lugar a cambios colaterales.

32 Actividades del FT de Prueba 31 Actividad: implementar prueba Automatizar los procedimientos de prueba, creando componentes de prueba, si es posible. Actividad: realizar pruebas de integración Realizar las pruebas, comparar con los resultados esperados e informar de los defectos Actividad: realizar prueba de sistema Se comienzan después de las de integración y se realizan de manera análoga (realizar, comparar e informar) Actividad: evaluar prueba Se comparan los resultados de las pruebas con los objetivos esbozados en el plan de prueba. Hay que preparar métricas que permitan determinar el nivel de calidad del software y la cantidad de pruebas a realizar.

33 Prueba de unidad de EsPrimo 32 Casos de prueba Componente Prueba de Esprimo RESULTADO CodPr NUM SalidaEsper SalReal ResPrueba 1 0 no positivo 2 1 primo 3 2 primo 4 3 primo 5 4 no primo 6 23 primo 7-4 no positivo no primo no positivo 10 patata no positivo no primo Tabla PRU_UNIDAD_ESPRIMO NUM EsPrimo no positivo primo no primo El Componente Prueba de Esprimo recorre la tabla PRU_UNIDAD_ESPRIMO y llama al módulo Esprimo con el valor de entrada NUM. El resultado obtenido lo escribe en SalReal y si es igual al valor de SalidaEsper deja OK en ResPrueba, en caso contrario deja ERROR

34 Prueba de unidad de EsPrimo Componente Prueba Algoritmo: ComponentePruebaEsPrimo de EsPrimo ResSQL := ejecutarbd( Select CodPr, NUM, SalidaEsper from PRU_UNIDAD_ESPRIMO ) mientras no fin (ResSQL) hacer <CP,N,SE> := siguiente(ressql) ResEsPrimo := EsPrimo(N) si ResEsPrimo = SE entonces Prueba := OK sino Prueba := ERROR ejecutarbd( Update PRU_UNIDAD_ESPRIMO Set ResPrueba = %Prueba, SalReal = %ResEsPrimo where CodPr= %CP ) 33 Tabla PRU_UNIDAD_ESPRIMO CodPr NUM SalidaEsper SalReal ResPrueba

35 Prueba de unidad de SiguientePrimo Algoritmo: SiguientePrimo Entrada: num (entero) Salida: entero SiguientePrimo 34 si num <= 0 entonces devolver 1 si no sig := num + 1 mientras EsPrimo(sig) primo hacer sig := sig + 1 fin mientras devolver sig finsi Tabla PRU_UNIDAD_SIGUIENTEPRIMO PROBLEMA: si hay errores, cómo saber a qué módulo corresponden? SiguientePrimo o EsPrimo patata EsPrimo no número

36 Prueba de integración ascendente de SiguientePrimo y EsPrimo 35 SiguientePrimo EsPrimo ORDEN EN EL QUE SE HACEN LAS PRUEBAS: 1º ) Prueba de Unidad de EsPrimo 2º ) Prueba de Unidad de SiguientePrimo donde se supone que el módulo EsPrimo ya no contiene errores (en este caso coincide con la prueba de integración de ambos)

37 36 Prueba de integración descendente de SiguientePrimo y EsPrimo (o cómo probar SiguientePrimo si EsPrimo no está disponible) SiguientePrimo SiguientePrimo SE PRUEBA ASÍ EsPrimo Resguardo de EsPrimo ORDEN EN EL QUE SE HACEN LAS PRUEBAS: 1º ) Prueba de Unidad de SiguientePrimo usando un Resguardo de Esprimo 2º ) Prueba de Unidad de EsPrimo 3º ) Prueba de integración de SiguientePrimo con EsPrimo

38 37 Prueba de integración descendente de SiguientePrimo y EsPrimo (o cómo probar SiguientePrimo si EsPrimo no está disponible) Algoritmo: SiguientePrimo Entrada: num (entero) Salida: entero si num <= 0 entonces devolver 1 si no sig := num + 1 mientras EsPrimo(sig) primo hacer sig := sig + 1 finsi fin mientras devolver sig Tabla PRU_UNIDAD_ESPRIMO SiguientePrimo Resguardo de EsPrimo SE LLAMA AL Resguardo de EsPrimo CodPr NUM SalidaEsper SalReal ResPrueba

39 38 Prueba de unidad de SiguientePrimo Resguardo de EsPrimo Algoritmo: ResguardoEsPrimo Entrada: nument (entero) Salida: String ( primo, no primo, no positivo ) ResSQL := ejecutarbd( Select SalidaEsper from PRU_UNIDAD_ESPRIMO where NUM = %nument ) si fin (ResSQL) entonces devolver no primo sino <SE> := siguiente(ressql) devolver SE fin si CodPr NUM SalidaEsper SalReal ResPrueba 1 0 no positivo 2 1 primo 3 2 primo 4 3 primo... Tabla PRU_UNIDAD_ESPRIMO

40 Creación de un resguardo 39 Resguardo de EsPrimo Algoritmo: ResguardoEsPrimo Entrada: nument (entero) Salida: String ( primo, no primo, no positivo ) ResSQL := ejecutarbd( Select SalidaEsper from PRU_UNIDAD_ESPRIMO where NUM = %nument ) si fin (ResSQL) entonces devolver no primo sino <SE> := siguiente(ressql) devolver SE fin si CodPr NUM SalidaEsper SalReal ResPrueba 1 0 no positivo 2 1 primo 3 2 primo 4 3 primo... Tabla PRU_UNIDAD_ESPRIMO

41 Creación de un resguardo 40 Resguardo de EsPrimo package resguardo; public class Esprimo { public static boolean esprimo(string args[]) throw if (args[0].equals( 0 )) throw new ErrorNoNumeroPositivo(); else if (args[0].equals( 1 )) return true; else if (args[0].equals( 2 )) return true; else if (args[0].equals( 3 )) return true;... return false; }} CodPr NUM SalidaEsper SalReal ResPrueba 1 0 no positivo 2 1 primo 3 2 primo 4 3 primo... Tabla PRU_UNIDAD_ESPRIMO

42 Bibliografía 41 Ingeniería del Software. Un enfoque práctico (5ª edición) Roger S. Pressman Editorial Mc. Graw Hill, 2001 Capítulos 17 y 18 El proceso unificado de desarrollo de software Jacobson, Booch, Rumbaugh Editorial Addison Wesley, 1999 Capítulo 11

43 Ejercicio: Escribir componente de prueba, que pruebe el siguiente CP Caso de prueba CP2 Entrada: usuario correcto password acertado Condiciones de ejecución: en la tabla existe ese usuario con ese password y con 1 intento fallido anterior (número inferior a 3) Resultado esperado: dar paso y el número de intentos en la tabla USUARIO(cuenta,passord,numIntentos) para correcto es 0 42

44 Solución 43 public class ComponentePruebaEntrSistema { InterfaceLogicaNegocio ln; OperacionesParaPruebas lp; public static void main(string[] args) { // Obtener lógica negocio y operaciones para pruebas // CP2: usuario y passwords correctos, nº intentos no superado lp.aniadirusuario( correcto, acertado,1); boolean b = ln.hacerlogin( correcto, acertado ); if (!b) System.out.println( Error CP2: No permite entrada ); else {int j = lp.comprobarusuario( correcto, acertado ); // Dev. Nº intentos if (j!=0) System.out.println( Error CP2: No puesto a 0. ); else System.out.println( CP2 correcto );} }

45 Ejercicio: Escribir componente de prueba, que pruebe el siguiente CP 44 Caso de prueba CP3 Entrada: usuario correcto password acertado Condiciones de ejecución: en la tabla existe ese usuario con ese password y con 4 intentos fallidos (número superior a 3) Resultado esperado: no dar paso y el número de intentos en la tabla USUARIO(cuenta,passord,numIntentos) para correcto es 5

46 Solución 45 public class ComponentePruebaEntrSistema { InterfaceLogicaNegocio ln; OperacionesParaPruebas lp; public static void main(string[] args) { // Obtener lógica negocio y operaciones para pruebas // CP3: usuario y passwords correctos, nº intentos superado lp.aniadirusuario( correcto, acertado,4); boolean b = ln.hacerlogin( correcto, acertado ); if (b) System.out.println( Error CP3: Permite entrada ); else {int j = lp.comprobarusuario( correcto, acertado ); // Dev. Nº intentos if (j!=5) System.out.println( Error CP3: No incrementa. ); else System.out.println( CP3 correcto );} }

47 Ejercicio 46 Diseñar un caso de prueba de caja blanca, un caso de prueba de caja negra basado en la partición equivalente, un caso de prueba de caja negra basado en los valores límites y un caso de prueba de interfaz de usuario gráfica para el caso de uso ENTRAR EN EL SISTEMA que se describe a continuación. El flujo de eventos del caso de uso ENTRAR EN EL SISTEMA -El usuario escribe su nombre y el password -El sistema comprueba que existe una cuenta con ese nombre y password y, si es así, se le da permiso para entrar en el sistema. -Si existe el nombre de usuario pero el password es incorrecto permite reintroducir el password hasta un máximo de tres veces. Requisitos no funcionales del caso de uso ENTRAR EN EL SISTEMA -El password no debe ser visible -Los nombres de usuarios sólo pueden contener letras y como mínimo 5 letras.

48 Solución al ejercicio 47 Caso de prueba de caja blanca: No se puede ya que el código fuente no está accesible. Caso de prueba de caja negra basado en la partición equivalente 1) Entrada: usuario pepita password: e445dr Salida: dar paso (usuario y password válidos; suponiendo que se encuentran en la BD) 2) Entrada: usuario pepita2 password e445dr Salida: no dar paso (usuario no válido por contener caracteres no letras y más de 5) 3) Entrada: usuario pepi password e445dr Salida: no dar paso (usuario no válido por contener menos de 5 letras) 4) Entrada: usuario pep3 password e445dr Salida: no dar paso (usuario no válido por contener menos de 5 letras, y algunas no ser letras) 5) Entrada: usuario password e445dr Salida: no dar paso (usuario en blanco ) 6) Entrada: usuario password e445dr Salida: no dar paso (usuario no válido por no contener ni una sola letra, aunque sí más de 5 caracteres) 7) Entrada: usuario pepita password: Salida: no dar paso (usuario válido pero password no, suponiendo que se encuentra en la BD)

49 Solución al ejercicio 48 Caso de prueba de caja negra basado en los valores límite 1) Entrada: usuario pepita password: malpassw Salida: no obtener paso intentar otra vez: usuario pepita password: malpassw Salida: no obtener paso intentar otra vez: usuario pepita password: malpassw Salida: no obtener paso y comprobar que se bloquea // Intenta 4 veces (suponiendo usuario válido pero password incorrecto) 2) Entrada: usuario pepita password: malpassw Salida: no obtener paso intentar otra vez: usuario pepita password: malpassw Salida: no obtener paso intentar otra vez: usuario pepita password: e445dr Salida: obtener paso // Intenta 3 veces (suponiendo usuario válido pero password incorrecto) 3) Entrada: usuario pepito password: malpassw => no obtener paso intentar otra vez: usuario pepito password: malpassw => no obtener paso intentar otra vez: usuario pepito password: malpassw Salida: no obtener paso pero comprobar que no se bloquea // Intenta 3 veces (suponiendo tanto usuario como password incorrectos) 4) Entrada: usuario pepita password: malpassw => no obtener paso intentar otra vez: usuario pepita password: e445dr Salida: obtener paso // Intenta 2 veces (suponiendo usuario pepita válido y password e445dr válido)

50 Solución al ejercicio 49 Caso de prueba de interfaz gráfica de usuario: 1) Entrada: usuario pepita password: malpassw Salida: comprobar passw. NO visible 2) Entrada: pulsar botón acceder al sistema Salida: comprobar que responde 3) Entrada: pulsar icono minimizar ventana Salida: comprobar que se minimiza

51 50

52 Solución al ejercicio 51 Caso de prueba de caja blanca: No se puede ya que el código fuente no está accesible. Caso de prueba de caja negra basado en la partición equivalente 1) Entrada: usuario pepita password: e445dr Salida: dar paso (usuario y password válidos; suponiendo que se encuentran en la BD) 2) Entrada: usuario pepita2 password e445dr Salida: no dar paso (usuario no válido por contener caracteres no letras y más de 5) 3) Entrada: usuario pepi password e445dr Salida: no dar paso (usuario no válido por contener menos de 5 letras) 4) Entrada: usuario pep3 password e445dr Salida: no dar paso (usuario no válido por contener menos de 5 letras, y algunas no ser letras) 5) Entrada: usuario password e445dr Salida: no dar paso (usuario en blanco ) 6) Entrada: usuario password e445dr Salida: no dar paso (usuario no válido por no contener ni una sola letra, aunque sí más de 5 caracteres) 7) Entrada: usuario pepita password: Salida: no dar paso (usuario válido pero password no, suponiendo que se encuentra en la BD) Caso de prueba de caja negra basado en los valores límite 1) Entrada: usuario pepita password: malpassw Salida: no obtener paso intentar otra vez: usuario pepita password: malpassw Salida: no obtener paso intentar otra vez: usuario pepita password: malpassw Salida: no obtener paso y comprobar que se bloquea // Intenta 4 veces (suponiendo usuario válido pero password incorrecto) 2) Entrada: usuario pepita password: malpassw Salida: no obtener paso intentar otra vez: usuario pepita password: malpassw Salida: no obtener paso intentar otra vez: usuario pepita password: e445dr Salida: obtener paso // Intenta 3 veces (suponiendo usuario válido pero password incorrecto) 3) Entrada: usuario pepito password: malpassw => no obtener paso intentar otra vez: usuario pepito password: malpassw => no obtener paso intentar otra vez: usuario pepito password: malpassw Salida: no obtener paso pero comprobar que no se bloquea // Intenta 3 veces (suponiendo tanto usuario como password incorrectos) 4) Entrada: usuario pepita password: malpassw => no obtener paso intentar otra vez: usuario pepita password: e445dr Salida: obtener paso // Intenta 2 veces (suponiendo usuario pepita válido y password e445dr válido) Caso de prueba de interfaz gráfica de usuario: 1) Entrada: usuario pepita password: malpassw Salida: comprobar passw. NO visible 2) Entrada: pulsar botón acceder al sistema Salida: comprobar que responde 3) Entrada: pulsar icono minimizar ventana Salida: comprobar que se minimiza

53 Solución al ejercicio 52 Caso de prueba de caja blanca: No se puede ya que el código fuente no está accesible. Caso de prueba de caja negra basado en la partición equivalente 1) Entrada: usuario pepita password: e445dr Salida: dar paso (usuario y password válidos; suponiendo que se encuentran en la BD) 2) Entrada: usuario pepita2 password e445dr Salida: no dar paso (usuario no válido por contener caracteres no letras y más de 5) 3) Entrada: usuario pepi password e445dr Salida: no dar paso (usuario no válido por contener menos de 5 letras) 4) Entrada: usuario pep3 password e445dr Salida: no dar paso (usuario no válido por contener menos de 5 letras, y algunas no ser letras) 5) Entrada: usuario password e445dr Salida: no dar paso (usuario en blanco ) 6) Entrada: usuario password e445dr Salida: no dar paso (usuario no válido por no contener ni una sola letra, aunque sí más de 5 caracteres) 7) Entrada: usuario pepita password: Salida: no dar paso (usuario válido pero password no, suponiendo que se encuentra en la BD)

54 Solución al ejercicio 53 Caso de prueba de caja negra basado en los valores límite 1) Entrada: usuario pepita password: malpassw Salida: no obtener paso intentar otra vez: usuario pepita password: malpassw Salida: no obtener paso intentar otra vez: usuario pepita password: malpassw Salida: no obtener paso y comprobar que se bloquea // Intenta 4 veces (suponiendo usuario válido pero password incorrecto) 2) Entrada: usuario pepita password: malpassw Salida: no obtener paso intentar otra vez: usuario pepita password: malpassw Salida: no obtener paso intentar otra vez: usuario pepita password: e445dr Salida: obtener paso // Intenta 3 veces (suponiendo usuario válido pero password incorrecto) 3) Entrada: usuario pepito password: malpassw => no obtener paso intentar otra vez: usuario pepito password: malpassw => no obtener paso intentar otra vez: usuario pepito password: malpassw Salida: no obtener paso pero comprobar que no se bloquea // Intenta 3 veces (suponiendo tanto usuario como password incorrectos) 4) Entrada: usuario pepita password: malpassw => no obtener paso intentar otra vez: usuario pepita password: e445dr Salida: obtener paso // Intenta 2 veces (suponiendo usuario pepita válido y password e445dr válido)

55 Solución al ejercicio 54 Caso de prueba de interfaz gráfica de usuario: 1) Entrada: usuario pepita password: malpassw Salida: comprobar passw. NO visible 2) Entrada: pulsar botón acceder al sistema Salida: comprobar que responde 3) Entrada: pulsar icono minimizar ventana Salida: comprobar que se minimiza

56 Ejercicio Esprimo (camino básico) primo:=true i:=2 i<= num-1 num<= primo devolver no positivo num resto i = 0 5 i:=i+1 6 primo:=false V(G) = 5 devolver primo 9 10 FIN devolver no primo 8

57 Algoritmo Esprimo 56 CP 1) Entrada: 1 Salida: primo CP 2) Entrada: 2 Salida: primo CP 3) Entrada: 4 Salida no primo es el primer no primo CP 4) Entrada: Salida: no primo número muy grande (mayor que el máximo entero) CP 5) Entrada: 0 Salida: no positivo CP 6) Entrada: -4 Salida: no positivo CP 7:) Entrada: Salida: no positivo CP 8) Entrada: patata Salida: no positivo CP 9) Entrada: Salida: no primo debe tomar 782 como el número de entrada

58 Algoritmo Esprimo 57 CP 1) Entrada: 0 Salida: no positivo si num <= 0 entonces devolver no positivo CP 2) Entrada: 2 Salida: primo para i de 2 a num - 1 hacer (para que no entre) si primo entonces devolver primo (que entre) CP 3) Entrada: 3 Salida: primo para i de 2 a num - 1 hacer (ejecutar 1 vez) CP 4) Entrada: 4 Salida: no primo para i de 2 a num - 1 hacer si num resto i = 0 entonces (para que entre) si no devolver no primo (para que entre) CP 5) Entrada: 23 Salida: no primo para i de 2 a num - 1 hacer si num resto i = 0 entonces (para que NO entre)

59 Prueba del camino básico 58 Construcciones estructurales en forma de grafo de flujo: Secuencia Condición IF Bucle (While) Bucle (Hasta) Sentencia case NODO: representa condición o sentencia procedimental ARISTA: representa flujo de control

60 Prueba de bucles 59 Bucles simples Bucles anidados Bucles concatenados Bucles no estructurados

61 Prueba de bucles 60 Prueba de bucles simples Diseñar casos de prueba para que se ejecute el bucle: 0, 1, 2, m, n-1, n y n+1 veces (siendo n el nº máximo de veces que se puede ejecutar el bucle y m<n) Prueba de bucles anidados Si cada bucle se probara como bucle simple aumentaría mucho el número de casos de prueba Probar el bucle más interno como un bucle simple (0, 1, 2, m, n- 1, n y n+1 veces) entrando en todos los bucles externos el número mínimo de veces (1) Ir hacia fuera probando cada bucle externo como un bucle simple y dejando que sus bucles internos se ejecuten m veces (valor típico) y que sus bucles externos se ejecuten 1 vez (valor mínimo)

62 61 Prueba de bucles Prueba de bucles concatenados En este caso puede ocurrir que el segundo bucle se ejecute un número de veces que depende del primero. Si son bucles independientes entonces se prueban como dos bucles simples, y si no lo son, entonces se prueban como bucles anidados Prueba de bucles no estructurados En este caso, merece la pena transformar el código de entrada usando bucles estructurados y hacer las pruebas correspondientes

63 Prueba de bucles Por supuesto, no hay por qué considerar el siguiente bucle como no estructurado: 62 repetir acción1 si cond1 entonces salir acción2 hasta cond2 Se puede probar para que se ejecute 0, 1, 2, m, n-1, n y n+1 combinando las 2 condiciones de salida (cond1 y cond2)

64 Prueba de Caja Negra 63 Tipos de errores que se encuentran: Funciones incorrectas o ausentes. Errores de interfaz. Errores de estructuras de datos o en accesos a bases de datos externas. Errores de rendimiento. Errores de inicialización o de terminación.

65 Ejemplo: Algoritmo Esprimo 64 Algoritmo: Esprimo Entrada: num (entero) Salida: String ( no positivo, primo, no primo ) si num <= 0 entonces devolver no positivo si no primo := true para i de 2 a num - 1 hacer si num resto i = 0 entonces primo := false salir del bucle fin si fin para si primo entonces devolver primo si no devolver no primo fin si fin si DISEÑAR CASOS DE PRUEBA DE CAJA BLANCA

66 65 Ejemplo: Algoritmo Esprimo entero Esprimo es primo no primo no positivo DISEÑAR CASOS DE PRUEBA DE CAJA NEGRA

67 66 Ejemplo: Algoritmo Esprimo DISEÑAR CASOS DE PRUEBA DE LA INTERFAZ Y DE LA DOCUMENTACIÓN

68 Ejercicio: Tomar en Préstamo la Copia de un Libro 67 DISEÑAR LOS CASOS DE PRUEBA DE ESTE CASO DE USO

69 Introducción 68 Las pruebas del software son un elemento crítico para la garantía de calidad del software y representa una revisión final de las especificaciones, del diseño y de la codificación. Las pruebas de software son siempre necesarias. En algunos casos ocupan hasta un 40% del tiempo de un proyecto informático.

70 Estrategias de prueba de Software 69 Cómo integrar las técnicas de diseño de casos de prueba en una serie de pasos bien planificados que obtienen una construcción correcta del software? Ingeniería del sistema Requisitos Diseño Codificación C U S R D I V ST Prueba de unidad Prueba de integración Prueba de validación Prueba del sistema

71 Prueba de unidad 70 Centra el proceso en el módulo. Se prueban los caminos de control importantes para descubrir errores dentro del límite del módulo. Está orientado a pruebas de caja blanca. Puede realizarse paralelamente en varios módulos.

72 Prueba de unidad 71 Interfaz Condiciones límite Caminos independientes Caminos de manejo de errores Módulo Casos de prueba

73 Prueba de unidad 72 Interfaz Condiciones límite Caminos independientes Caminos de manejo de errores Controlador Módulo que se va a probar Casos de prueba Resguardo Resguardo RESULTADOS

74 Prueba de integración 73 Integración descendente M1 M2 M3 M4 M5 M6 M7 M8

75 Prueba de integración 74 Resguardos Resguardo A Resguardo B Resguardo C Resguardo D Mostrar un mensaje de traza Mostrar el parámetro pasado = Dirección del flujo de datos Devolver un valor de una tabla (o archivo externo) Hacer una búsqueda en una tabla de un parámetro de entrada y devolver el parámetro asociado

76 Prueba de integración 75 Integración ascendente Ma Mc Mb D1 D2 D3 Grupo 1 Grupo 3 Grupo 2

77 Prueba de integración 76 Controladores Controlador A Controlador B Controlador C Controlador D Y A B Invocar al subordinado Enviar el parámetro de una tabla (o archivo externo) Mostrar parámetro Una combinación de los controladores B y C = Dirección del flujo de datos

78 Prueba de integración 77 Prueba de regresión: Al añadir un nuevo módulo el software cambia y se establecen nuevos caminos de flujo de datos, nueva E/S y nueva lógica de control. Puede haber problemas con funciones que antes iban bien. Se ejecutarán un conjunto de pruebas que se han realizado anteriormente para asegurarse que los cambios no han dado lugar cambios colaterales.

79 Prueba de validación 78 Se lleva a cabo cuando se ha terminado la prueba de Integración: el software está ensamblado y se han eliminado todos los errores de interfaz. La validación se consigue cuando el software funciona según las expectativas del usuario. Generalmente son pruebas de caja negra.

80 Prueba del sistema 79 Realizado el software debe integrarse en el sistema. Estas pruebas sirven para verificar que se han integrado adecuadamente todos los elementos del sistema y que realizan las funciones apropiadas. Tipos de pruebas: prueba de recuperación prueba de seguridad prueba de resistencia prueba de rendimiento

81 Depuración de errores 80 La depuración es el proceso que elimina el error Ejecución de casos Casos de prueba Pruebas adicionales Causas sospechadas Resultados Pruebas de regresión Correcciones Causas identificadas Depuración

Ingeniería del Software. Pruebas. Pruebas en el PUD. Las pruebas del software. Tipos de prueba Estrategias de prueba

Ingeniería del Software. Pruebas. Pruebas en el PUD. Las pruebas del software. Tipos de prueba Estrategias de prueba Pruebas Pruebas en el PUD Las pruebas del software Diseño de casos de prueba Tipos de prueba Estrategias de prueba 1 2 Iteración en PUD Planificación de la Iteración Captura de requisitos: Modelo de casos

Más detalles

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE Técnicas de prueba El desarrollo de Sistemas de software implica la realización de una serie de actividades predispuestas a incorporar errores (en la etapa de definición de requerimientos, de diseño, de

Más detalles

1. Descripción y objetivos

1. Descripción y objetivos Pruebas 1 1. Descripción y objetivos Las pruebas son prácticas a realizar en diversos momentos de la vida del sistema de información para verificar: El correcto funcionamiento de los componentes del sistema.

Más detalles

INGENIERÍA DEL SOFTWARE. 4º ING. INFORMÁTICA (UPV/EHU) 29 de MAYO de 2006

INGENIERÍA DEL SOFTWARE. 4º ING. INFORMÁTICA (UPV/EHU) 29 de MAYO de 2006 INGENIERÍA DEL SOFTWARE. 4º ING. INFORMÁTICA (UPV/EHU) 29 de MAYO de 2006 NOMBRE: GRUPO: Las dos primeras preguntas son de test. Es obligatorio marcar las respuestas correctas usando un bolígrafo y dibujando

Más detalles

CLASE # 5 TÉCNICAS DE CAJA BLANCA

CLASE # 5 TÉCNICAS DE CAJA BLANCA CLASE # 5 TÉCNICAS DE CAJA BLANCA 750105M - TÉCNICAS DE PRUEBAS DE SOFTWARE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN UNIVERSIDAD DEL VALLE SEMESTRE 2013A - DOCENTE BEATRIZ FLORIAN GAVIRIA Basado Parcialmente

Más detalles

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,

Más detalles

2. Estructura de un programa en Java

2. Estructura de un programa en Java 24 A. García-Beltrán y J.M. Arranz 2. Estructura de un programa en Java Objetivos: a) Describir la estructura del código fuente de una aplicación Java b) Presentar los conceptos de comentario y de identificador

Más detalles

Fundamentos de Ingeniería del Software. Capítulo 5. Prueba del software

Fundamentos de Ingeniería del Software. Capítulo 5. Prueba del software Fundamentos de Ingeniería del Software Capítulo 5. Prueba del software Bubbles don t crash Bertrand Meyer Prueba del software. Estructura 1. Objetivos de la prueba 2. Importancia de la prueba 3. Principios

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ; TEMA 5. CONTROL DE FLUJO DEL PROGRAMA 5.1 Sentencias Una sentencia es una expresión seguida de un punto y coma. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ; El ; es obligatorio

Más detalles

Ejercicios de evaluación de fundamentos de programación en Java

Ejercicios de evaluación de fundamentos de programación en Java Ejercicios de evaluación de fundamentos de programación en Java Jorge Martínez Ladrón de Guevara Editorial EME ISBN 978-84-96285-40-8 Contenido 1. Introducción a Java... 1 Test de evaluación...1 Ejercicios...4

Más detalles

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores El lenguaje de programación Java Programa Java Un programa Java está formado por un conjunto de clases que interactúan entre sí La clase es la unidad básica de programación La ejecución depende de la clase

Más detalles

Arreglos. // Incluir E/S y Librerías Standard #include #include

Arreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h> Arreglos Introducción. En los temas anteriores se han estudiado los diferentes tipos de datos simples de C++, usados para representar valores simples como enteros, reales o caracteres. Sin embargo, en

Más detalles

Refactorizar (v) Reestructurar el software aplicando una secuencia de refactorizaciones.

Refactorizar (v) Reestructurar el software aplicando una secuencia de refactorizaciones. Refactorización Definición Refactorización (n) Cambio realizado a la estructura interna del software para hacerlo más fácil de comprender y más fácil de modificar sin cambiar su comportamiento observable.

Más detalles

PROCESO UNIFICADO CAPTURA DE REQUISITOS

PROCESO UNIFICADO CAPTURA DE REQUISITOS PROCESO UNIFICADO CAPTURA DE REQUISITOS El proceso unificado de desarrollo, Ivar Jacobson, Grady Booch, James Rumbaugh, Ed. Addison Wesley, 1999 The unified software development process, Ivar Jacobson,

Más detalles

Prueba de software. Ingeniería de software Eduardo Ferreira, Martín Solari

Prueba de software. Ingeniería de software Eduardo Ferreira, Martín Solari Prueba de software Ingeniería de software Eduardo Ferreira, Martín Solari 1 Temario Prueba de software Estrategias, niveles y tipos de prueba Pruebas de caja blanca Pruebas de caja negra Proceso de prueba

Más detalles

De los casos de uso a los casos de prueba. Caso práctico. Aplicación web Javier Gutiérrez / javierj@us.es

De los casos de uso a los casos de prueba. Caso práctico. Aplicación web Javier Gutiérrez / javierj@us.es De los casos de uso a los casos de prueba Caso práctico. Aplicación web Javier Gutiérrez / javierj@us.es Objetivo Objetivo: Mostrar cómo aplicar el proceso ETUC para la generación de casos de prueba a

Más detalles

9. Objetos y clases. 9.1. Clases

9. Objetos y clases. 9.1. Clases Programación orientada a objetos con Java 103 9. Objetos y clases Objetivos: a) Presentar el concepto de objeto, clase, atributo, método e instancia b) Interpretar el código fuente de una aplicación Java

Más detalles

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

TEMA 3: EL LENGUAJE C: PRESENTACIÓN TEMA 3: EL LENGUAJE C: PRESENTACIÓN Historia del lenguaje C Características del lenguaje C Estructura de un programa en C El editor de textos: elementos Funciones: de usuario y de librería Librerías de

Más detalles

Pruebas de unidad con JUnit

Pruebas de unidad con JUnit Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro

Más detalles

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Solución al Examen de Prácticas de Programación (Ingeniería Informática) Solución al Examen de Prácticas de Programación (Ingeniería Informática) Junio 2006 Parte I. Cuestiones (3 puntos=50% nota del examen) 1) Se desea crear un conjunto de clases para representar en un programa

Más detalles

CONCEPTOS BASICOS DEL LENGUAJE JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA CONCEPTOS BASICOS DEL LENGUAJE JAVA NOMENCLATURA GENERAL En Java se distinguen las letras mayúsculas y minúsculas. Las reglas del lenguaje respecto a los nombres de variables son muy amplias y permiten

Más detalles

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación Competencias IIC1103 Introducción a la Programación (I/2010) Interrogación 1 13 de Abril de 2010

Más detalles

Objetivo de aprendizaje del tema

Objetivo de aprendizaje del tema Computación II Tema 3. Identificadores, palabras clave y tipos de datos Objetivo de aprendizaje del tema Al finalizar el tema serás capaz de: Distinguir i entre modificadores d válidos y no válidos. Enumerar

Más detalles

FACULTAD DE INGENIERÍA

FACULTAD DE INGENIERÍA NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Estructuras de iteración PRÁCTICA NÚM. [ 6 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje

Más detalles

11. Algunas clases estándar de Java (II)

11. Algunas clases estándar de Java (II) 122 A. García-Beltrán y J.M. Arranz 11. Algunas clases estándar de Java (II) Objetivos: a) Presentar la clase predefinida en Java para trabajar con arrays b) Interpretar el código fuente de una aplicación

Más detalles

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Fundamentos de la informática 2. Algoritmos, diagramas de flujo y pseudocódigo Contenido Algoritmos Diagramas de flujo

Más detalles

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System. CICLO: 01/2010 Universidad Don Bosco Materia: Lenguaje de Programación III Contenido: 1-Lectura de Datos de entrada. 2-Introduccion a JOPTIONPANE. 3-Estructuras de Control. ->LECTURA DE DATOS DE ENTRADA

Más detalles

FACULTAD DE INGENIERÍA

FACULTAD DE INGENIERÍA NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Variables y Tipos de Datos PRÁCTICA NÚM. [ 1 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje

Más detalles

6.3 CASOS DE PRUEBA CAJA BLANCA

6.3 CASOS DE PRUEBA CAJA BLANCA Tipos de Prueba: 6.3 CASOS DE PRUEBA CAJA BLANCA Prueba de la Ruta Básica Pruebas de la estructura de control Prueba de condición Prueba del flujo de datos Prueba de bucles 6.3.1 PRUEBA DE LA RUTA BASICA

Más detalles

Bloques Repetitivos: Iteración

Bloques Repetitivos: Iteración Fuente: www.appinventor.org Traducción hecha con Google Traductor y mejorada por mi: piatticarlos@gmail.com Bloques Repetitivos: Iteración Una cosa para la que los ordenadores son buenos es la repetición

Más detalles

Elementos léxicos del lenguaje de programación Java

Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores

Más detalles

Multitarea en Java. Rafa Caballero - UCM

Multitarea en Java. Rafa Caballero - UCM Multitarea en Java Rafa Caballero - UCM Programa Monoproceso (monotarea) En cada momento hay una única instrucción ejecutándose Se dice que el programa es monotarea, o monoproceso o monohebra (o single

Más detalles

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) APRENDERAPROGRAMAR.COM GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I

Más detalles

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente

Más detalles

Soporte lógico de computadoras

Soporte lógico de computadoras Soporte lógico de computadoras Software: Sistemas Operativos Lenguajes de programación Lenguajes de Programación. Clasificación Proximidad del lenguaje al que entiende el ordenador: Bajo nivel: específico

Más detalles

Capítulo 6. Asociaciones y Declaraciones.

Capítulo 6. Asociaciones y Declaraciones. Capítulo 6. Asociaciones y Declaraciones. Lenguajes de Programación Carlos Ureña Almagro Curso 2011-12 Contents 1 Asociaciones, entornos y ámbitos 2 2 Declaraciones y definiciones 6 3 Definiciones de valores,

Más detalles

FACULTAD DE INGENIERÍA

FACULTAD DE INGENIERÍA NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Operadores y Expresiones PRÁCTICA NÚM. [ 3 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje

Más detalles

Programación Orientada a Objetos. Java: Excepciones

Programación Orientada a Objetos. Java: Excepciones Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España

Más detalles

Programación: QBASIC

Programación: QBASIC 1. QBASIC Programación: QBASIC Guía del alumno Qbasic es una versión moderna del lenguaje BASIC. Se trata de un lenguaje de alto nivel. En un lenguaje de alto nivel las instrucciones tienen un formato

Más detalles

CLASE # 4 DESCRIPCIÓN GENERAL DE LAS PRUEBAS DINÁMICAS

CLASE # 4 DESCRIPCIÓN GENERAL DE LAS PRUEBAS DINÁMICAS CLASE # 4 DESCRIPCIÓN GENERAL DE LAS PRUEBAS DINÁMICAS 750105M - TÉCNICAS DE PRUEBAS DE SOFTWARE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN UNIVERSIDAD DEL VALLE SEMESTRE 2013A - DOCENTE BEATRIZ FLORIAN GAVIRIA

Más detalles

Creación de plugins para Apache Cordova. Parte JavaScript. Javier de Silóniz Sandino

Creación de plugins para Apache Cordova. Parte JavaScript. Javier de Silóniz Sandino Diciembre 2013 Javier de Silóniz Sandino Especialista ios en atsistemas Un plugin es especialmente útil cuando necesitamos acceder a características internas del hardware del dispositivo móvil. Creación

Más detalles

Pruebas de unidad utilizando JUnit Juan Manuel Fernández Peña, 2005

Pruebas de unidad utilizando JUnit Juan Manuel Fernández Peña, 2005 Pruebas de unidad utilizando JUnit Juan Manuel Fernández Peña, 2005 JUnit es una herramienta para la realización de pruebas de unidad de software desarrollado con Java, que es una herramienta de software

Más detalles

El proceso unificado en pocas palabras

El proceso unificado en pocas palabras El Proceso Unificado de Desarrollo de Software Ivar Jacobson Grady Booch James Rumbaugh Addison Wesley Resumen Capítulo 1. El proceso unificado: dirigido por casos de uso, centrado en la arquitectura,

Más detalles

FIUBA - 7507 Algoritmos y programación 3

FIUBA - 7507 Algoritmos y programación 3 FIUBA - 7507 Algoritmos y programación 3 Trabajo práctico 2: Algo Hero 2010 1er cuatrimestre, 2010 1er entrega (trabajo grupal) Integrantes: 90365, Nahuel Lucero, nahuel.bm6@gmail.com 91299, Diego Meller,

Más detalles

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código

Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación

Más detalles

PLAN DE PRUEBAS SISTEMA DE GESTIÓN HOSPITALARIA. Plan de Pruebas. File: 20130211-QA-INF-V2-PLAN DE PRUEBAS.odt STD-INF-GENERAL Versión: 1.

PLAN DE PRUEBAS SISTEMA DE GESTIÓN HOSPITALARIA. Plan de Pruebas. File: 20130211-QA-INF-V2-PLAN DE PRUEBAS.odt STD-INF-GENERAL Versión: 1. Cliente: FCM-UNA Página 1 de 14 PLAN DE PRUEBAS SISTEMA DE GESTIÓN HOSPITALARIA Cliente: FCM-UNA Página 2 de 14 Tabla de contenido 1. INTRODUCCIÓN 1.1. PROPÓSITO 1.2. ALCANCE 1.3. DEFINICIONES, ACRÓNIMOS

Más detalles

Curso 0 de Informática

Curso 0 de Informática Curso 0 de Informática 2015-2016 Tema 1: Introducción a la Informática y Conceptos básicos 1 Motivación (I): En los procesos industriales, cada vez es mayor el uso de sistemas informáticos para: Monitorización,

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Dpto. de Ingeniería de Sistemas Telemáticos E.T.S.I. Telecomunicación Universidad Politécnica de Madrid FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Normas de examen: Con libros y apuntes Duración: 2 horas

Más detalles

Ingeniería del Software Arquitectura Física en 3 niveles

Ingeniería del Software Arquitectura Física en 3 niveles Introducción En este laboratorio desplegaremos en 3 niveles físicos una aplicación que verifica si una cuenta y un password son correctos, basada en la que fue presentada en el laboratorio Separación entre

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Programación III. 1. Facultad: Ingeniería Escuela: Computación Asignatura:Programación III I. OBJETIVOS II. INTRODUCCIÓN TEÓRICA

Programación III. 1. Facultad: Ingeniería Escuela: Computación Asignatura:Programación III I. OBJETIVOS II. INTRODUCCIÓN TEÓRICA Programación III. 1 Facultad: Ingeniería Escuela: Computación Asignatura:Programación III GUIA1: Uso de C# modo consola. I. OBJETIVOS Qué el estudiante: Conozca el lenguaje de programación Visual C#.Net

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Encapsulamiento: Control de Acceso Clases en Java (1) UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO En Java se organizan las clases en paquetes

Más detalles

Pruebas de Programas. Introducción Errores de software. Julio Villena Román. Un error en un programa puede ser algo muy serio

Pruebas de Programas. Introducción Errores de software. Julio Villena Román. Un error en un programa puede ser algo muy serio Laboratorio de Programación Pruebas de Programas Julio Villena Román jvillena@it.uc3m.es Introducción Errores de software Un error en un programa puede ser algo muy serio http://www.wired.com/software/coolapps/news/2005/11/69355?currentpage=all

Más detalles

Técnicas Avanzadas de Testing Automatizado

Técnicas Avanzadas de Testing Automatizado Técnicas Avanzadas de Testing Automatizado Introducción: Testing ad hoc Testing sistemático Testing unitario Unidad y Suite de tests Frameworks xunit Fixtures compartidos e independecia Tests parametrizados

Más detalles

VERIFICACIÓN, TEST Y DEBUGGING

VERIFICACIÓN, TEST Y DEBUGGING ESTRUCTURAS DE DATOS Y ALGORITMOS TECNÓLOGO EN INFORMÁTICA VERIFICACIÓN, TEST Y DEBUGGING ESTRUCTURAS DE DATOS Y ALGORITMOS - TECNÓLOGO EN INFORMÁTICA 1 1. INTRODUCCIÓN Podemos decir que un programa funciona

Más detalles

Metodología y Tecnología de la Programación

Metodología y Tecnología de la Programación Metodología y Tecnología de la Programación Curso 2008/09 Tema 7 Tipos de Datos Abstractos Temario 7.1 Concepto de Tipo de Datos Abstracto 7.2 Clasificación de Tipos de Datos Abstractos 7.3 Especificación

Más detalles

1.1 Las pruebas en el desarrollo de software tradicional

1.1 Las pruebas en el desarrollo de software tradicional software Introducción La prueba del software es un proceso que se realiza por diversos motivos, concientemente o de manera casual, pero que se reduce a unos cuantos pasos: se ejecuta el programa (o parte

Más detalles

Los caracteres de Java pueden agruparse en letras, dígitos, espacios en blanco, caracteres especiales, signos de puntuación y secuencias de escape.

Los caracteres de Java pueden agruparse en letras, dígitos, espacios en blanco, caracteres especiales, signos de puntuación y secuencias de escape. CARACTERES EN JAVA Los caracteres de Java pueden agruparse en letras, dígitos, espacios en blanco, caracteres especiales, signos de puntuación y secuencias de escape. Letra, Dígitos y Otros Estos caracteres

Más detalles

Índice. http://www.dicampus.es

Índice. http://www.dicampus.es Módulo 2 UML Índice Introducción a UML Lenguaje Unificado de Modelado (UML) Diagramas UML Diagramas de casos de uso Diagramas estructurales: Clases Diagramas estructurales: Objetos Diagramas de interacción:

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

6.4 ESTRATEGIAS DE PRUEBA

6.4 ESTRATEGIAS DE PRUEBA Prueba del sistema Prueba de validación Prueba de integración Prueba de Unidad Código Diseño Requisitos Ingeniería del Sistema Las pruebas del software aplican similar estrategia moviéndonos de adentro

Más detalles

LECCION 2 FORMULAS Y FUNCIONES

LECCION 2 FORMULAS Y FUNCIONES LECCION 2 FORMULAS Y FUNCIONES FÓRMULAS Esta es una de las características más importantes de una planilla de cálculos. Permite establecer relaciones entre constantes, funciones y referencias a celdas

Más detalles

PRU. Pruebas. Ejercicio previo. Enunciado

PRU. Pruebas. Ejercicio previo. Enunciado PRU Pruebas 1 Ejercicio previo Enunciado Se tiene un programa que Lee tres enteros de un fichero Los tres enteros representan los lados de un triángulo Imprime un mensaje indicando el tipo de triángulo

Más detalles

Centro de Capacitación en Informática

Centro de Capacitación en Informática Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.

Más detalles

El modelo de casos de uso. Ingeniería de la Programación

El modelo de casos de uso. Ingeniería de la Programación El modelo de casos de uso Ingeniería de la Programación Prácticas cas 1 Contenidos Introducción RF y RNF Introducción al modelo de RF de UML. Actores y Casos de Uso Modelo de casos de uso Diagrama de contexto

Más detalles

PRUEBAS, CALIDAD Y MANTENIMIENTO DEL SOFTWARE

PRUEBAS, CALIDAD Y MANTENIMIENTO DEL SOFTWARE VI PRUEBAS, CALIDAD Y MANTENIMIENTO DEL SOFTWARE 6.1 PRUEBAS DEL SOFTWARE Una vez generado el código el software debe ser probado para descubrir el máximo de errores posibles antes de su entrega al cliente.

Más detalles

Programación Orientada a Eventos

Programación Orientada a Eventos Programación Orientada a Eventos Técnicas de Programación Santiago Pavón V:2012.03.13 Programas Secuénciales El flujo de ejecución del programa sigue la secuencia de sentencias que lo forman. El estado

Más detalles

PRÁCTICA 1 MANUAL BÁSICO DE ECLIPSE

PRÁCTICA 1 MANUAL BÁSICO DE ECLIPSE PRÁCTICA 1 MANUAL BÁSICO DE ECLIPSE Facilidades de eclipse para el uso de ant y JUnit Tabla de contenidos 1. Qué es Eclipse?... 2 2. Crear un proyecto en Eclipse... 2 3. Utilizar Ant en nuestro proyecto

Más detalles

Programación Orientada a Objetos. Java: Excepciones

Programación Orientada a Objetos. Java: Excepciones Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España

Más detalles

ESTRUCTURAS DE DATOS ÁRBOLES 143

ESTRUCTURAS DE DATOS ÁRBOLES 143 ESTRUCTURAS DE DATOS ÁRBOLES 143 TEMA 4. ÁRBOLES 4.1. CONCEPTOS GENERALES. Un árbol es una estructura de datos ramificada (no lineal) que puede representarse como un conjunto de nodos enlazados entre sí

Más detalles

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos Tema 2 Memoria Dinámica 2.1 Datos estáticos y dinámicos Datos estáticos: su tamaño y forma es constante durante la ejecución de un programa y por tanto se determinan en tiempo de compilación. El ejemplo

Más detalles

Colecciones. Nadjet Bouayad-Agha Programación 2007

Colecciones. Nadjet Bouayad-Agha Programación 2007 Colecciones Nadjet Bouayad-Agha Programación 2007 ArrayList Un ArrayList es un array dinámico. No tiene restricciones de capacidad. Su tamaño se ajusta de forma dinámica. Constructor por defecto: new ArrayList().

Más detalles

Operación Microsoft Access 97

Operación Microsoft Access 97 Trabajar con Informes Características de los informes Un informe es una forma efectiva de presentar los datos en formato impreso. Como se tiene control sobre el tamaño y el aspecto de todos los elementos

Más detalles

Fundamentos de la Programación

Fundamentos de la Programación Fundamentos de la Programación El Software Las operaciones que debe realizar el hardware son especificadas con una lista de instrucciones, llamadas programas o software. Dos grandes grupos de software

Más detalles

Tema 5. Diseño detallado.

Tema 5. Diseño detallado. Ingeniería del Software II 2011 Tema 5. Diseño detallado. Diseño del Software. Los requisitos y el análisis orientado a objetos se centran en aprender a hacer lo correcto: Entender los objetos de nuestro

Más detalles

Metodología de la programación y desarrollo de software. Marta Zorrilla Universidad de Cantabria

Metodología de la programación y desarrollo de software. Marta Zorrilla Universidad de Cantabria Metodología de la programación y desarrollo de software Marta Zorrilla Universidad de Cantabria Metodología de la programación Objetivos Fases en la solución de un problema de programación. Ciclo de vida

Más detalles

Repaso desarrollo de software Parte #1. Jorge Iván Meza Martínez jimezam@gmail.com

Repaso desarrollo de software Parte #1. Jorge Iván Meza Martínez jimezam@gmail.com Repaso desarrollo de software Parte #1 Jorge Iván Meza Martínez jimezam@gmail.com Especialización en Gestión de Redes de Datos Universidad Nacional de Colombia Sede Manizales 1/55 Contenido Concepto desarrollo

Más detalles

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J. Sensor de Temperatura utilizando el Starter Kit Javelin Stamp Realizado por: Bertha Palomeque A. Rodrigo Barzola J. INTRODUCCION DIFERENCIAS EJEMPLOS JAVA Orientado a Objetos Multiplataforma Programar

Más detalles

Ejemplos de conversión de reales a enteros

Ejemplos de conversión de reales a enteros Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print

Más detalles

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012 Prácticas: Introducción a la programación en Java Informática (1º Ingeniería Civil) Índice Introducción a Java y al entorno de desarrollo NetBeans Estructura de un programa Tipos de datos Operadores Sentencias

Más detalles

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación Introducción Uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado

Más detalles

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora

Más detalles

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 2. El lenguaje de programación Java (Parte 1) Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de

Más detalles

Introducción a la Programación Orientada a Objetos

Introducción a la Programación Orientada a Objetos Introducción a la Programación Orientada a Objetos El paradigma imperativo. En un programa se tienen una serie de variables con las cuales operamos y modificamos mediante sentencias y funciones para producir

Más detalles

Parte 1 Múltiple Opción

Parte 1 Múltiple Opción Cada pregunta de la parte múltiple opción contestada correctamente tiene un valor de 1,5 puntos. Cada pregunta incorrecta de la múltiple opción resta 0,5 puntos. Esta parte consta de 25 preguntas por lo

Más detalles

Soluciones Ejercicios Tema 3

Soluciones Ejercicios Tema 3 1 Soluciones Ejercicios Tema 3 Germán Moltó gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Solución Ejercicio

Más detalles

Diseño estructurado 3ª edición (2000)

Diseño estructurado 3ª edición (2000) Unidades prácticas de Ingeniería del Software Diseño estructurado 3ª edición (2000) Facultad de Informática diseñando el software El diseño estructurado es un método de diseño de software concebido por

Más detalles

Resumen Lenguaje Java

Resumen Lenguaje Java Resumen Lenguaje Java Métodos (Subprogramas) Tipos de Métodos: con resultado y tipo void Definición 1. Método con resultado, retorna un solo valor, equivalente a los subprogramas tipo función tipo_de_dato_a_retornar

Más detalles

Tema 4: Estructuras de Control Estructura y Contenidos

Tema 4: Estructuras de Control Estructura y Contenidos Tema 4: Estructuras de Control Estructura y Contenidos 4.1. ESTRUCTURA SECUENCIAL. 4.2. ESTRUCTURAS DE SELECCIÓN. 4.2.1. Selección simple ( if ). 4.2.2. Selección binaria ( if... ). 4.2.3. Selección múltiple

Más detalles

Tutorial básico del entorno de desarrollo Eclipse.

Tutorial básico del entorno de desarrollo Eclipse. Tutorial básico del entorno de desarrollo Eclipse. Arrancar Eclipse. Después de descomprimir la aplicación, dar doble clic sobre el ícono ejecutable para arrancar la aplicación. En caso de que se presente

Más detalles

Tema 2. Software. Informática (1º Ingeniería Civil) jcarmur@unex.es

Tema 2. Software. Informática (1º Ingeniería Civil) jcarmur@unex.es Tema 2. Software Informática (1º Ingeniería Civil) Curso 2011/2012 Javier Carmona Murillo jcarmur@unex.es Índice Introducción. Programas e instrucciones. Tipos y estructuras de datos. Algoritmos. Proceso

Más detalles

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º 1. Ejercicio (1 punto) Dado el array A={8, 3, 7, 1, 4, 9, 5, 2, 6 Describir cual es el estado del array A después de cada paso principal del algoritmo: InsertionSort. {8, 3, 7, 1, 4, 9, 5, 2, 6 {3, 8,

Más detalles

Notación UML para modelado Orientado a Objetos

Notación UML para modelado Orientado a Objetos 1 Notación UML para modelado Orientado a Objetos 2 Notación UML para modelado Orientado a Objetos Índice 1.1. Qué es UML?.. 3 1.2. Por qué interesa UML en la asignatura de Programación Orientada a Objetos?3

Más detalles

Práctica 2: Simón dice

Práctica 2: Simón dice Práctica 2: Simón dice Fecha de entrega: 31 de enero de 2016 0.- Descripción del juego (Wikipedia.org) Simon dice es un juego electrónico, creado por Ralph Baer, que consiste en reproducir una secuencia

Más detalles

Apuntes de Algoritmos y Estructuras de Datos, Programación III, Fac. de Informática UNLP. Alejandro Santos. 7 de agosto de 2012. 1.

Apuntes de Algoritmos y Estructuras de Datos, Programación III, Fac. de Informática UNLP. Alejandro Santos. 7 de agosto de 2012. 1. Apuntes de Algoritmos y Estructuras de Datos, Programación III, Fac. de Informática UNLP Índice Alejandro Santos 7 de agosto de 2012 1. Introducción 4 2. Tiempo de Ejecución 5 2.1. Análisis Asintótico

Más detalles

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009 Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier

Más detalles

Introducción al lenguaje Java

Introducción al lenguaje Java Tipo de entrega: Fecha límite: Lugar: Introducción al lenguaje Java por grupos de prácticas sesión de laboratorio Atenea Objetivos de la práctica: Escribir aplicaciones simples en Java Utilizar el entorno

Más detalles

Curso 2010-2011. Informática Lección 2. Introducción a la programación en Java

Curso 2010-2011. Informática Lección 2. Introducción a la programación en Java Fundamentos de Informática Lección 2. Introducción a la programación en Java Curso 2010-2011 Pedro Álvarez y José Ángel Bañares 24/09/2010. Dpto. Informática e Ingeniería de Sistemas. Índice de contenidos

Más detalles

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS CONTENIDOS 1. Introducción a las cadenas 2. Definición 3. Declaración de cadenas 4. Inicialización de cadenas 5. Escritura y Lectura de datos tipo cadena 6. Funciones de manipulación de cadenas 7. Arrays

Más detalles