В этой статье есть несколько проблем. Помогите улучшить ее или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти сообщения )
|
В программной инженерии « программирование в большом » и « программирование в малом » относятся к двум различным аспектам написания программного обеспечения . «Программирование в большом» означает проектирование более крупной системы как композиции из более мелких частей, а «программирование в малом» означает создание этих более мелких частей путем написания строк кода на языке программирования . Термины были введены Фрэнком ДеРемером и Хансом Кроном в их статье 1975 года «Программирование в большом против программирования в малом», [1] , в которой они утверждают, что это два по сути разных вида деятельности, и что типичные языки программирования и практика структурного программирования обеспечивают хорошую поддержку для последнего, но не для первого.
Это можно сравнить с более поздней дихотомией Оустерхаута , которая различает языки системного программирования (для компонентов) и языки сценариев (для связующего кода , соединяющего компоненты).
Фред Брукс определяет, что способ создания отдельной программы отличается от способа создания продукта систем программирования. [2] Первый, вероятно, хорошо выполняет одну относительно простую задачу. Он, вероятно, написан одним инженером, является завершенным сам по себе и готов к запуску в системе, на которой он был разработан. Программирование, вероятно, было довольно недолгим, поскольку простые задачи выполняются быстро и легко. Это то, что ДеРемер и Крон описывают как программирование в малом.
Сравните с деятельностью, связанной с проектом систем программирования, опять же, как это определил Брукс. Такой проект типично для средних или крупных промышленных команд, работающих над проектом в течение многих месяцев или нескольких лет. Проект, скорее всего, будет разделен на несколько или сотни отдельных модулей, которые по отдельности имеют схожую сложность с отдельными программами, описанными выше. Однако каждый модуль будет определять интерфейс для окружающих его модулей.
Брукс описывает, как проекты по программированию систем обычно выполняются как формальные проекты, которые следуют лучшим отраслевым практикам и включают в себя тестирование, документирование и текущее обслуживание, а также мероприятия, гарантирующие, что продукт будет универсальным для работы в различных сценариях, в том числе на системах, отличных от систем разработки, на которых он был создан.
При разработке программного обеспечения программирование в целом может включать программирование большими группами людей или меньшими группами в течение более длительных периодов времени. [2] Любое из этих условий приведет к созданию больших и, следовательно, сложных программ, которые могут быть сложны для понимания сопровождения.
При программировании в целом менеджеры по кодированию делают акцент на разделении работы на модули с точно определенными взаимодействиями. Это требует тщательного планирования и тщательного документирования.
При программировании в целом внесение изменений в программу может стать затруднительным. [2] Если изменение выходит за рамки границ модуля, может потребоваться переделать работу многих людей. Из-за этого одна из целей программирования в целом заключается в настройке модулей, которые не нужно будет изменять в случае вероятных изменений. Это достигается путем проектирования модулей таким образом, чтобы они имели высокую степень сплоченности и слабую связанность .
Программирование в целом требует навыков управления . Процесс построения абстракций направлен не только на описание чего-то, что может работать, но и на направление усилий людей, которые заставят это работать.
Эта концепция была введена Фрэнком ДеРемером и Хансом Кроном в их статье 1975 года «Программирование в целом против программирования в малом», IEEE Trans. on Soft. Eng. 2(2).
В терминах компьютерной науки программирование в целом может относиться к программному коду, который представляет собой высокоуровневую логику перехода состояний системы . [ сомнительно – обсудить ] Эта логика кодирует информацию, например, когда ждать сообщений , когда отправлять сообщения, когда компенсировать неудачные не- ACID транзакции и т. д .
Язык, разработанный для явной поддержки программирования в больших масштабах, — это BPEL .
В разработке программного обеспечения программирование в малом описывает деятельность по написанию небольшой программы. Малые программы характеризуются малым размером исходного кода, их легко определить, они быстро кодируются и обычно очень хорошо выполняют одну задачу или несколько очень тесно связанных задач.
Программирование в малых масштабах может включать программирование отдельными лицами или небольшими группами в течение коротких периодов времени и может включать менее формальные практики (например, меньший акцент на документации или тестировании), инструменты и языки программирования (например, выбор слабо типизированного языка сценариев вместо строго типизированного языка программирования). Программирование в малых масштабах может также описывать подход к созданию прототипа программного обеспечения или когда быстрая разработка приложений важнее стабильности или корректности.
В терминах компьютерной науки программирование в малых масштабах имеет дело с кратковременным программным поведением, часто выполняемым как одна транзакция ACID и позволяющим получить доступ к локальной логике и ресурсам, таким как файлы, базы данных и т. д. [ сомнительно – обсудить ]