stringtranslate.com

Программирование в большом и программирование в малом

В разработке программного обеспечения программирование в целом и программирование в малом относятся к двум различным аспектам написания программного обеспечения. Программирование в большом масштабе означает проектирование более крупной системы как композиции более мелких частей, а программирование в малом означает создание этих более мелких частей путем написания строк кода на языке программирования. Эти термины были придуманы Фрэнком ДеРемером и Хансом Кроном в их статье 1975 года «Программирование в целом против программирования в малом» [1] , в которой они утверждают, что это по сути разные виды деятельности, и что типичным является языки программирования и практика структурного программирования обеспечивают хорошую поддержку последнему, но не первому.

Это можно сравнить с более поздней дихотомией Оустерхаута , которая различает языки системного программирования (для компонентов) и языки сценариев (для связующего кода , соединяющего компоненты).

Описание

Фред Брукс отмечает, что способ создания отдельной программы отличается от того, как создается продукт системы программирования. [2] Первый, вероятно, хорошо справляется с одной относительно простой задачей. Вероятно, он написан одним инженером, является законченным сам по себе и готов к работе в системе, в которой он был разработан. Деятельность по программированию, вероятно, была довольно недолгой, поскольку простые задачи выполняются быстро и легко. Это стремление ДеРемер и Крон описывают как программирование в малом.

Сравните с деятельностью, связанной с проектом системы программирования, опять же, как это определил Брукс. Типичным примером такого проекта являются средние или крупные промышленные группы, работающие над проектом от многих месяцев до нескольких лет. Проект, скорее всего, будет разделен на несколько или сотни отдельных модулей, которые по отдельности имеют такую ​​же сложность, что и отдельные программы, описанные выше. Однако каждый модуль будет определять интерфейс с окружающими его модулями.

Брукс описывает, как проекты систем программирования обычно выполняются как формальные проекты, соответствующие лучшим отраслевым практикам, и включают в себя тестирование, документирование и текущие действия по обслуживанию, а также действия, обеспечивающие универсальность продукта для работы в различных сценариях, в том числе в системах, отличных от разработки. системы, на которых он был создан.

Программирование в большом масштабе

При разработке программного обеспечения программирование в целом может включать в себя программирование большими группами людей или меньшими группами в течение более длительных периодов времени. [2] Любое из этих условий приведет к созданию больших и, следовательно, сложных программ, которые могут быть сложными для понимания сопровождающими.

При программировании в целом менеджеры по кодированию делают упор на разделение работы на модули с точно заданными взаимодействиями. Это требует тщательного планирования и тщательного документирования.

При программировании в целом внесение изменений в программу может оказаться затруднительным. [2] Если изменение выходит за рамки модуля, может потребоваться переделка работы многих людей. По этой причине одна из целей программирования в целом включает в себя настройку модулей, которые не потребуется изменять в случае возможных изменений. Это достигается за счет разработки модулей таким образом, чтобы они имели высокую связность и слабую связь .

Программирование в целом требует навыков управления . Целью процесса построения абстракций является не просто описание чего-то, что может работать, но и направление усилий людей, которые заставят это работать.

Эта концепция была представлена ​​Фрэнком ДеРемером и Хансом Кроном в их статье 1975 года «Программирование в большом и малом программировании», IEEE Trans. на Софте. англ. 2(2).

В терминах информатики программирование в целом может относиться к программному коду, который представляет собой высокоуровневую логику перехода состояний системы . [ сомнительнообсудить ] Эта логика кодирует такую ​​информацию, как, когда ждать сообщений , когда отправлять сообщения, когда компенсировать неудачные транзакции, не относящиеся к ACID , и т. д.

Языком, который был разработан для явной поддержки программирования в целом, является BPEL .

Программирование в малом

В разработке программного обеспечения программирование в миниатюре описывает деятельность по написанию небольшой программы. Маленькие программы характеризуются небольшим размером исходного кода, их легко определить, они быстро кодируются и обычно очень хорошо выполняют одну задачу или несколько очень тесно связанных задач.

Малое программирование может включать в себя программирование отдельными людьми или небольшими группами в течение коротких периодов времени и может включать менее формальные методы (например, меньший упор на документацию или тестирование), инструменты и языки программирования (например, выбор свободно типизированного языка сценариев вместо предпочтительного). строго типизированный язык программирования). Программирование в малом также может описывать подход к созданию прототипа программного обеспечения или случаи, когда быстрая разработка приложений важнее стабильности или правильности.

С точки зрения информатики, мелкое программирование имеет дело с кратковременным программным поведением, часто выполняемым как одна ACID- транзакция и обеспечивающим доступ к локальной логике и ресурсам, таким как файлы, базы данных и т. д. [ сомнительнообсудить ]

Рекомендации

  1. ^ ДеРемер, Фрэнк; Крон, Ганс (1 апреля 1975 г.). «Программирование в целом против программирования в малом». Материалы международной конференции по Надежному программному обеспечению - . Том. 10. Ассоциация вычислительной техники. стр. 114–121. дои : 10.1145/800027.808431. S2CID  1022671 - через цифровую библиотеку ACM.
  2. ^ abc Брукс, Фредерик П. младший (1982). «Смоляная яма», опубликованная в журнале «Мифический человеко-месяц – юбилейное издание» . ISBN 0-201-83595-9 

дальнейшее чтение