Programación estructurada
- No permite modelar directamente los conceptos del dominio del problema
-
La separación entre datos (variables) y rutinas (procedimientos y funciones) conduce a la necesidad de utilizar variables globales e implica que las capacidades de encapsulamiento, lo cual, el paradigma propone sean limitadas
- Inflexibilidad: es más difícil introducir cambios porque ello requiere mayores modificaciones en el código que ya está funcionando.
Programación modular
- No se dispone de algoritmos formales de modularidad, por lo que a veces los programadores no tienen claras las ideas de los módulos
- Requiere más memoria y tiempo de ejecución
Programación orientada a objetos
- Cambio en la forma de pensar de la programación tradicional a la orientada a objetos.
- La ejecución de programas orientados a objetos es más lenta.
- La necesidad de utilizar bibliotecas de clases obliga a su aprendizaje y entrenamiento.
Programación concurrente
- Consumos de recursos cuando hay excesos de hilos o procesos
- Dificultad de desarrollo.
- Dificultad de verificación.
- En programas con pocas instrucciones en mas lento
- Si se aplica mal puede llevar a resultados erroneos.
- Los valores inmutables combinados con la recursividad pueden conducir a una reducción en el rendimiento.
- En algunos casos, escribir funciones puras provoca una reducción en la legibilidad del código
- Escribir funciones puras es fácil, pero, combinar las mismas con el resto de la aplicación y las operaciones de E / S es difícil
- Escribir programas en estilo recursivo en lugar de usar bucles para el mismo puede ser una tarea desalentadora
Programaciòn lògica
- Dependiendo del problema a solucionar, la implementación y el motor de inferencia, puede llegar a ser extremadamente ineficiente.
- Pocas y muy específicas áreas de aplicación.
- Existen muy pocas herramientas de depuración, en su mayoría poco efectivas.
- En problemas reales, es poco utilizado.
- Si el programa no contiene suficiente información para responder una consulta la respuesta puede ser una que se preste para malentendidos.
- Inferencia limitada por su base de conocimiento.
Programación paralela
- Mayor consumo de energía
- Mayor dificultad a la hora de escribir programas
- Dificultad para lograr una buena sincronización y comunicación entre las tareas
- Retardos ocasionados por comunicación ente tareas
- Número de componentes usados es directamente proporcional a los fallos potenciales
- Condiciones de carrera:
- Múltiples procesos se encuentran en condición de carrera si el resultado de los mismos depende del orden de su llegada
- Si los procesos que están en condición de carrera no son correctamente sincronizados, puede producirse una corrupción de datos
No hay comentarios:
Publicar un comentario