Metodología para la solución de problemas programables Nosotros efectuamos día a día una serie de pasos, acciones y procedimientos para solucionar problema y esto es de forma natural y casi inconscientemente estos pasos sistemáticos nos sirven para alcanzar nuestros objetivos y de no ser así podemos depurar y mejorar nuestra serie de pasos hasta alcanzar nuestros objetivos. Esto lo hacemos diariamente y una vez resuelto un problema cotidiano empezamos otro, esto ultimo seria lo ideal puesto que en veces iniciamos otro análisis sin concluir el primero. Los problemas programables también exigen realizar una serie de pasos bien definidos para la resolución del problema. Para esto es necesario realizar siete pasos dependientes uno de otro, esta dependencia nos indica que cada paso exige que tengamos mayor cuidado en su elaboración, pues de ello depende el éxito del siguiente paso. Es por eso que seria bueno tomarnos el tiempo suficiente en los primeros pasos para garantizar la resolución del problema. Los siete pasos de la metodología 1. 2. 3. 4. 5. 6. 7. Definición del problema Análisis de la solución Diseño de la solución Codificación Pruebas y depuración Documentación Mantenimiento Definición del problema: Esta etapa es la mas difícil de todo el proceso debido a que se tienen que reconocer las fallas o problemas que se pueden enfrentar para la construcción del proyecto. El enunciado del problema a resolver debe ser claro y completo sin dejar nada suelto, es fundamental conocer y delimitar los alcances del proyecto pues mientras esto no se tiene es imposible continuar con el siguiente paso. Análisis de la solución: En este paso se establecen una serie de preguntas acerca de lo que requiere para la realización del proyecto, de esta forma se determina si se cuenta con los elementos suficientes para llevarlo a cabo, las preguntas que nos debemos de hacer en la fase de análisis son las siguientes. ¿Con que cuento? Cuales son los datos de entrada del proyecto, que datos se tienen que proporcionar, ¿los datos con que cuento son suficientes para la solución del problema? ¿Que hago con esos datos? Después de haber recopilado todos los datos necesarios debemos determinar que hacer con ellos, por ejemplo que formulas, cálculos o procesos deben seguir los datos para convertirse en información que nos lleve a obtener resultados. M.I. Miguel Ángel Morales Almada ¿Que se espera obtener? Después de trabajar con los datos es necesario preguntarse que deseamos obtener y de que forma lo presentaremos, si la información obtenida es suficiente y deseada. Diseño de la solución: una ves realizado los primeros dos pasos se procede al diseño del sistema, en esta fase se procede a diseñar procedimientos precisos para el procesamiento de datos a fin de que los resultados sean correctos, en el diseño se incluye la creación del algoritmo, es recomendable que se realicen pruebas de escritorio una ves diseñado, para determinar su confiabilidad y detectar los errores que se puedan presentar, las pruebas consisten en dar valores a las variables de entrada e ir probando secuencialmente el algoritmo para llegar a la solución del problema, si la solución es satisfactoria se continua con el siguiente paso de lo contrario deberán corregirse errores y volver hacer las pruebas de escritorio al algoritmo hasta los resultados resulten satisfactorios después de esto es conveniente realizar el diagrama de flujo y finalmente el pseudocódigo de ser necesario. Codificación: este paso consiste en escribir la solución del problema, para realizar este paso el programador deberá elegir y aplicar un lenguaje de programación que le resulte mas adecuado para la realización del proyecto, la elección del lenguaje a utilizar dependerá del conocimiento y experiencia con que cuente. El código es una serie detallada de instrucciones reconocibles por la computadora y a esta serie de instrucciones lógicas se le conoce como programa. Pruebas y depuración: es el proceso de identificar los errores que se presentan durante la ejecución del programa, al realizar pruebas a cada uno de los elementos del sistema garantiza su funcionamiento y se detectan resultados no favorables para ello es necesario introducir datos lo mas variados posibles. Al momento de realizar la prueba se deben considerar los siguientes puntos. Tratar de iniciar la prueba con mentalidad saboteadora, casi disfrutando encontrar errores. Sospechar de todos los resultados que arroje la solución. Considerar todas las posibles situaciones que se pudieran presentar al momento de usar el software. Depurar el sistema esto es eliminar los errores que se hayan detectado durante la prueba. Documentación: el sistema debe contemplar una documentación completa para mantenerlo y actualizarlo de manera satisfactoria, la documentación debe estar estandarizada para ahorrar tiempo a la hora de reutilizar el código. A menudo un programa es usado por muchas personas por ello la documentación se debe presentar en tres formas, interna, externa, Manual del sistema y Manual al usuario final. Interna: Consiste en comentario o mensajes que se agregan al código del programa donde se explican ciertas funciones, cálculos o procesos en M.I. Miguel Ángel Morales Almada ocasiones es necesario realizar un manual de programación donde se mencione por que la elección del programa y la lógica utilizada para resolver el problema, este esta dirigido a programadores y diseñadores y es muy útil para dar mantenimiento al software. Externa: también conocida como manual técnico, esta integrada por los siguientes elementos: Descripción del problema, nombre del autor, algoritmo, diagrama de flujo, pseudocódigo y codificación del programa, esto con la finalidad de posteriores adecuaciones al sistema. Manual de sistema: en este manual se menciona las características de hardware o software que se deben de reunir para la implementación del sistema. Manual de usuario: esta dirigido para que el usuario conozca el funcionamiento del sistema y pueda navegar en el sin mayor problema, este manual debe de estar escrito mas claro posible sin usar tecnicismos. Mantenimiento: Se realiza después de terminado el sistema, cuando se ha estado trabajando un tiempo y se detecta que es necesario hacer ajustas, complementarlo o cambios necesario no programados al inicio la documentación oportuna facilita esta tarea. Algoritmo Existen muchas definiciones de lo que es un algoritmo aquí escribo dos de ellas: Conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema. Conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien lo ejecute. Características que los algoritmos deben reunir Precisión: los pasos a seguir en el algoritmo deben ser precisados claramente Determinismo: el algoritmo, dado un conjunto de datos idénticos de entrada siempre debe arrojar los mismos resultados. Finitud: el algoritmo, siempre debe ser de longitud finita independiente de su complejidad. Secciones de un Algoritmo Entrada de datos Procesamiento de Datos M.I. Miguel Ángel Morales Almada Impresión de Resultados Diagrama de Flujo Un diagrama de flujo es la representación grafica del algoritmo, el diagrama de flujo muestra gráficamente los pasos a seguir para alcanzar la solución del problema, su correcta construcción es muy importante puesto que a partir de aquí se escribe el programa en algún lenguaje de programación. Símbolo Símbolos utilizados en los diagramas de flujo Explicación Marca el inicio y el final del diagrama de flujo Lectura de datos Representa un proceso, en su interior se expresan operaciones aritméticas de ser necesario. Símbolo utilizado para la toma de decisiones Toma de decisiones múltiple Impresión de resultados Expresa la dirección del flujo del diagrama Símbolo que expresa conexión dentro de la misma pagina Símbolo que expresa conexión entre paginas diferentes Reglas para la construcción del diagrama de flujo Todo diagrama de flujo detener un inicio y un fin. Las líneas utilizadas para la dirección del flujo del diagrama deben estar rectas, verticales y horizontales. Todas las líneas que se utilizan para indicar la dirección del flujo deben estar conectadas a un símbolo. El diagrama debe ser construido de arriba hacia abajo y de izquierda a derecha. No puede llegar mas de una línea de dirección a un símbolo La notación utilizada en el diagrama de flujo debe ser independiente del lenguaje de programación a utilizar. Si el diagrama de flujo requiere mas de una hoja debe utilizar conectores adecuados e identificarlos. M.I. Miguel Ángel Morales Almada Pseudocódigo El seudocódigo o código falso es una descripción informal de un algoritmo que utiliza las convenciones estructurales de un lenguaje de programación, pero que está diseñado para la lectura humana en lugar de la lectura mediante máquina. Pseudocódigo = Instrucciones + Datos. Tipos de datos Dato: es un atributo o característica de un objeto o individuo Los datos se pueden clasificar constantes (datos que no cambian durante la ejecución del programa) y variables (datos que pueden ir obteniendo diferentes valores durante la ejecución del programa). Datos Numéricos: son valores enteros y reales por ejemplo pi = 3.1416 Alfanuméricos: son datos de tipo carácter (simple) y cadena de caracteres (estructurado) los contenidos pueden ser números, letras o símbolos especiales ejemplo abc, 123, &$% Ordinales: son valores que solo son definidos por el usuario en forma numerada, ejemplo, días=(Lunes, Martes, Miércoles, Jueves, Viernes, Sábado, Domingo). Objetos=(silla, Mesa, Ventana) Lógicos: son datos que solo pueden tomar dos valores falso o verdadero. Gráficos: son valores que tienen una imagen asignados. Conjuntos: es un grupo de datos que poseen características comunes. Registros: son una herramienta poderosa para estructurar datos y organizar información de diferentes tipos bajo el nombre de una sola variable. Arreglos: permiten organizar un numero de elementos relacionados del mismo tipo. M.I. Miguel Ángel Morales Almada