Графический язык разработки программного обеспечения встроенных систем на основе модифицированной нотации UML
Использование унифицированной структуры программного представления конечного автомата. Моделирование поведения программы на стадиях разработки. Применение автоматической генерации кода по формальному описанию алгоритма. Нотация диаграмм состояний UML.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 10.03.2018 |
Размер файла | 378,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Графический язык разработки программного обеспечения встроенных систем на основе модифицированной нотации UML
Татарчевский Владимир Анатольевич, аспирант Уральского Государственного Горного Университета, старший инженер-программист ООО фирма «Уралэкоавтоматика»
Научный руководитель: доктор технических наук, профессор Зобнин Борис Борисович
В настоящее время в связи с широким распространением микроконтроллерной техники в системах промышленной автоматики существенно возросла актуальность вопросов, связанных с быстрой разработкой надежного программного обеспечения встроенных систем. Исходя из анализа публикаций по данной теме и практического опыта разработок, можно выделить следующие проблемы:
Низкая производительность труда при использовании традиционных языков высокого уровня (С, С++) и ассемблера;
Использование традиционных техник структурного и объектно-ориентированного программирования не позволяет выявить все ошибки в программе на этапе разработки;
По сути, единственной документацией к программе является ее исходный код (возможно, с комментариями). Логика работы программы оказывается распределена по всему коду, при этом низкоуровневые и высокоуровневые функции программы оказываются тесно взаимосвязанными. При этом внесение даже небольших изменений в проект часто приводит к изменениям в нескольких модулях программы.
Подробный анализ указанных проблем приведен в [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
Размещено на Allbest.ur
Подобные документы
Использование моделирования в программной инженерии в процессе разработки программного обеспечения. Основные этапы процесса разработки программного обеспечения, их характеристика. Моделирование процессов, их определение фазами и видами деятельности.
реферат [2,2 M], добавлен 25.12.2017UML (Unified Modeling Language) как унифицированный графический язык моделирования. Диаграмма программного обеспечения, диаграмма деятельности, последовательности и реализации UML. IDEF0 как нотация описания бизнес-процессов, основана на методологии SADT.
курсовая работа [460,0 K], добавлен 21.06.2014Понятие технологии разработки программного обеспечения и модели жизненного цикла. Сущность объектно-ориентированного подхода. Строительные блоки, общие механизмы языка моделирования UML, диаграммы классов, состояний, взаимодействий и компонентов.
курсовая работа [262,5 K], добавлен 10.07.2014Реализация программного средства "Действия над матрицами". Разработка кода программного продукта на основе готовой спецификации на уровне модуля. Использование инструментальных средств на этапе отладки программного модуля. Выбор стратегии тестирования.
отчет по практике [296,1 K], добавлен 19.04.2015Исследование объектно-ориентированного подхода к проектированию программного обеспечения будильника. Модель программного обеспечения. Взаимодействие между пользователями и системой. Диаграммы и генерация программного кода при помощи средств Rational Rose.
курсовая работа [355,8 K], добавлен 26.09.2014Этапы разработки технического задания. Спецификация программного обеспечения при структурном подходе. Дерево диаграмм, базовые понятия сетевой модели данных. Разработка пользовательского интерфейса. Разработка сценария диалога на основе экранных форм.
курсовая работа [2,0 M], добавлен 24.06.2012Технологии разработки программного обеспечения. Процедура постановки задачи, определения требований. Последовательность действий логической, разветвленной и циклической структуры. Терминология программирования. Этапы создания программного продукта.
презентация [793,8 K], добавлен 15.11.2010Понятие и специфика автоматизированных систем. Описание методики разработки программы для автоматизации. Ее тестирование и отладка. Внедрение АС в работу предприятия. Расчет экономического эффекта от разработки и реализации программного продукта.
дипломная работа [1,4 M], добавлен 23.06.2015Несоответствие процессов разработки программного обеспечения международным стандартам. Фазы, развитие вычислительной инфраструктуры. История развития компьютерных систем. Этапы разработки программ и их тестирование. Ошибки в программном обеспечении.
реферат [176,2 K], добавлен 27.08.2009Реализация задачи использования методики SDLC (управление жизненным циклом разработки программного обеспечения) при внедрении реальной системы информационных технологий. Описание проекта внедрения системы автоматической регистрации участников выставок.
реферат [585,1 K], добавлен 10.09.2010