Смекни!
smekni.com

1 понятие и классификация пакетов прикладных (стр. 13 из 15)

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

,

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

Такую задачу можно решать с помощью теории графов, если свести ее поиску кратчайшего пути в графе переходов, отражающем возможные состояния модели предметной области пакета (см. п. 2.2.3 и рис. 2.2). Длины дуг соответствуют времени выполнения модуля. Граф переходов для рассмотренного выше примера приведен на рис. 3.3.


Контрольные вопросы

1. Назовите способы внешнего управления пакетом прикладных программ.

2. Что такое входной язык пакета? Охарактеризуйте входные языки современных ППП (на примере известных вам пакетов).

3. В чем отличие метода компиляции от метода интерпретации программы на входном языке? Какие особенности организации управления при реализации этих методов?

4. Что понимают под планированием вычислительного процесса в ППП?

5. Пусть данное состояние МПО описывается вектором S={0,1,1,0,0,0,1}. Будет ли выполнимым обрабатывающий модуль, если его строка в матрице Т имеет вид: а) Ti = {1,1,1,1,0,0,0}; б) Ti = {0,1,0,1,0,0,1}?

6. Пусть данное состояние МПО описывается вектором S={0,1,1,0,0,0,1}. Будет ли эффективным обрабатывающий модуль, если его строка в матрице R имеет вид: а) Ri = {0,1,0,0,0,0,1}; б) Ri = {0,0,0,1,0,0,1}?

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.2).

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


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

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

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

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

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

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

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