UNIDAD 2 DESARROLLO DE LOGICA ALGORITMICA ALGORITMICA 2.1. METODOLOGÍA PARA PARA LA SOLUCIÓN DE PROBLEMAS. La metodología que se utiliza para resolver problemas de computacionales consta de 5 etapas que garantizan un resultado correcto a cualquier problema.
IDENTIFIACION DEL PROBLEMA. Esta es una fase muy importante en la metodología, pues de esta fase depende el desar desarro rollo llo corre correct cto o de la soluc solución ión de nues nuestro tro probl problema ema.. Un probl problema ema bien bien delimitado es una gran ayuda para que el proceso general avance bien, si no tenemos bien definido el problema provocara desvíos conceptuales que serán difíciles de remediar. En esta etapa es fundamental el análisis de la información inicial entrada! con el fin de distinguir los datos pertinentes de los que no lo son, de esta manera se puede elegir la estructura más conveniente para las posibles soluciones.
PLANTAMIENTO DE LAS ALTERNATIVAS DE SOLUCIÓN. Una Una vez que "alla "allas s defin definid ido o el probl problema ema y de "aber "aber anal analiza izado do los datos datos de entrada, el proceso continua con el análisis de las alternativas de solución. #or lo general los problemas pueden resolverse por varias vías. Es conveniente tratar de plat platea earr la mayo mayorr cant cantid idad ad de alte altern rnat ativ ivas as de solu soluci ción ón posi posibl bles es,, con con esto esto aumentamos las probabilidades de encontrar la solución más optima.
ELECCION ELECCIO N DE UNA ALTERN ALTERNA ATIVA. TIVA. Una vez que tengamos varias posibles soluciones es necesario pasar a otra etapa, la elecc elección ión de la me$or me$or entre entre todas todas las posib posibili ilida dades des.. Esta Esta fase fase es igual igual de importante porque aquí elegiremos la me$or posible solución y de esta dependerá el avance final "asta la solución. %e debe de elegir la alternativa que sea más adecuada para la solución del problema, tomando en cuanta qu& características tiene el problema y que características deberá tener la solución, así como los elementos, los datos o información con la que cuentas.
DESARROLLO DE LA SOLUCIÓN. 'espu&s de decidir cuál es la me$or alternativa de todas se llega a la etapa de la solución. En esta etapa, y a aporte de los datos de entrada relacionaos con la me$or alternativa de solución seleccionada, seleccionada, se aplican las operaciones operaciones necesarias para solucionar el problema. %i la alternativa es la optima llevara a la solución desea da que fue prevista en la identificación del problema. El desarrollo de la
solución deben de ser evaluadas para que sean las mas optimas, es decir este desarrollo debe de llegar a la solución por el camino más corto y ser eficaz.
EVALUACIÓN DE LA SOLUCIÓN. Luego de "aber desarrollado la solución queda aun una etapa, que es la de evaluar la solución. En esta fase es necesario pulir los procesos que nos lleva a la solución para me$orarlos y sean mas óptimos en encontrar la solución, ya que el algoritmo mas eficiente es aquel que llega a la solución desea con menos procedimientos posibles.
Diseño del l!o"i#$o En la fase de análisis, se determina qu& "ará el programa. En la etapa de dise(o se determina cómo "ará el programa la tarea solicitada. Los m&todos más eficaces para el proceso de dise(o se basan en el conocido divide y vencerás. Es decir, la resolución de un problema comple$o se realiza dividiendo el problema en subproblemas y &stos a su vez, en otros de nivel más ba$o. Este m&todo se conoce t&cnicamente como dise(o descendente top)do*n! o modular. +etodología para la resolución de problemas a trav&s de la computadora. El proceso de revisión de la secuencia lógica del programa y de enlazar cada una de las partes, se conoce como refinamiento sucesivo o por pasos. El proceso que convierte los resultados del análisis del problema en un dise(o modular con refinamientos sucesivos que permitan una posterior traducción a un lengua$e de programación se denomina dise(o del algoritmo. El dise(o del algoritmo es independiente del lengua$e de programación en el que se vaya a codificar posteriormente.Las "erramientas más utilizadas para dise(ar algoritmos son -'iagramas de flu$o -#seudocódigo -'iagramas )%
Di!"$s de %l&'o Un diagrama de flu$o flo*c"art! es una representación gráfica de un algoritmo. En ella, se muestra la secuencia de pasos del algoritmo representados por una serie de símbolos que tienen un significado particular. Estos diagramas utilizan símbolos con significados bien definidos que representan los pasos del algoritmo, y representan el flu$o de e$ecución mediante flec"as que conectan los puntos de inicio y de t&rmino. +etodología para la resolución de problemas a trav&s de la computadora. %u correcta construcción es sumamente importante porque , a partir del mismo se escribe un programa en alg/n Lengua$e de #rogramación. %i el
'iagrama de 0lu$o está completo y correcto, el paso del mismo a un Lengua$e de #rogramación es relativamente simple y directo. Los símbolos utilizados "an sido normalizados por el 1nstituto orteamericano de ormalización 2%1!, y los más frecuentemente empleados son los siguientes
Pse&do()di!o
El pseudocódigo falso lengua$e! es una descripción de alto nivel de un algoritmo que emplea una mezcla de lengua$e natural con algunas convenciones sintácticas propias de lengua$es de programación, como asignaciones, ciclos y condicionales. Es utilizado para describir algoritmos en libros y publicaciones científicas, y como producto intermedio durante el desarrollo de un algoritmo. El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementación. E$emplo leer x si x>5 entonces imprimir “mayor de 5” si no entonces imprimir “no mayor de 5” fin si
Di!"$s N*S +Nssi , S(-eide"$/ El diagrama )% o tambi&n conocido como diagrama de 3"apin es una t&cnica de especificación de algoritmos que combina la descripción te4tual, propia del pseudocódigo, con la representación gráfica del diagrama de flu$o. El diagrama ) % cuenta con un con$unto limitado de símbolos para representar los pasos del algoritmo, por ello se apoya en e4presiones del lengua$e natural sin embargo, dado que el lengua$e natural es muy e4tenso y se presta para la ambig6edad, solo se utiliza un con$unto de palabras, a las que se denomina palabras reservadas.Las palabras reservadas más utilizadas son 1nicio, 0in, Leer, Escribir, +ientras, 7epita, 8asta, #ara, 1ncrementar, 8acer, 0unción99
2.2.METODOLOGÍA DE DESARROLLO DE SOFT0ARE Las metodologías de desarrollo de soft*are son un con$unto de procedimientos, t&cnicas y ayudas a la documentación para el desarrollo de productos soft*are. Es como un libro de recetas de cocina, en el que se van indicando paso a paso todas las actividades a realizar para lograr el producto informático deseado, indicando además qu& personas deben participar en el desarrollo de las actividades y qu& papel deben de tener. 2demás detallan la información que se debe producir como resultado de una actividad y la información necesaria para comenzarla. 2ctualmente es imprescindible considerar los riesgos, aunque "abitualmente las empresas, no "an sido concienciadas de los riesgos in"erentes al procesamiento
de la información mediante ordenadores, a lo que "an contribuido, a veces, los propios responsables de informática, que no "an sabido e4plicar con la suficiente claridad las consecuencias de una política de seguridad insuficiente o incluso ine4istente. #or otro lado, debido a una cierta deformación profesional en la aplicación de los criterios de coste:beneficio, el directivo desconocedor de la informática no acostumbra a autorizar inversiones que no lleven implicito un beneficio demostrable, tangible y mensurable.
Las t&cnicas indican cómo debe ser realizada una actividad t&cnica determinada identificada en la metodología. 3ombina el empleo de unos modelos o representaciones gráficas $unto con el empleo de unos procedimientos detallados. %e debe tener en consideración que una t&cnica determinada puede ser utilizada en una o más actividades de la metodología de desarrollo de soft*are. 2demás se debe tener muc"o cuidado cuando se quiere cambiar una t&cnica por otra.
T(i(s de Diseño Mod&l" Las siguientes t&cnicas se derivan directamente de la #rogramación +odular.
M#odo Des(ede#e +To*Do3/ ;ambi&n conocido como de arriba a aba$o consiste en establecer una serie de niveles de mayor a menor comple$idad que den solución al problema. Luego se crea una relación entre las etapas de la estructuración de forma que una etapa $erárquica y su inmediato inferior se relacionen mediante una interfaz claramente definida de entradas y salidas de información. El ;op)'o*n es muy popular por ser metodológico para la ense(anza de la programación, por favorecer la rápida creación de una estructura de dise(o inicial fle4ible y fácil de comprender y por ser muy /til en la solución de problemas comple$os. Esencialmente consiste en crear una estructura $erárquica de tipo arbórea, en la que los niveles superiores pró4imos a la raíz enuncian el problema a groso modo, mientras que seg/n vamos descendiendo por la estructura, vamos entrando en mayor detalle, "asta llegar a las "o$as del árbol, que representan las instrucciones simples en que se descompone el problema.
M#odo As(ede#e +Bo##o$*U/ El dise(o ascendente se refiere a la identificación de aquellos procesos que necesitan computarizarse conforme vayan apareciendo, su análisis como sistema y su codificación, o bien, la adquisición de paquetes de soft*are para satisfacer el problema inmediato.
3uando la programación se realiza internamente y se "ace un enfoque ascendente, es difícil llegar a integrar los subsistemas al grado tal de que el desempe(o global sea fluido. Los problemas de integración entre los subsistemas son sumamente costosos y muc"os de ellos no se solucionan "asta que la programación alcanza la fec"a límite para la integración total del sistema. En esta fec"a, ya se cuenta con muy poco tiempo, presupuesto o paciencia de los usuarios, como para corregir aquellas delicadas interfaces, que en un principio, se ignoran.
2unque cada subsistema parece ofrecer lo que se requiere, cuando se contempla al sistema como una entidad global, &ste padece de ciertas limitaciones por "aber tomado un enfoque ascendente. Una de ellas es la duplicación de esfuerzos para accesar el soft*are y más a/n al introducir los datos.
2.4. Fse de I$le$e#(i) Una vez que el algoritmo está dise(ado, representado gráficamente mediante una "erramienta y verificado se debe pasar a la fase de codificación, traducir el algoritmo a un determinado lengua$e de programación que deberá ser completada con la e$ecución y verificación de resultado en el computador.
2.5. P"&e6 7 De&"(i) Los errores "umanos dentro de la programación de computadoras son muc"os y aumentan considerablemente con la comple$idad del problema. El proceso de identificar y eliminar errores, para dar paso a una solución sin errores se le llama depuración. La depuración o prueba resulta una tarea tan creativa como el mismo desarrollo de la solución, por ello se debe considerar con el mismo inter&s y entusiasmo. 7esulta conveniente observar los siguientes principios al realizar una depuración, ya que de este traba$o depende el &4ito de nuestra solución.
Do(&$e#(i) Es la guía o comunicación escrita es sus variadas formas, ya sea en enunciados, procedimientos, dibu$os o diagramas. 2 menudo un programa escrito por una persona, es usado por otra. #or ello la documentación sirve para ayudar a
comprender o usar un programa o para facilitar futuras modificaciones mantenimiento!. La documentación se divide en tres partes - 'ocumentación 1nterna - 'ocumentación E4terna - +anual del Usuario 'ocumentación 1nterna %on los comentarios o mensa$e que se a(aden al código fuente para "acer más claro el entendimiento de un proceso. 'ocumentación E4terna %e define en un documento escrito los siguientes puntos - 'escripción del #roblema - ombre del 2utor - 2lgoritmo diagrama de flu$o o pseudocodigo! - 'iccionario de 'atos - 3ódigo 0uente programa! +anual del Usuario 'escribe paso a paso la manera cómo funciona el programa, con el fin de que el usuario obtenga el resultado deseado.
M#ei$ie#o %e lleva acabo despu&s de terminado el programa, cuando se detecta que es necesario "acer alg/n cambio, a$uste o complementación al programa para que siga traba$ando de manera correcta. #ara poder realizar este traba$o se requiere que el programa este correctamente documentado.