TMPA-2013 Tools & Methods of Program Analysis
Bui, D., Kompan, S., Taras Shevchenko National University of Kyiv
OOP Class Diagrams: Formation and Analysis
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
TMPA-2013 Kompan and Bui: OOP Class Diagrams
1. ДИАГРАММЫ КЛАССОВ ООП:
ФОРМАЛИЗАЦИЯ И АНАЛИЗ
Буй Д.Б., д.-р физ.-мат. н., профессор
Киевский национальный университет
имени Тараса Шевченко, Украина
e-mail: buy@unicyb.kiev.ua
Компан С.В., аспирант
Киевский национальный университет
имени Тараса Шевченко, Украина
e-mail: skompan@mail.ru
2. Для реляционных БД уже построена
формальная модель
1.
Кодд Е.Ф. Реляционная модель для больших совместно используемых банков данных // СУБД. −
1995. − N. 1. − C. 145-169.
2. Мейер Д. Теория реляционных баз данных: [пер. с англ.] / Д. Мейер. – Москва: Мир, 1987. – 608 с.
3. Ульман Дж. Основы систем баз данных: [пер. с англ.] / Дж. Ульман. – Москва: Финансы и
статистика, 1983. – 334 с.
4. Кренке Д. Теория и практика построения баз данных / Д. Кренке. – СПб.: Питер, 2003. − 800 с.
5. Дейт К. Дж. Введение в базы данных / К.Дж. Дейт. – М., СПб, Киев: «Вильямс», 2001. − 1071 с.
6. Буй Д.Б. Теоретико-множественные конструкции полного образа, ограничения, конфинальности и
совместности в основаниях реляционных баз данных / Д.Б. Буй, Н.Д. Кахута // Интеллектуальные
системы и компьютерные науки: международная конференция, 23-27 октября 2006 г., Москва: труды.
– 2006. – Т. 1. – С. 72-76.
7. Буй Д.Б. Теория мультимножеств: библиография, применение в табличных базах данных / Д.Б. Буй,
Ю.А. Богатырёва // Радіоелектронні і комп’ютерні системи. – № 7(48). – 2010. – С. 56-62.
8. Буй Д.Б. Композиційна семантика рекурсивних запитів в SQL-подібних мовах / Д. Б. Буй,
С.А. Поляков // Вісник Київського університету. Сер. фіз.-мат. науки. – 2010. – Вип. 1. – С. 45-56.
9. Буй Д.Б. Повнота аксіоматики Армстронга / Д.Б. Буй, А.В. Пузікова // Вісник Київського
національного університету імені Тараса Шевченка. Сер. фіз.-мат. науки. – 2011. − Вип. 3. − С. 103108.
10. Редько В.Н. Реляційні бази даних: табличні алгебри та SQL-подібні мови / В.Н. Редько, Ю.Й. Брона,
Д.Б. Буй, С.А. Поляков. – Київ: Видавничий дім «Академперіодика», 2001. – 196 с.
11. Buy D. Formalization of structural constraints of relationships in model «entity-relationship» / D. Buy,
L. Silveystruk // Electronic Computers and Informatics’2006: international scientific conference,
September 20-22, 2006. – Kosice, Slovakia: proceedings. – Kosice. – 2006.– P. 96-101.
12. Buy D. Equivalence of Table Algebras of Finite (Infinite) Tables and Corresponding Relational Calculi /
D. Buy, I. Glushko // Proceedings of the Eleventh International Conference on Informatics
INFORMATICS’2011, November 16-18, 2011, Rožňava, Slovakia. – P. 56-60.
3. Для объектных БД так же построены
формальные модели
1. Piskunov А.G. The formalization of the object-oriented programming paradigm,
http://www.realcoding.net/dn/docs/machine.pdf (in Russian)
2. Piskunov A.G. The formalization of the OOP: types, sets, classes,
http://agp1.hx0.ru/articles/typeSetsClasses.pdf (in Russian)
3. Chaplanova Е.B. Operating specification of object-relational data model, In:
Radіoelektronіka, іnformatika, upravlіnnya, vol. 12, pp. 75-79, (2011) (in Russian)
4. Karel Richta, David Toth. Formal Models of Object-Oriented Databases. In Objekty
2008. Žilina: Žilinská univerzita v Žiline, Fakulta riadenia a informatiky, pp. 204-217,
(2008),
http://www.ksi.mff.cuni.cz/~richta/publications/richta-tothObjekty2008.pdf
5. Manojit Sarkar, Steven P. Reiss. A Data Model and a Query Language for ObjectOriented Database. In: Island, Department of Computer Science Brown University
Providence,
Rhode,
CS-92-57,
(1992),
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.34.4531&rep=rep1&typ
e=pdf
6. Gail M. Shaw, Stanley B. Zdonik. A Query Algebra for Object-Oriented Databases. In:
Island, Department of Computer Science Brown University Providence, Rhode, CS89-19,
(1989)
http://trac.common-lisp.net/elephant/rawattachment/wiki/RelationalAlgebra/shaw89query.2.pdf
4. В статье проводится краткий
сравнительный
анализ
работ,
посвященных формальным моделям
объектно-ориентированного
программирования
5. Предмет исследования – модель диаграммы
классов (соответствующее частично
упорядоченное множество).
Модель класса (спецификация класса) – пара
бинарных функциональных отношений, одна
компонента уточняет атрибуты, вторая –
методы.
9. ПОСТРОЕНИЕ ОБЪЕКТНОЙ
АЛГЕБРАИЧЕСКОЙ СИСТЕМЫ
, ; obj ; spec ,
где – множество объектов классов, – множество
спецификаций классов, obj – множество операций
spec – множество операций над
над объектами,
спецификациями классов, а бинарное отношение
– частичный порядок, уточняющий
наследование.
10. K s,
s – функциональное бинарное отношение,
которое атрибуту ставит в соответствие его
тип;
– функциональное бинарное отношение,
которое методу ставит в соответствие его
семантику (логику работы). Отношения и s
определяют спецификацию класса.
12. операция сочленения ∐
:
s1 , 1 s2 , 2 s1s2 , 1 2, где
def
fg g f (domf domg )
K1
K2
K3
13. Операция сочленения уточняет
множественное наследование
Рассмотрим важнейшие частные случаи:
а) doms1 doms2 ⋀ dom1 dom 2
Тогда получим производный класс:
K 3 s1 s 2 , 1 2
б)
doms1 doms2
или/и
конфликт разрешается
наложения.
с
dom1 dom 2
помощью
операции
14. Лемма. Для произвольных функциональных
бинарных отношений f и g выполняется
равенство:
f g ( f g ) (domf domg )
Следствие 1. (критерий совместности
функциональных бинарных отношений).
Пусть f , g – произвольные функциональные
def
бинарные отношения, а X domf domg . Тогда
имеют место две эквивалентности:
f g dom( f g ) X ,
( f g ) dom( f g ) X .
16. def
X domf domg
X f g
⋀
f g f
означает, что у функций просто нет общих
аргументов, потому они не могут
конфликтовать (принимать разные значения
на общем аргументе). Естественно, общая
часть в этом случае пуста.
17. X dom( f g ) f g
⋀
f g f X gX
означает, что на множестве общих аргументов
функции ведут себя одинаково (принимают
одинаковые значения на общих аргументах).
Общая часть в этом случае может быть как
пустой, так и непустой.
Таким образом, первый пункт является
частным случаем второго.
18. dom( f g ) X ( f g )
⋀
x x X f ( x) g ( x) .
Существует общий аргумент, на котором
функции ведут себя по-разному.
Что касается общей части, то она может быть
как пустой, так и непустой.
19. результаты о структуре частично
упорядоченного множества F ,
– множество всех функциональных
бинарных отношений (на универсальном
домене D );
– обычное теоретико-множественное
включение.
F
Буй Д.Б. Теоретико-множественные конструкции полного образа,
ограничения, конфинальности и совместности в основаниях
реляционных баз данных / Д.Б. Буй, Н.Д. Кахута // Материалы IX
Международной конференции «Интеллектуальные системы и
компьютерные науки», 23-27 октября 2006. – Т. 1, С. 72 - 76
20. Предложение 1. Ч.у.м. F , есть нижняя
полурешетка, при этом inf f , g f g .
Предложение 2 (структура ч. у. м. F , ).
Выполняются следующие утверждения.
1) Всюду неопределенная функция f –
наименьший элемент («дно») ч. у. м. F , .
2) Наибольший элемент в ч. у. м. F ,
существует тогда и только тогда, когда
универсум – одноэлементный.
3) Точная нижняя грань существует для
любого непустого множества F , причем
inf F f F f
21. 4) Точная верхняя грань множества F
существует тогда и только тогда, когда
множество F ограничено сверху, при этом
sup F f F f ;
5) Элемент является атомом тогда и только
тогда, когда f – одноэлементный;
F , является условно полным
6) Ч. у. м.
ч. у. м. и полной (верхней) полурешеткой.
22. Выводы
Предложенная формальная модель может использоваться
для анализа и модификации диаграмм классов:
- нахождения компонент связности, что соответствует
декомпозиции системы на подсистемы;
- поиска клонов;
- модификации диаграмм с помощью введенных
операций пересечений и сочленения.
Над классами рассматриваются операции пересечения и
сочленения. Пересечение классов вводится на основе
стандартного теоретико-множественного пересечения
бинарных отношений, а сочленение – на основе
специальной операции наложения, которая позволяет
разрешить конфликт имен. Указанные операции над
классами могут быть использованы при рефакторинге
(refactoring) программ.