Diagramas de flujo

26
DIAGRAMAS DE FLUJO 1

Transcript of Diagramas de flujo

1

DIAGRAMAS DE FLUJO

2

El proceso de programación es el siguiente: Dado undeterminado problema el programador debe idearuna solución y expresarla usando un algoritmo (aquíes donde entra a jugar); luego de esto, debecodificarlo en un determinado lenguaje deprogramación y por último ejecutar el programa enel computador el cual refleja una solución alproblema inicial. Esto es a grandes rasgos lo quehace el programador de computadores. 

FASE EN RESOLUCIÓN DE PROBLEMAS UTILIZANDO UN COMPUTADOR.

3

Se pueden considerar una serie de fases o pasoscomunes, que generalmente deben seguir todos los

programadores. 

1. ANÁLISIS DEL PROBLEMA Entendido el problema (que se desea obtener del computador), para resolverlo es preciso analizar: 

*Los datos o resultados que se esperan. *Los datos de entrada que nos suministran. *El proceso al que se requiere someter esos datos a fin de obtener los resultados esperados. *Áreas de trabajo, fórmulas y otros recursos necesarios. 

Una recomendación muy práctica es el que nos pongamos en el lugar del computador, y analizar que es necesario que me ordenen y en que secuencia, para poder producir los resultados esperados. También da buenos resultados hacer similitudes con la labor de un empleado que hace el mismo trabajo que deseamos programarle al computador.  

4

2. DISEÑO DEL ALGORITMO Se debe elaborar una algoritmo que refleje paso a paso la resolución del problema.

3. CODIFICACIÓN Una vez que hayamos verificado el diagrama mediante las pruebas de escritorio, codificamos el programa en el lenguaje de computador seleccionado. Esto es, colocamos cada paso del diagrama en una instrucción o sentencia, utilizando un lenguaje que el computador reconoce. 

Todos los lenguajes de programación proveen facilidades para incluir líneas de comentarios en los programas. Estos comentarios aclaran lo que se ordena al computador y facilitan entender el programa. Puesto que estos comentarios no son tenidos en cuenta como instrucciones, y aparecen en los listados del programa, resulta muy conveniente agregar abundantes comentarios a todo programa que codifiquemos. Esto es lo que se denomina Documentación Interna. 

5

4. COMPILACIÓN Utilizamos ahora un programa de computador llamado

Compiladoro Traductor, el cual analiza todo el programa fuente y detectaerrores de sintaxis ocasionados por fallas en la codificación o en

la transcripción. Las fallas de lógica que pueda tener nuestroprograma fuente no son detectadas por el compilador. Cuando

no hay errores graves en la compilación, el compilador traduce cada instrucción del programa fuente a instrucciones propias de la máquina (Lenguaje de Maquina), creando el Programa Objeto.  5. VERIFICACION  Para cerciorarnos de que el diagrama (y/o elpseudocódigo) esta bien, y, para garantizar que el programa quecodifiquemos luego también funcione correctamente, Esconveniente someterlo a una verificación. Esta prueba consisteen que damos diferentes datos de entrada al programa y

seguimosla secuencia indicada en el diagrama, hasta obtener los

resultados.El análisis de estos nos indicará si el diagrama esta correcto o sihay necesidad de hacer ajustes (volver al paso 4).

6

6. DEPURACION. Es el proceso de encontrar los errores del programa y corregir o eliminar dichos errores. Cuando se ejecuta un programa, se pueden producir tres tipos de errores:

1.- Errores de compilación. Se producen normalmente por un uso incorrecto de las reglas del lenguaje de programación y suelen ser errores de sintaxis, por lo tanto la computadora no puede comprender la instrucción, y obviamente no se obtendrá el programa objeto, y el compilador imprimirá una lista de todos los errores encontrados durante la compilación.

2.- Errores de ejecución. Estos errores se producen por instrucciones que las computadoras pueden comprender, pero no ejecutar. Ejemplos de éstos son: una división por cero, y raíces cuadradas de números negativos; por lo que en este caso se detiene la ejecución del programa y se imprime un mensaje de error.

3.- Errores lógicos. Se producen en la lógica del programa y la fuente del error suele ser el diseño del algoritmo. Estos errores son los más difíciles de detectar, ya que el programa puede funcionar y no producir errores de compilación ni ejecución, y solo puede detectarse cuando se advierte un error por la obtención de resultados incorrectos.

7

7. MANTENIMIENTO.El mantenimiento se define como la modificación del programa por medio de actualizaciones, que mejoran al programa,corrigiendo errores o bien actualizándolos para un mejor funcionamiento. Por ello la documentación es sin duda muyImportante para poder llevar a cabo el mantenimiento.

8. DOCUMENTACION.La documentación de un problema consta de las descripcionesde los pasos a dar en el proceso de resolución de un problema. La importancia de la documentación es por su decisiva influenciaen el producto final.Programas pobremente documentados son difíciles de leer, másdifíciles de depurar y casi imposibles de mantener y modificar. Por ello la importancia de la documentación, sin la

documentación es imposible corregir errores futuros o bien cambiar el programa.

8

ALGORITMO.Un algoritmo es un conjunto finito de pasos definidos,estructurados en el tiempo y formulados con base a unconjunto finito de reglas no ambiguas, que proveen unprocedimiento para dar la solución o indicar la falta de esta aun problema en un tiempo determinado.

Las características fundamentales que debe cumplirtodo algoritmo son: Definido: Sin ambigüedad, cada paso del algoritmo debeindicar la acción a realizar sin criterios de interpretación. Finito: Un número específico y numerable de pasos debecomponer al algoritmo, el cual deberá finalizar al

completarlos. Preciso: El tiempo y esfuerzo por cada paso realizadodebe ser preciso, no usando nada más ni nada menos queaquello que se requiera para y en su ejecución.

9

EJEMPLO DE ALGORITMO

10

DISEÑO DEL ALGORITMOEn la etapa de análisis del proceso se determina qué hace elprograma. En la etapa del diseño se determina como hace el programa la tarea solicitada. Los métodos más eficientes

parael proceso de diseño se basan en el conocido de divide yvencerás. Es decir, la resolución de un problema complejo serealiza dividiendo el problema es sub problemas y a continuación dividir estas sub problemas en otros de nivelmás bajo, hasta que puede ser implementado una solución

en el computador. Este método se conoce con el nombre de diseño descendente o modular.

Existen varias técnicas de diseño de algoritmos que permiten

desarrollar la solución al problema planteado, algunas de ellas

son:

11

Algoritmos voraces (greedy): seleccionan los elementos más prometedores del conjunto de candidatos hasta encontrar una solución. En la mayoría de los casos la solución no es óptima.

Algoritmos paralelos: permiten la división de un problema en subproblemas de forma que se puedan ejecutar de forma simultánea en varios procesadores.

Algoritmos probabilísticos: algunos de los pasos de este tipo de algoritmos están en función de valores pseudoaleatorios

Algoritmos determinísticos: El comportamiento del algoritmo es lineal: cada paso del algoritmo tiene únicamente un paso sucesor y otro ancesor.

Algoritmos no determinísticos: El comportamiento del algoritmo tiene forma de árbol y a cada paso del algoritmo puede bifurcarse a cualquier número de pasos inmediatamente posteriores, además todas las ramas se ejecutan simultáneamente.

12

Divide y vencerás: dividen el problema en subconjuntos disjuntos obteniendo una solución de cada uno de ellos para después unirlas, logrando así la solución al problema completo.

Metaheurísticas: encuentran soluciones aproximadas (no óptimas) a problemas basándose en un conocimiento anterior (a veces llamado experiencia) de los mismos.

Programación dinámica: intenta resolver problemas disminuyendo su coste computacional aumentando el coste espacial.

Ramificación y acotación: se basa en la construcción de las soluciones al problema mediante un árbol implícito que se recorre de forma controlada encontrando las mejores soluciones.

Vuelta Atrás (Backtracking): se construye el espacio de soluciones del problema en un árbol que se examina completamente, almacenando las soluciones menos costosas.

13

DIAGRAMAS DE FLUJO. Un diagrama de flujo es una forma esquemática derepresentar ideas y conceptos en relación. A menudo, se utiliza paraEspecificar algoritmos de manera gráfica. Un Diagrama de

Flujo representa laesquematización gráfica de un algoritmo , el cual muestra gráficamente

lospasos o procesos a seguir para alcanzar la solución de un problema . Sucorrecta construcción es sumamente importante porque , a partir del

mismose escribe un programa en algún Lenguaje de Programación. Si

el Diagramade  Flujo está completo y correcto ,el paso del mismo a un Lenguaje deProgramación es relativamente simple y directo. Es importante resaltar

que eldiagrama de Flujo muestra el sistema como una red de procesos

funcionalesconectados entre sí por " Tuberías " y "Depósitos" de datos que permitedescribir el movimiento de los datos a través del Sistema. Este describirá: Lugares de origen y destino de los datos , transformaciones a las que sonsometidos los datos, Lugares en los que se almacenan los datos dentro delsistema , los canales por donde circulan los datos. Además de esto

podemosdecir que este es una representación reticular de un Sistema ,el cual locontempla en términos de sus componentes indicando el enlace entre losmismos.

14

DIAGRAMA DE FLUJO:

Diagrama de flujo sencillo con los pasos a seguir si una lámpara no funciona.

15

OBJETIVO DE UN DIAGRAMA DE FLUJO

•Dotar de una simbología y una metodología comunes paratodos los diagramas, simplificando la interpretación de losmismos .

¿CUANDO SE UTILIZA UN DIAGRAMA DE FLUJO?•Se requiere conocer o mostrar de forma global unproceso.•Se necesita tener un conocimiento básico, comúna un grupo de personas.•Sirve para comparar dos procesos o alternativas.•Se necesita una guía que permita un análisissistemático de un proceso.

16

SIMBOLOS.Los símbolos tienen significados específicos y se conectan

pormedio de flechas que indican el flujo entre los distintos pasos

oetapas. Los símbolos más comunes son : 

17

CARACTERISTICAS DE UN DIAGRAMA DE FLUJO•Presenta información clara, ordenada y concisa de un proceso, •Está formado por una serie de símbolos unidos por flechas•Cada símbolo representa una acción específica•Las flechas entre los símbolos representan el orden de

realización de las acciones•Los símbolos de comienzo y fin aparecen una única vez.

Las siguientes son acciones previas a la realización del diagrama de flujo:

Identificar las ideas principales a ser incluidas en el diagramade flujo. Deben estar presentes el dueño o responsable delproceso, los dueños o responsables del proceso anterior yposterior y de otros procesos interrelacionados, otras partesinteresadas. Definir qué se espera obtener del diagrama de flujo. Identificar quién lo empleará y cómo. Establecer el nivel de detalle requerido. Determinar los límites del proceso a describir.

18

Los pasos a seguir para construir el diagrama de flujo son : Establecer el alcance del proceso a describir. De esta maneraquedará fijado el comienzo y el final del diagrama.Frecuentemente el comienzo es la salida del proceso previo y elfinal la entrada al proceso siguiente. Identificar y listar las principales actividades/subprocesos queestán incluidos en el proceso a describir y su ordencronológico. Si el nivel de detalle definido incluye actividades menores,listarlas también. Identificar y listar los puntos de decisión. Construir el diagrama respetando la secuencia cronológica yasignando los correspondientes símbolos. Asignar un título al diagrama y verificar que esté completo y

describa con exactitud el proceso elegido.

19

Ejemplo: reparación de la computadora

20

Ventajas de los Diagramas de Flujo  Favorecen la comprensión del proceso a través de

mostrarlo como un dibujo. El cerebro humano reconoce fácilmente los dibujos. Un buen diagrama de flujo reemplaza varias páginas de texto.

 Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican los pasos redundantes, los flujos de los reprocesos , los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.

 Muestran las interfases cliente-proveedor y las transacciones que en ellas se realizan, facilitando a los empleados el análisis de las mismas.

 Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso.

21

Tipos de diagramas de flujos Formato vertical: En él el flujo o la secuencia de las

operaciones, va de arriba hacia abajo. Es una lista ordenada de las operaciones de un proceso con toda la información que se considere necesaria, según su propósito.

Formato horizontal: En él, el flujo o la secuencia de las operaciones, va de izquierda a derecha.

Formato panorámico: El proceso entero está representado en una sola carta y puede apreciarse de una sola mirada mucho más rápido que leyendo el texto, lo que facilita su comprensión, aun para personas no familiarizadas. Registra no solo en línea vertical, sino también horizontal, distintas acciones simultáneas y la participación de más de un puesto o departamento que el formato vertical no registra.

Formato Arquitectónico: Describe el itinerario de ruta de una forma o persona sobre el plano arquitectónico del área de trabajo. El primero de los flujogramas es eminentemente descriptivo, mientras que los utilizados son fundamentalmente representativos.

22

Además hay otros tipos de diagramas de flujo, como son:

Diagrama de flujo de 1er nivel•Muestra los pasos principales de un proceso y puede incluirtambién los resultados intermedios de cada paso.

•Se usa por lo general para obtener un panorama básico delproceso e identificar los cambios que se producen en elproceso.

23

Diagrama de flujo de 2ºnivel

•Indica los pasos o actividades de un proceso e incluyendo: puntos de decisión, tareas que se tienen que volver a hacer con frecuencia y almacenamiento de datos.

•Este tipo de diagrama de flujo es útil para examinar áreas del proceso en forma detallada y para buscar problemas o aspectos ineficientes.

24

Diagrama de flujo de ejecución

•Representa en forma gráfica el proceso en términos de qué entidad se ocupa de realizar los pasos.

•Tiene forma de matriz e ilustra los diversos participantes y el flujo de pasos entre estos

25

RECOMENDACIONESA su vez, es importante que al construir diagramas de flujo,

seobserven las siguientes recomendaciones: Evitar sumideros infinitos, burbujas que tienen entradas

pero no salidas. Evitar las burbujas de generación espontánea, que tienen

salidas sin tener entradas, porque son sumamente sospechosas y generalmente incorrectas.

Tener cuidado con los flujos y procesos no etiquetados. Esto suele ser un indicio de falta de esmero, pero puede esconder un error aún más grave: a veces el analista no etiqueta un flujo o un proceso porque simplemente no se le ocurre algún nombre razonable.

26

CONCLUSIONES

Los diagramas de flujo son herramientas que mejoran la explicación de los procesos.

Son útiles en el desarrollo de documentación de sistemas de gestión.

Describen los procesos de forma mas amigable que los instructivos.

Disminuyen la resistencia del personal a utilizar manuales como documentos de referencia.