Volver a la portadaInformática · 11.° grado de Preuniversitario · Cambiar asignatura
Empezar gratis
11° grado · Informática
Sistemas informáticos · Programación textual

El proceso de desarrollo

Te conviene dominar: Programación textual (9.° grado de Secundaria Básica)
Te conviene dominar: Algoritmos y pensamiento computacional (7.° grado de Secundaria Básica)

Daniela programó en LiveCode una aplicación para controlar las ventas de la merienda en el IPVCE. La probó con su pedido y funcionaba perfecto. El primer día de uso, un compañero del grupo pidió algo con cantidad 0 y la aplicación se trancó. ¿Cómo se organiza el trabajo para que esto no pase, y qué haces cuando igual pasa? Ningún programa nace terminado ni funciona a la primera: entre la idea y el programa confiable hay un proceso con etapas que se repiten. Es el mismo proceso que seguirás en el proyecto integrador del grado, y dominarlo es tan importante como saber escribir código.

El ciclo de desarrollo

Diagrama de flujo del ciclo de desarrollo con las etapas de editar, ejecutar y probar, una decisión sobre si funciona bien, depurar el error y publicar el programa. Editar el código Ejecutar y probar ¿funciona bien? Depurar el error Publicar el programa no sí

En la práctica no se escribe todo el programa y recién después se prueba. Se trabaja con desarrollo incremental: primero una versión mínima que funcione (por ejemplo, que la aplicación solo muestre el menú en una tarjeta de LiveCode), se prueba, y después se agrega una funcionalidad por vez, recorriendo el ciclo en cada una. Si algo falla, el error está en lo último que agregaste, y eso lo hace mucho más fácil de encontrar.

Practica★☆☆Sin empezar
Estas fases del desarrollo de un programa están desordenadas: (a) probar el programa con distintos datos, (b) editar el código fuente, (c) depurar los errores…

Estas fases del desarrollo de un programa están desordenadas: (a) probar el programa con distintos datos, (b) editar el código fuente, (c) depurar los errores encontrados, (d) ejecutar el programa. Ordénalas de forma razonable y explica qué se hace en cada una, teniendo en cuenta que al probar puede ser necesario volver atrás.

Resolver
Practica★☆☆Sin empezar
Explica qué es un «bug» en un programa y qué es depurar. Pon un ejemplo sencillo de error que podría tener el programa de un cajero automático y qué consecuencia tendría…

Explica qué es un «bug» en un programa y qué es depurar. Pon un ejemplo sencillo de error que podría tener el programa de un cajero automático y qué consecuencia tendría para el usuario.

Resolver
Practica★☆☆Sin empezar
La figura muestra el ciclo de trabajo del desarrollo de un programa, pero una de sus etapas está tapada con un signo de interrogación, como se muestra en la figura.…

La figura muestra el ciclo de trabajo del desarrollo de un programa, pero una de sus etapas está tapada con un signo de interrogación, como se muestra en la figura.

Editar el código Ejecutar y probar ¿funciona bien? ? Publicar el programa no sí

Indica qué etapa falta dentro del ciclo, en qué consiste y por qué la flecha de «no» devuelve el trabajo a la edición del código.

Resolver

Tipos de error

Comparación entre error de sintaxis y de lógica: con un fallo de forma en el código el programa no arranca; con un fallo de razonamiento (dividir entre 4 en vez de entre 3) el programa se ejecuta y da 5,25 en lugar de 7. error de sintaxis no arranca media ← (a + b + c / 3 ! error de lógica arranca, resultado erróneo media ← (a + b + c) / 4 5,25 esperado: 7

Un bug es cualquier error de un programa, y depurar es encontrarlo y corregirlo. Si un cajero automático descuenta el monto dos veces, ese es un bug con una consecuencia muy concreta: el usuario pierde dinero.

En LiveCode, el error de sintaxis se avisa al compilar el script o al ejecutar esa línea. Los de ejecución y los de lógica, en cambio, solo se ven al correr el programa.

Practica★★☆Sin empezar
Explica la diferencia entre un error de sintaxis y un error de lógica, con un ejemplo de cada uno en un programa que calcula el promedio de tres notas. ¿Cuál de los dos…

Explica la diferencia entre un error de sintaxis y un error de lógica, con un ejemplo de cada uno en un programa que calcula el promedio de tres notas. ¿Cuál de los dos tipos impide ejecutar el programa y cuál deja ejecutarlo pero da resultados incorrectos?

Resolver

Diseñar casos de prueba

Recta numérica con los casos de prueba: un valor erróneo fuera del rango, dos valores límite en los extremos del rango válido y un valor normal en su interior. erróneo límite normal límite rango de valores válidos

Por ejemplo, para un programa que suma dos números, un caso normal es la entrada 3 y 4 con resultado esperado 7; un caso especial es 0 y -5 con resultado esperado -5.

En el proyecto integrador, el grupo no espera al final para probar: entrega versiones pequeñas que funcionan (primero registrar productos, luego las ventas), las prueba con casos normales, límite y erróneos, y corrige antes de seguir. Si un requisito cambia, solo se ajusta la siguiente versión.

Practica★☆☆Sin empezar
Explica qué es un caso de prueba y escribe dos casos para un programa que suma dos números: uno con valores normales y otro con algún valor especial, indicando la…

Explica qué es un caso de prueba y escribe dos casos para un programa que suma dos números: uno con valores normales y otro con algún valor especial, indicando la entrada y el resultado esperado de cada uno.

Resolver
Practica★★☆Sin empezar
Un programa que divide dos números funciona bien en casi todas las pruebas, pero falla cuando el divisor es 0. Explica qué son los valores límite o casos especiales en…

Un programa que divide dos números funciona bien en casi todas las pruebas, pero falla cuando el divisor es 0. Explica qué son los valores límite o casos especiales en las pruebas, por qué hay que probarlos siempre y cita otros dos valores con los que probarías este programa.

Resolver
Practica★★☆Sin empezar
Para probar un programa que aplica un descuento a personas de 65 años o más, define tres casos de prueba: uno con un valor normal, uno con el valor límite exacto y uno…

Para probar un programa que aplica un descuento a personas de 65 años o más, define tres casos de prueba: uno con un valor normal, uno con el valor límite exacto y uno con un valor erróneo (edad negativa o imposible), con el resultado esperado de cada uno. Justifica tus elecciones.

Resolver
Practica★★★Sin empezar
Diseña un plan de pruebas para un programa que pide dos números y muestra su división: haz una tabla con al menos seis casos de prueba (pares de valores de entrada,…

Diseña un plan de pruebas para un programa que pide dos números y muestra su división: haz una tabla con al menos seis casos de prueba (pares de valores de entrada, incluyendo valores normales, límite y erróneos), el resultado esperado de cada uno y qué debería hacer el programa si la entrada no es válida. Justifica la elección de cada caso.

Resolver
Practica★★★Sin empezar
La intranet del centro educativo implementa un módulo de autenticación con los siguientes requisitos: Nombre de usuario: de 4 a 12 caracteres alfanuméricos, insensible a…

La intranet del centro educativo implementa un módulo de autenticación con los siguientes requisitos:

  • Nombre de usuario: de 4 a 12 caracteres alfanuméricos, insensible a mayúsculas/minúsculas.

  • Contraseña: entre 8 y 16 caracteres, sensible a mayúsculas/minúsculas, con al menos un dígito y un carácter especial.

  • Seguridad: bloqueo temporal de la cuenta durante 15 minutos tras tres intentos fallidos consecutivos.

Diseña un plan de pruebas riguroso mediante una tabla con al menos seis casos de prueba diseñados por ti. Para cada caso debes especificar: identificador, valores de entrada (usuario y contraseña), estado previo del sistema, resultado esperado y qué riesgo específico de lógica, frontera o seguridad estás validando.

Resolver

Técnicas de depuración

Ciclo de depuración: reproducir el fallo, insertar trazas para ver por dónde pasa el programa, corregir la causa y volver a probar con los mismos datos. 1. reproducirel fallo2. trazas: verpor dónde pasa3. corregirla causa4. volver a probary quitar trazas registro: vuelta 1: n = 5 vuelta 2: n = 5 vuelta 3: n = 5 … n no cambia → falta «n ← n − 1» dentro del ciclo
Practica★☆☆Sin empezar
Explica qué es un mensaje de traza o registro (log) en un programa y cómo ayuda a encontrar un error (permite ver por dónde pasó el programa y con qué valores).

Explica qué es un mensaje de traza o registro (log) en un programa y cómo ayuda a encontrar un error (permite ver por dónde pasó el programa y con qué valores).

Resolver
Practica★★☆Sin empezar
Un ciclo de un programa no se detiene nunca. Explica dónde colocarías mensajes de salida temporales para diagnosticarlo (dentro del ciclo, mostrando la variable de…

Un ciclo de un programa no se detiene nunca. Explica dónde colocarías mensajes de salida temporales para diagnosticarlo (dentro del ciclo, mostrando la variable de control en cada vuelta) y qué observarías en esos mensajes para encontrar la causa.

Resolver
Practica★★★Sin empezar
En el sistema de cobro de una cooperativa escolar se ha detectado que, al emitir la factura mensual, el total a pagar de algunos socios es erróneo. Dispones de los…

En el sistema de cobro de una cooperativa escolar se ha detectado que, al emitir la factura mensual, el total a pagar de algunos socios es erróneo. Dispones de los siguientes registros del sistema:

  • Socio 101: 2 compras de 15,00 dólares -> Total cobrado: 30,00 dólares (esperado: 30,00 dólares).

  • Socio 102: 1 compra de 50,00 dólares con descuento promocional del 10 % (5,00 dólares) y recargo por gastos de gestión de 3,00 dólares -> Total cobrado: 47,50 dólares (esperado: 48,00 dólares).

  • Socio 103: 1 compra de 20,00 dólares y devolución de 1 artículo de 5,00 dólares (-5,00 dólares) -> Total cobrado: 25,00 dólares (esperado: 15,00 dólares).

  • Formula una hipótesis justificada sobre el fallo lógico o de orden de operaciones que explica el error en el Socio 102 y en el Socio 103.

  • Diseña la estrategia de depuración para confirmar tus hipótesis: indica qué datos de prueba mínimos introducirías para aislar el fallo, en qué puntos del flujo situarías puntos de interrupción (breakpoints) y qué variables concretas deberías inspeccionar paso a paso.

Resolver

Modularizar, documentar y buenas prácticas

Esquema de modularización: una función gigante de 400 líneas se divide en cuatro funciones independientes: leer_datos, validar_datos, calcular_resultado y mostrar_resultado. función gigante de 400 líneas se divide en leer_datos validar_datos calcular_resultado mostrar_resultado cada función, una tarea concreta

Dos refactorizaciones típicas: renombrar variables (x pasa a precio) y extraer una función cuando el mismo cálculo está copiado en varios lugares (el cálculo del total con descuento se escribe una sola vez y se llama donde haga falta). No hace falta formalizarlo más: alcanza con que el código quede más claro y siga haciendo lo mismo.

Buenas prácticas y documentación

  • Nombres claros: que digan qué guarda la variable o qué hace la función.

  • Comentarios útiles: explican el porqué de una decisión, no repiten lo que ya dice el código.

  • Documentación: acompaña al programa y explica como mínimo qué hace y cómo se usa. Sin ella, cuando alguien nuevo se suma al equipo (o tú mismo vuelves al proyecto meses después) hay que adivinar todo, y el programa «envejece» mal.

Trabajo en equipo y control de versiones

Cuando varias personas trabajan en el mismo proyecto, modularizar permite repartir el trabajo en partes independientes y probarlas por separado. Para no pisarse, se usa un sistema de control de versiones como Git (software libre). Cada cambio se guarda como una versión (versión 1, versión 2, versión 3…), así que si la última versión funciona peor que la anterior, puedes volver atrás. En el proyecto integrador del grado, el trabajo en equipo se reparte así por módulos.

Practica★☆☆Sin empezar
Los programas tienen versiones (1.0, 1.1, 2.0...). Explica para qué sirve guardar versiones del código y qué puedes hacer si la última versión funciona peor que la…

Los programas tienen versiones (1.0, 1.1, 2.0...). Explica para qué sirve guardar versiones del código y qué puedes hacer si la última versión funciona peor que la anterior.

Resolver
Practica★☆☆Sin empezar
La documentación acompaña al programa. Explica qué dos cosas debería explicar como mínimo (qué hace el programa y cómo se usa) y por qué un programa sin documentar…

La documentación acompaña al programa. Explica qué dos cosas debería explicar como mínimo (qué hace el programa y cómo se usa) y por qué un programa sin documentar «envejece» mal cuando trabaja un equipo.

Resolver
Practica★★☆Sin empezar
Explica qué es la modularización de un programa (dividirlo en funciones o módulos) y analiza dos ventajas que aporta cuando el desarrollo lo hace un equipo de varias…

Explica qué es la modularización de un programa (dividirlo en funciones o módulos) y analiza dos ventajas que aporta cuando el desarrollo lo hace un equipo de varias personas: piensa en el reparto del trabajo, en las pruebas y en la localización de errores.

Resolver
Practica★★☆Sin empezar
Explica qué es refactorizar (mejorar el código sin cambiar lo que hace) y describe dos refactorizaciones típicas (renombrar variables con nombres claros, extraer una…

Explica qué es refactorizar (mejorar el código sin cambiar lo que hace) y describe dos refactorizaciones típicas (renombrar variables con nombres claros, extraer una función a partir de código repetido), con un ejemplo de cada una.

Resolver
Practica★★☆Sin empezar
Un fragmento de código usa las variables x, y2 y zzz para guardar el precio, el impuesto y el total. Reescribe esos nombres de forma significativa y explica por qué la…

Un fragmento de código usa las variables x, y2 y zzz para guardar el precio, el impuesto y el total. Reescribe esos nombres de forma significativa y explica por qué la elección de nombres es una herramienta contra los errores (el código se autodocumenta).

Resolver

Resumen

Vuelve al principio: la aplicación de Daniela falló con cantidad 0 porque solo se probó con un pedido normal. Con casos límite y erróneos, y con el ciclo repetido en cada paso, ese fallo aparece antes de publicar.

Ver todos los ejercicios de este apartado