Графический язык разработки программного
обеспечения встроенных систем на основе модифицированной нотации UML.
Татарчевский
Владимир Анатольевич,
аспирант Уральского Государственного Горного
Университета,
старший инженер-программист
ООО фирма «Уралэкоавтоматика».
Научный руководитель: доктор технических
наук, профессор
Зобнин
Борис Борисович.
В настоящее время в связи с широким распространением микроконтроллерной техники в системах промышленной автоматики существенно возросла актуальность вопросов, связанных с быстрой разработкой надежного программного обеспечения встроенных систем. Исходя из анализа публикаций по данной теме и практического опыта разработок, можно выделить следующие проблемы:
· Низкая производительность труда при использовании традиционных языков высокого уровня (С, С++) и ассемблера;
Облаке: 1с облако аренда Аренда в облаке: 1с облако аренда. unit-systems.ru |
· Использование традиционных техник структурного и объектно-ориентированного программирования не позволяет выявить все ошибки в программе на этапе разработки;
· По сути, единственной документацией к программе является ее исходный код (возможно, с комментариями). Логика работы программы оказывается распределена по всему коду, при этом низкоуровневые и высокоуровневые функции программы оказываются тесно взаимосвязанными. При этом внесение даже небольших изменений в проект часто приводит к изменениям в нескольких модулях программы.
Подробный анализ указанных проблем приведен в [1, 2]. Существует ряд методов программирования, в значительной степени снимающих указанные проблемы. Они основаны на представлении программы в виде системы взаимодействующих конечных автоматов. Такое представление программы позволяет:
· упорядочить структуру программы за счет использования унифицированной структуры программного представления конечного автомата, эффективно разделить программу на иерархические уровни за счет использования вложенных конечных автоматов;
· использовать для анализа программы формальные математические методы теории конечных автоматов, что, в свою очередь, позволяет эффективно выявить и устранить множество ошибок уже на этапе проектирования программного обеспечения;
· проводить моделирование поведения программы на ранних стадиях разработки, что позволяет достичь полного соответствия фактического поведения программы техническому заданию;
· проектировать и документировать программное обеспечение в графической форме с использованием нотации UML для представления конечных автоматов и их взаимодействий, осуществлять автоматическую генерацию кода по описанию системы конечных автоматов;
· упростить модификацию программы за счет того, что модули программы, выполняемые ими функции и межмодульные взаимодействия отражены в документации в явном виде;
· резко сократить или в ряде случаев вовсе исключить этап отладки программы, что достигается за счет широких возможностей анализа и моделирования его поведения и применения автоматической генерации кода по формальному описанию алгоритма;
В настоящее время активно разрабатывается ряд методов, позволяющих проектировать программное обеспечение на основе конечных автоматов. Особо в этом ряду следует отметить SWITCH-технологию, разрабатываемую Анатолием Абрамовичем Шалыто, профессором, заведующим кафедрой «Технологии программирования» Санкт-Петербургского Государственного Университета Информационных Технологий, Механики и Оптики (ИТМО). Предложенная им технология подробно описана в [3-8].
Автором
разрабатывается инструментальное средство MicroSWITCH, позволяющее проектировать программное обеспечение
встроенных систем, основанных на микроконтроллерах и программируемых логических
контроллерах (ПЛК). Инструментальное средство использует модель системы
взаимодействующих конечных автоматов для описания программы пользователя и
позволяет осуществлять автоматическую генерацию кода для целевого
микроконтроллера на основе SWITCH-технологии.
Программа в данном инструментальном средстве описывается на графическом языке
программирования, в основе которого лежит нотация диаграмм состояний UML. С целью придания нотации
языка вида, удобного для описания программного обеспечения встроенных систем,
нотация расширена по сравнению со стандартом UML. Введены расширения, предназначенные для описания параллелизма
и обмена сообщениями между параллельно выполняющимися потоками. Расширения
нотации UML для
описания параллелизма были рассмотрены автором в [9, 10]. Также в языке MicroSWITCH предусмотрено
графическое описание функций переходов и действий конечных автоматов в
графической форме в виде диаграмм функциональных блоков. На рис. 1 показан
пример программы на языке MicroSWITCH.
Рис. 1.
Пример программного модуля
терморегулятора на языке MicroSWITCH.
Литература.
1. Шалыто А.А. Новая инициатива в программировании. Движение за открытую проектную документацию //Мир компьютерной автоматизации. 2003. № 5, с.67–71.
2. Шалыто А.А. Еще раз об открытой проектной
документации //PC Week/RE. 2005. № 11, с. 33,34.
3. Шалыто А.А. SWITCH – технология. Алгоритмизация и программирование задач логического управления. СПб.: Наука, 1998. 628 с.
4. Шалыто А.А. Технология автоматного программирования. //Труды первой Всероссийской научной конференции "Методы и средства обработки информации" М.: МГУ. 2003, с.528-535
5. Шалыто А.А. Автоматное проектирование программ. Алгоритмизация и программирование задач логического управления. //"Известия Академии Наук. Теория и системы управления" № 6. ноябрь-декабрь 2000. С.63-81.
6. Шалыто А.А., Туккель Н.И. SWITCH-технология - автоматный подход к созданию программного обеспечения "реактивных" систем. //"Программирование", 2001. №5, C.45—62.
7. Шалыто А.А., Туккель Н.И. Реализация автоматов при программировании событийных систем. //"Программист", 2002. №4. C.74-80.
8.
Шалыто
А.А., Наумов Л.А. Методы
объектно-ориентированной реализации реактивных агентов на основе конечных
автоматов. //«Искусственный интеллект». 2004. №4. с. 756-762.
9. Татарчевский В. А. SWITCH-технология в задачах логического управления. //Программные продукты и системы. №4/2006г. с. 30-32.
10. Татарчевский В. А. Применение SWITCH-технологии в задачах управления технологическими процессами. //Надежность №1/2007 г. с. 21-27
Поступила в редакцию 17 ноября 2007 г.