stringtranslate.com

Programación a lo grande y programación a lo pequeño

En ingeniería de software , " programación a gran escala " y " programación a pequeña escala " se refieren a dos aspectos diferentes de la escritura de software . "Programación a gran escala" significa diseñar un sistema más grande como una composición de partes más pequeñas, y "programación a pequeña escala" 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 a gran escala versus programación a pequeña escala", [1] en el que argumentan que las dos son actividades esencialmente diferentes, y que los lenguajes de programación típicos, y la práctica de la programación estructurada , brindan un buen respaldo 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 de unión , que conecta 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 realiza bien una tarea relativamente simple. Probablemente esté codificado por un solo ingeniero, sea completo en sí mismo y esté listo para ejecutarse en el sistema en el que se desarrolló. La actividad de programación probablemente haya sido bastante breve, 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 a pequeña escala.

Compárese con las actividades asociadas con un proyecto de sistemas de programación, como lo identifica Brooks. Este tipo de proyecto se caracteriza por equipos industriales de tamaño mediano o grande que trabajan en el proyecto durante muchos meses o 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 actividades de prueba, documentación y mantenimiento continuo, así como actividades para garantizar que el producto se generalice para funcionar en diferentes escenarios, incluso en sistemas distintos de los sistemas de desarrollo en los que fue creado.

Programación a gran escala

En el desarrollo de software , la programación a gran escala puede implicar programación por parte de grupos más grandes de personas o por parte de 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.

En la programación a gran escala, 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 y una documentación cuidadosas.

En 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. Por este motivo, uno de los objetivos de la programación a gran escala consiste en configurar módulos que no necesiten modificaciones en caso de que se produzcan cambios probables. Esto se logra diseñando módulos de manera que tengan una alta cohesión y un acoplamiento flexible .

La programación a gran escala requiere habilidades de gestión . El proceso de creación de abstracciones no solo tiene como objetivo describir algo que puede funcionar, sino también 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 a gran escala versus programación a pequeña escala", IEEE Trans. on Soft. Eng. 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 estados de alto nivel de un sistema . [ dudosodiscutir ] Esta lógica codifica información como cuándo esperar mensajes , cuándo enviar mensajes, cuándo compensar transacciones no ACID fallidas , 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 a pequeña escala describe la actividad de escribir un programa pequeño. Los programas pequeños se caracterizan por ser pequeños en términos del tamaño de su código fuente, son fáciles de especificar, rápidos de codificar y, por lo general, realizan una tarea o unas pocas tareas muy relacionadas muy bien.

La programación a pequeña escala puede implicar programación por parte de individuos o grupos pequeños durante períodos cortos de tiempo 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 tipado flexible en lugar de un lenguaje de programación de tipado estricto ). La programación a pequeña escala también puede describir un enfoque para crear un prototipo de software o donde el desarrollo rápido de aplicaciones es más importante que la estabilidad o la corrección.

En términos de informática, la programación a pequeña escala se ocupa de 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 a gran escala frente a programación a pequeña escala". Actas de la conferencia internacional sobre software confiable - . Vol. 10. Association for Computing Machinery. págs. 114–121. doi :10.1145/800027.808431. S2CID  1022671 – vía ACM Digital Library.
  2. ^ abc Brooks, Frederick P., Jr. (1982). "The Tar Pit", publicado en The Mythical Man-Month – Anniversary Edition . ISBN 0-201-83595-9 

Lectura adicional