teorias segun procesos procesamiento piaget perceptuales perceptivos percepcion los importancia ejemplos definicion arriba abajo java c++ c design

java - segun - procesos perceptuales



Programación arriba abajo y abajo arriba (9)

C es un lenguaje estructurado y la secuencia de programas es de arriba hacia abajo. comenzando desde el método principal.

mientras que OOP depende del número de clases y objetos. flujo de programa no está en el enfoque de arriba hacia abajo en OOP

¿Por qué decimos que el lenguaje como C es de arriba hacia abajo mientras que los lenguajes de programación orientada a objetos como Java o C ++ son de abajo hacia arriba? ¿Tiene esta clasificación alguna importancia en el desarrollo de software?


Creo que la diferencia entre el enfoque de arriba hacia abajo y el enfoque ascendente de la programación es que el enfoque de arriba hacia abajo toma el problema y se divide en pasos manejables y el enfoque de abajo hacia arriba realmente detalla esos pasos.


El enfoque "de arriba hacia abajo" toma una definición de alto nivel del problema y lo subdivide en subproblemas, que luego realiza de manera recursiva hasta que se reduce a piezas que son obvias y fáciles de codificar. Esto a menudo se asocia con el estilo de programación de "descomposición funcional", pero no es necesario.

En la programación de abajo hacia arriba, identifica las herramientas de nivel inferior que puede componer para convertirse en un programa más grande.

En realidad, casi toda la programación se realiza con una combinación de enfoques. en la programación orientada a objetos, comúnmente se subdivide el problema identificando objetos de dominio (que es un paso de arriba hacia abajo) y refinándolos, y luego recombinándolos en el programa final: un paso de abajo hacia arriba.


En el desarrollo de arriba hacia abajo, comienza con su función principal y luego piensa en los pasos principales que debe seguir, luego divide cada uno de esos pasos en sus subpartes, y así sucesivamente.

En la programación ascendente usted piensa en la funcionalidad básica y las partes que va a necesitar y las construye. Desarrollas los actores y sus métodos, y luego los unes para formar un todo coherente.

OOP naturalmente tiende a Bottom-Up a medida que desarrolla sus objetos, mientras que la programación procedimental tiende hacia arriba y hacia abajo cuando comienza con una función y lentamente se agrega a ella.


En el enfoque de arriba hacia abajo, el sistema se formula primero, pero no detalla ningún subsistema al principio, y luego cada sistema y su subsistema se definen con gran detalle hasta que se especifica a la base.

por ejemplo, en un programa C, se necesita declarar las funciones en la parte superior del programa y luego a través de la entrada principal a cada subsistema / subrutina se define con gran detalle.

En el enfoque de abajo hacia arriba se realiza el primer diseño, comenzando desde el nivel base hasta el nivel abstracto.

eg-In c ++ / java comienza a diseñar desde la clase desde el nivel básico de las características de programación y luego va a la parte principal del programa.



Nunca escuché esa clasificación aplicada a lenguajes específicos, sino que es un paradigma de programación: primero llena los detalles (es decir, crea métodos de implementación completos) y luego los reúne (por ejemplo, los llama desde el método main ()), o comenzar con el flujo lógico y luego completar la implementación?

Realmente puedes hacer ambas cosas con ambos tipos de lanzas ... Pero yo diría que normalmente es todo lo contrario, en los lenguajes de OOP actuales primero definirás las interfaces, formando la estructura lógica, y solo luego te preocuparás por la implementación, mientras que el procedimiento directo idiomas como C, necesita implementar algunos métodos antes de llamarlos.


Nunca escuché los términos "de arriba hacia abajo" y "de abajo hacia arriba" usados ​​de esa manera.

Los términos se usan generalmente para describir cómo se aborda el diseño y la implementación de un sistema de software y, por lo tanto, se aplican a cualquier lenguaje o paradigma de programación.

En "Sobre LISP", Paul Graham usa el término "de abajo hacia arriba" ligeramente diferente para significar la extracción continua de funcionalidades comunes en funciones compartidas para que termine creando un nuevo dialecto de nivel superior de LISP que le permita programar en términos de su aplicación dominio. Ese no es un uso común del término. Estos días llamaríamos a eso "refactorización" y "lenguajes incrustados específicos de dominio" (y los antiguos programadores de LISP se burlarían de que LISP haya podido hacerlo desde la década de 1950).


Se trata más del paradigma (orientado a objetos, imperativo, funcional, etc.) que la sintaxis.

dept-info.labri.fr

La programación ascendente es lo opuesto a la programación descendente. Se refiere a un estilo de programación donde una aplicación se construye comenzando con las primitivas existentes del lenguaje de programación , y construyendo gradualmente más y más características complicadas, hasta que toda la aplicación ha sido escrita.

Más adelante en el mismo artículo:

En un lenguaje como C o Java, la programación ascendente toma la forma de construir tipos de datos abstractos a partir de primitivas del lenguaje o de tipos de datos abstractos existentes.