Sei sulla pagina 1di 7

Universidad Marino Glvez Villa Nueva, Guatemala Lic.

Gustavo Videz Curso: Lgica

Tcnicas de diseo de programacin Generaciones de lenguajes de programacin Generaciones de Software

Daniel Alejandro Castillo Sarceo Carn 5190-1311223

Diseo Top-Down
El diseo Top-Down fue promovido en la dcada de 1970 por el investigador de IBM Harlan Mills y Nickaus Wirth. Mills desarroll conceptos de programacin estructurada para utilizarlos y probarlos en un proyecto de 1969 que tena como objetivo automatizar algunos procedimientos del peridico New York Times. El desarrollo de este proyecto hizo que se dispersara y se ampliara la idea de hacer los programas con esta filosofa de trabajo al resto de los desarrolladores de IBM, as como al resto de la industria del software. Por su parte, Nicklaus Wirth, desarroll entre otros lenguajes, el lenguaje de programacin Pascal, escribi un artculo muy importante acerca del Desarrollo de programas por medio de refinamiento de pasos. Esta idea de disear programas permaneci como principal corriente de desarrollo hasta fines de la dcada de 1980, cuando fue desplazada por la programacin orientada a objetos, sin embargo contina siendo una muy importante ayuda para el desarrollo de los mtodos en los la programacin orientada a objetos. La solucin a los problemas computacionales puede llegar a se muy complicada y compleja. Cuando los programas son de miles de lneas, o componerse de diversos archivos de cdigo, es imposible mantener todos los detalles del programa en mente cuando se desarrolla un algoritmo. El diseo top-down es una herramienta que presenta en primer lugar una solucin a un problema general utilizando tres o cuatro pasos solamente. Cada uno de esos pasos en la primera solucin se divide en otros subpasos. Este proceso se repite varias veces, en cada iteracin se produce una solucin ms detallada al problema original. Cuando los pasos ya no se pueden subdividir, el algoritmo ha terminado. El diseo top-down tambin se conoce como descomposicin funcional o refinamiento de pasos. Ejercicio: De la siguiente lista de actividades, cul crees que est orientada al diseo Top-down? 1) Empezar con los detalles 2) Empezar con el problema en general 3) Considerar el problema general y los detalles al mismo tiempo El diseo top-down automticamente produce mdulos en un algoritmo. Recordemos que los mdulos son grupos de instrucciones que desarrollan funciones especficas. Supongamos que queremos escribir un algoritmo que imprima facturas, en primer lugar vamos a identificar esa tarea en la primera iteracin den diseo topdown. El paso calcular el monto total de la factura lo podemos redefinir como.

Lo que nos ayuda a definir los mdulos de nuestro algoritmo en: Mdulo 1. Obtener detalles del cliente Mdulo 2. Obtener detalles de todas las ordenes de ese cliente Mdulo 3. Calcular el monto total de las facturas del cliente Mdulo 4. Agregar el 5% de inters a las facturas de hace 1 mes Mdulo 5. Agregar el 10% de inters a las facturas anteriores a 1 mes Mdulo 6. Sumar el monto de las facturas con el total de los intereses Mdulo 7. Imprimir el monto total Cada mdulo debe ser tratado en la misma manera que el problema general, el diseo top-down, hace que el problema general se convierta en problemas ms especficos y en general ms fciles de resolver.

Bottom up
Es un principio de muchos aos del estilo de programacin que los elementos funcionales de un programa no deben ser demasiado grandes. Si un cierto componente de un programa crece ms all de la etapa donde est fcilmente comprensible, se convierte en una masa de la complejidad que encubre errores tan fcilmente como una ciudad grande encubre a fugitivos. Tal software ser duro de leer, duro probar, y duro eliminar errores. De acuerdo con este principio, un programa grande se debe dividir en pedazos, y cuanto ms grande es el programa, ms deben ser divididas. Cmo usted divide un programa? El acercamiento tradicional se llama diseo de arriba hacia abajo: usted

dice que "el propsito del programa es hacer estas siete cosas, as que lo divido en siete subprogramas importantes. El primer subprograma tiene que hacer estas cuatro cosas, as que alternadamente tendr cuatro de sus propios subprogramas, "etctera. Este proceso contina hasta que el programa entero tiene el nivel derecho del granularity -- cada parte bastante grande hacer algo substancial, pero bastante pequeo para ser entendido como sola unidad. Los programadores experimentados del lisp se dividen encima de sus programas diferentemente. As como diseo de arriba hacia abajo, siguen un principio que se podra llamar diseo bottom-up -- cambiando la lengua al juego el problema. En el lisp, usted apenas no anota su programa hacia la lengua, usted tambin construye la lengua para arriba hacia su programa. Pues usted est escribiendo un programa usted puede pensar "deseo que el lisp tena tal-y-tal un operador." Usted va tan escribirlo. Usted realiza luego que eso usar al nuevo operador simplificara el diseo de otra parte del programa, etctera. La lengua y el programa se desarrollan juntos. Como la frontera entre dos estados que guerrean, el lmite entre la lengua y el programa se dibuja y el redrawn, hasta l viene eventual reclinarse a lo largo de las montaas y de los ros, las fronteras naturales de su problema. En el extremo su programa mirar como si la lengua hubiera sido diseada para ella. Y cuando la lengua y el programa caben uno otro bien, usted termina para arriba con el cdigo que es claro, pequeo, y eficiente. Es digno de acentuar que el diseo bottom-up no significa la escritura justa el mismo programa en una diversa orden. Cuando usted trabaja bottom-up, usted termina generalmente para arriba con un diverso programa. En vez de un solo, programa monoltico, usted conseguir una lengua ms grande con operadores ms abstractos, y un programa ms pequeo escrito en l. En vez de un lintel, usted conseguir un arco. En cdigo tpico, una vez que usted abstraiga fuera de las piezas que son simplemente contabilidad, se deja qu es mucho ms corto; cuanto ms arriba usted acumula la lengua, menos la distancia que usted tendr que viajar de la tapa abajo ella. Esto trae varias ventajas: 1. Haciendo la lengua haga ms del trabajo, los programas bottom-up de las producciones del diseo que son ms pequeos y ms giles. Un programa ms corto no tiene que ser dividido en as que muchos componentes, y pocos componentes significan los programas que son ms fciles de leer o de modificarse. Pocos componentes tambin significan pocas conexiones entre los componentes, y as menos ocasin para los errores all. Mientras que los diseadores industriales se esfuerzan reducir el nmero de piezas mviles en una mquina, los programadores experimentados del lisp utilizan diseo bottom-up para reducir el tamao y complejidad de sus programas. 2. El diseo bottom-up promueve la reutilizacin del cdigo. Cuando usted escribe dos o ms programas, muchas de las utilidades que usted escribi para el primer programa tambin sern tiles en el tener xito. Una vez que usted haya adquirido un substrato grande de utilidades, escribir un nuevo programa

puede tomar solamente una fraccin del esfuerzo que requerira si usted tuvo que comenzar con el lisp crudo. 3. El diseo bottom-up hace programas ms fciles leer. Un caso de este tipo de abstraccin pide que el lector entienda a operador de uso general; un caso de la abstraccin funcional pide que el lector entienda un subprograma specialpurpose. 4. Porque le hace siempre estar en el puesto de observacin para los patrones en su cdigo, las ayudas bottom-up de trabajo para clarificar sus ideas sobre el diseo de su programa. Si dos componentes distantes de un programa son similares en forma, le conducirn a notar la semejanza y quizs a reajustar el programa de una manera ms simple. El diseo bottom-up es posible a cierto grado en idiomas con excepcin del lisp. Siempre que usted vea funciones de biblioteca, el diseo bottom-up est sucediendo. Sin embargo, el lisp le da energas mucho ms amplias en este departamento, y aumentar la lengua desempea un papel proporcionalmente ms grande en estilo del lisp -- tanto de modo que el lisp no sea justo una diversa lengua, solamente una diversa manera entera de la programacin.

Generaciones del Lenguaje de Programacion


Primera Generacin: Empieza en los aos 1940-1950. Consiste en un sistema de cdigos directamente interpretable por un circuito micro programable, compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la mquina. Son sistemas digitales, lo que significa que trabajan con dos nicos niveles de tensin. Dichos niveles, por abstraccin, se simbolizan con el cero, 0, y el uno, 1, por eso el lenguaje de mquina slo utiliza dichos signos. Todas las instrucciones y mandatos se escriban valindose de cadenas de estos dgitos. Segunda Generacin: El Lenguaje Simblico, constituye la representacin ms directa del cdigo mquina especfico para cada arquitectura de computadoras legible por un programador. Fue usado principalmente en los inicios del desarrollo de software, cuando an no se contaba con los potentes lenguajes de alto nivel. Un programa escrito en lenguaje Simblico consiste en una serie de instruccin es que corresponden al flujo de rdenes ejecutables que pueden ser cargadas en la memoria de un sistema basado en microprocesador. Salen al mercado a fines de los aos 50. Tercera Generacin: Estos lenguajes, Estos son ms fciles de aprender y usar que los lenguajes mquina y el lenguaje Simblico, pues su similitud con la comunicacin y comprensin humana cotidiana es mayor. Se crean enunciados tales como, Print, Total sales, Read normal Pay etc. Aunque son ms fciles de programar, no son tan eficientes en trminos de rapidez operacional y memoria. Entre ellos se encuentran C, Fortran, Smalltalk, Ada, C++, C#, Cobol, Delphi, Java, etc.

Cuarta Generacin: Su caracterstica distintiva es el nfasis en especificar qu es lo que se debe hacer, en vez de como ejecutar una tarea. Las especificaciones de los programas se desarrollan a un ms alto nivel que en los lenguajes de la generacin anterior. La caracterstica distintiva es ajena a los procedimientos, el programador no tiene que especificar cada pas para terminar una tarea o procesamiento. Son lenguajes que se relacionan menos con procedimientos y que son an ms parecidos al ingls.

Generaciones del Hardware


1ra. Generacin (1945-1956): La electrnica implementada con tubos de vacio, estas fueron las primeras mquinas que desplazaron todos los componentes de la electromecnica. (1945-1956) Eran usualmente construidas a mano usando circuitos que contenan rels y tubos de vaco, y a menudo usaron tarjetas perforadas o cinta de papel perforado para la entrada de datos y como medio de almacenamiento principal. 2da. Generacin (1957-1963): Toda la electromecnica se empez a desarrollar con los transistores todos eran parecidos a la anterior, pero resulto mucho ms pequeo y as minimizaron la computadora cada vez ms. (1957-1963) ya no son de vlvulas de vaco, sino con transistores, son ms pequeas y consumen menos electricidad que las anteriores, la forma de comunicacin con estas nuevas computadoras es mediante lenguajes ms avanzados que el lenguaje de mquina, y que reciben el nombre de "lenguajes de alto nivel" o lenguajes de programacin. Algunos de estos lenguajes eran COBOL, ADA y ALGOL. En esta generacin se redujo de manera notable el tamao de los computadores.

3ra. Generacin (1964-hoy): Se basan en los circuitos integrados, por la cual todo esto permiti integrar bastantes transistores y otros componentes electrnicos incrustados en una pastilla de silicio y as se lleg a un costo y un tamao bastante pequeo, y as aumentando la capacidad, velocidad y la fiabilidad de la computadora. (1964- Nuestros das) Ya se empez a utilizar el circuito integrado o microchip, y esto ms adelante dio paso al microprocesador, que actualmente utilizamos. Al existir el microprocesador, dio paso a la creacin de microcomputadores (1970), computadores que eran personales, con la posibilidad de tenerlo en el hogar o en empresas. Diez aos despus, estos computadores estaban en todas partes. Se redujo su costo y tamao, incrementando su capacidad y velocidad. Hoy da nos encontramos en esta generacin, aunque con muchos ms avances tecnolgicos como mejoras a los procesadores, computadores porttiles, etc.

4ta. Generacin (Futuro): Esto ocurrir cuando las pastillas de silicio sean reemplazadas por una nueva tecnologa en este mundo lleno de actualizaciones en todos lados.

La aparicin del microprocesador marca toda la relevancia, y para muchos creadores de esa epoca constituye el inicio de la cuarta generacin. A diferencia de los cambios tecnolgicos anteriores, su invencin no provoco la desaparicin radical de los computadores que no utilizaban el nuevo microprocesador. As, aunque el microprocesador4004 fue lanzado al mercado en 1971, todava a comienzo de los 80's haba computadores, como el PDP-11/44, con computador sin uso del microprocesador que continuaban exitosamente en el mercado, en este caso el desplazamiento fue muy aceptable para no desaparecer la computadora sin microprocesador de una vez por todas.

Otro Avance tecnolgico usado con frecuencia para definir el inicio de la cuarta generacin es la aparicin de los circuitos integrados VLSI (Very Large Scale Integration), a principios de los aos ochenta.

Potrebbero piacerti anche