Материал: Пакеты прикладных программных продуктов. Лубянская Э.Б., Лукаш Е.Н

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

3. Главные особенности ппп и функции их основных компонентов

Пакетом прикладных программ можно считать любой комплекс, ориентированный на решение некоторого класса задач. Формально такое определение не исключает из числа пакетов и библиотеки программ. Однако сложившееся на сегодняшний день представление о ППП как о самостоятельной форме программного обеспечения, позволяет указать на ряд характерных отличительных особенностей пакетов.

Одной из главных особенностей является ориентация ППП не на отдельную задачу, а на некоторый класс задач, включающий и специфические задачи предметной области. Отсюда следует необходимость, модульной организации ППП как основного технологического принципа его конструирования. Суть этого принципа состоит в оформлении общих фрагментов используемых алгоритмов в виде самостоятельных модулей. Решение сформулированной пользователем задачи осуществляется некоторой "цепочкой" таких модулей.

Другой особенностью ППП является наличие в его составе специализированных языковых средств, обеспечивающих удобную работу пользователя с пакетом. Как правило, развитый пакет обладает несколькими входными языками, ориентированными на выполнение различных функций и различные типы пользователей. Язык может предназначаться для формулировки исходной задачи, описания алгоритма решения и начальных данных, организации доступа и поддержания базы данных или информационной базы ППП, разработки программных модулей, описания модели предметной области, управления процессом решения в диалоговом режиме и других целей.

Еще одна особенность ППП состоит в наличии специальных сис-темных средств, обеспечивавших принятую в предметной области дисциплину работы. К их числу относятся специализированные банки данных, средства информационного обеспечения, средства взаимодействия пакета с операционной системой и т. п.

Несмотря на большое разнообразие конкретных пакетных разработок, можно выделить следующие основные компоненты ППП:

- входные языки;

- предметное обеспечение;

- системное обеспечение.

Важно отметить, что такое разбиение на составные элементы отражает в первую очередь функции, выполняемые с программами ППП, а не структуру самих программ, которая зависит от индивидуальных особенностей конкретного пакета. В разных пакетах указанные компоненты могут быть развиты в различной степени или вовсе отсутствовать. Однако наиболее развитые ППП, как правило, обладают всеми этими компонентами, каждый из которых может иметь довольно сложную структуру.

В многочисленных работах, посвященных пакетной проблематике, из-за не устоявшейся терминологии нередко используются другие названия составных элементов ППП. Например, входной язык называют также языком заданий или языком управления. Для обозначения предметного обеспечения применяются термины "функциональное наполнение", "функциональная подсистема" или "тело пакета". Системное обеспечение часто называют системным наполнением, организующей или управляющей программой, а также процессором пакета.

Рассмотрим функции каждого из компонентов ППП.

Входные языки представляют собой средство общения пользователя с пакетом. Развитый пакет может обладать несколькими входными языками, предназначенными для выполнения различных функций и ориентированными на различные типы пользователей.

Входные языки отражают объем и качество предоставляемых пакетом средств, а также удобство их использования. Таким образом, с точки зрения конечного пользователя именно входной язык является основным показателем возможностей ППП.

В качестве входных языков могут использоваться как универсальные, так и специализированные языки программирования. Например, в качестве входного языка разработчика ППП для написания прикладных и системных программ пакета обычно используется тот или иной универсальный язык программирования (Фортран, Паскаль). В то же время входной язык конечного пользователя в развитом пакете, как правило, является языком качественно более высокого уровня по сравнению с универсальными языками. Изобразительные средства такого языка учитывают особенности задач предметной области и специфику пользователей. Подобные языки называют проблемно-ориентированными, или предметно-ориентированными.

Предметное обеспечение представляет собой компонент пакета, отражающий особенности первого из этих факторов, т. е. особенности конкретной предметной области. Предметное обеспечение включает:

- программные модули, реализующие алгоритмы (или их отдельные фрагменты) решения прикладных задач;

- средства сборки программ из отдельных модулей.

Системное обеспечение представляет собой совокупность системных средств (программы, файлы, таблицы и т. д.), обеспечивающих определенную дисциплину работы пользователя при решении прикладных задач. По своей роли в составе ППП и выполняемым функциям системное обеспечение по существу является специализированной операционной системой, определяющей операционное окружение пакета. Несмотря на многообразие способов реализации системного обеспечения в рамках конкретных пакетных разработок, можно выделить его следующие основные компоненты:

- монитор, управляющий процессом решения и взаимодействием всех компонентов ППП;

- трансляторы с входных языков;

- средства работы с данными;

- средства информационного обеспечения, реализующие выдачу разнообразной справочной информации как по запросам пользователей (о структуре и возможностях ППП, о допущенных ошибках и т.д.), так и по запросам различных компонентов пакета (например, сведения о свойствах модулей предметного обеспечения, необходимые планировщику вычислений);

- различные служебные программы, в том числе реализующие взаимодействие пакета с операционной системой (работа с внешней памятью, средства ввода/вывода, драйверы специализированных, внешних устройств и др.).

В конкретном ППП, как правило, отсутствует четкое структурное разделение программ на предметное и системное обеспечение. Например, программа планирования вычислений может одновременно выполнять те или иные служебные функции (информационное обеспечение, связь с операционной системой и т. п.) и тем самым относиться как к предметному, так и к системному обеспечению. Кроме того, одни и те же программы в одном пакете могут относиться к предметному обеспечению, а в другом - к системному. Так, программы вывода графиков в рамках специализированного пакета машинной графики естественно отнести к предметному обеспечению. Однако те же программы следует считать служебными и относящимися к системному обеспечению, например, в пакете решения вычислительных задач).

4. Особенности проектирования обслуживающих модулей ппп

4.1. Функции обслуживающих модулей пакета

Обслуживающие модули должны обеспечить связь управляющей части пакета с пользователем и связь с данными (файлами), не входящими в информационную базу пакета. В ряде случаев может возникнуть потребность в выполнении различных согласующих функций для связи управляющих моделей с обрабатывающими. Исходя из этого, общее назначение обслуживающих модулей сводится к обеспечению:

  1. интерфейса с пользователем;

  2. интерфейса с файлами и базами данных, внешними относительно ППП (внешний интерфейс);

  3. внутренних согласующих функций, например, по формам представления данных.

Интерфейс с пользователем должен обеспечить получение данных (сообщений), подготавливаемых пользователем, и вывод сообщений, формируемых пакетом и представляемых в форме, удобной для восприятия пользователем, например в виде текстов, выводимых на экран или печатающее устройство.

По характеру информации выводимой или запрашиваемой пользователем, или формируемой пакетом, можно выделить четыре группы функций интерфейса с пользователем:

1) вывод справок о составе и состоянии модели предметной области, возможностях пакета в целом и в каждом состоянии модели предметной области (справочный интерфейс пользователя);

2) прием от пользователя и контроль управляющей информации: команд, программы на входном языке (интерфейс управления);

З) ввод данных, представляемых пользователем, и вывод данных (результатов вычислений) на экран или печатающее устройство (интерфейс ввода-вывода);

4) вывод информационных сообщений о возникающих при выполнении пакета особых ситуациях (ошибках), (информационный интерфейс).

Эти четыре группы функций могут реализовываться последовательно или параллельно. При последовательной работе пользователь поочередно обращается к различным функциям, т.е. либо получает справки, либо вводит управляющую информацию, либо вводит новые данные, либо просматривает результаты расчетов. Параллельная работа предусматривает возможность, например, обращения к справочной функции в процессе ввода управляющей информации или данных. Очевидно, что модули, реализующие эти функции, выполняются последовательно, но допускается прерывание, например, ввода управляющей информации для получения справки и возврат для продолжения ввода.

Результат работы пользовательского интерфейса представляется некоторыми сообщениями, например, на экране дисплея. Эта же информация для использования в модулях пакета представляется некоторым управляющим кодом. Следовательно, необходимы модули, преобразующие сообщения пользователя в управляющий код, и модули, преобразующие вырабатываемую в пакете информацию в сообщения для пользователя. Сложность этих модулей-трансляторов определяется сложностью и развитостью средств внешнего управления пакетом.

Наряду с обслуживающими модулями, обращение к которым происходит в процессе работы пакета, во многих пакетах целесообразно иметь и автономные обслуживающие программы, функциями которых должны быть:

  • настройка программ пакета на конкретные условия применения;

  • преобразование файлов с выходной информацией для согласования их с входными файлами других пакетов;

  • подготовка файлов с входными данными для пакета.

Необходимость в тех или иных функциях, особенности их реализации в значительной степени зависят от назначения пакета, вида и формы представления информации о модели предметной области пакета, структуры и функций управляющей части пакета, особенностей программирования обрабатывающих модулей. Отнесение той или иной функции к обслуживающей, управляющей или обрабатывающей условно и определяется решением разработчика пакета.

4.2. Интерфейс управления

Кроме ввода управляющей информации на модули, реализующие этот интерфейс, возлагается и первичный (лексический) контроль вводимой информации, чтобы исключить явные ошибки пользователя, в том числе случайные нажатия клавиш.

Наиболее просто организуется интерфейс при входном языке типа меню (рисунок 4.1). Вариант модуля интерфейса может быть построен по следующему алгоритму:

1. Активизировать функциональное окно для вывода меню, например выделить его определенным цветом.

2. Вывести в окно тексты пунктов меню.

3. Вывести приглашение к выбору одного из пунктов меню.

4. Ввести ответ пользователя.

5. Если ответ неверный, вывести сообщение об ошибке и вернуться к пункту 2.

6. Выход из модуля с передачей вызывающему модулю значения выбора пользователя.

В этом алгоритме предполагается, что пользователь вводит номер выбранного пункта. Можно упростить действия пользователя, если предоставить ему возможность непосредственно указывать выбранный пункт меню. Для этого один из пунктов меню (обычно первый) выделяется особым цветом, подчеркиванием или заключением в рамку. Пользователь указывает свой выбор, используя клавишу перемещения курсора вверх-вниз, а сделав выбор, нажимает клавишу "Ввод". В этом варианте работы можно исключить возможные ошибки пользователя, если интерфейсный модуль не будет реагировать на нажатие остальных клавиш, пока пользователь не сделает свой выбор.

Интерфейсный модуль для вывода меню целесообразно оформить как подпрограмму, в которую передаются указатель на массив с текстами пунктов меню и число пунктов, и которая возвращает номер выбранного пункта.

Например, главное меню ППП комплексной автоматизации управления предприятия ГАЛАКТИКА (версия 5.1) содержит перечень основных функций пакета (рисунок 4.1).

Рис. 4.1. Главное меню ППП Галактика

После выбора строки меню Финансовый анализ открывается окно этой программы (рисунок 4.2).

Рис. 4.2. Подменю ППП Галактика

Выбор строки меню Бух.Анализ , а затем Бухгалтерские расчеты (не показано) приводит к появлению окна Разделы с новыми строками меню Аналитический баланс и Финансовые коэффициенты. Выбор последнего открывает окно Документы с новыми строками меню. Для проведения оценки рентабельности выбирается соответствующая строчка и на основе финансовых показателей предприятия проводятся расчеты. Затем генерируется отчет (рисунок 4.3).

Несколько сложнее строится модуль интерфейса управления для входного языка командного типа. В этом случае фактически приходится решать две задачи: ввод кода команды и ввод операндов команды. Поскольку возможны команды без операндов, с фиксированным числом операндов и с переменным числом операндов, целесообразно предварительно сгруппировать команды по числу и способам задания операндов.

Рис. 4.3. Генерация отчета как конечный пункт иерархической структуры меню Финансовый анализ | Бух.Анализ | Бухгалтерские расчеты | Финансовые коэффициенты | Оценка рентабельности

Тогда алгоритм интерфейсного модуля можно описать следующим образом:

1. Активизация функционального окна для ввода команды и вывод приглашения к вводу.

2. Ввод кода команды.

3. Проверка правильности кода по списку команд и определение порядкового номера команды в этом списке.

4. Если введен неверный код команды, то вывод сообщения об ошибке и, возможно, подсказки в виде списка допустимых команд, затем переход к пункту 1.

5. Определение типа команды по числу и способу задания операндов и вызов соответствующей подпрограммы для ввода операндов.

6. Если пользователь не ввел операнды в требуемой форме, то вывод сообщения об отказе в выполнении команды и переход к пункту 1.

7. Если команда не требует операндов или если операнды введены правильно, то выход с передачей в вызывающий модуль порядкового номера команды и списка операндов.

На подпрограммы ввода операндов может быть возложена задача контроля вводимых значений операндов. Например, если операндами команды ввода данных или печати результатов должны быть имена данных, можно проверить правильность ввода этих имен и одновременно определить их внутренние коды (порядковые номера в списке имен данных). В некоторых случаях, когда операнды команды могут принимать конечное число возможных значений, ввод операндов можно организовать на основе меню (выбирая их из списка предложенных), что позволит сократить число возможных ошибок пользователя.

Использование командной строки для ввода управляющей информации показано в среде сервисной программы управления файлами и архивами FAR v.1.65 (Е. Рошаль) на примере программы архивации ARJ32 (ARJ Software) (рисунок 4.4).

В командной строке, начинающейся с указания места нахождения C:\Program Files, вслед за именем программы arj32 задаются (через пробелы):

1) имя команды: а («добавить файлы или каталоги в архив»);

2) операнды команды: –v1200 («создавать многотомный архив с объемом каждого тома 1200 Кбайт»); archive (имя создаваемого архива); … («добавлять каталоги»); bp chat (имена каталогов, которые нужно добавить в архив; они тоже разделяются пробелом).

Кстати, если в командной строке задать только имя программы arj32, то на экране появится справочный интерфейс программы.

Рис. 4.4. Интерфейс управления с командной строкой

В большинстве случаев при разработке интерфейса управления приходится искать разумный компромисс между сложностью модулей интерфейса и простотой работы пользователя.

Источник: https://studfile.net/preview/16567672/