АННОТАЦИЯ 2
ВВЕДЕНИЕ 4
1 АНАЛИЗ ТРЕБОВАНИЙ. ОБЗОР СУЩЕСТВУЮЩИХ РЕШЕНИЙ.
ВЫБОР СРЕДСТВ ДЛЯ СОЗДАНИЯ ПРОГРАММЫ 6
1.1 Описание предметной области 6
1.2 Обзор программы UMLet 12
1.3 Обзор существующих расширений и приложений 15
1.4 Постановка задачи 21
1.5 Выбор инструментов разработки 21
1.6. Вывод по разделу 24
2 ПРОЕКТИРОВАНИЕ ПРИЛОЖЕНИЯ 25
2.1 Диаграмма классов 25
2.2 Блок-схемы алгоритмов 26
2.3 Вывод по разделу 30
3 РЕАЛИЗАЦИЯ И ТЕСТИРОВАНИЕ 31
3.1 Обработка входных данных 31
3.2 Генерация кода по диаграммам 32
ЗАКЛЮЧЕНИЕ 43
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 44
ПРИЛОЖЕНИЕ 1 Описание программы 46
ПРИЛОЖЕНИЕ 2 Текст программы 50
Автоматное программирование - это некая общая парадигма программирования, суть которой заключается в том, что создаваемая программа рассматривается как реализация некоторого управляющего автомата. Автоматное программирование может быть использовано в следующих областях:
- системы логического управления;
- событийно-управляемые системы;
- бытовая электроника (банкоматы, лифты, платежные терминалы, светофоры и др.);
- лексические и синтаксические анализаторы;
- бизнес-процессы (документооборот и др.).
Однако, несмотря на это, автоматное программирование не стало магистральным трендом. Главная причина здесь - недостаточный опыт использования, алгоритмизации и программирования указанного класса задач на основе теории автоматов, и как следствие, отсутствие популяризаторов.
Работу автомата можно наглядно описать при помощи диаграммы состояний и переходов.
Любой компьютер можно рассматривать как совокупность взаимодействующих конечных автоматов.
Память компьютера - это последовательность ячеек памяти, которые могут записывать или считывать последовательность битов, каждая из которых хранится в нужном месте.
В специальных электронных устройствах - так называемые регистры.
Регистр - это электронное устройство, подобное ячейке памяти, в котором хранится (временно) последовательность битов большой длины. По сравнению с основной памятью компьютера регистровая память или так называемая кэш-память невелики.
Каждая команда должна выполнить операцию, после которой необходимо выполнить операцию. Затем операция будет выполняться в соответствующих ячейках памяти.
В теории объектно-ориентированного программирования считается, что объект имеет внутреннее состояние и способен принимать сообщения, прослушивать их, отправлять сообщения другим объектам и в процессе обработки сообщений изменять свое внутреннее состояние. Суть вопроса заключается в том, что объект сообщения является синонимом.
Объекты в объектно-ориентированном программировании могут рассматриваться как конечные автоматы, состояние которых представляет собой совокупность внутренних полей. В качестве шага автомата могут рассматриваться один или несколько методов объекта при условии, что эти методы не вызывают ни сами себя, ни друг друга.
Цель работы - разработка программного расширения UMLet для генерации кода по диаграмме состояний. Разработанное расширение предназначено для преобразования диаграммы состояний в код на языке высокого уровня.
Разработано приложение для генерации программного кода по диаграмме состояний UMLet. В ходе работы была проработана архитектура приложения.
Созданы алгоритмы программы: алгоритм работы программы,
алгоритм считывания данных, алгоритм нахождения связей для каждого элемента.
Выполнена программная реализация приложения, включающая в себя около 350 строк кода. Успешно проведено тестирование с помощью заранее построенных диаграмм состояний.
Таким образом, все поставленные задачи выполнены, и цель работы достигнута.
В дальнейшем планируется добавление вызова программы в файл Makefile проекта в среде разработки MinlDE для автоматизированной генерации класса по диаграмме состояний.