Графическая нотация наследования автоматных классов Данил Шопырин ЗАО «Транзас Технологии» Анатолий Шалыто СПбГУ ИТМО
2 Автоматные системы Средства проектирования и реализации: SDL; UML; SyncCharts; State Design Pattern и варианты его развития; SWITCH-технология.
3 Автоматные классы Инкапсуляция Наследование Структурирование Декомпозиция Полиморфизм
4 Графическая нотация Основные элементы предлагаемой графической нотации
5 Графическая нотация: наследованиe добавление переходов перегрузка переходов добавление состояний
6 Графическая нотация: структурирование Без использования структурирования С использованием структурирования
7 Графическая нотация: структурирование Иерархия состояний, возникающая при использования структурирования
8 Графическая нотация: наследование + структурирование а) без совместного использования б) с совместным использованием
9 Графическая нотация: пример Доступ к файлу: доступ на чтение ( ReadFile ); доступ на запись ( WriteFile ); доступ на чтение, запись и чтение/запись ( ReadWriteFile ).
10 Графическая нотация: пример Диаграммы поведения без наследования
11 Графическая нотация: пример Автоматные классы с предыдущего слайда можно организовать в следующую иерархию:
12 Графическая нотация: пример Используя подход, предложенный в работе, диаграммы поведения могут быть существенно упрощены:
13 Графическая нотация: пример Предположим, что требуется добавить еще один автоматный класс:
14 Графическая нотация: пример Используя подход, предлагаемый в работе, диаграмма может существенно упрощена:
15 Графическая нотация Количественные характеристики
16 Реализация автоматных объектов Методы на основе: виртуальных методов; виртуальных вложенных классов. Позволяют изоморфно отобразить предложенную выше графическую нотацию при реализации автоматных объектов. Соответствуют основным принципам ООП: инкапсуляция; наследование; полиморфизм.
17 Практическое использование: манипуляторы Каркас для построения редакторов Iris Манипуляторы: проектирование реализация
18 Практическое использование: манипуляторы Механизм редактирования: инструмент манипулятор метка призрак команда
19 Практическое использование: манипуляторы Манипуляторы выделения выделение полигоном выделение «лассо»
20 Практическое использование: манипуляторы Механизм выделения «лассо»
21 Практическое использование: манипуляторы Механизм выделения «лассо» SelectObjectTool LassoSelectManipulator ISelectable PolygonSelectableGhost SelectObjCommand
22 Практическое использование: манипуляторы Без использования наследования
23 Практическое использование: манипуляторы С использованием наследования
24 Практическое использование: манипуляторы Результаты внедрения сокращение дублирования структурирование логики манипуляторов
25 Заключение Достоинства простота и интуитивность инкрементальное наследование Недостатки дополнительные примитивы иерархии автоматных классов достаточно редки
26 Публикации 1. Шопырин Д.Г., Шалыто А.А. Применение класса "STATE" в объектно- ориентированном программировании с явным выделением состояний //Труды X Всероссийской научно-методической конференции "Телематика- 2003". СПб.: СПбГИТМО (ТУ) Т. 1, c. 284– Шалыто А. А., Шопырин Д. Г. Объектно-ориентированный подход к автоматному программированию //Информационно-управляющие системы. 2003, 5, с. 29– Шалыто А.А., Шопырин Д.Г. Синхронное программирование //Информационно-управляющие системы. 2004, 3, с. 35– Шопырин Д.Г. Разработка промежуточного языка представления конечных автоматов //Труды XI Всероссийской научно-методической конференции "Телематика-2004". СПб.: СПбГИТМО (ТУ) Т. 1, c. 195– Шопырин Д.Г. Метод проектирования и реализации конечных автоматов на основе виртуальных вложенных классов //Информационные технологии моделирования и управления. 2005, 1(19), c. 87– Шопырин Д.Г. Объектно-ориентированная реализация конечных автоматов на основе виртуальных методов // Информационно- управляющие системы. 2005, 3, c. 36– Шопырин Д.Г. Программирование с явным выделением состояний на платформе.Net //Труды XII Всероссийской научно-методической конференции "Телематика-2005". СПб.: СПбГИТМО (ТУ) Т. 1, с. 86– 87.
27 Спасибо за внимание!