SlideShare una empresa de Scribd logo
1 de 13
1



                                 INTRODUCCIÓN


         La computadora no solamente es una maquina que puede realizar procesos
para darnos resultados, sin que tengamos la noción exacta de las operaciones que
realiza para llegar a esos resultados. Con la computadora además de lo anterior
también podemos diseñar soluciones a la medida, de problemas específicos que
se nos presenten. Mas aun, si estos involucran operaciones matemáticas
complejas y/o repetitivas, o requieren del manejo de un volumen muy grande de
datos.


         La programación es una técnica esencial de la cual hay que tener
conocimientos. Su inserción las carreras universitaria, asegura que los estudiantes
tengan la facilidad necesaria para conocer las técnicas de solución más eficientes
de solución de problemas.


         La estructura de este trabajo, está pensada para que se pueda usar como
guía para el aprendizaje de las técnicas de diseño,      como guía de referencia
rápida para llevar a cabo cualquier tarea que el lector necesite realizar en un
momento determinado.
2



Top Down


      La programación descendente o "Top - Down" es el proceso mediante el
cual un problema se descompone en una serie de niveles o pasos sucesivos de
refinamiento (stepwise).


      El diseño descendente es una técnica que permite diseñar la solución de un
problema con base en la modularización o segmentación dándole un enfoque de
arriba hacia abajo (Top Down Design). Esta solución se divide en módulos que se
estructuran e integran jerárquicamente, como si fuera el organigrama de una
empresa.


       Ejemplo:


                                  ALGORITMO
                                     ALGO




            MODULO                 MODULO               MODULO
               UNO                   DOS                  TRES


      En el diagrama anterior se muestra la estructura del algoritmo ALGO, que
se auxilia de tres módulos subordinados, cada uno de los cuales ejecuta una tarea
especifica. En su momento el modulo principal ALGO invocara o llamara a los
módulos subordinados, es decir, dirigirá su funcionamiento.


      Un    modulo    es   un   segmento,   rutina,   subrutina,   subalgoritmo   o
procedimiento, que puede definirse dentro de un algoritmo con el fin de ejecutar
una tarea especifica y puede ser llamado o invocado desde el algoritmo principal
cuando sea necesario.
3



       Ejemplo:


       Se necesita diseñar un algoritmo que ayude a un niño a revisar sus tareas
referentes a las operaciones aritméticas fundamentales: sumar, restar, multiplicar
y dividir. El proceso es el siguiente:


       Se ofrecerá un menú de opciones para escoger lo que desee hacer, de
acuerdo con el siguiente formato:


                               TE PUEDO AYUDAR A:
                                    1. 1.     SUMAR
                                    2. 2. RESTAR
                                         3. 3. MULTIPLICAR
                                         4. 4. DIVIR
                                         5. 5. FIN
                                           OPCION




       En el caso de la suma el procedimiento es el siguiente: leer los dos
números y el resultado obtenido por el niño, hacer el calculo de la maquina,
comparar ambos resultados y decirle si esta correcto o incorrecto. Se le puede
permitir realizar las revisiones de operaciones de suma que sean necesarias. Para
el caso de la resta, multiplicación y división se seguirá un procedimiento similar,
claro está, con las diferencias existentes.


       Características


        El programa principal o de control se prueba en primer lugar
        Los módulos se integran uno por uno
        Se hace hincapié en las pruebas de las interfaces
4



      Beneficios


         Simplificación   del   problema   y   de   los   subprogramas   de   cada
          descomposición.
         Las diferentes partes del problema pueden ser programadas de modo
          independiente e incluso por diferentes personas.
         El programa final queda estructurado en forma de bloque o módulos lo
          que hace más sencilla su lectura y mantenimiento.


Bottom Up


      El diseño ascendente se refiere a la identificación de aquellos procesos que
necesitan computarizarse con forme vayan apareciendo, su análisis como sistema
y su codificación, o bien, la adquisición de paquetes de software para satisfacer el
problema inmediato.


      Características


       Permite una prueba temprana de módulos particulares
       Los módulos se pueden integrar en diversos grupos
       Se hace hincapié en la funcionalidad y prestaciones de los módulos


      La diferencia del tipo de diseño ascendente y descendente solo se puede
dar a la hora de la programación. Porque en el momento de dibujar la estructura
del problema, en las dos formas el diseño queda igual, solamente que los módulos
son enumerados en forma diferente, pero esto se hace pensando ya en como se
va a comenzar a programar. En el diseño ascendente primero se programan los
módulos que se encuentran mas abajo de la estructura, hasta llegar al primer
modulo dibujado.
5



      Ejemplo:


      Realiza el diseño ascendente para la gestión del control de un hotel
utilizando la siguiente información:


       pagos a empleados (nombre, puesto, sueldo, horas extra)
       prestamos externos (cliente, préstamo, aval, plazo)
       libro de reservaciones(nombre, departamento, entrada, salida)
       mantenimiento (área, daños, total)


      Esta gráfica muestra los módulos generales que va a contener el programa.




                                   SUBPROGRAMA
                                       CONTROL 20




SUBPROGRAMA        SUBPROGRAMA            SUBPROGRAMA         SUBPROGRAMA
  PAGOS A           PRESTAMOS               LIBROS DE         MANTENIMIENTO
 EMPLEADOS 5         EXTERNOS            RESERVACIONES 15         19




      Áreas de Aplicación y Beneficios de Top Down y Botton-Up


      En el proceso de desarrollo de software, los enfoques Top-down y Bottom-
up juegan un papel crucial.


      El diseño Top-down fue promovido en los setenta por los investigadores de
IBM Harlan Mills y Niklaus Wirth. Mills desarrolló los conceptos de programación
estructurada para usos prácticos y los probó en un proyecto en 1969 para
automatizar el índice de la morgue del New York Times. El éxito administrativo e
6



ingenieril del proyecto hicieron que el enfoque top-down se esparciera por IBM y
por el resto de la industria de los computadores. Niklaus Wirth, que entre sus
logros está el desarrollo del lenguaje de programación Pascal, escribió el artículo
Program Development by Stepwise Refinement, que tuvo mucha influencia.


      El enfoque top-down enfatiza la planificación y conocimiento completo del
sistema. Se entiende que la codificación no puede comenzar hasta que no se haya
alcanzado un nivel de detalle suficiente, al menos en alguna parte del sistema.
Esto retrasa las pruebas de las unidades funcionales del sistema hasta que gran
parte del diseño se ha completado.


      Bottom-up hace énfasis en la programación y pruebas tempranas, que
pueden comenzar tan pronto se ha especificado el primer módulo. Este enfoque
tiene el riesgo de programar cosas sin saber como se van a conectar al resto del
sistema, y esta conexión puede no ser tan fácil como se creyó al comienzo. La
reutilización del código es uno de los mayores beneficios del enfoque bottom-up.


      El desarrollo de software moderno usualmente combina tanto Top-down
como Bottom-up. Aunque un conocimiento completo del sistema se considera
usualmente necesario para un buen diseño, haciendo que teóricamente sea un
enfoque top-down, la mayoría de proyectos de desarrollo de software tratan de
usar código existente en algún grado. El uso de módulos existentes le dan al
diseño un sabor 'bottom-up'. Algunos enfoques usan un enfoque en el que un
sistema parcialmente funcional es diseñado y programado completamente, y este
sistema se va expandiendo para llenar los requisitos del proyecto.
7



Diagrama de Flujo


      Son una manera de representar visualmente el flujo de datos a travéz de
sistemas de tratamiento de información. Los diagramas de flujo describen que
operaciónes y en que secuencia se requieren para solucionar un problema dado.


      Un diagrama de flujo u organigrama es una representación diagramática
que ilustra la secuencia de las operaciones que se realizarán para conseguir la
solución de un problema. Los diagramas de flujo se dibujan generalmente antes
de comenzar a programar el código frente a la computadora. Los diagramas de
flujo facilitan la comunicación entre los programadores y la gente del negocio.


      Ejemplos de Diagramas de Flujo


      Diagrama de flujo que encuentra la suma de los primeros 50 números
naturales
8



      Suma, es la variable a la que se le va agregando la valor de cada número
natural. N, es el contador. Éste recorrerá lo números hasta llegar al 50.


    El primer bloque indica el inicio del Diagrama de flujo




    El segundo bloque, es un símbolo de procesos, en este bloque se asume que
las variables suma y N han sido declaradas previamente y las inicializa en 0 para
comenzar a el conteo y la suma de valores (Para declararlas existe el bloque
Tarjeta perforada).




      El tercer bloque, es también un Símbolo de procesos. En éste paso se
incrementa en 1 la variable N (N = N + 1). Por lo que, en la primera pasada esta N
valdrá 1, ya que estaba inicializada en 0.




El cuarto bloque es exactamente lo mismo que el anterior Pero en éste, ya se le
agrega el valor de N a la variable que contendrá la suma (En el primer caso
contendrá 1, ya que N = 1).
9



      El quinto bloque es uno Símbolo de Toma de decisiones y Ramificación Lo
que hay dentro del bloque es una pregunta que se le hace a los valores que
actualmente influyen en el proceso (Por decir algo, no se como decirlo, soy muy
sope :D)¿Es N=50?, Obviamente la respuesta es no, ya que N todavía es 1. por lo
que el flujo de nuestro programa se dirigirá hacía la parte en donde se observa la
palabra no: Tercer Bloque, éste le sumará 1 (N=N+1) y vuelve a llegar a éste
bloque, donde preguntará ¿Es N=50?... ¡No!, todavía es 2. Ha pues, regresa al
Tercer bloque y vuelve hacer lo mismo. Y así hasta llegar a 50, obteniendo así la
suma de los primeros 50 primeros números naturales.




      Por último indicamos que el resultado será mostrado en la impresora (Este
lo puedes cambiarlo por el display para mostrar datos).




      Fin del programa (o diagrama)




      Beneficios


       Permite la puesta en común de conocimientos individuales sobre un
          proceso, y facilita la mejor comprensión global del mismo.
10



        Proporciona información sobre los procesos de formaclara, ordenada y
            concisa.

       Características de los Diagramas de Flujo

       Debido a sus características principales, la utilización del Diagrama de Flujo
será muy útil cuando:- Se quiere conocer o mostrar de forma global un proceso.-
Para comparar dos procesos o alternativas de uno dado.- Se necesita una guía
que permita un análisis sistemático de un proceso

       Áreas de Aplicación


       Se    utiliza   principalmente   en   programación,   economía   y   procesos
industriales.

       Los Diagramas de Flujo en el área de informática nos permiten la
apreciación paso por paso de lo que estamos haciendo en un determinado
problema y la manera ordenada en cómo se deben relacionar cada punto para
llegar a un determinado finaly mantener una vista clara y ordenada del sistema en
el que estamos trabajando para que sea acorde con el esfuerzo con el que se
trabajó.

Diagramas Estructurados


       El diagrama estructurado también conocido como diagrama de chapin es
como un diagrama de flujo en el que se omiten las flechas de unión y las cajas son
contiguas.


       Beneficios


        Adopta la filosofía de la programación estructurada, que utiliza un
            enfoque descendente.
11




      Utiliza un número limitado de símbolos de tal forma que el diagrama de
           flujo ocupa menos espacio y puede leerse con cierta finalidad.


Ejemplo:


     Un algoritmo se representa en la sig. forma:


                             Inicio
                               Accion1
                               Accion2


                                   ...
                             Fin
                    Inicio


                      Leer
                       Nombre,Hrs,Precio
                      Calcular
                          Salario = Hrs * Precio
                      Calcular
                          Imp = Salario* 0.15
                      Calcular
                          Neto = Salario + Imp
                      Escribir
                          Nombre, Imp, SNeto


                    Fin
12



      Características


       Fácil de leer y comprender.
       Fácil de codificar en una amplia gama de lenguajes y en diferentes
         sistemas.
       Fácil de mantener.
       Eficiente, aprovechando al máximo los recursos de la computadora.
       Modularizable.


      Aplicaciones de los Diagramas Estructurados


      Los diagramas de flujo estructurados, como su nombre menciona, es
actualmente   caracterizado   como    una   herramienta   de   la   programación
estructurada. Gracias a esta herramienta (y debido a las características de la
programación estructurada) podemos interpretar cada acción de un programa y
representarlo gráficamente (en un diagrama estructurado) con la debida estructura
(simple o compuesta) de la diagramación estructurada.
13



                                  CONCLUSIÓN


      En esta investigación se abarcó diferentes técnicas de diseño las cuales
son el Top Down, Bottom Up Diagrama de Flujo, Diagrama Estructurado


      La técnica Top Down también es conocida como arriba-abajo y consiste en
una serie de niveles de menor a mayor complejidad que dan solución al problema,
en esencia consiste en efectuar una relación entre las etapas de la estructuración
de forma que una etapa jerárquica y su inmediato inferior se relacionan mediante
la entrada y salida de información.


      La técnica Bottom Up es conocida también como ascendente, la diferencia
entre el bottom up y el top down es que los módulos son enumerados de forma
diferente. En el bottom up se enumeran primero los módulos inferiores hasta llegar
al modulo superior.

Más contenido relacionado

La actualidad más candente

Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesIsrael Castillo Cruz
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)Yadith Miranda Silva
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosAlvaro Enrique Ruano
 
Metodologias Para El Analisis Y Diseño De Sistemas.
Metodologias Para El Analisis Y Diseño De Sistemas.Metodologias Para El Analisis Y Diseño De Sistemas.
Metodologias Para El Analisis Y Diseño De Sistemas.German Rodriguez
 
Ejemplos de proyectos al modelo en cascada
Ejemplos de proyectos  al modelo en cascadaEjemplos de proyectos  al modelo en cascada
Ejemplos de proyectos al modelo en cascadaaics-1986-13-saraguro
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareT.I.C
 
Teoría de optimización
Teoría de optimizaciónTeoría de optimización
Teoría de optimizaciónAngel Jhoan
 
Simulación: Teoría y aplicaciones con Promodel
Simulación: Teoría y aplicaciones con PromodelSimulación: Teoría y aplicaciones con Promodel
Simulación: Teoría y aplicaciones con PromodelAlvaro Gil
 
Logica de la Programación Problemas y Soluciones
Logica de la  Programación  Problemas y SolucionesLogica de la  Programación  Problemas y Soluciones
Logica de la Programación Problemas y SolucionesVideoconferencias UTPL
 
Importancia del Análisis de Requerimientos
Importancia del Análisis de RequerimientosImportancia del Análisis de Requerimientos
Importancia del Análisis de Requerimientospedro tovar
 
Presentacion Programacion
Presentacion ProgramacionPresentacion Programacion
Presentacion Programacionguestd5974a6
 
Requerimientos Funcionales y No Funcionales
Requerimientos Funcionales y No FuncionalesRequerimientos Funcionales y No Funcionales
Requerimientos Funcionales y No FuncionalesCarlos Macallums
 

La actualidad más candente (20)

Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretes
 
Top down y bottom up
Top down y bottom upTop down y bottom up
Top down y bottom up
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Metodologia orientada a objeto
Metodologia orientada a objetoMetodologia orientada a objeto
Metodologia orientada a objeto
 
Metodologias Para El Analisis Y Diseño De Sistemas.
Metodologias Para El Analisis Y Diseño De Sistemas.Metodologias Para El Analisis Y Diseño De Sistemas.
Metodologias Para El Analisis Y Diseño De Sistemas.
 
Ejemplos de proyectos al modelo en cascada
Ejemplos de proyectos  al modelo en cascadaEjemplos de proyectos  al modelo en cascada
Ejemplos de proyectos al modelo en cascada
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del Software
 
Teoría de optimización
Teoría de optimizaciónTeoría de optimización
Teoría de optimización
 
Simulación: Teoría y aplicaciones con Promodel
Simulación: Teoría y aplicaciones con PromodelSimulación: Teoría y aplicaciones con Promodel
Simulación: Teoría y aplicaciones con Promodel
 
Programación Funcional con Scheme
Programación Funcional con SchemeProgramación Funcional con Scheme
Programación Funcional con Scheme
 
Diagrama de contexto
Diagrama de contextoDiagrama de contexto
Diagrama de contexto
 
Logica de la Programación Problemas y Soluciones
Logica de la  Programación  Problemas y SolucionesLogica de la  Programación  Problemas y Soluciones
Logica de la Programación Problemas y Soluciones
 
Importancia del Análisis de Requerimientos
Importancia del Análisis de RequerimientosImportancia del Análisis de Requerimientos
Importancia del Análisis de Requerimientos
 
4.3
4.34.3
4.3
 
Proceso unificado
Proceso unificadoProceso unificado
Proceso unificado
 
Métodos De Los Cuadrados Medios
Métodos De Los Cuadrados MediosMétodos De Los Cuadrados Medios
Métodos De Los Cuadrados Medios
 
Tutorial de JFLAP
Tutorial de JFLAPTutorial de JFLAP
Tutorial de JFLAP
 
Presentacion Programacion
Presentacion ProgramacionPresentacion Programacion
Presentacion Programacion
 
Requerimientos Funcionales y No Funcionales
Requerimientos Funcionales y No FuncionalesRequerimientos Funcionales y No Funcionales
Requerimientos Funcionales y No Funcionales
 

Destacado

03 De conceptual a relacional
03 De conceptual a relacional03 De conceptual a relacional
03 De conceptual a relacionaltoniserna
 
Bottom up top down
Bottom up top downBottom up top down
Bottom up top downZaira Avila
 
Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Convertir Diagrama Entidad-Relacion a Modelo Relacional.Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Convertir Diagrama Entidad-Relacion a Modelo Relacional.Erivan Martinez Ovando
 
Transformación de Modelo E-R a Modelo Relacional Ejemplo y Reporte
Transformación de Modelo E-R a Modelo Relacional Ejemplo y ReporteTransformación de Modelo E-R a Modelo Relacional Ejemplo y Reporte
Transformación de Modelo E-R a Modelo Relacional Ejemplo y ReporteNeoinquisidor
 
Algoritmos y diagramas de flujo
Algoritmos y diagramas de flujoAlgoritmos y diagramas de flujo
Algoritmos y diagramas de flujoKvinzuco
 

Destacado (8)

Bottom up
Bottom upBottom up
Bottom up
 
Tecnica top down
Tecnica top downTecnica top down
Tecnica top down
 
03 De conceptual a relacional
03 De conceptual a relacional03 De conceptual a relacional
03 De conceptual a relacional
 
Bottom up top down
Bottom up top downBottom up top down
Bottom up top down
 
Del Modelo Entidad-Relación al Modelo relacional
Del Modelo Entidad-Relación al Modelo relacionalDel Modelo Entidad-Relación al Modelo relacional
Del Modelo Entidad-Relación al Modelo relacional
 
Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Convertir Diagrama Entidad-Relacion a Modelo Relacional.Convertir Diagrama Entidad-Relacion a Modelo Relacional.
Convertir Diagrama Entidad-Relacion a Modelo Relacional.
 
Transformación de Modelo E-R a Modelo Relacional Ejemplo y Reporte
Transformación de Modelo E-R a Modelo Relacional Ejemplo y ReporteTransformación de Modelo E-R a Modelo Relacional Ejemplo y Reporte
Transformación de Modelo E-R a Modelo Relacional Ejemplo y Reporte
 
Algoritmos y diagramas de flujo
Algoritmos y diagramas de flujoAlgoritmos y diagramas de flujo
Algoritmos y diagramas de flujo
 

Similar a Top down

Apun9algol
Apun9algolApun9algol
Apun9algolpabesacv
 
El algoritmo como estrategia y herramienta para la solución de problemas
El algoritmo como estrategia y herramienta para la solución de problemasEl algoritmo como estrategia y herramienta para la solución de problemas
El algoritmo como estrategia y herramienta para la solución de problemasBERNARDAURELIOFELIZM
 
Apun9algol
Apun9algolApun9algol
Apun9algolpabesacv
 
Programación Modular y Estructyrada
Programación Modular y EstructyradaProgramación Modular y Estructyrada
Programación Modular y Estructyradaguestefc95b
 
Ensayo de software
Ensayo de softwareEnsayo de software
Ensayo de softwareNixon Gomez
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructuradoYamnibel
 
SISTEMA DE SOFTWARE
SISTEMA DE SOFTWARESISTEMA DE SOFTWARE
SISTEMA DE SOFTWAREperez123
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosomarzon
 
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdfMODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdfannalybautistaruiz
 
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdfMODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdfannalybautistaruiz
 
Programacion Estructurada
Programacion EstructuradaProgramacion Estructurada
Programacion EstructuradaClaretiano
 
Diseño de algoritmos paralelos.pptx
Diseño de algoritmos paralelos.pptxDiseño de algoritmos paralelos.pptx
Diseño de algoritmos paralelos.pptxAlexanderPolanco11
 
2do Trabajo de Investigación de Programación.docx
2do Trabajo de Investigación de Programación.docx2do Trabajo de Investigación de Programación.docx
2do Trabajo de Investigación de Programación.docxJulioRodolfodeJessHe
 
9 febrero16 3
9 febrero16 39 febrero16 3
9 febrero16 3zeta2015
 

Similar a Top down (20)

Apun9algol
Apun9algolApun9algol
Apun9algol
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
Modulo 1 algoritmo
Modulo 1 algoritmoModulo 1 algoritmo
Modulo 1 algoritmo
 
Modulo 1 algoritmo
Modulo 1 algoritmoModulo 1 algoritmo
Modulo 1 algoritmo
 
El algoritmo como estrategia y herramienta para la solución de problemas
El algoritmo como estrategia y herramienta para la solución de problemasEl algoritmo como estrategia y herramienta para la solución de problemas
El algoritmo como estrategia y herramienta para la solución de problemas
 
Apun9algol
Apun9algolApun9algol
Apun9algol
 
Programación Modular y Estructyrada
Programación Modular y EstructyradaProgramación Modular y Estructyrada
Programación Modular y Estructyrada
 
Exposicion unidad-iii
Exposicion unidad-iiiExposicion unidad-iii
Exposicion unidad-iii
 
Ensayo de software
Ensayo de softwareEnsayo de software
Ensayo de software
 
Presentación1.pptx
Presentación1.pptxPresentación1.pptx
Presentación1.pptx
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
SISTEMA DE SOFTWARE
SISTEMA DE SOFTWARESISTEMA DE SOFTWARE
SISTEMA DE SOFTWARE
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdfMODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
 
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdfMODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
MODULO II ALGORITMO Y PROGRAMACIÓN ESTRUCTURA DE PROGRAMA.pdf
 
Programacion Estructurada
Programacion EstructuradaProgramacion Estructurada
Programacion Estructurada
 
Diseño de algoritmos paralelos.pptx
Diseño de algoritmos paralelos.pptxDiseño de algoritmos paralelos.pptx
Diseño de algoritmos paralelos.pptx
 
Tarea 13
Tarea 13Tarea 13
Tarea 13
 
2do Trabajo de Investigación de Programación.docx
2do Trabajo de Investigación de Programación.docx2do Trabajo de Investigación de Programación.docx
2do Trabajo de Investigación de Programación.docx
 
9 febrero16 3
9 febrero16 39 febrero16 3
9 febrero16 3
 

Top down

  • 1. 1 INTRODUCCIÓN La computadora no solamente es una maquina que puede realizar procesos para darnos resultados, sin que tengamos la noción exacta de las operaciones que realiza para llegar a esos resultados. Con la computadora además de lo anterior también podemos diseñar soluciones a la medida, de problemas específicos que se nos presenten. Mas aun, si estos involucran operaciones matemáticas complejas y/o repetitivas, o requieren del manejo de un volumen muy grande de datos. La programación es una técnica esencial de la cual hay que tener conocimientos. Su inserción las carreras universitaria, asegura que los estudiantes tengan la facilidad necesaria para conocer las técnicas de solución más eficientes de solución de problemas. La estructura de este trabajo, está pensada para que se pueda usar como guía para el aprendizaje de las técnicas de diseño, como guía de referencia rápida para llevar a cabo cualquier tarea que el lector necesite realizar en un momento determinado.
  • 2. 2 Top Down La programación descendente o "Top - Down" es el proceso mediante el cual un problema se descompone en una serie de niveles o pasos sucesivos de refinamiento (stepwise). El diseño descendente es una técnica que permite diseñar la solución de un problema con base en la modularización o segmentación dándole un enfoque de arriba hacia abajo (Top Down Design). Esta solución se divide en módulos que se estructuran e integran jerárquicamente, como si fuera el organigrama de una empresa. Ejemplo: ALGORITMO ALGO MODULO MODULO MODULO UNO DOS TRES En el diagrama anterior se muestra la estructura del algoritmo ALGO, que se auxilia de tres módulos subordinados, cada uno de los cuales ejecuta una tarea especifica. En su momento el modulo principal ALGO invocara o llamara a los módulos subordinados, es decir, dirigirá su funcionamiento. Un modulo es un segmento, rutina, subrutina, subalgoritmo o procedimiento, que puede definirse dentro de un algoritmo con el fin de ejecutar una tarea especifica y puede ser llamado o invocado desde el algoritmo principal cuando sea necesario.
  • 3. 3 Ejemplo: Se necesita diseñar un algoritmo que ayude a un niño a revisar sus tareas referentes a las operaciones aritméticas fundamentales: sumar, restar, multiplicar y dividir. El proceso es el siguiente: Se ofrecerá un menú de opciones para escoger lo que desee hacer, de acuerdo con el siguiente formato: TE PUEDO AYUDAR A: 1. 1. SUMAR 2. 2. RESTAR 3. 3. MULTIPLICAR 4. 4. DIVIR 5. 5. FIN OPCION En el caso de la suma el procedimiento es el siguiente: leer los dos números y el resultado obtenido por el niño, hacer el calculo de la maquina, comparar ambos resultados y decirle si esta correcto o incorrecto. Se le puede permitir realizar las revisiones de operaciones de suma que sean necesarias. Para el caso de la resta, multiplicación y división se seguirá un procedimiento similar, claro está, con las diferencias existentes. Características  El programa principal o de control se prueba en primer lugar  Los módulos se integran uno por uno  Se hace hincapié en las pruebas de las interfaces
  • 4. 4 Beneficios  Simplificación del problema y de los subprogramas de cada descomposición.  Las diferentes partes del problema pueden ser programadas de modo independiente e incluso por diferentes personas.  El programa final queda estructurado en forma de bloque o módulos lo que hace más sencilla su lectura y mantenimiento. Bottom Up El diseño ascendente se refiere a la identificación de aquellos procesos que necesitan computarizarse con forme vayan apareciendo, su análisis como sistema y su codificación, o bien, la adquisición de paquetes de software para satisfacer el problema inmediato. Características  Permite una prueba temprana de módulos particulares  Los módulos se pueden integrar en diversos grupos  Se hace hincapié en la funcionalidad y prestaciones de los módulos La diferencia del tipo de diseño ascendente y descendente solo se puede dar a la hora de la programación. Porque en el momento de dibujar la estructura del problema, en las dos formas el diseño queda igual, solamente que los módulos son enumerados en forma diferente, pero esto se hace pensando ya en como se va a comenzar a programar. En el diseño ascendente primero se programan los módulos que se encuentran mas abajo de la estructura, hasta llegar al primer modulo dibujado.
  • 5. 5 Ejemplo: Realiza el diseño ascendente para la gestión del control de un hotel utilizando la siguiente información:  pagos a empleados (nombre, puesto, sueldo, horas extra)  prestamos externos (cliente, préstamo, aval, plazo)  libro de reservaciones(nombre, departamento, entrada, salida)  mantenimiento (área, daños, total) Esta gráfica muestra los módulos generales que va a contener el programa. SUBPROGRAMA CONTROL 20 SUBPROGRAMA SUBPROGRAMA SUBPROGRAMA SUBPROGRAMA PAGOS A PRESTAMOS LIBROS DE MANTENIMIENTO EMPLEADOS 5 EXTERNOS RESERVACIONES 15 19 Áreas de Aplicación y Beneficios de Top Down y Botton-Up En el proceso de desarrollo de software, los enfoques Top-down y Bottom- up juegan un papel crucial. El diseño Top-down fue promovido en los setenta por los investigadores de IBM Harlan Mills y Niklaus Wirth. Mills desarrolló los conceptos de programación estructurada para usos prácticos y los probó en un proyecto en 1969 para automatizar el índice de la morgue del New York Times. El éxito administrativo e
  • 6. 6 ingenieril del proyecto hicieron que el enfoque top-down se esparciera por IBM y por el resto de la industria de los computadores. Niklaus Wirth, que entre sus logros está el desarrollo del lenguaje de programación Pascal, escribió el artículo Program Development by Stepwise Refinement, que tuvo mucha influencia. El enfoque top-down enfatiza la planificación y conocimiento completo del sistema. Se entiende que la codificación no puede comenzar hasta que no se haya alcanzado un nivel de detalle suficiente, al menos en alguna parte del sistema. Esto retrasa las pruebas de las unidades funcionales del sistema hasta que gran parte del diseño se ha completado. Bottom-up hace énfasis en la programación y pruebas tempranas, que pueden comenzar tan pronto se ha especificado el primer módulo. Este enfoque tiene el riesgo de programar cosas sin saber como se van a conectar al resto del sistema, y esta conexión puede no ser tan fácil como se creyó al comienzo. La reutilización del código es uno de los mayores beneficios del enfoque bottom-up. El desarrollo de software moderno usualmente combina tanto Top-down como Bottom-up. Aunque un conocimiento completo del sistema se considera usualmente necesario para un buen diseño, haciendo que teóricamente sea un enfoque top-down, la mayoría de proyectos de desarrollo de software tratan de usar código existente en algún grado. El uso de módulos existentes le dan al diseño un sabor 'bottom-up'. Algunos enfoques usan un enfoque en el que un sistema parcialmente funcional es diseñado y programado completamente, y este sistema se va expandiendo para llenar los requisitos del proyecto.
  • 7. 7 Diagrama de Flujo Son una manera de representar visualmente el flujo de datos a travéz de sistemas de tratamiento de información. Los diagramas de flujo describen que operaciónes y en que secuencia se requieren para solucionar un problema dado. Un diagrama de flujo u organigrama es una representación diagramática que ilustra la secuencia de las operaciones que se realizarán para conseguir la solución de un problema. Los diagramas de flujo se dibujan generalmente antes de comenzar a programar el código frente a la computadora. Los diagramas de flujo facilitan la comunicación entre los programadores y la gente del negocio. Ejemplos de Diagramas de Flujo Diagrama de flujo que encuentra la suma de los primeros 50 números naturales
  • 8. 8 Suma, es la variable a la que se le va agregando la valor de cada número natural. N, es el contador. Éste recorrerá lo números hasta llegar al 50. El primer bloque indica el inicio del Diagrama de flujo El segundo bloque, es un símbolo de procesos, en este bloque se asume que las variables suma y N han sido declaradas previamente y las inicializa en 0 para comenzar a el conteo y la suma de valores (Para declararlas existe el bloque Tarjeta perforada). El tercer bloque, es también un Símbolo de procesos. En éste paso se incrementa en 1 la variable N (N = N + 1). Por lo que, en la primera pasada esta N valdrá 1, ya que estaba inicializada en 0. El cuarto bloque es exactamente lo mismo que el anterior Pero en éste, ya se le agrega el valor de N a la variable que contendrá la suma (En el primer caso contendrá 1, ya que N = 1).
  • 9. 9 El quinto bloque es uno Símbolo de Toma de decisiones y Ramificación Lo que hay dentro del bloque es una pregunta que se le hace a los valores que actualmente influyen en el proceso (Por decir algo, no se como decirlo, soy muy sope :D)¿Es N=50?, Obviamente la respuesta es no, ya que N todavía es 1. por lo que el flujo de nuestro programa se dirigirá hacía la parte en donde se observa la palabra no: Tercer Bloque, éste le sumará 1 (N=N+1) y vuelve a llegar a éste bloque, donde preguntará ¿Es N=50?... ¡No!, todavía es 2. Ha pues, regresa al Tercer bloque y vuelve hacer lo mismo. Y así hasta llegar a 50, obteniendo así la suma de los primeros 50 primeros números naturales. Por último indicamos que el resultado será mostrado en la impresora (Este lo puedes cambiarlo por el display para mostrar datos). Fin del programa (o diagrama) Beneficios  Permite la puesta en común de conocimientos individuales sobre un proceso, y facilita la mejor comprensión global del mismo.
  • 10. 10  Proporciona información sobre los procesos de formaclara, ordenada y concisa. Características de los Diagramas de Flujo Debido a sus características principales, la utilización del Diagrama de Flujo será muy útil cuando:- Se quiere conocer o mostrar de forma global un proceso.- Para comparar dos procesos o alternativas de uno dado.- Se necesita una guía que permita un análisis sistemático de un proceso Áreas de Aplicación Se utiliza principalmente en programación, economía y procesos industriales. Los Diagramas de Flujo en el área de informática nos permiten la apreciación paso por paso de lo que estamos haciendo en un determinado problema y la manera ordenada en cómo se deben relacionar cada punto para llegar a un determinado finaly mantener una vista clara y ordenada del sistema en el que estamos trabajando para que sea acorde con el esfuerzo con el que se trabajó. Diagramas Estructurados El diagrama estructurado también conocido como diagrama de chapin es como un diagrama de flujo en el que se omiten las flechas de unión y las cajas son contiguas. Beneficios  Adopta la filosofía de la programación estructurada, que utiliza un enfoque descendente.
  • 11. 11  Utiliza un número limitado de símbolos de tal forma que el diagrama de flujo ocupa menos espacio y puede leerse con cierta finalidad. Ejemplo: Un algoritmo se representa en la sig. forma: Inicio Accion1 Accion2 ... Fin Inicio Leer Nombre,Hrs,Precio Calcular Salario = Hrs * Precio Calcular Imp = Salario* 0.15 Calcular Neto = Salario + Imp Escribir Nombre, Imp, SNeto Fin
  • 12. 12 Características  Fácil de leer y comprender.  Fácil de codificar en una amplia gama de lenguajes y en diferentes sistemas.  Fácil de mantener.  Eficiente, aprovechando al máximo los recursos de la computadora.  Modularizable. Aplicaciones de los Diagramas Estructurados Los diagramas de flujo estructurados, como su nombre menciona, es actualmente caracterizado como una herramienta de la programación estructurada. Gracias a esta herramienta (y debido a las características de la programación estructurada) podemos interpretar cada acción de un programa y representarlo gráficamente (en un diagrama estructurado) con la debida estructura (simple o compuesta) de la diagramación estructurada.
  • 13. 13 CONCLUSIÓN En esta investigación se abarcó diferentes técnicas de diseño las cuales son el Top Down, Bottom Up Diagrama de Flujo, Diagrama Estructurado La técnica Top Down también es conocida como arriba-abajo y consiste en una serie de niveles de menor a mayor complejidad que dan solución al problema, en esencia consiste en efectuar una relación entre las etapas de la estructuración de forma que una etapa jerárquica y su inmediato inferior se relacionan mediante la entrada y salida de información. La técnica Bottom Up es conocida también como ascendente, la diferencia entre el bottom up y el top down es que los módulos son enumerados de forma diferente. En el bottom up se enumeran primero los módulos inferiores hasta llegar al modulo superior.