6.-ANALISIS DE PROBLEMAS

"ANALISIS DE PROBLEMAS"


Un programador es una persona que resuelve problemas, y para llegar a ser un programador eficaz se necesita aprender a resolver problemas de un modo riguroso y sistemático:

  • Definición o análisis del problema: consiste en el estudio detallado del problema. Se debe identificar los datos de entrada, de salida y la descripción del problema.
  • Diseño del algoritmo: que describe la secuencia ordenada de pasos que conduce a la solución de un problema dado: algoritmo.
  • Transformación del algoritmo en un programa (codificación): Se expresa el algoritmo como un programa en un lenguaje de programación.
  • Ejecución y validación del programa.




Análisis del problema

Permalink
  • Definición del problema: Tenemos que entender y comprender la naturaleza del problema, tenemos que dominar los conceptos con los que estamos trabajando y conocer que operaciones hay que realizar para solucionar el problema y obtener la información de salida.
  • Especificación de los datos de entrada: Hay que determinar que datos de entrada necesitamos para resolver el problema.
  • Especificación de los datos de salida: También hay que determinar los datos de salida que van a ofrecer la solución del problema.


Diseño de algoritmosPermalinkDefinición de algoritmo

Permalink
  • Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
  • Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
  • Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea, debe tener un número finito de pasos.


Herramientas de representación de algoritmos

Permalink
  • Un diagrama de flujo es una de las técnicas de representación gráfica de algoritmos más antiguas. Ventajas: permite altos niveles de estructuración y modularización y es fácil de usar. Desventajas: son difíciles de actualizar y se complican cuando el algoritmo es grande.
  • El pseudocódigo, nos permite una aproximación del algoritmo al lenguaje natural y por tanto un a redacción rápida del mismo.



El primer paso, análisis del problema, requiere un estudio a fondo del problema y de todo lo que hace falta para poder abordarlo.

El propósito del análisis de un problema es ayudar al programador (Analista) para llegar a una cierta comprensión de la naturaleza del problema. Una buena definición del problema, junto con una descripción detallada de las especificaciones de entrada/salida, son los requisitos más importantes para llegar a una solución eficaz.

Para realizar el análisis del problema realizamos varios pasos:

A partir de los requerimientos, resultados del análisis, empieza la etapa de diseño donde tenemos que construir un algoritmo que resuelva el problema.

Un algoritmo es un conjunto de acciones que especifican la secuencia de operaciones realizar, en orden, para resolver un problema.

Los algoritmos son independientes tanto del lenguaje de programación como del ordenador que los ejecuta.

Las características de los algoritmos son:

  • Paso 1: Una persona u organización, denominada el cliente, tiene un problema y necesita la construcción de un programa para resolverlo. Para esto contacta una empresa de desarrollo de software que pone a su disposición un programador.
  • Paso 2: El programador sigue un conjunto de etapas, denominadas el proceso, para entender el problema del cliente y construir de manera organizada una solución de buena calidad, de la cual formará parte un programa.
  • Paso 3: El programador instala el programa que resuelve el problema en un computador y deja que el usuario lo utilice para resolver el problema. Fíjese que no es necesario que el cliente y el usuario sean la misma persona. Piense por ejemplo que el cliente puede ser el gerente de producción de una fábrica y, el usuario, un operario de la misma.




Analizar un problema es tratar de entenderlo. Esta etapa busca garantizar que no tratemos de resolver un problema diferente al que tiene el cliente.
Descomponer el problema en sus tres aspectos fundamentales, facilita la tarea de entenderlo: en cada etapa nos podemos concentrar en sólo uno de ellos, lo cual simplifica el trabajo.
Esta descomposición se puede generalizar para estudiar todo tipo de problemas, no sólo se utiliza en problemas cuya solución sea un programa de computador.
Además de entender el problema, debemos expresar lo que entendemos siguiendo algunas convenciones.
Al terminar la etapa de análisis debemos generar un conjunto de documentos que contendrán nuestra comprensión del problema. Con dichos documentos podemos validar nuestro trabajo, presentándoselo al cliente y discutiendo con él.




Comentarios