Процесс разработки пользовательского интерфейса на сегодняшний день не является строго формализованным, однако существуют общие принципы проектирования, применение которых может привести к созданию систем, удобных для использования людьми. Так, при разработке рекомендуется придерживаться одного из общепринятых и широко распространенных стилей интерфейсов, что во многом облегчает пользователю освоение системы. Наряду с этим нельзя забывать и о новизне, так как практика показывает, что при модификации распространенных интерфейсов зачастую получаются очень оригинальные и удобные интерфейсы. Физическое взаимодействие пользователя с системой имеет много общего с взаимодействием человека с машиной вообще. Поэтому существует большое число общепринятых в эргономике рекомендаций, которые можно легко перенести на разработку и организацию операционных систем. В то же время, форма представления информации на экране не одинакова для различных систем: графический дизайн зависит от распределения информации на экране, словарного состава предложений, способа выделения. Как и любой другой элемент вычислительной системы, пользовательский интерфейс с точки зрения программирования рассматривается в виде некоторой обобщенной структуры (рисунок 3.1), с помощью которой можно представить принцип работы интерфейса.
а)
б)
в) г)
д) е)
ж) з)
и) к)
Рисунок 3.1 – Структура интерфейса: а) Вид окна при загрузке программы; б) Меню «Файл»; в) Меню «Расчет»; г) Меню «Справка»; д) Вид окна ввода исходных данных для расчета; е) Вид окна вывода результатов расчета СМО при бесприоритетном обслуживании; ж) Вид окна вывода результатов расчета СМО при оптимальных относительных приоритетах; з) Вид окна вывода результатов расчета СМО при оптимальных абсолютных приоритетах; и) Вид окна вывода результатов расчета СМО при смешанных приоритетах; и) Вид окна «О программе»
Качество любого диалога можно оценить, руководствуясь пятью основными критериями: естественность, последовательность, краткость, поддержка пользователя, гибкость.
Принято различать следующие модели пользовательских интерфейсов:
• модель на основе командного языка;
• модель, основанная на сети переходов. Этой модели соответствует жесткая логика диалога;
• модель, основанная на рекурсивно-транзитивной сети переходов. Логика диалога здесь более гибкая, так как возможны ветвления в зависимости от действий пользователя;
• событийная модель, основанная на прямом манипулировании объектами. При реализации этой модели производится отслеживание состояния системы, что обеспечивает наибольшую гибкость диалога.
Модель пользовательского интерфейса, основанная на рекурсивно-транзитивной сети переходов, реализуется в диалоге типа вопрос-ответ. Это наиболее известная структура диалога; первоначально её называли диалоговым режимом. В каждой точке диалога система выводит в качестве подсказки один вопрос, на который пользователь дает один ответ. В зависимости от полученного ответа система может решать, какой следующий вопрос необходимо задать. Структура вопрос-ответ предоставляет естественный механизм ввода, как управляющих сообщений (команд), так и данных. Существуют системы, ответы в которых даются на естественном языке, но чаще используются предложения из одного слова с ограниченной грамматикой. Естественность диалога в значительной степени зависит от характера задаваемых вопросов.
Диалог типа вопрос-ответ в достаточной степени обеспечивает поддержку пользователя, так как даже краткий наводящий вопрос при разумном построении может быть сделан самопоясняющим. Кроме того, для подготовленных пользователей, знающих, какие вопросы задает система и какие ответы на них надо давать, часто предусматривается возможность ответить сразу на все вопросы. Такой механизм, именуемый опережающим вводом, значительно повышает гибкость диалога.
Такая модель особенно уместна при реализации диалога с множеством «ответвлений», то есть в тех случаях, когда на каждый вопрос предусматривается большое число ответов, каждый из которых влияет на то, какой вопрос будет задан следующим. По этой причине структура типа вопрос-ответ часто используется в качестве диалоговой структуры в экспертных системах.
Событийная модель пользовательского интерфейса находит широкое применение в современных информационных системах. Она основана на том, что производится отслеживание состояний всех объектов системы и в зависимости от них выполняются те или иные действия. Эта модель интерфейса в полной мере обеспечивает поддержку механизма опережающего ввода, хотя сам процесс диалога в явной форме зачастую не выражается. Пользователь имеет возможность напрямую манипулировать объектами посредством нажатия комбинаций клавиш на клавиатуре или, что используется наиболее часто, с помощью манипулятора типа «мышь». Действия, выполняемые таким образом, обычно понятны интуитивно и поэтому даже неподготовленный пользователь не испытывает затруднений при работе с такой системой.
Вообще, не существует единственной структуры, которая бы удовлетворила диалогу системы в целом. Различные части системы обладают различными характеристиками, которым соответствуют различные структуры. Хотя большинство диалогов основываются на какой-то структуре, которая определяет их стиль, обычно они смешанные, использующие комбинацию основных структур.
Структура диалога является основным фактором при определении его естественности, последовательности, неизбыточности, возможностей для поддержки пользователя и гибкости, однако никакая структура диалога не может обеспечить необходимую поддержку всех пользователей во всех областях применения системы, так как всегда необходима дополнительная справочная информация, как о диалоговом процессе, так и о возникающих ошибках. У пользователя должна всегда существовать возможность получить пояснения в виде справочного сообщения для преодоления возникших трудностей. Часто применяется универсальная многоуровневая справочная система, для которой характерно то, что пользователь получает более подробные пояснения каждый раз, когда попросит об этом. Естественно, что справочная информация должна быть информативной и выражаться в терминах, понятных пользователю. Помощь должна быть своевременной в том смысле, что она должна появляться на экране тогда и только тогда, когда она требуется. Это значит, что справочная информация должна быть доступна в любой точке системы без исключения.
В соответствии с упомянутой концепцией пользовательский интерфейс должен обеспечить:
¨ представление системы управления в виде задач-функций, используя иерархический принцип декомпозиции;
¨ отыскание их отображения в БД и в диалоговом режиме формирование общей графической структуры системы управления;
¨ в диалоговом режиме отыскание отображения в БД математических моделей соответствующей задачи-функции формирование и запоминание их композиции;
¨ отыскание в БД имитационных моделей, адекватных выбранным математическим моделям;
¨ формирование в диалоговом режиме имитационной модели ТС, адекватной заданным задачам - функциям, и ее отображение на экране монитора;
¨результаты проверки на адекватность созданной имитационной модели в динамическом режиме внешним заданным условиям.
4. Спецификация на программу
Имя процедуры в программе | Выполняемая функция | Примечание |
MainMenu1: TMainMenu; | описание компонентов | |
N1: TMenuItem | описание компонентов | |
N2: TMenuItem | описание компонентов | |
N3: TMenuItem | описание компонентов | |
N4: TMenuItem | описание компонентов | |
N5: TMenuItem | описание компонентов | |
N6: TMenuItem | описание компонентов | |
N7: TMenuItem | описание компонентов | |
N8 TMenuItem | описание компонентов | |
N9 TMenuItem | описание компонентов | |
N10TMenuItem | описание компонентов | |
N11TMenuItem | описание компонентов | |
N12TMenuItem | описание компонентов | |
N13TMenuItem | описание компонентов | |
N14TMenuItem | описание компонентов | |
N15MenuItem | описание компонентов | |
N16MenuItem | описание компонентов | |
N17MenuItem | описание компонентов | |
N18MenuItem | описание компонентов | |
N19enuItem | описание компонентов | |
GroupBox1: TGroupBox; | описание компонентов | |
GroupBox2: TGroupBox; | описание компонентов | |
Button1: TButton; | описание компонентов | |
Button2: TButton; | описание компонентов | |
Button3: TButton; | описание компонентов | |
Button4: TButton; | описание компонентов | |
Button5: TButton; | описание компонентов | |
Button6: TButton; | описание компонентов | |
procedure Button1Click(Sender: TObject); | кнопка для вызова формы ввода исходных данных | |
procedure Button2Click(Sender: TObject); | кнопка для вызова формы расчета | без приоритетов |
procedure Button3Click(Sender: TObject); | кнопка для вызова формы расчета | с относительными приоритетами |
procedure Button4Click(Sender: TObject); | кнопка для вызова формы расчета | с абсолютными приоритетами |
procedure Button5Click(Sender: TObject); | кнопка для вызова формы расчета | со смешанными приоритетами |
procedure Button6Click(Sender: TObject); | выход | выход из программы |
procedure N1Click(Sender: TObject); | Меню «Файл» | |
procedure N2Click(Sender: TObject); | Меню «Расчет» | |
procedure N3Click(Sender: TObject); | выход | выход из программы |
procedure N4Click(Sender: TObject); | вызова формы ввода исходных данных | |
procedure N5Click(Sender: TObject); | Меню «Справка» | |
procedure N6Click(Sender: TObject); | вызова формы «О программе» | |
procedure N7Click(Sender: TObject); | вызова формы «Помощь» | |
procedure N8Click(Sender: TOject); | Меню «при бесприоритетном обслуживании» | |
procedure N9Click(Sender: TObject); | Меню «при оптимальных относительных приоритетах» | |
procedure N10Click(Sender: TObject); | Меню «при оптимальных абсолютных приоритетах» | |
procedure N11Click(Sender: TObject); | Меню «при смешанных приоритетах» | |
procedure N12Click(Sender: TObject); | сохранить результаты | без приоритетов |
procedure N13Click(Sender: TObject); | сохранить результаты | с относительными приоритетами |
procedure N14Click(Sender: TObject); | сохранить результаты | с абсолютными приоритетами |
procedure N15Click(Sender: TObject); | сохранить результаты | со смешанными приоритетами |
procedure N16Click(Sender: TObject); | результаты расчета | без приоритетов |
procedure N17Click(Sender: TObject); | результаты расчета | с относительными приоритетами |
procedure N18Click(Sender: TObject); | результаты расчета | с абсолютными приоритетами |
procedure N19Click(Sender: TObject); | результаты расчета | со смешанными приоритетами |
procedure TForm3.FormActivate(Sender: TObject); | перевод результатов в строку и вывод на экран | без приоритетов |
procedure TForm6.FormActivate(Sender: TObject); | перевод результатов в строку и вывод на экран | с относительными приоритетами |
procedure Tform7.FormActivate(Sender: TObject); | перевод результатов в строку и вывод на экран | с абсолютными приоритетами |
procedure Tform8.FormActivate(Sender: TObject); | перевод результатов в строку и вывод на экран | со смешанными приоритетами |
procedure TForm2.Button1Click(Sender: TObject); | закрытие формы | исходные данные |
procedure Tform3.Button1Click(Sender: TObject); | закрытие формы | расчета без приоритетов |
procedure Tform4.Button1Click(Sender: TObject); | закрытие формы | о программе |
procedure Tform5.Button1Click(Sender: TObject); | закрытие формы | помощь |
procedure Tform6.Button1Click(Sender: TObject); | закрытие формы | расчета с относительными приоритетами |
procedure Tform7.Button1Click(Sender: TObject); | закрытие формы | расчета с абсолютными приоритетами |
procedure Tform8.Button1Click(Sender: TObject); | закрытие формы | расчета со смешанными приоритетами |
При разработке технологических процессов и выборе их рациональных режимов необходимо иметь возможность анализа СМО, при изменяемых начальных условиях работы системы. В большинстве случаев исследование технологии методом натурального эксперимента неприемлемо по затратам и из-за необходимости вмешательства в производственный цикл. Поэтому широко используется имитационный подход, основанный на статистическом моделировании с применением ЭВМ. Сущность этого подхода состоит в построении для исследуемого процесса моделирующего алгоритма, который позволит имитировать функционирование элементов технологического процесса и взаимодействие между ними с учетом статистических характеристик входного потока и канала обслуживания СМО. Имитационное моделирование позволяет программно изменять значения параметров и начальные условия при автоматизированном исследовании схемы. Для моделирования входных потоков и каналов, а также механизма обслуживания используется алгоритмы генерирования случайных последовательностей.