ДанилШопырин ЗАО ТранзасТехнологии...

28
Графическая нотация наследования автоматных классов Данил Шопырин ЗАО «Транзас Технологии» Анатолий Шалыто СПбГУ ИТМО

Upload: others

Post on 07-Sep-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

Графическая нотация наследованияавтоматных классов

Данил ШопыринЗАО «Транзас Технологии»

Анатолий ШалытоСПбГУ ИТМО

Page 2: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

2

Типы программных систем

Преобразующие системыИнтерактивные системыРеактивные системы

Page 3: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

3

Реактивные системы

Средства проектирования и реализации:SDLUMLSyncChartsSWITCH-технология

Реактивные подсистемы ОО-системState Design Pattern и варианты его развития

Page 4: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

4

Автоматные классы

ИнкапсуляцияНаследование

СтруктурированиеДекомпозиция

Полиморфизм

Page 5: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

5

Практическое использование: манипуляторы

Iris - каркас для построения редакторов

Манипуляторы:проектированиереализация

Page 6: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

6

Практическое использование: манипуляторы

Механизмы редактированиявыделение объектовперенос объектоввращение объектови т.п.

Page 7: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

7

Практическое использование: манипуляторы

Механизм редактирования:инструментманипуляторметкапризраккоманда

Page 8: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

8

Практическое использование: манипуляторы

Манипуляторы выделениявыделение кликомвыделение прямоугольникомвыделение полигономвыделение «лассо»

Page 9: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

9

Практическое использование: манипуляторы

Механизм выделения «лассо»

Page 10: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

10

Практическое использование: манипуляторы

Механизм выделения «лассо»SelectObjectToolLassoSelectionManipulatorISelectablePolygonSelectableGhostSelectObjCommand

Page 11: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

11

Практическое использование: манипуляторы

Без использования наследования

Page 12: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

12

Практическое использование: манипуляторы

С использованием наследования

Page 13: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

13

Графическая нотацияОсновные элементы предлагаемой графической нотации

Page 14: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

14

Графическая нотация: наследованиe

добавление переходовперегрузка переходовдобавление состояний

Page 15: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

15

Графическая нотация: структурирование

Без использованияструктурирования

С использованиемструктурирования

Page 16: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

16

Графическая нотация: структурирование

Иерархия состояний, возникающая прииспользованияструктурирования

Page 17: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

17

Графическая нотация: наследование + структурирование

а) без совместного использования б) с совместным использованием

Page 18: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

18

Графическая нотация: пример

Доступ к файлу:доступ на чтение (ReadFile); доступ на запись (WriteFile);доступ на чтение, запись и чтение/запись(ReadWriteFile).

Page 19: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

19

Графическая нотация: примерДиаграммы поведения без наследования

Page 20: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

20

Графическая нотация: пример

Автоматные классы с предыдущего слайда можноорганизовать в следующую иерархию:

Page 21: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

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

Page 22: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

22

Графическая нотация: пример

Предположим, что требуется добавить еще одинавтоматный класс:

Page 23: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

23

Графическая нотация: пример

Используя подход, предлагаемый в работе, диаграммаможет существенно упрощена:

Name MeaningOFA IFile.Open(fname, "a")appending "Файл открыт для записи в конец"W IFile.Write()

Page 24: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

24

Графическая нотация

Количественные характеристики

Page 25: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

25

Реализация автоматных объектов

Методы на основе:виртуальных методов;виртуальных вложенных классов.

Позволяют изоморфно отобразить предложеннуювыше графическую нотацию при реализацииавтоматных объектов.Соответствуют основным принципам ООП:

инкапсуляция;наследование;полиморфизм.

Page 26: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

26

Заключение

Достоинствапростота и интуитивностьинкрементальное наследование

Недостаткидополнительные примитивыиерархии автоматных классов достаточноредки

Page 27: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

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.

Page 28: ДанилШопырин ЗАО ТранзасТехнологии СПбГУИТМО2006.secrus.org/upload/files/32.pdf · 21 Графическаянотация: пример Используяподход,

28

Спасибо за внимание!