Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕЩИНСКИЙ.docx
Скачиваний:
16
Добавлен:
21.12.2018
Размер:
471.39 Кб
Скачать

2.3. Абстракции

Абстракция предполагает, что несущественные детали игнорируются, а внимание концентрируется на основных общих свойствах множества объектов. Элементарная форма абстракции – обобщение конкретных значений в типы свойств или конкретных экземпляров объекта в типы объектов. Абстракция может быть многоуровневой, то есть абстракция одного уровня может рассматриваться как объект абстракции другого уровня. Таким образом, абстракция может использоваться для формирования нового типа из имеющихся. Абстракция может порождать сложные типы, которые состоят из других типов.

Абстракции широко применяются в информатике как средство улучшения понимания сложных информационных объектов. Использование абстракций является одним из основных способов структуризации данных, который применяется для образования типов данных. Кроме того, абстракция позволяет на основе одних типов построить другие, более общие.

Например, тип свойства Имя – это абстракция множества конкретных имен, тип объекта КЛИЕНТ – абстракция множества представлений о конкретных клиентах.

Например, тип объекта ЛИЧНОСТЬ может являться абстракцией типов объектов СЛУЖАЩИЙ и КЛИЕНТ.

Например, тип объекта КЛИЕНТ может состоять из типов свойств Номер, Имя, Адрес и Возраст, то есть КЛИЕНТ(Номер, Имя, Адрес и Возраст)

При описании типов объектов, типов свойств и типов связей между ними принято названия типов объектов обозначать прописными буквами, а типы свойств – строчными с прописной первой буквой (например, клиент – это название типа объекта, а Имя – это название типа свойства).

К элементам данных применяют два вида абстракции: агрегация и обобщение. В первом случае внимание уделяется тем свойствам или деталям, из которых состоит объект, а все остальное считается несущественным. Во втором случае внимание концентрируется на том общем, что имеется у исследуемых объектов, и игнорируется то, что их различает. Агрегация позволяет раскрыть структуру объектов. Агрегация и обобщение могут применяться взаимодополняющим образом и выражать структурные и классификационные аспекты типизации.

Агрегация – это абстракция, с помощью которой объект конструируется из других (базовых) объектов. Агрегация используется как на уровне экземпляров (экземпляр состоит из конкретных значений), так и на уровне типов (тип объекта состоит из типов свойств). Типы свойств составляют типы объектов и относятся к интенсиональной информации, поэтому называются интенсиональными свойствами. Конкретная реализация типа объекта конструируется из конкретных экземпляров (значений) интенсиональных типов свойств. Эти свойства-реализации относятся к экстенсиональной информации, поэтому называются экстенсиональными свойствами. Агрегация на уровне типов предполагает множество агрегаций на уровне экземпляров.

Например, тип СЛУЖАЩИЙ может быть сконструирован из типов свойств Имя, Возраст, Адрес.

Например, конкретная реализация типа объекта СЛУЖАЩИЙ, относящаяся к Иванову П.С., конструируется из конкретных экземпляров (значений) интенсиональных типов свойств “Иванов П.С.” (Имя), “29” (Возраст), “Луговая,18” (Адрес).

Например, из того, что тип объекта КЛИЕНТ состоит из типов свойств Номер, Имя и Адрес, следует, что каждый экземпляр этого типа должен состоять из конкретных значений только этих типов свойств.

Обобщение позволяет соотнести множество конкретных значений данных или конкретных экземпляров объекта с одним общим типом, а также множество типов с одним общим типом. Такие виды обобщения называются соответственно классификацией и обобщением типов. Обобщение на уровне типов предполагает обобщение и на уровне экземпляров. Обобщенный тип обладает свойствами, общими для базовых экземпляров или типов. То есть все свойства обобщенного типа наследуются базовыми типами.

Например, представление множества конкретных служащих общим типом СЛУЖАЩИЙ – это классификация, а представление типов СЛУЖАЩИЙ и СТУДЕНТ общим типом ЛИЧНОСТЬ – обобщение типов.

Например, тот факт, что ЛИЧНОСТЬ есть обобщение типа СЛУЖАЩИЙ, подразумевает, что каждый конкретный служащий может рассматриваться как личность.

Например, свойство “Иметь заработную плату” наследуется от типа СЛУЖАЩИЙ каждым конкретным экземпляром служащего. Свойства Имя, Адрес и Возраст наследуются каждым подтипом типа ЛИЧНОСТЬ (СЛУЖАЩИЙ и СТУДЕНТ).

Структуру типа можно представить как агрегат базовых типов, а сам агрегат может служить объектом обобщения. Обобщение типов может быть выражено иерархией обобщения, а агрегация – иерархией агрегаций.

Часто агрегацию и обобщение описывают с помощью схем. В таких схемах типы объектов показываются прямоугольниками, а типы свойств – овалами. Они соединяются линиями со стрелками. Прямоугольники и овалы называются вершинами, а линии – дугами (рёбрами). Схема агрегации показывает, какие типы объектов из каких именно типов свойств состоят. Схема обобщения описывает, какие типы объектов являются более общими по отношению к каким именно. Можно в одной схеме показать как обобщение, так и агрегацию. Такая схема называется единой структурной схемой.

В схеме агрегации типы свойств соединяются дугами с теми типами объектов, которые из них состоят. На дугах располагают метки, определяющие порядок типов свойств, составляющих тип объекта.

Например,

Здесь показано, что тип объекта СЛУЖАЩИЙ состоит из типов свойств Имя, Возраст, Адрес, Зарплата и Университет, а тип объекта СТУДЕНТ – из типов свойств Имя, Возраст, Адрес, Университет и Факультет. Это можно записать в следующей форме:

СЛУЖАЩИЙ(Имя, Возраст, Адрес, Зарплата, Университет);

СТУДЕНТ(Имя, Возраст, Адрес, Университет, Факультет)

В схеме обобщения дугами соединяют типы объектов таким образом, чтобы показать направление обобщения (от частного к общему).

В единой структурной схеме обобщение указывается стрелками с двойными линиями, а агрегация – одинарными. Если некоторый тип есть обобщение и агрегат одновременно, то его базовые объекты-подтипы наследуют типы свойств, образующие его как агрегат, и, следовательно, свойства этого типа объекта.

Например, следующий рисунок иллюстрирует иерархию агрегации для типов ЛИЧНОСТЬ, СЛУЖАЩИЙ, СТУДЕНТ.

Так как ЛИЧНОСТЬ – это обобщение типов СЛУЖАЩИЙ и СТУДЕНТ, то они наследуют свойства Имя, Возраст, Адрес.