Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1Первый блок ответов.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
355.15 Кб
Скачать
  1. Пакеты прикладных программ (ппп). Функционально-структурная организация ппп. Оболочка пакета, его функциональное и системное наполнение. Организация управления в ппп, входные языки.

Пакеты прикладных программ (ППП) – относятся к прикладному ПО.

ППП – комплекс взаимосвязанных и совместимых программ для решения круга задач в родственной предметной области.

Этапы развития ППП:

  1. Пакет разрабатывался для решения какой-либо конкретной задачи, требовал знания языка программирования, языка управления ОС и знания предметной области.

  2. Предполагается включение библиотечных программ.

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

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

Основные свойства ППП:

  1. Пакет состоит из нескольких программных единиц.

  2. Пакет предназначен для решения определённого класса задач. В пределах своего класса существует определённая универсальность.

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

Функционально-структурная организация ППП

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

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

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

Управляющие и обслуживающие модули образуют системную часть пакета и называются системным наполнением пакета.

Рис. Структура ППП (ПВЯ – программа на входном языке пакета)

Взаимодействие составных частей пакета показано на рисунке.

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

Организация управления ППП

Управление ППП с языком командного типа (ЯКТ)

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

В методе интерпретации после ввода очередной команды организуется её непосредственное выполнение. Следующая команда вводится после завершения выполнения предыдущей.

При вводе пользователем синтаксически неверной или невыполнимой в текущем состоянии МПО команды предусматривается информирование пользователя об этом и приостановка выполнения команды.

Вариант обобщённого алгоритма ведущего модуля пакета с входным ЯКТ в режиме интерпретации команд

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

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

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

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

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

    3. Организация выполнения команды, вызов соответствующего обрабатывающего или обслуживающего модуля.

    4. Проверка успешности выполнения команды и вывод сообщения для пользователя если в обрабатывающем модуле возникла ошибка. При отсутствии ошибки – установка нового состояния МПО.

    5. Завершение цикла по пункту 2.

  3. Вывод итогового сообщения о завершении работы пакета.

Управление ППП с входным ЯКТ в режиме компиляции

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

Обобщённый алгоритм ведущего модуля пакета в режиме компиляции:

ШАГ 1. Подготовка пакета к работе (инициализация МПО, установка значений управляющих переменных).

ШАГ 2. Запрос у пользователя режима работы: компиляция новой программы или выполнение уже готовой.

ШАГ 3. Если задан режим компиляции, то ШАГ 3.1.

ШАГ 3.1. Начало цикла до окончания ввод программы.

ШАГ 3.1.1. Ввод и проверка очередной команды.

ШАГ 3.1.2. Если команда ошибочна или невыполнима, то вывод сообщения пользователю и переход к шагу 3.1.4.

ШАГ 3.1.3. Формирование очередного элемента управляющего вектора и регистрация изменения состояний МПО.

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

ШАГ 3.1.4. Завершение цикла по пункту 3.1.

ШАГ 3.2. Сохранение управляющего вектора во внешней памяти (файле).

ШАГ 4. Если задан режим выполнения готовой программы.

ШАГ 4.1. Запрос имени файла, содержащего управляющий вектор.

ШАГ 4.2. Чтение управляющего вектора из файла.

ШАГ 4.3. Начало цикла до конца управляющего вектора.

ШАГ 4.3.1. Вызов обрабатывающего модуля, указанного в элементе управляющего вектора.

ШАГ 4.3.2. Проверка успешности выполнения обрабатывающего модуля. При ошибке вывод сообщения пользователю и установление кода серьёзности ошибки. Если код серьёзности не допускает дальнейшего выполнения программы, то переход к пункту 4.4.

ШАГ 4.3.3. Завершение цикла по пункту 4.3.

ШАГ 4.4. Итоговое сообщение о завершении программы на входном языке.

ШАГ 5. Запрос о продолжении работы с пакетом. При положительном ответе переход к шагу 2.

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

Управление ППП с входным языком типа меню (ЯТМ)

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

Можно считать, что каждое меню как список возможных выборов пользователя определяет конкретное состояние процесса управления пакетом. Поэтому управление пакетом на основе системы меню может быть также описано в терминах конечных автоматов. Под конечным автоматом понимается некоторое устройство, функционирующее следующим образом: в каждый момент времени автомат находится в некотором внутреннем состоянии . Если на вход поступает входной сигнал S(t), то автомат переходит в новое внутреннее состояние , причём этот переход полностью определяется исходным состоянием и значением входного сигнала. Кроме смены внутреннего состояния, автомат вырабатывает выходной сигнал, значение которого полностью определяется исходным состоянием и значением входного сигнала. Для конечного автомата множество внутренних состояний входных и выходных сигналов конечно, т.е. автомат полностью определён, если заданы эти множества, а также функции переходов и выходов. Работа ведущего модуля пакета, управляемого посредством меню на основе модели конечного автомата, может быть представлена следующим алгоритмом:

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

Шаг 2. Начало цикла до перехода автомата в одно из конечных состояний.

Шаг 2.1. Вывод на экран меню, соответствующего текущему состоянию автомата.

Шаг 2.2. Запрос выбора пользователя (входного сигнала).

Шаг 2.3. Вычисление выходного сигнала (выбор из матрицы выходов).

Шаг 2.4. Выполнение действий, определённых кодом входного сигнала. Список этих действий может быть пустым, может включать выполнение одного или нескольких управляющих модулей или установку значений каких-либо управляющих переменных.

Шаг 2.5. Вычисление и установка следующего внутреннего состояния автомата (выбор из матрицы переходов).

Шаг 2.6. Завершение цикла по пункту 2.

Шаг 3. Вывод итогового сообщения и завершение работы пакета.

Управление ППП с входным языком табличного типа

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

Планирование вычислительного процесса в ППП

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

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

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

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

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

Если задача планирования разрешима, то алгоритм «прямой волны» позволяет получить одно из возможных решений. Вместе с тем, в управляющий вектор этот алгоритм включает и модули, выполнение которых не требуется для получения значений искомых данных. Для избежания этого к управляющему вектору применяется алгоритм «обратной волны», суть которого в следующем: начиная с конечного состояния, определяемого вектором конечных данных, осуществляется поиск в управляющем векторе модулей, результатом работы которых являются данные, входящие в вектор конечных состояний. Эти модули отмечаются как выбранные и вектор конечных состояний дополняется неизвестными на данном шаге входами выбранного модуля.

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