Errores comunes de programacion
Folien in diesem Satz (21)
-
Errores comunes de programación:
- Alumnas:
- Romero Florencia.
- Barrios Daiana.
- Materia: Mantenimiento de Software.
- Profesora: Pasco, Norma.
- Curso: 4º 1ª CS IPP
- Año: 2016
-
- Incluso los programadores más experimentados cometen errores; y conocer cómo depurar una aplicación y encontrar esos errores es una parte importante de la programación. No obstante, antes de obtener información sobre el proceso de depuración, conviene conocer los tipos de errores que deberá buscar y corregir.

-
- Hay distintos tipos de errores y distintas formas de clasificarlos. Los cuatro tipos básicos de errores son: de sintaxis, por proceso no válido, lógicos tipo bucle infinito y lógicos tipo resultado incorrecto. Vamos a centrarnos en los errores lógicos que pueden clasificarse en:
-
Errores lógicos tipo bucle infinito:

- Bildunterschrift: En este flujograma el bucle se estará repitiendo indefinidamente ya que no existe ninguna condición que nos permita finalizar en algún momento.
- Son aquellos que dan lugar a una parada o bloqueo del programa. Incluiremos aquí procesos en realidad no infinitos pero que consumen un tiempo desmedido respecto a lo esperado.
-
Errores lógicos tipo resultado incorrecto:
- No bloquean el flujo del programa, pero dan lugar a un resultado desviado. El grado de desviación escaso puede dificultar su detección y corrección. El ordenador no puede saber que existe un error pues sólo el programador que idea el proceso puede decir si éste es correcto o no.

-
Errores comunes en la programación:
- A continuación, vamos a ver los errores más comunes que se cometen al programar y como solucionarlos algunos de ellos. Estos errores pueden ser independientes al lenguaje de programación que se utiliza:

-
Indizado inadecuado de tablas en bases:

- Los índices en MySQL permiten localizar y devolver registros de una forma sencilla y rápida. El uso inadecuado de ellos puede redundar en pérdida de rendimiento, por lo que conviene saber qué es lo que estamos haciendo.
-
- En programación, una variable no inicializada es una variable que se declara pero no corresponde a un valor definido y conocido antes de su uso. Tendrá algún valor, pero no se puede predecir.
- También, uno de los errores más comunes en lenguajes se produce al cometer errores ortográficos. Por ejemplo, en un programa usamos una variable llamada prueba, y en un punto determinado le asignamos un nuevo valor, pero nos equivocamos y escribimos prubea. El compilador no detecta el error, simplemente crea una nueva variable, y continúa como si todo estuviese bien.
- En el ejemplo vamos a ver que declaramos las variables, pero no las inicializamos:

- Bildunterschrift: Variables declaradas pero no inicializadas.
-
Corrección de variable no inicializada:
- Para solucionar este problema debemos inicializar las variables usando el signo igual ( = ). En el ejemplo vamos a poder ver como las inicializamos a las variables anteriormente declaradas.

- Bildunterschrift: Variables declaradas e inicializadas.
-
Llamar a funciones que no existen:
- En el siguiente ejemplo vamos a ver el mensaje de error que nos muestra el programa al intentar llamar una función que no existe o no está correctamente escrita (imagen 1), y su corrección (imagen 2). El programa utilizado en el ejemplo es C Sharp, y la función que intentamos llamar es ( imprimirestadísticas ) que realiza un resumen de la actividad del programa.
-

- Bildunterschrift: Imagen 1 : Podemos ver que el error consiste en que hemos escrito mal la función, por lo que el programa lo detecta y nos indica el problema que está remarcado con un círculo rojo.
-

- Bildunterschrift: Imagen 2 : Ahora vemos que ya hemos corregido el error cambiando el nombre de la función a una que si existe y a la intentábamos llamar anteriormente, por lo que no se detectan más errores.
-
- Un array es un objeto que nos permite guardar varios elementos de un mismo tipo. Se
- produce un error por exceder el tamaño de un arreglo cuando hay mas elementos o
- valores en las llaves de los que posee el array o del valor máximo que
- declaramos. En el caso de que haya menos valores en las llaves de los que
- declaramos se rellenan los valores que faltan con ceros.

- Bildunterschrift: En este caso se excede el tamaño, ya que solo le dimos a la variable ( a ) el tamaño para introducir solamente ( [2] ) valores y en el ejemplo estamos asignándole 5 valores.
-
Corrección de tamaño de array:

- Para solucionar este problema simplemente debemos declarar la cantidad exacta de valores que vamos a utilizar o más de las que vamos a utilizar, otra posibilidad es declarar el array sin indicar el tamaño y asignarle directamente valores. El tamaño del array se adaptará al tamaño de los valores, como se muestra en la siguiente imagen:
-
Acceder a memoria no permitida:
- Se define como violación de acceso al intento fallido de acceso a información o a programas a los que no se tiene autorización para ver o modificar. Normalmente se produce como resultado de un error de programación, por ejemplo, un puntero descarriado. Otra forma en que podría producirse un "segmentation fault" es con una memoria dañada físicamente, puesto que algún programa escribirá en la memoria, luego intentará acceder a esos datos, pero al tener una falla la memoria, es posible que los datos se hayan borrado, por ende el programa considerará esa dirección de memoria como vacía, con lo que arrojará el error.
-
-
- Un desbordamiento de buffer (del inglés buffer overflow o buffer overrun) es un error de software que se produce cuando un programa no controla adecuadamente la cantidad de datos que se copian sobre un área de memoria reservada a tal efecto (buffer): Si dicha cantidad es superior a la capacidad preasignada, los bytes sobrantes se almacenan en zonas de memoria adyacentes, sobrescribiendo su contenido original, que probablemente pertenecían a datos o código almacenados en memoria. Esto constituye un fallo de programación.
-

- Bildunterschrift: En el siguiente ejemplo se presenta un código fuente en C con un error de programación. Una vez compilado, el programa generará un desbordamiento de buffer si se lo invoca desde la línea de comandos con un argumento lo suficientemente grande.
-

- Bildunterschrift: Este programa puede reescribirse en forma más segura usando la función strncpy de la siguiente manera.
-
- El bloqueo mutuo es el bloqueo permanente de un conjunto de procesos en un sistema concurrente que compiten por recursos del sistema o bien se comunican entre ellos. A diferencia de otros problemas, no existe una solución general para los interbloqueos.
- Los bloqueos mutuos pueden ser evitados si se sabe cierta información sobre los procesos antes de la asignación de recursos. Para que el sistema sea capaz de decidir si el siguiente estado será seguro o inseguro, debe saber por adelantado y en cualquier momento el número y tipo de todos los recursos en existencia, disponibles y requeridos. Existen varios algoritmos para evitar bloqueos mutuos:
- Algoritmo del banquero, introducido por Dijkstra.
- Algoritmo de grafo de asignación de recursos.
- Algoritmo de Seguridad.
- Algoritmo de solicitud de recursos.

-
- Ocurre cuando un bloque de memoria reservada no es liberada en un programa de computación. Comúnmente ocurre porque se pierden todas las referencias a esa área de memoria antes de haberse liberado.
- Dependiendo de la cantidad de memoria perdida y el tiempo que el programa siga en ejecución, este problema puede llevar al agotamiento de la memoria disponible en la computadora.

- Bildunterschrift: RAII soluciona las fugas de memoria relacionando objetos con los recursos adquiridos, y automáticamente liberando los recursos cuando los objetos terminan su vida.
Informationen
- Beschreibung
- ninguno Mantenimiento de software Folienset am Errores comunes de programacion, erstellt von Flor Romero am 04/08/2016.
- Erstellt von
- Flor Romero · Aug 2016
- Aktualisiert
- 16 Aug 2016
- Aufrufe
- 2
- Verlauf
-
- Erstellt von Flor Romero · 4 Aug 2016
- Kopiert von Flor Romero · 4 Aug 2016
- Bewertung