• Моделируемую систему, - внешнюю по отношению к программной системе, описываемую ти-
пами объектов и их абстрактными отношениями.
• Частную конкретизацию внешней системы, состоящую из объектов с фиксированными отно-
шениями.
• Программную систему, состоящую из классов, связанных ОО-отношениями ("быть клиен-
том "быть наследником").
• Объектную структуру в том виде, в котором она существует в процессе выполнения программ-
ной системы, то есть множество программных объектов, связанных ссылками.
Соотношения между этими мирами представлены на рис.8.1.
И на программном и на внешнем уровне (нижняя и верхняя части рисунка) важно разграничить
общие понятия и их конкретные реализации (классы и абстрактные отношения слева, объекты и
отношения экземпляров справа). Данный момент уже обсуждался в дискуссии о сравнительной
роли классов и объектов в предыдущей лекции. Применительно к отношениям необходимо отличать
абстрактные отношения loved_one от множества связей loved_one, существующих между элементами
конкретного множества объектов.
Это различие невыразимо ни в стандартных математических определениях понятия "отношение ни
в программистской терминологии, например в теории реляционных баз данных. Если ограничиться
бинарными отношениями, то и в математике и в теории баз данных отношение определяется как
множество пар в форме <x, y>, где x и y являются элементами заданных множеств TX и TY. В
терминах программирования все x относятся к типу TX, а все y - к типу TY. Будучи пригодными
для математиков, эти определения не подходят для целей моделирования, поскольку не позволяют
различать абстрактные отношения и отношения конкретных экземпляров. При моделировании си-