stringtranslate.com

Programar en lo grande y programar en lo pequeño

En ingeniería de software , la programación en grande y la programación en pequeño se refieren a dos aspectos diferentes de la escritura de software. Programar en grande significa diseñar un sistema más grande como una composición de partes más pequeñas, y programar en pequeño significa crear esas partes más pequeñas escribiendo líneas de código en un lenguaje de programación. Los términos fueron acuñados por Frank DeRemer y Hans Kron en su artículo de 1975 "Programación en lo grande versus programación en lo pequeño", [1] en el que sostienen que las dos son actividades esencialmente diferentes y que las típicas Los lenguajes de programación y la práctica de la programación estructurada brindan un buen apoyo para lo último, pero no para lo primero.

Esto puede compararse con la dicotomía posterior de Ousterhout , que distingue entre lenguajes de programación de sistemas (para componentes) y lenguajes de scripting (para código adhesivo , conexión de componentes).

Descripción

Fred Brooks identifica que la forma en que se crea un programa individual es diferente de cómo se crea un producto de sistemas de programación. [2] El primero probablemente hace bien una tarea relativamente simple. Probablemente esté codificado por un solo ingeniero, esté completo en sí mismo y esté listo para ejecutarse en el sistema en el que fue desarrollado. La actividad de programación probablemente duró bastante poco, ya que las tareas simples son rápidas y fáciles de completar. Este es el esfuerzo que DeRemer y Kron describen como programación en lo pequeño.

Compárese con las actividades asociadas con un proyecto de sistemas de programación, nuevamente identificadas por Brooks. Un proyecto de este tipo se caracteriza por equipos industriales medianos o grandes que trabajan en el proyecto durante muchos meses o varios años. Es probable que el proyecto se divida en varios o cientos de módulos separados que individualmente tienen una complejidad similar a los programas individuales descritos anteriormente. Sin embargo, cada módulo definirá una interfaz con los módulos circundantes.

Brooks describe cómo los proyectos de sistemas de programación generalmente se ejecutan como proyectos formales que siguen las mejores prácticas de la industria y comprenderán pruebas, documentación y actividades de mantenimiento continuo, así como actividades para garantizar que el producto se generalice para funcionar en diferentes escenarios, incluidos sistemas distintos al de desarrollo. sistemas en los que fue creado.

Programación en grande

En el desarrollo de software , la programación a gran escala puede implicar la programación por grupos más grandes de personas o por grupos más pequeños durante períodos de tiempo más largos. [2] Cualquiera de estas condiciones dará como resultado programas grandes y, por lo tanto, complicados que pueden ser difíciles de entender para los mantenedores.

Con la programación en general, los administradores de codificación ponen énfasis en dividir el trabajo en módulos con interacciones especificadas con precisión. Esto requiere una planificación cuidadosa y una documentación cuidadosa.

Con la programación a gran escala, los cambios de programa pueden resultar difíciles. [2] Si un cambio opera a través de los límites de los módulos, es posible que sea necesario rehacer el trabajo de muchas personas. Debido a esto, uno de los objetivos de la programación en general implica configurar módulos que no necesitarán modificaciones en caso de probables cambios. Esto se logra diseñando módulos de modo que tengan una alta cohesión y un acoplamiento flexible .

La programación a gran escala requiere habilidades de gestión . El proceso de construcción de abstracciones apunta no sólo a describir algo que puede funcionar, sino también a dirigir los esfuerzos de las personas que lo harán funcionar.

El concepto fue introducido por Frank DeRemer y Hans Kron en su artículo de 1975 "Programación en lo grande versus programación en lo pequeño", IEEE Trans. en Suave. Ing. 2(2).

En términos de informática , la programación en general puede referirse al código de programación que representa la lógica de transición de estado de alto nivel de un sistema . [ dudoso - discutir ] Esta lógica codifica información como cuándo esperar mensajes , cuándo enviar mensajes, cuándo compensar transacciones fallidas que no sean ACID , etc.

Un lenguaje que fue diseñado para soportar explícitamente la programación a gran escala es BPEL .

Programación en lo pequeño

En el desarrollo de software , la programación en pequeño describe la actividad de escribir un programa pequeño. Los programas pequeños se caracterizan por ser pequeños en términos de tamaño de código fuente, son fáciles de especificar, rápidos de codificar y normalmente realizan muy bien una tarea o algunas tareas muy estrechamente relacionadas.

La programación a pequeña escala puede implicar la programación por parte de individuos o grupos pequeños durante períodos de tiempo cortos y puede implicar prácticas menos formales (por ejemplo, menos énfasis en la documentación o las pruebas), herramientas y lenguajes de programación (por ejemplo, la selección de un lenguaje de programación de tipo flexible en lugar de otro) . un lenguaje de programación estrictamente tipado ). La programación en pequeño también puede describir un enfoque para crear un prototipo de software o donde el desarrollo rápido de una aplicación es más importante que la estabilidad o la corrección.

En términos de informática, la programación en los pequeños negocios con un comportamiento programático de corta duración, a menudo ejecutado como una única transacción ACID y que permite el acceso a la lógica local y a recursos como archivos, bases de datos, etc. [ dudosodiscutir ]

Referencias

  1. ^ DeRemer, Frank; Kron, Hans (1 de abril de 1975). "Programación en lo grande versus programación en lo pequeño". Actas de la conferencia internacional sobre software confiable - . vol. 10. Asociación de Maquinaria de Computación. págs. 114-121. doi :10.1145/800027.808431. S2CID  1022671: a través de la biblioteca digital ACM.
  2. ^ abc Brooks, Frederick P., Jr. (1982). "The Tar Pit", publicado en The Mythical Man-Month – Edición Aniversario . ISBN 0-201-83595-9 

Otras lecturas