На правах рекламы:
ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Авторитетность издания

ВАК - К1
RSCI, ядро РИНЦ

Добавить в закладки

Следующий номер на сайте

2
Ожидается:
16 Июня 2024

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

Статья опубликована в выпуске журнала № 1 за 2009 год. [ на стр. 36 ]
Аннотация:
Abstract:
Авторы: Никифоров А.Ю. (netlab@rambler.ru) - Национальный исследовательский ядерный университет «МИФИ», г. Москва
Ключевые слова: детерминированный автомат, персонализация, платформонезависимость, компоненты архитектуры, функционально-иерархические системы
Keywords: , , , ,
Количество просмотров: 8068
Версия для печати
Выпуск в формате PDF (3.60Мб)

Размер шрифта:       Шрифт:

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

Более формальными примерами подобных систем могут служить различные сетевые архитектуры – SNA, DNA, OSI, стек протоколов TCP/IP и др. Необходимость разработки средств описания подобных систем не вызывает сомнения, так как словесное описание вносит неоднозначность, не обладает полнотой и не имеет формальной основы для анализа. Для описания внутреннего состояния и всевозможных изменений этого состояния, для проверки модели таких систем наибольшее распространение получили всевозможные автоматные модели, описанные в виде конечных автоматов, регулярных выражений, сетей Петри, расширенные автоматы, формальные грамматики и алгоритмические языки.

В связи с различными требованиями к детализации, цели описания, масштабам описываемых систем количество подобных методов описания велико.

Средства описания могут быть как графическими (SDL/GR, Uppaal), так и текстовыми (Estelle, LOTOS, SDL/PR, FAPL).

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

Разработаем язык, описывающий взаимодействие функционально-иерархических систем, на основе имеющихся языков описания, таких как Estelle [1], LOTOS [2], SDL [3].

Сформулируем основные требования к языку:

·     пригодность для формального описания статики и динамики компонентов архитектуры функционально-иерархических систем;

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

·     пригодность к программной реализации (при разработке языка следует учитывать и стараться облегчать последующую разработку его программного транслятора);

·     простота (для упрощения его освоения).

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

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

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

КажПодпись: дый переход является атомарным действием, происходит либо при взаимодействии объектов с выше- и нижележащими уровнями, либо при взаимодействии внутри уровня. Сам язык должен быть максимально простым для быстрого освоения при минимальных временных затратах. Описываемая архитектура основывается на слабосвязанных модулях (уровнях иерархии), взаимодействующих по двунаправленным каналам, с описанием примитивов взаимодействия и типов их параметров, а также событий, вызываемых по таймеру. Так как переходы по таймеру с точки зрения автомата не отличаются от переходов по входным примитивам взаимодействия, сделаем их описание единообразным. Для обеспечения простоты программной реализации трансляции разработаем язык, описываемый LL(1)-грамматикой. Модель описания на разрабатываемом языке представлена на рисунке.

Для оценки сложности языка можно воспользоваться следующими метриками: число нетерминалов, сложность Маккейба, средний размер продукции [4].

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

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

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

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

Литература

1.   ISO/IEC 9074:1997 Information technology – Open Systems Interconnection – Estelle: A formal description technique based on an extended state transition model Amendment 1. – Режим доступа: http://www.iso.org/iso/iso_catalogue/catalogue_tc/ catalogue_detail.htm?csnumber=24403.

2.   ISO 8807:1989 Information processing systems – Open Systems Interconnection – LOTOS – A formal description technique based on the temporal ordering of observational behavior. – Режим доступа: http://www.iso.org/iso/iso_catalogue/ catalogue_tc/catalogue_detail.htm?csnumber=16258.

3.   ITU-T Recommendation Z.100: Specification and Description Language. 2007 r. – Режим доступа: http://www.itu.int/rec/T-REC-Z.100-200711-I/en.

4.   James F. Power, Brian A. Malloy. Metric-Based Analysis of Context-Free Grammars. // 8th IEEE International Workshop on Program Comprehension – Limerick: IEEE Computer Society, 2000. – pp. 171–178.


Постоянный адрес статьи:
http://swsys.ru/index.php?page=article&id=2012&lang=
Версия для печати
Выпуск в формате PDF (3.60Мб)
Статья опубликована в выпуске журнала № 1 за 2009 год. [ на стр. 36 ]

Назад, к списку статей