Técnicas de Diseño Detallado.
Upcoming SlideShare
Loading in...5
×
 

Técnicas de Diseño Detallado.

on

  • 38,942 views

Diseño Detallado.

Diseño Detallado.

Statistics

Views

Total Views
38,942
Views on SlideShare
37,902
Embed Views
1,040

Actions

Likes
4
Downloads
385
Comments
0

4 Embeds 1,040

http://moodle.usbcali.edu.co 881
http://www.slideshare.net 155
http://linabejarano.blogspot.com 3
http://miblogxiomara.blogspot.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Técnicas de Diseño Detallado. Técnicas de Diseño Detallado. Presentation Transcript

    • 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.
    • 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.
    • 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.
    • 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.
    • 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.
    • 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ó.
    • 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 paralelos
    • Algoritmos probabilísticos
    • 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
    • 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.
    • 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.
    • 1.- Descripción Narrada 2.- Pseudocódigo 3.- Diagramas de Flujo 4.- Diagramas N- S (Nassi-Schneiderman o de Chapin)
    • 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 levente Depues me fui a bañar
    • 1. Levantarse 2. Bañarse 3. Vestirse 4. Desayunar 5. Cepillarse los dientes 6. Salir de casa 7. Tomar el autobús 8. Llegar al ITCA 9. Buscar el aula 10. Ubicarse en un asiento
    • 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.
    • inicio leer (a, b, c, d) producto <-- (a * b * c * d) suma <-- (a + b + c + d) media <-- (a + b + c + d) / 4 escribir (producto, suma, media) fin
    • 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:
  •  
    • 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.
    • 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.
  •  
    • 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.
  •  
    • http://www.mitecnologico.com/Main/Dise%f1oAlgoritmico
    • es.wikipedia.org/wiki/Algoritmo
    • http://www.mitecnologico.com/Main/Dise%f1oAlgoritmicoDeFunciones
    • http://www.mailxmail.com/curso/informatica/programacionestructurada/capitulo8.htm