Inicio | Artículos | Cursos | Frases | Libros | Diccionario | Presentaciones | Servicios | Videos Mapa Web | Enlazar | Contactar

CURSO DE INGENIERÍA DEL SOFTWARE
Introducción
Introducción al Curso
Metodología de la Programación
Ingeniería del Software
Calidad del Software
Análisis
Análisis
Especificación de Requisitios Software (ERS)
Diseño
Diseño
Diseño Modular
¿Qué es un Algoritmo?
Pseudocódigo
Diagramas de Flujo (Ordinogramas)
Cualidades de un Algoritmo
Codificación
Codificación
Lenguajes de Programación
Compiladores e Intérpretes
Tipos de Errores
Fases de la puesta a punto de un Programa
Entornos Integrados de Desarrollo (EID)
Depuradores de Código
Pruebas
Pruebas
Mantenimiento
Mantenimiento
Documentación de un Programa
CarlosPes.comCurso de Ingeniería del Software > Cualidades de un Algoritmo

Cualidades de un Algoritmo

¿Qué cualidades tiene que tener un algoritmo?

Para cualquier problema dado no existe una única solución algorítmica; es tarea de la persona que diseña un algoritmo encontrar la solución más óptima, ésta no es otra que aquella que cumple más fielmente las cualidades deseables de todo algoritmo bien diseñado:
  • Finitud. Un algoritmo siempre tiene que finalizar tras un número finito de acciones.
  • Precisión. Todas las acciones de un algoritmo deben estar bien definidas, esto es, ninguna acción puede ser ambigua, sino que cada una de ellas sólo se debe poder interpretar de una única manera. Dicho de otra forma, si el programa que resulta de un algoritmo se ejecuta varias veces con los mismos datos de entrada, en todos los casos se obtendrán los mismos datos de salida.
  • Claridad. Lo normal es que un problema se pueda resolver de distintas formas. Por tanto, una de las tareas más importantes del diseñador de un algoritmo es encontrar la solución más legible, es decir, aquella más comprensible para el ser humano.
  • Generalidad. Un algoritmo debe resolver problemas generales. Por ejemplo, un programa que realice sumas de números enteros deberá servir para realizar sumas de dos números enteros cualesquiera, y no, solamente, para sumar dos números determinados, como pueden ser el 3 y el 5.
  • Eficiencia. La ejecución del programa resultante de codificar un algoritmo deberá consumir lo menos posible los recursos disponibles del ordenador (memoria, tiempo de CPU, etc.).
  • Sencillez. A veces, encontrar la solución algorítmica más eficiente a un problema puede llevar a escribir un algoritmo muy complejo, afectando a la claridad del mismo. Por tanto, hay que intentar que la solución sea sencilla, aun a costa de perder un poco de eficiencia, es decir, se tiene que buscar un equilibrio entre la claridad y la eficiencia. Escribir algoritmos sencillos, claros y eficientes se consigue a base de práctica.
  • Modularidad. Nunca hay que olvidarse del hecho de que un algoritmo puede formar parte de la solución a un problema mayor. Pero, a su vez, dicho algoritmo debe descomponerse en otros, siempre y cuando, esto favorezca a la claridad del mismo.
La persona que diseña un algoritmo debe ser consciente de que todas las propiedades de un algoritmo se transmitirán al programa resultante.
Artículos Interesantes
Artículos de Desarrollo Web
Artículos de Informática
Artículos de Programación
Artículos de SEO
Cursos de Informática
Curso de Diseño de Algoritmos
Curso de Informática Básica
Curso de Ingeniería del Software
Curso de Lenguaje C
Curso de Marketing en Internet
Curso de Turbo Pascal
Curso de Representación de los Datos
Curso de SEO
Curso para Webmasters
Curso Web 2.0
Enlaces Web
Libros de Carlos Pes
36 Pasos Básicos para Desarrollar un Sitio Web
Empezar de Cero a Programar en Lenguaje C
Libros Recomendados
Libros de Analítica Web
Libros de Desarrollo Web
Libros de Java
Libros de Lenguaje C
Libros de Marketing Online
Libros de Pascal (Turbo Pascal)
Libros de SEO
Libros de Visual Basic
Recursos de Informática
Diccionario de Informática
Ejercicios de Programación
Guías de uso de Software
Sintaxis de Lenguajes de Programación
Frases y Citas
Frases de Amistad
Frases de Amor
Frases de Belleza
Frases de Ciencia
Frases de Éxito
Presentaciones Educativas
Recursos Educativos
Servicios
Desarrollo de Sitios Web
Diseño Web
Aplicaciones Web
Marketing Online
Formación y Conferencias
Consultoría
Videos Educativos
Directorio de Enlaces Web
Acerca de Carlos Pes
Bibliotecas
Colaboradores
Contactar
Enlazar
Librerías
Perfiles en Internet
Mapa Web
Blog de Carlos Pes Blog de Carlos Pes
Grupo de Carlos Pes Grupo en Google
Twitter de Carlos Pes Seguir en Twitter
© 2006-2012 CarlosPes.com