técnicas de diseño detallado

23

Click here to load reader

Upload: guestdf1874

Post on 30-Jun-2015

30.371 views

Category:

Business


6 download

DESCRIPTION

Diseño Detallado.

TRANSCRIPT

Page 1: Técnicas de Diseño Detallado

Diseño Detallado

       Proceso de descripción más detallado de la lógica del proceso y de las estructuras de datos.

Como podemos observar en la definición anterior, el diseño detallado es la descripción aun mas detallada del concepto referente al software a desarrollar, y esto lo lograremos basandonos en tres puntos principales, algoritmos, pseudocodigos y diagramas de flujo, los cuales nos daran una vision mas amplia de lo que nuestro sistema va a realizar.

Page 2: Técnicas de Diseño Detallado

El término algoritmo no está exclusivamente relacionado con las matemáticas o informática. En realidad, en la vida cotidiana empleamos algoritmos en multitud de ocasiones para resolver diversos problemas. Ejemplos son el uso de una lavadora (se siguen las instrucciones), para cocinar (se siguen los pasos de la receta). También, existen ejemplos de índole matemática, como el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para calcular el máximo común divisor de dos enteros positivos, o incluso el método de Gauss para resolver sistemas de ecuaciones.

Page 3: Técnicas de Diseño Detallado

Un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar una tarea o resolver un problema. De un modo más formal, un algoritmo es una secuencia finita de operaciones realizables, no ambiguas, cuya ejecución da una solución de un problema.

Implementación Los algoritmos no se implementan sólo como

programas, algunas veces en una red neuronal biológica (por ejemplo, el cerebro humano implementa la aritmética básica o, incluso, una rata sigue un algoritmo para conseguir comida), también en circuitos eléctricos, en instalaciones industriales o maquinaria pesada.

Page 4: Técnicas de Diseño Detallado

Algunos escritores restringen la definición de algoritmo a procedimientos que deben acabar en algún momento, mientras que otros consideran procedimientos que podrían ejecutarse eternamente sin pararse, suponiendo el caso en el que existiera algún dispositivo físico que fuera capaz de funcionar eternamente. En este último caso, la finalización con éxito del algoritmo no se podría definir como la terminación de éste con una salida satisfactoria, sino que el éxito estaría definido en función de las secuencias de salidas dadas durante un periodo de vida de la ejecución del algoritmo. Por ejemplo, un algoritmo que verifica que hay más ceros que unos en una secuencia binaria infinita debe ejecutarse siempre para que pueda devolver un valor útil. Si se implementa correctamente, el valor devuelto por el algoritmo será válido, hasta que evalúe el siguiente dígito binario.

Page 5: Técnicas de Diseño Detallado

La palabra algoritmo proviene del nombre del matemático persa llamado Abu Abdullah Muhammad bin Musa al-Khwarizmi que vivió entre los siglos VIII y IX. Su trabajo consistió en preservar y difundir el conocimiento de la antigua Grecia y de la India. Sus libros eran de fácil comprensión, he aquí que su principal valor no fuera el de crear nuevos teoremas o nuevas corrientes de pensamiento, sino el simplificar las matemáticas a un nivel lo suficientemente bajo para que pudiera ser comprendido por un amplio público. Cabe destacar, como él señaló las virtudes del sistema decimal indio, (en contra de los sistemas tradicionales árabes) y como explicó que mediante una especificación clara y concisa de cómo calcular sistemáticamente, se podrían definir algoritmos que fueran usados en dispositivos mecánicos en vez de las manos (por ejemplo, ábacos). También estudió la manera de reducir las operaciones que formaban el cálculo. Es por esto que aun no siendo él el creador del primer algoritmo, el concepto lleva aunque no su nombre, sí su pseudónimo.

Page 6: Técnicas de Diseño Detallado

Así, de la palabra algoritmo que originalmente hacía referencia a las reglas de uso de la aritmética utilizando dígitos arábigos, se evolucionó a la palabra latina, derivación de al-Khwarizmi, algobarismus, y luego más tarde mutó en algoritmo en el siglo XVIII. La palabra ha cambiado de forma que en su definición se incluyen a todos los procedimientos finitos para resolver problemas.

Ya en el siglo XIX, se produjo el primer algoritmo escrito para un computador. La autora fue Ada Byron en cuyos escritos se detallaban la máquina analítica en 1842. Es por ello que es considerada por muchos como la primera programadora aunque, desde Charles Babbage nadie completó su máquina, por lo que el algoritmo nunca se implementó.

Page 7: Técnicas de Diseño Detallado

Algoritmos greedy: Informalmente, podemos decir que este tipo de algoritmos selecciona los elementos del conjunto de candidatos en un determinado orden hasta encontrar una solución; es decir, calcula la solución al problema tomando en cada paso la opción más prometedora. En la mayoría de los casos la solución no es óptima.Algoritmos paralelosAlgoritmos probabilísticos

Page 8: Técnicas de Diseño Detallado

Divide y vencerás(divide & conquer, en inglés): este tipo de algoritmos particionan el problema en subconjuntos disjuntos obteniendo una solución de cada uno de ellos, para luego después unirla logrando así, la solución al problema completo.Heurísticas: algoritmos que encuentran soluciones a problemas basándose en un conocimiento anterior (a veces llamado experiencia) de los mismos.Programación dinámica

Page 9: Técnicas de Diseño Detallado

Ramificación y acotación: también conocidos como ramificación y poda, branch and bound. Este método 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: al igual que el método ramificación y acotación, vuelta atrás (backtracking, en inglés) se construye el espacio de soluciones del problema en un árbol que se examina completamente, almacenando las soluciones menos costosas.

Page 10: Técnicas de Diseño Detallado

La realización de algoritmos es natural e innata en el hombre y en la mayoría de los casos es de tipo inconsciente, en otras palabras, las personas suelen resolver problemas sin tener que recurrir a la aplicación de cierto algoritmo. Los ejercicios fueron divididos en dos grupos, en el primer grupo se encuentran los algoritmos correspondientes a diferentes actividades, los pasos de estos algoritmos fueron marcados con números y después se utilizaron las figuras lógicas hasta llegar al último paso, el cual fue planteado por el mismo niño. El segundo grupo de ejercicios está compuesto por algoritmos y diagramas de flujo de los programas que realizaron los niños en el curso, datos del ejercicio se hicieron utilizando las instrucciones del lenguaje Logo. Los ejercicios fueron divididos en dos grupos, en el primer grupo se encuentran los algoritmos correspondientes a diferentes actividades, los pasos de estos algoritmos fueron marcados con números y después se utilizaron las figuras lógicas hasta llegar al último paso, el cual fue planteado por el mismo niño. El segundo grupo de ejercicios está compuesto por algoritmos y diagramas de flujo de los programas que realizaron los niños en el curso, datos del ejercicio se hicieron utilizando las instrucciones del lenguaje Logo.

Page 11: Técnicas de Diseño Detallado

1.-Descripción Narrada2.-Pseudocódigo3.-Diagramas de Flujo4.-Diagramas N- S (Nassi-Schneiderman o de Chapin)

Page 12: Técnicas de Diseño Detallado

Este algoritmo es caracterizado porque sigue un proceso de ejecución común y lógico, describiendo textualmente paso a paso cada una de las actividades a realizar dentro de una actividad determinada.

1.- me leventeDepues me fui a

bañar

Page 13: Técnicas de Diseño Detallado

1. Levantarse2. Bañarse3. Vestirse4. Desayunar5. Cepillarse los dientes6. Salir de casa7. Tomar el autobús8. Llegar al ITCA9. Buscar el aula10. Ubicarse en un asiento

Page 14: Técnicas de Diseño Detallado

Pseudo = falso. El pseudo código no es realmente un código sino una imitación y una versión abreviada de instrucciones reales para las computadoras. Es una técnica para diseño de programas que permite definir las estructuras de datos, las operaciones que se aplicarán a los datos y la lógica que tendrá el programa de computadora para solucionar un determinado problema. Utiliza un pseudolenguaje muy parecido a nuestro idioma, pero que respeta las directrices y los elementos de los lenguajes de programación. Se concibió para superar las dos principales desventajas de los flujogramas: lento de crear y difícil de modificar sin un nuevo redibujo.

Page 15: Técnicas de Diseño Detallado

inicioleer (a, b, c, d)producto <-- (a * b * c * d)suma <-- (a + b + c + d)media <-- (a + b + c + d) / 4escribir (producto, suma, media)fin

Page 16: Técnicas de Diseño Detallado

Son una herramienta que favorece la programación estructurada y reúne características gráficas propias de diagramas de flujo y lingüísticas propias de pseudocódigos. Constan de una serie de cajas contiguas que se leerán siempre de arriba-abajo y sus estructuras lógicas son las siguientes:

Page 17: Técnicas de Diseño Detallado
Page 18: Técnicas de Diseño Detallado

Son la representación gráfica de la solución algorítmica de un problema. Para diseñarlos se utilizan determinados símbolos o figuras que representan una acción  dentro del procedimiento. Utilizan unos símbolos normalizados, con los pasos del algoritmo escritos en el símbolo adecuado y los símbolos unidos con flechas, denominadas líneas de flujo, que indican el orden en que los pasos deben ser ejecutados.

Page 19: Técnicas de Diseño Detallado

Para su elaboración se siguen ciertas reglas: *Se escribe de arriba hacia abajo y de izquierda a

derecha *Siempre se usan flechas verticales u horizontales, jamás curvas*Evitar cruce de flujos*En cada paso expresar una acción concreta

Secuencia de flujo normal en una solución de problema *Tiene un inicio*Una lectura o entrada de datos*El proceso de datos*Una salida de información*Un final

*Simbología para diseñar flujogramas.

Page 20: Técnicas de Diseño Detallado
Page 21: Técnicas de Diseño Detallado

VENTAJAS DE USAR FLUJOGRAMAS *Rápida comprensión de las relaciones*Análisis efectivo de las diferentes secciones del programa*Pueden usarse como modelos de trabajo en el diseño de nuevos programas o sistemas*Comunicación con el usuario*Documentación adecuada de los programas*Codificación eficaz de los programas*Depuración y pruebas ordenadas de programas

DESVENTAJAS DE LOS FLUJOGRAMAS *Diagramas complejos y detallados suelen ser laboriosos en su planteamiento y diseño*Acciones a seguir tras la salida de un símbolo de decisión, pueden ser difíciles de *seguir si existen diferentes caminos *No existen normas fijas para la elaboración de los diagramas de flujo que permitan incluir todos los detalles que el usuario desee introducir.

Page 22: Técnicas de Diseño Detallado
Page 23: Técnicas de Diseño Detallado

http://www.mitecnologico.com/Main/Dise%f1oAlgoritmicoes.wikipedia.org/wiki/Algoritmohttp://www.mitecnologico.com/Main/Dise%f1oAlgoritmicoDeFuncioneshttp://www.mailxmail.com/curso/informatica/programacionestructurada/capitulo8.htm