Articulo de referencia

Programación a gran escala y programación a pequeña escala

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 ...

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 ambas 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 soporte para la segunda, pero no para la primera.

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 conexión , que une componentes).

Descripción

Fred Brooks señala que la forma en que se crea un programa individual es diferente a la forma en que se crea un producto de sistema de programación. [ 2 ] El primero probablemente realiza bien una tarea relativamente simple. Probablemente lo codifica un solo ingeniero, es completo en sí mismo y está listo para ejecutarse en el sistema en el que se desarrolló. La actividad de programación probablemente fue 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 en pequeño.

Compárese con las actividades asociadas a un proyecto de sistemas de programación, tal como lo describe Brooks. Este tipo de proyecto se caracteriza por equipos industriales medianos o grandes que trabajan en él durante varios meses o incluso años. Es probable que el proyecto se divida en varios o cientos de módulos independientes, cada uno con una complejidad similar a la de 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 suelen gestionarse como proyectos formales que siguen las mejores prácticas del sector e incluyen 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 en la gran pantalla

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

En la programación a gran escala, los gestores de código hacen hincapié en dividir el trabajo en módulos con interacciones especificadas con precisión. Esto requiere una planificación y documentación meticulosas.

En la programación a gran escala, los cambios en el programa pueden resultar difíciles. [ 2 ] Si un cambio afecta a varios módulos, es posible que sea necesario rehacer el trabajo de muchas personas. Por ello, uno de los objetivos de la programación a gran escala consiste en configurar módulos que no necesiten modificaciones ante posibles cambios. Esto se logra diseñando módulos con alta cohesión y bajo acoplamiento .

La programación a gran escala requiere habilidades de gestión . El proceso de creación de abstracciones no solo busca describir algo que pueda 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 "Programming-in-the-Large Versus Programming-in-the-Small", IEEE Trans. on Soft. Eng. 2(2).

En términos informáticos , la programación a gran escala puede referirse al código de programación que representa la lógica de transición de estados de alto nivel de un sistema . Esta lógica codifica información como cuándo esperar mensajes , cuándo enviarlos, cuándo compensar transacciones que no cumplen con las propiedades ACID , etc.

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

Programación en el 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 tener un tamaño reducido en su código fuente, ser fáciles de especificar, rápidos de codificar y, por lo general, realizar una tarea o unas pocas tareas muy relacionadas de manera eficiente.

La programación a pequeña escala puede implicar la programación por parte de individuos o grupos reducidos durante períodos cortos y puede incluir prácticas menos formales (por ejemplo, menor énfasis en la documentación o las pruebas), herramientas y lenguajes de programación menos formales (por ejemplo, la elección de un lenguaje de scripting 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 la creación de prototipos de software, o cuando el desarrollo rápido de aplicaciones es más importante que la estabilidad o la corrección.

En términos informáticos, la programación a pequeña escala se ocupa del comportamiento programático de corta duración, que a menudo se ejecuta como una única transacción ACID y que permite el acceso a la lógica y los recursos locales, como archivos, bases de datos, etc.

Referencias

  1. DeRemer, Frank; Kron, Hans (1 de abril de 1975). "Programación a gran escala versus 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. 1 2 3 Brooks, Frederick P., Jr. (1982). "El pozo de alquitrán", publicado en The Mythical Man-Month – Edición de aniversario . ISBN 0-201-83595-9

Lecturas adicionales

Obtenido de " https://en.wikipedia.org/w/index.php?title=Programming_in_the_large_and_programming_in_the_small&oldid=1317340471#Programming_in_the_large "