Программирование в большом и программирование в малом
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
В разработке программного обеспечения программирование в целом и программирование в малом относятся к двум различным аспектам написания программного обеспечения. Программирование в большом масштабе означает проектирование более крупной системы как композиции из более мелких частей, а программирование в малом означает создание этих более мелких частей путем написания строк кода на языке программирования.Эти термины были придуманы Фрэнком ДеРемером и Хансом Кроном в их статье 1975 года «Программирование в целом против программирования в малом». [1] в котором они утверждают, что это по сути разные виды деятельности и что типичные языки программирования и практика структурного программирования обеспечивают хорошую поддержку последнему, но не первому.
Это можно сравнить с более поздней дихотомией Остерхаута , которая различает языки системного программирования (для компонентов) и языки сценариев (для связующего кода , соединяющего компоненты).
Описание [ править ]
Фред Брукс отмечает, что способ создания отдельной программы отличается от того, как создается продукт системы программирования. [2] Первый, вероятно, хорошо справляется с одной относительно простой задачей. Вероятно, он написан одним инженером, является законченным сам по себе и готов к работе в системе, в которой он был разработан. Деятельность по программированию, вероятно, была довольно недолгой, поскольку простые задачи можно быстро и легко выполнить. Это попытка, которую ДеРемер и Крон называют программированием в малом.
Сравните с деятельностью, связанной с проектом системы программирования, опять же, как это определил Брукс. Типичным примером такого проекта являются средние или крупные промышленные группы, работающие над проектом от многих месяцев до нескольких лет. Проект, скорее всего, будет разделен на несколько или сотни отдельных модулей, которые по отдельности имеют такую же сложность, что и отдельные программы, описанные выше. Однако каждый модуль будет определять интерфейс с окружающими его модулями.
Брукс описывает, как проекты систем программирования обычно выполняются как формальные проекты, соответствующие лучшим отраслевым практикам, и включают в себя тестирование, документирование и текущие действия по обслуживанию, а также действия, обеспечивающие универсальность продукта для работы в различных сценариях, в том числе в системах, отличных от разработки. системы, на которых он был создан.
Программирование в целом [ править ]
При разработке программного обеспечения программирование в целом может включать в себя программирование большими группами людей или меньшими группами в течение более длительных периодов времени. [2] Любое из этих условий приведет к созданию больших и, следовательно, сложных программ, понимание которых может оказаться трудным для разработчиков.
При программировании в целом менеджеры по кодированию уделяют особое внимание разбиению работы на модули с точно заданными взаимодействиями. Это требует тщательного планирования и тщательного документирования.
При программировании в целом внесение изменений в программу может оказаться затруднительным. [2] Если изменение выходит за рамки модуля, может потребоваться переделка работы многих людей. По этой причине одна из целей программирования в целом включает в себя настройку модулей, которые не потребуется изменять в случае возможных изменений. Это достигается за счет разработки модулей таким образом, чтобы они имели высокую связность и слабую связь .
Программирование в целом требует навыков создания абстракций. [ нужна ссылка ] Пока модуль не будет реализован, он остается абстракцией . Взятые вместе, абстракции должны создать архитектуру, которая вряд ли потребует изменений. [ нужна ссылка ] Они должны определять взаимодействия, которые имеют точность и доказуемую правильность.
Программирование в целом требует навыков управления . Целью процесса построения абстракций является не просто описание чего-то, что может работать, но и направление усилий людей, которые заставят это работать.
Эта концепция была представлена Фрэнком ДеРемером и Хансом Кроном в их статье 1975 года «Программирование в большом и малом программировании», IEEE Trans. на Софте. англ. 2(2).
В информатики терминах программирование в целом собой высокоуровневую логику перехода состояний системы может относиться к программному коду, который представляет . [ сомнительно – обсудить ] Эта логика кодирует такую информацию, как, когда ждать сообщений , когда отправлять сообщения, когда компенсировать неудачные не относящиеся к ACID транзакции, , и т. д.
Языком, который был разработан для явной поддержки программирования в целом, является BPEL .
Программирование в малом [ править ]
В разработке программного обеспечения программирование в миниатюре описывает деятельность по написанию небольшой программы. Маленькие программы характеризуются небольшим размером исходного кода, их легко определить, они быстро кодируются и обычно очень хорошо выполняют одну задачу или несколько очень тесно связанных задач.
Малое программирование может включать в себя программирование отдельными людьми или небольшими группами в течение коротких периодов времени и может включать менее формальные методы (например, меньший упор на документацию или тестирование), инструменты и языки программирования (например, выбор свободно типизированного языка сценариев вместо предпочтительного). язык строго типизированный программирования). Программирование в малом также может описывать подход к созданию прототипа программного обеспечения или когда быстрая разработка приложений важнее стабильности или правильности.
С точки зрения информатики, мелкое программирование имеет дело с кратковременным программным поведением, часто выполняемым как одна транзакция ACID и обеспечивающим доступ к локальной логике и ресурсам, таким как файлы, базы данных и т. д. [ сомнительно – обсудить ]
Ссылки [ править ]
- ^ ДеРемер, Фрэнк; Крон, Ганс (1 апреля 1975 г.). «Программирование в целом против программирования в мелочах» . Материалы международной конференции по Надежному программному обеспечению - . Том. 10. Ассоциация вычислительной техники. стр. 114–121. дои : 10.1145/800027.808431 . S2CID 1022671 - через цифровую библиотеку ACM.
- ^ Jump up to: Перейти обратно: а б с Брукс, Фредерик П. младший (1982). «Смоляная яма», опубликованная в журнале «Мифический человеко-месяц – юбилейное издание» . ISBN 0-201-83595-9
Дальнейшее чтение [ править ]
- ДеРемер, Фрэнк; Крон, Ганс (1975). «Программирование в целом против программирования в малом». Материалы международной конференции «Надежное программное обеспечение» . Лос-Анджелес, Калифорния : Ассоциация вычислительной техники . стр. 114–121. дои : 10.1145/800027.808431 .