Тип работы:
Предмет:
Язык работы:


ИНСТРУМЕНТ АВТОМАТНОГО ПРОГРАММИРОВАНИЯ НА ОСНОВЕ SWITCH-ТЕХНОЛОГИИ

Работа №193247

Тип работы

Магистерская диссертация

Предмет

физика

Объем работы43
Год сдачи2020
Стоимость4820 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
4
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 3
1.Основные понятия и определения 6
2. Автоматное программирование 7
2.1. Switch - технология 8
2.2. Инструментальные средства для поддержки автоматного программирования 8
2.2.1. Visio2SWITCH 8
2.2.2. Unimod 9
2.2.3. MetaAuto 11
3. Разработка инструмента 12
3.1. Язык программирования 12
3.2. Формат представления kitidis 13
3.3. Архитектура инструмента 14
4. Эксперименты 17
ЗАКЛЮЧЕНИЯ 25
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 26
Приложение А. Код парсера 27
Приложение Б. Код шаблона 30
ПРИЛОЖЕНИЕ В

В настоящее время программное обеспечение используется в большинстве сфер человеческой деятельности. Вследствие этого активно разрабатывается множество различного программного обеспечения (ПО) с разного рода задачами. Разработка ПО [10] состоит из следующих этапов:
1. Анализ
2. Проектирование
3. Реализация (кодирование)
4. Тестирование (оптимизация)
В процессе анализа происходит исследование предметной области, и выявляются наиболее важные требования к будущему продукту.
При проектировании внешние, пользовательские требования к программному продукту преобразуются в детальные и конкретные требования к внутреннему устройству и функционированию будущей программы с точки зрения программистов.
Процесс кодирования при наличии достаточно детального проекта является относительно рутинным. Фактически, кодирование — это процесс реализации проекта на конкретных языках программирования с использованием конкретного инструментария. Результатом кодирования являются собственно программы, как в исходном тексте, так и в бинарном виде, пригодном к исполнению.
Процесс тестирования предназначен для выявления ошибок в программах и документации. Тестирование есть процесс выявления ошибок и (частично) установления соответствия созданного продукта его спецификации. Отладка есть процесс устранения ошибок в программе. Результатом тестирования и отладки являются отлаженные (насколько возможно) программы, для которых тестированием установлено (опять же, насколько возможно) соответствие спецификации.
Также разработка программного обеспечения превращаются в масштабные проекты с привлечение огромных человеческих ресурсов. Как и для любого коммерческого продукта, каким в большинстве является программа, время выхода продукта в эксплуатацию играет важную роль. Данный этап существенно зависит от автоматизированности каждого из этапов разработки. Автоматизация позволяет сократить количество рутинных операций, которые должен выполнять человек, что положительно сказывается на качестве выполняемых человеком работ. Среди всех этапов разработки программы написание исходного кода программы является основным, так как именно на этом этапе рождается программа. Один из возможных подходов к автоматизации этого этапа является использование конечно¬автоматного программирования. Этот подход предполагает дополнительный этап формализации поведения будущего продукта в виде конечного автомата. Это может показаться усложнением всей цепочки разработки. Однако такая формализация позволить автоматизировать не только этап написания исходного кода программы, но и как минимум этап тестирования. Также наличие формальной модели позволит более точно прогнозировать возможные улучшения готового продукта, валидировать его перед внедрением в готовую систему и т.п.
Целью данной работы является разработка инструмента автоматизированной разработки программ на основе формальных моделей.
Задачи
1. Изучение литературы по теории и инструментам автоматного программирования
2. Выбор подхода к реализации будущего инструмента и целевого языка
3. Разработка архитектура инструмента
4. Программная реализация
Методы исследования. В работе использованы аппараты дискретной математики, привлекаются методы теория автоматов, теории графов. Также методы автоматного программирование, а именно switch-технология.
Основные положения, выносимые на защиту.
1. Инструмент, преобразующий конечный детерминированный автомат, описанный в формате kitidis, в шаблон программного кода на языке С.
2. Если на вход алгоритма преобразования автомата в исходный код поступает файл формата kitidis, задающий конечный детерминированный автомат, то на выходе получается шаблон программы поведения, который эквивалентно заданному автомату, в смысле языка автомата.
Достоверность. Полученные в данной работе положения и выводы опираются на известные утверждения и теоремы дискретной математики
Практическая значимость. Результаты, полученные в работе, могут быть использованы для автоматизации процесса разработки программных обеспечений, представленных на основе формальных моделей и реализации протокола.
Апробация.
Часть результатов, представленных в работе, были доложены на XVII всероссийская конференция студенческих научно-исследовательских инкубаторов 2020.
Краткое содержание работы.
Во введении отображена актуальность работы, сформирована цель и задачи работы, представлены положения, выносимые на защиту и апробация работы .
В первой главе вводятся основные понятия и определения, используемые в работе.
Во второй глава подробно вводится понятие о теории автоматное программирование, switch - технология, также представлены уже существующие инструменты на основе автоматного программирования.
В третьей глава посвящена этапам разработке инструмента. Начальный этап являлся выбор подхода реализации, а именно выбор языка программирования, какой формат будет приниматься на вход. Представлена архитектура инструмента и внутренний алгоритм преобразования. Заключительным этапом является проверка корректности работы инструмента на примерах автоматов.
В заключение кратко перечисляются полученные в диссертации результаты.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


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



1. Поликарпова Н. И., Шалыто А. А.. Автоматное программирование — СПб.: Питер, 2011. - 176 с.
2. Шалыто А. А. Switch-технология. Алгоритмизация и программирование задач логического управления - СПб.: Наука, 1998 - 628с
3. Головешин А. Инструментальное средство Visio2Switch. URL:
http://is.ifmo.ru/progeny/visio2switch (дата обращения: 10.06.2020).
4. Канжелев С.Ю., Шалыто А.А. Преобразование графов переходов, представленных в формате MS Visio, в исходные коды программ для различных языков программирования (инструментальное средство MetaAuto). Проектная документация. URL: http://is.ifmo.ru/projects/metaauto (дата обращения: 10.06.2020).
5. Гилл А. Введение в теорию конечных автоматов. — М.: Наука, 1966. — 272 с.
6. Гуров В. С., Мазин М. А., Шалыто А. А. UniMod - инструментальное средство -для
автоматного программирования // Научно -технический вестник информационных технологий, механики и оптики. 2006. №30. URL:
https://cyberleninka.ru/article/n/unimod-instrumentalnoe-sredstvo-dlya-avtomatnogo- programmirovaniya(дата обращения: 10.06.2020).
7. Shabaldina N. FSMTest-1.0: a manual for researches / N. Shabaldina, M. Gromov // Proceedings of IEEE East-West Design & Test Symposium (EWDTS'2015), Batumi, Georgia, September 26-29, 2015. [S. l.]. 2015. P. 216-219
8. Батрацкий С. В. Разработка и тестирование на основе формальных моделей пакета прикладных программ «FSMTest-2.0»: магистерская диссертация по направлению подготовки: 03.04.03 - Радиофизика / Батрацкий, Сергей Васильевич - Томск: [б.и.], 2018.URL: http://vital.lib.tsu.ru/vital/access/manager/Repository/vital:7979
9. Майк МакГрат. Программирование на Python для начинающих. - М.: Эксмо, 2015. - 192 с
10. Иан Соммервилл. Инженерия программного обеспечения.— М.: «Вильямс», 2002. — С. 642
11. Ахо А., Сети Р., Ульман Д. Компиляторы. Принципы, технологии, инструменты. М.: Вильямс, 2001.


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ