Пакет прикладных программ

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Паке́т прикладны́х програ́мм (аббр. ППП, англ. application package[1]) или паке́т програ́мм — набор взаимосвязанных модулей, предназначенных для решения задач определённого класса некоторой предметной области. По смыслу ППП было бы правильнее назвать пакетом модулей вместо устоявшегося термина пакет программ. Отличается от библиотеки тем, что создание библиотеки не ставит целью полностью покрыть нужды предметной области, так как приложение может использовать модули нескольких библиотек. Требования же к пакету программ жёстче: приложение для решения задачи должно использовать только модули пакета, а создание конкретного приложения может быть доступно непрограммистам[2].

Пакетному подходу можно противопоставить создание «универсальной» программы. Такая программа может участвовать в решении различных задач, тогда как в пакетном подходе несколько модулей пакета объединяются для решения одной задачи. Разница может показаться небольшой (из пакета программ можно, добавив управляющую надстройку, сделать «универсальную» программу, или наоборот, использовать некоторые модули «универсальной» программы в качестве ППП). Тем не менее, с точки зрения архитектуры, ППП более удобен для расширения и модификации, так как развитие ППП может происходить за счёт добавления новых модулей, не затрагивающих работоспособность ранее отлаженных модулей[2].

Цепочечный подход[править | править вики-текст]

Проще всего проиллюстрировать пакетный подход на примере конвейера в Unix. Система Unix содержит большое количество небольших программ, выполняющих конкретную функцию. В конвейере входящие в цепочку программы могут обрабатывать некоторые данные[3].

В следующем примере данные об объёмах хранящихся в текущем каталоге подкаталогов вычисляются (команда du), сортируются (sort), выбираются 10 занимающих наибольший объём (tail), отбрасывается первое поле с числом (cut) и результат печатается на принтере (lpr):

du . | sort -n | tail -n 10 | cut -f 2- | lpr

Цепочечный подход в ряде случаев можно автоматизировать, поручив построение цепочки системным средствам пакета[3]. Помимо перечислительного механизма к созданию цепочки (явное задание входящих в цепочку модулей), возможен ассоциативный механизм, при котором модуль включается системными средствами в формируемую программу на основании некоторого атрибута. В случае, когда пользователь задаёт известные и искомые величины, восстановление цепочки средствами системы называется автоматическим планированием вычислений. Несмотря на некоторые достоинства и отдельные успехи (системы ПРИЗ и СПОРА), автоматическое планирование вычислений не получило массового развития по причине бедности цепочки как конфигурационного ориентира[4].

Каркасный подход[править | править вики-текст]

При накоплении опыта программирования в любой предметной области со временем вырабатывается представления о рациональной модульной организации, накапливается набор модулей, которые сильно не изменяются при переходе от одной версии программ к другой, а также находятся постоянные места для сменных модулей. В результате вырисовывается архитектура приложения, состоящая из постоянного компонента — каркаса, имеющего гнёзда для размещения сменных модулей[5]. Разумеется, гнёзда и сменные модули имеют согласованные спецификации.

Задание конкретной конфигурации для пользователя упрощается. Гнёзда каркаса — отражение характеристик решаемой задачи, в сменные модули — допустимые значения этих характеристик[5].

Например, в каркасе с двумя вариантными гнёздами может описать конфигурацию расчёта, не касаясь алгоритма задачи: Материал ← Алюминий, Точность ← Двойная.

В отличие от цепочечного, каркасный подход даёт больше свободы в проектировании структуры формируемой программы, что является предпочтительным для большинства предметных областей[5].

Виды пакетов[править | править вики-текст]

Можно выделить следующие виды ППП[6]:

Примечания[править | править вики-текст]

  1. Кочергин В. И. Введение // Англо-русский толковый научно-технический словарь по системному анализу, программированию, электронике и электроприводу. — Томск, 2008. — Т. 1. — С. 31. — 652 с. — ISBN 5751119371.
  2. 1 2 Горбунов-Посадов, 1999
  3. 1 2 Горбунов-Посадов, 1999, 3.2. Цепочечный подход
  4. Горбунов-Посадов, 1999, 3.3. Автоматическое составление цепочки
  5. 1 2 3 Горбунов-Посадов, 1999, 3.6. Каркасный подход
  6. Топоркова О. М. Учебное пособие по информатике. Пакеты прикладных программ, Калининградский государственный технический университет

Литература и ссылки[править | править вики-текст]