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, a saber, diseñar un sistema más grande como una composición de partes más pequeñas y crear esas partes más pequeñas escribiendo líneas de código en un lenguaje de programación. respectivamente. Los términos fueron acuñados por Frank DeRemer y Hans Kron en su artículo de 1975 "Programación en grande versus programación en pequeño", [1] en el que argumentan que las dos son actividades esencialmente diferentes, y que lo típico Los lenguajes de programación y la práctica de la programación estructurada proporcionan un buen soporte para el segundo, pero no para el primero.
Esto puede compararse con la dicotomía del último Ousterhout , que distingue entre lenguajes de programación del sistema (para componentes) y lenguajes de scripting (para código de pegamento , componentes de conexión).
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 se desarrolló. La actividad de programación probablemente duró 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árelo 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 varios meses o varios años. Es probable que el proyecto se divida en varios o cientos de módulos separados que individualmente son de una complejidad similar a los programas individuales descritos anteriormente. Sin embargo, cada módulo definirá una interfaz con sus módulos circundantes.
Brooks describe cómo los proyectos de sistemas de programación se ejecutan típicamente 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 del desarrollo. sistemas en los que fue creado.
Programación en grande
En el desarrollo de software , la programación en general puede implicar la programación de grupos más grandes de personas o de grupos más pequeños durante períodos de tiempo más largos. [2] Cualquiera de estas condiciones resultará en programas grandes y, por lo tanto, complicados que pueden ser difíciles de entender para los encargados de mantenimiento.
Con la programación a gran escala, los administradores de codificación hacen hincapié 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 del módulo, es posible que el trabajo de muchas personas deba rehacerse. Debido a esto, uno de los objetivos de la programación en general implica la creación de módulos que no necesitarán ser modificados en caso de cambios probables. Esto se logra diseñando módulos para que tengan una alta cohesión y un acoplamiento flojo .
La programación en general requiere habilidades para crear abstracciones. [ cita requerida ] Hasta que un módulo se implementa, sigue siendo una abstracción . En conjunto, las abstracciones deberían crear una arquitectura que probablemente no necesite cambios. [ cita requerida ] Deben definir interacciones que tengan precisión y corrección demostrable.
La programación en general requiere habilidades de gestión . El proceso de construcción de abstracciones tiene como objetivo no solo 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 en grande versus programación en pequeño", IEEE Trans. en Soft. 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 ] Esta lógica codifica información como cuándo esperar mensajes , cuándo enviar mensajes, cuándo compensar transacciones fallidas no ACID , etc.
Un lenguaje que fue diseñado para admitir explícitamente la programación en general 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 pequeño programa. 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 muy bien una tarea o algunas tareas muy estrechamente relacionadas.
La programación en pequeño puede involucrar la programación por parte de individuos o grupos pequeños durante períodos cortos de tiempo y puede involucrar 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 scripting escrito libremente en lugar de un lenguaje de programación estrictamente mecanografiado ). La programación en pequeño también puede describir un enfoque para hacer un software prototipo o donde el desarrollo rápido de aplicaciones es más importante que la estabilidad o la corrección.
En términos de ciencias de la computación, la programación en los pequeños trata con comportamiento programático de corta duración, a menudo ejecutado como una sola transacción ACID y que permite el acceso a la lógica local y recursos como archivos, bases de datos, etc. [ dudoso ]
Referencias
- ^ 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 - . 10 . Asociación para Maquinaria de Computación. págs. 114-121. doi : 10.1145 / 800027.808431 - a través de la biblioteca digital ACM.
- ↑ a b c Brooks, Frederick P., Jr. (1982). "The Tar Pit", publicado en The Mythical Man-Month - Anniversary Edition . ISBN 0-201-83595-9
Otras lecturas
- DeRemer, Frank; Kron, Hans (1975). "Programación en lo grande versus programación en lo pequeño". Actas de la conferencia internacional sobre software confiable . Los Ángeles, California : Asociación de Maquinaria de Computación . págs. 114-121. doi : 10.1145 / 800027.808431 .