ДанилШопырин ЗАО ТранзасТехнологии...
Transcript of ДанилШопырин ЗАО ТранзасТехнологии...
Графическая нотация наследованияавтоматных классов
Данил ШопыринЗАО «Транзас Технологии»
Анатолий ШалытоСПбГУ ИТМО
2
Типы программных систем
Преобразующие системыИнтерактивные системыРеактивные системы
3
Реактивные системы
Средства проектирования и реализации:SDLUMLSyncChartsSWITCH-технология
Реактивные подсистемы ОО-системState Design Pattern и варианты его развития
4
Автоматные классы
ИнкапсуляцияНаследование
СтруктурированиеДекомпозиция
Полиморфизм
5
Практическое использование: манипуляторы
Iris - каркас для построения редакторов
Манипуляторы:проектированиереализация
6
Практическое использование: манипуляторы
Механизмы редактированиявыделение объектовперенос объектоввращение объектови т.п.
7
Практическое использование: манипуляторы
Механизм редактирования:инструментманипуляторметкапризраккоманда
8
Практическое использование: манипуляторы
Манипуляторы выделениявыделение кликомвыделение прямоугольникомвыделение полигономвыделение «лассо»
9
Практическое использование: манипуляторы
Механизм выделения «лассо»
10
Практическое использование: манипуляторы
Механизм выделения «лассо»SelectObjectToolLassoSelectionManipulatorISelectablePolygonSelectableGhostSelectObjCommand
11
Практическое использование: манипуляторы
Без использования наследования
12
Практическое использование: манипуляторы
С использованием наследования
13
Графическая нотацияОсновные элементы предлагаемой графической нотации
14
Графическая нотация: наследованиe
добавление переходовперегрузка переходовдобавление состояний
15
Графическая нотация: структурирование
Без использованияструктурирования
С использованиемструктурирования
16
Графическая нотация: структурирование
Иерархия состояний, возникающая прииспользованияструктурирования
17
Графическая нотация: наследование + структурирование
а) без совместного использования б) с совместным использованием
18
Графическая нотация: пример
Доступ к файлу:доступ на чтение (ReadFile); доступ на запись (WriteFile);доступ на чтение, запись и чтение/запись(ReadWriteFile).
19
Графическая нотация: примерДиаграммы поведения без наследования
20
Графическая нотация: пример
Автоматные классы с предыдущего слайда можноорганизовать в следующую иерархию:
21
Графическая нотация: примерИспользуя подход, предложенный в работе, диаграммыповедения могут быть существенно упрощены:
Name MeaningOFR IFile.Open(fname, "r")R IFile.Read()reading "Файл открыт на чтение"
Name MeaningOFW IFile.Open(fname, "w")W IFile.Write()writing "Файл открыт на запись"
Name MeaningOFRW IFile.Open(fname, "rw")R IFile.Read()readwriting "Файл открыт на чтение/запись"W IFile.Write()
Name MeaningC IFile.Close()closed группа "Файл закрыт"IsO IFile.IsOpened()main "Начальный режим"opened группа "Файл открыт"RF return falseRT return true
22
Графическая нотация: пример
Предположим, что требуется добавить еще одинавтоматный класс:
23
Графическая нотация: пример
Используя подход, предлагаемый в работе, диаграммаможет существенно упрощена:
Name MeaningOFA IFile.Open(fname, "a")appending "Файл открыт для записи в конец"W IFile.Write()
24
Графическая нотация
Количественные характеристики
25
Реализация автоматных объектов
Методы на основе:виртуальных методов;виртуальных вложенных классов.
Позволяют изоморфно отобразить предложеннуювыше графическую нотацию при реализацииавтоматных объектов.Соответствуют основным принципам ООП:
инкапсуляция;наследование;полиморфизм.
26
Заключение
Достоинствапростота и интуитивностьинкрементальное наследование
Недостаткидополнительные примитивыиерархии автоматных классов достаточноредки
27
Публикации
1. Шопырин Д.Г., Шалыто А.А. Применение класса "STATE" в объектно-ориентированном программировании с явным выделением состояний//Труды X Всероссийской научно-методической конференции "Телематика-2003". СПб.: СПбГИТМО (ТУ). 2003. Т. 1, c. 284–285.
2. Шалыто А. А., Шопырин Д. Г. Объектно-ориентированный подход кавтоматному программированию //Информационно-управляющиесистемы. 2003, № 5, с. 29–39.
3. Шалыто А.А., Шопырин Д.Г. Синхронное программирование//Информационно-управляющие системы. 2004, № 3, с. 35–42.
4. Шопырин Д.Г. Разработка промежуточного языка представленияконечных автоматов //Труды XI Всероссийской научно-методическойконференции "Телематика-2004". СПб.: СПбГИТМО (ТУ). 2004. Т. 1, c. 195–197.
5. Шопырин Д.Г. Метод проектирования и реализации конечных автоматовна основе виртуальных вложенных классов //Информационныетехнологии моделирования и управления. 2005, № 1(19), c. 87–97.
6. Шопырин Д.Г. Объектно-ориентированная реализация конечныхавтоматов на основе виртуальных методов // Информационно-управляющие системы. 2005, № 3, c. 36–40.
7. Шопырин Д.Г. Программирование с явным выделением состояний наплатформе .Net //Труды XII Всероссийской научно-методическойконференции "Телематика-2005". СПб.: СПбГИТМО (ТУ). 2005. Т. 1, с. 86–87.
28
Спасибо за внимание!