Паке́т прикладны́х програ́мм (аббр. ППП, англ. 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]:
- Общего назначения. Примеры: текстовый процессор, электронные таблицы, графический редактор, СУБД
- Офисные пакеты. Для обеспечения деятельности офиса. Включают органайзеры, средства OCR и т. п.
- Проблемно-ориентированные. Для предметных областей, в которых возможна типизация структур данных, алгоритмов обработки и функций управления. Примеры: бухгалтерский учёт, управление персоналом.
- САПР
- Настольная издательская система
- Системы искусственного интеллекта. Системы с диалогом на естественном языке, экспертные системы и т. п.
Примечания
править- ↑ Кочергин В. И. Введение // Англо-русский толковый научно-технический словарь по системному анализу, программированию, электронике и электроприводу. — Томск: --, 2008. — Т. 1. — С. 31. — 652 с. — ISBN 5751119371.
- ↑ 1 2 Горбунов-Посадов, 1999.
- ↑ 1 2 Горбунов-Посадов, 1999, 3.2. Цепочечный подход.
- ↑ Горбунов-Посадов, 1999, 3.3. Автоматическое составление цепочки.
- ↑ 1 2 3 Горбунов-Посадов, 1999, 3.6. Каркасный подход.
- ↑ Топоркова О. М. Учебное пособие по информатике. Пакеты прикладных программ, Калининградский государственный технический университет . Дата обращения: 8 ноября 2021. Архивировано 8 ноября 2021 года.
Литература и ссылки
править- Горбунов-Посадов М.М. Глава 3. Пакет программ // Расширяемые программы. — М.: Полиптих, 1999. — 336 с.
- Литвиненко А. Н., Кручинин А. Н. Метод модификации программного кода на основе компонентного подхода. Ростовский государственный университет
- Анатольев А. Г., АСОИУ ОмГТУ, Учебно-методический комплекс по дисциплине «Пакеты прикладных программ»
- Пакеты прикладных программ и их классификация на сайте www.maksakov-sa.ru/