Тема 1.2 Структура и основные компоненты ППП
Современные прикладные пакеты — это сложные программные решения, реализующие множество функций. В ходе проектирования и разработки ППП эти функции группируются по назначению и объединяются в структурные компоненты. Можно выделить по меньшей мере три таких компонента ППП: входной язык, предметное обеспечение и системное обеспечение.
Со времени появления первых компьютеров появилось множество прикладных разработок, но, несмотря на разнообразие, их обобщенную внутреннюю структуру можно представить в виде трех взаимосвязанных элементов (рис. 1):
- входной язык (макроязык, язык управления) — представляет средство общения пользователя с пакетом;
- предметное обеспечение (функциональное наполнение) — реализует особенности конкретной предметной области;
- системное обеспечение (системное наполнение) — представляет низкоуровневые средства, например, доступ к функциям операционной системы.
Рис. 1. Структура ППП
Входной язык — основной инструмент при работе пользователя с пакетом прикладных программ. В качестве входного языка могут использоваться как универсальные (Pascal, Basic и т.п.), так и специализированные, проблемно-ориентированные языки программирования (Cobol — для бизнес-приложений, Lisp — списочные структуры данных, Fortran и MathLAB — математические задачи и т.п.).
Развитый пакет может обладать несколькими входными языками, предназначенными для выполнения различных функций в рамках решаемого класса задач. Так, например в пакете OpenOffice.org поддерживаются языки StarBasic, Python, JavaScript и Java. StarBasic является основным входным языком, предназначенным для автоматизации работы с пакетом, для этого языка имеется интегрированная среда разработки и встроенный отладчик. Скрипты на языках Python и JavaScript загружаются и исполняются из внешних файлов. На Java (через SDK и функции API OpenOffice) можно создавать модули расширения и полнофункциональные приложения-компоненты.
Входные языки отражают объем и качество предоставляемых пакетом возможностей, а также удобство их использования. Таким образом, именно входной язык является основным показателем возможностей ППП. Однако стоит отметить, что в современных пакетах обращение пользователя к языковым средствам обычно происходит косвенно, через графический интерфейс.
Предметное обеспечение отражает особенности решаемого класса задач из конкретной предметной области и включает:
- программные модули, реализующие алгоритмы (или их отдельные фрагменты) прикладных задач;
- средства сборки программ из отдельных модулей.
Наиболее распространено в настоящее время оформление программных модулей в виде библиотек, подключаемых статически или динамически. В зависимости от использованного разработчиками подхода к проектированию и реализации ППП такие библиотеки содержат встроенные классы и описания их интерфейсов (при использовании объектно-ориентированного программирования). При использовании парадигмы структурного программирования в библиотечных модулях содержатся процедуры и функции, предназначенные для решения некоторых самостоятельных задач. В обоих случаях библиотеки связаны с другими модулями пакета лишь входной и выходной информацией.
Системное обеспечение представляет собой совокупность низкоуровневых средств (программы, файлы, таблицы и т.д.), обеспечивающих определенную дисциплину работы пользователя при решении прикладных задач и формирующих окружение пакета. К системному обеспечению ППП относят следующие компоненты:
- монитор — программа, управляющая взаимодействием всех компонентов ППП;
- транслятор(ы) с входных языков — для ППП характерно использование интерпретируемых языков;
- средства доступа к данным — драйверы баз данных и/или компоненты, представляющие доступ через унифицированные интерфейсы (ODBC, JDBC, ADO, BDE и т.п.);
- информационно-справочный модуль — предоставляет функции поддержки, среди которых информационные сообщения, встроенная справочная системы и т.п.
- различные служебные программы, выполняющие низкоуровневые операции (автосохранение, синхронизация совместно используемых файлов и т.д.)
Приведенная трехкомпонентная логическая структура ППП достаточна условна, она зависит от использованных подходов к проектированию ПО, используемым технологиям программирования, предметной области и других факторов, вплоть до индивидуальных предпочтений разработчика. Так, в конкретном ППП может отсутствовать четкое разделение программ на предметное и системное обеспечение. Например, программа планирования вычислений, относящаяся к прикладному обеспечению, может одновременно выполнять и ряд служебных функций (информационное обеспечение, связь с операционной системой и т.п.). С другой стороны, распределенные приложения добавляют свою специфику в структуру ППП.
Кроме того, одни и те же программы в одном пакете могут относиться к предметному обеспечению, а в другом — к системному. Так, программы построения диаграмм в рамках специализированного пакета машинной графики естественно отнести к предметному обеспечению. Однако те же программы следует считать вспомогательными и относящимися к системному обеспечению, например, в пакете решения вычислительных задач.
CC-BY-CA Анатольев А.Г., 05.11.2013