Что отражает характеристическое свойство объекта называемое атрибутом

ООП: атрибуты и методы

Два главных слова любого программиста в ООП. Знай их, люби их, говори правильно.

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

Краткое содержание предыдущих частей:

Теперь нырнём в атрибуты и методы.

Атрибуты

Атрибут — это переменная, связанная с объектом или классом. Грубо говоря, если я хочу, чтобы у объекта «Пользователь» появилась фамилия, я должен сделать пользователю атрибут «Фамилия».

Для программистов: у класса есть атрибуты, свойства и поля. В зависимости от языка программирования эти три параметра могут означать одно и то же, а могут различаться. В этой статье мы разбираем академический подход к структуре класса вида «атрибут — значение».

Возьмём в качестве примера метафору — производство телефонов. У нас есть класс «Смартфон» — некий абстрактный смартфон, по лекалам которого изготавливают конкретные объекты-смартфоны.

У класса «Смартфон» могут быть такие атрибуты:

Это у нас будут атрибуты класса «Смартфон». Они могут принимать конкретные значения: камеры могут быть разных моделей, память может быть 64 или 256 гигабайт, а батарейка — 2500 мАч или 3500 мАч.

Когда мы задаём атрибут для класса, мы как будто настраиваем производственную линию: «Тут у нас будет станок по установке камер, там — по вклеиванию батареи». Когда мы задали класс с определёнными атрибутами, все объекты, произведённые из этого класса, будут появляться на свет с этими атрибутами.

Методы

Методы — это то, как можно взаимодействовать с атрибутами, узнавать и менять их значения. Рассмотрим их на том же прошлом примере про класс мобильника. Вот какие действия можно совершать:

Получается, что методы отвечают за то, чтобы можно было взаимодействовать с классом. Чаще всего они отвечают за то, что можно сделать с атрибутами

Если посмотреть на список, можно заметить, что почти все методы доступны для выполнения извне — позвонить, сделать фото, посмотреть погоду и так далее. Это значит, что это открытые методы (public) — их может вызывать и работать с ними кто угодно: как пользователь, так и другие программы для своих нужд.

Но два других метода из списка — особенные: обработать HDR-фото и поймать сигнал сети. Их нельзя запустить напрямую, их вызывает операционная система, когда ей это нужно. Это значит, что это закрытые (private) методы, и они доступны только внутри самого класса. Если классу понадобится что-то обработать внутри себя, он ими воспользуется, а другие не смогут этого сделать.

Ещё есть защищённые (protected) методы. Их пока нет в наших примерах, но мы до них обязательно дойдём.

Источник

Атрибут — поименованное свойство класса, определяющее диапазон допустимых значений, которые могут принимать экземпляры данного свойства

Что отражает характеристическое свойство объекта называемое атрибутом Что отражает характеристическое свойство объекта называемое атрибутом Что отражает характеристическое свойство объекта называемое атрибутом Что отражает характеристическое свойство объекта называемое атрибутом

Что отражает характеристическое свойство объекта называемое атрибутом

Что отражает характеристическое свойство объекта называемое атрибутом

Атрибут — это элемент информации, связанный с классом. Например, у класса Company (Компания) могут быть атрибуты Name (Название), Address (Адрес) и NumberOfEmployees (Число служащих).

Так как атрибуты содержатся внутри класса, они скрыты от других классов. В связи с этим может понадобиться указать, какие классы имеют право читать и изменять атрибуты. Это свойство называется видимостью атрибута (attribute visibility).

У атрибута можно определить три возможных значения этого параметра. Рассмотрим каждый из них в контексте примера (см. рис. 2.38). Пусть имеется класс Employee с атрибутом Address и класс Company:

Public (общий, открытый). Это значение видимости предполагает, что атрибут будет виден всеми остальными классами. Любой класс может просмотреть или изменить значение атрибута. В таком случае класс Company может изменить значение атрибута Address класса Employee. В соответствии с нотацией UML общему атрибуту предшествует знак «+».

Private (закрытый, секретный). Соответствующий атрибут не виден никаким другим классом. Класс Employee будет знать значение атрибута Address и сможет изменять его, но класс Company не сможет его ни увидеть, ни редактировать. Если это понадобится, он должен попросить класс Employee просмотреть или изменить значение этого атрибута, что обычно делается с помощью общих операций. Закрытый атрибут обозначается знаком «-» в соответствии с нотацией UML.

Protected (защищенный). Такой атрибут доступен только самому классу и его потомкам в иерархии наследования. Допустим, имеется два различных типа сотрудников — с почасовой оплатой и на окладе. Таким образом, потомками класса Employee будут два класса — HourlyEmp и SalariedEmp. Защищенный атрибут Address можно просмотреть или изменить из классов Employee, HourlyEmp и SalariedEmp, но не из класса Company. Нотация UML для защищенного атрибута — это знак «#».

В общем случае атрибуты рекомендуется делать закрытыми или защищенными. При этом удается избежать ситуации, когда значение атрибута изменяется всеми классами системы. Вместо этого логика изменения атрибута будет заключена в том же классе, что и сам этот атрибут.

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

Операции отражают поведение объекта. Операция-запрос не изменяет состояния объекта. Операция-команда может изменить состояние объекта. Результат операции зависит от текущего состояния объекта.

Как правило, в объектных и объектно-ориентированных языках программирования операции, выполняемые над данным объектом, называются методами и являются составной частью определения класса.

Операции реализуют связанное с классом поведение (иначе говоря, реализуют обязанности класса responsibilities). В широком смысле обязанности класса делятся на две категории.

Знание (определяется атрибутами класса):

· наличие информации о данных или вычисляемых величинах;

· наличие информации о связанных объектах. Действие (определяется операциями класса):

· выполнение некоторых действий самим объектом;

· инициация действий других объектов;

· координация действий других объектов.

Операция включает три части — имя, параметры и тип возвращаемого значения. Параметры — это аргументы, получаемые операцией «на входе». Тип возвращаемого значения относится к результату действия операции.

В языке UML операции имеют следующую нотацию:

Источник

атрибут объекта

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

Смотреть что такое «атрибут объекта» в других словарях:

атрибут объекта (сети и системы связи) — Поле, категория или значение данных, которые совместно с другими атрибутами задают сервисы или значения данных, относящиеся к данной функции и характеристикам объекта. [ГОСТ Р 54325 2011 (IEC/TS 61850 2:2003)] EN object attribute field or a… … Справочник технического переводчика

атрибут — 3.2 атрибут (attribute): Свойство или характеристика объекта, которые могут быть определены количественно или качественно вручную или автоматическими средствами. [ИСО/МЭК 15939:2007] Источник … Словарь-справочник терминов нормативно-технической документации

АТРИБУТ — (от лат. attribuo придаю, наделяю) необходимое, существенное свойство объекта. Напр., А. материальных вещей протяженность, вес, цвет и т.п. Уже Аристотель отличал постоянные А. от акциденций случайных, преходящих состояний. В дальнейшем под А.… … Философская энциклопедия

Атрибут — в базах данных имя или структура поля записи. Атрибут характеризует размер или тип информации, содержащейся в поле. По английски: Attribute См. также: Реляционная модель данных Финансовый словарь Финам. Атрибут Атрибут в диаграммах сущность связь … Финансовый словарь

АТРИБУТ — [лат. attributum приданное] 1) филос. неотъемлемое, существенное свойство объекта (напр., движение а. материи); 2) лингв. то же, что определение; 3) существенный признак, постоянное свойство чего л., неотъемлемая принадлежность предмета. Словарь… … Словарь иностранных слов русского языка

атрибут — а, м. attribut m., лат. attributum. 1. Необходимое, существенное, неотъемлемое свойство объекта или явления в отличие от случайных, преходящих его состояний. БАС 2. Сорная рожь оказалась распадающеся при созревании на колоски, опадающие на землю … Исторический словарь галлицизмов русского языка

атрибут (пространственного объекта) — Непозиционная характеристика пространственного объекта с ее качественным или количественным значением. [ГОСТ Р 52438 2005] Тематики географические информационные системы … Справочник технического переводчика

АТРИБУТ — (от латинского attribuo придаю, наделяю), необходимое, существенное, неотъемлемое свойство объекта (например, в философии Спинозы атрибут субстанции протяжение и мышление) … Современная энциклопедия

АТРИБУТ — (от лат. attribuo придаю наделяю). 1) необходимое, существенное, неотъемлемое свойство объекта (напр., атрибут материи в философии движение)2)] В языкознании то же, что определение … Большой Энциклопедический словарь

Атрибут — (лат. аttribuo – қосып беремін, үлестіремін, atributum – қосып жіберілген – присовокупленное) 1) философияда – объектінің онсыз бар бола алмайтын да және ойланылмайтын да ажыратылмас қасиеті (неотъемлемое свойство объекта, без которго он не может … Философиялық терминдердің сөздігі

Источник

Тест по теме «Моделирование и формализация

«Управление общеобразовательной организацией:
новые тенденции и современные технологии»

Свидетельство и скидка на обучение каждому участнику

Тест по теме » Моделирование и формализация»

1. Что называется атрибутом объекта?

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

Абстракция предметов реального мира, объединяемых общими характеристиками и поведением.

Связь между объектом и его характеристиками.

Каждая отдельная характеристика, общая для всех возможных экземпляров

2. Выбор вида модели зависит от:

Физической природы объекта.

Цели исследования объекта.

Информационной сущности объекта.

3. Что такое информационная модель объекта?

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

Формализованное описание объекта в виде текста на некотором языке кодирования, содержащем всю необходимую информацию об объекте.

Программное средство, реализующее математическую модель.

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

4. Укажите классификацию моделей в узком смысле слова:

Натурные, абстрактные, вербальные.

Абстрактные, математические, информационные.

Математические, компьютерные, информационные.

Вербальные, математические, информационные

5. Целью создания информационной модели является:

Обработка данных об объекте реального мира с учетом связи между объектами.

Усложнение модели, учитывая дополнительные факторы, которые были ранее проинформированы.

Исследование объектов, основанное на компьютерном экспериментировании с их математическими моделями.

Представление объекта в виде текста на некотором искусственном языке, доступном компьютерной обработке.

6. Какая модель является статической (описывающей состояние объекта)?

Формула равноускоренного движения

Формула химической реакции

Формула химического соединения

Второй закон Ньютона.

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

Замена реального предмета знаком или совокупностью знаков.

Переход от нечетких задач, возникающих в реальной действительности, к формальным информационным моделям.

Выделение существенной информации об объекте.

8. Информационной технологией называется

Процесс, определяемый совокупностью средств и методов обработки, изготовления, изменения состояния, свойств, формы материала.

Изменение исходного состояния объекта.

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

Совокупность определенных действий, направленных на достижение поставленной цели.

9. Материальной моделью является:

1. Анатомический муляж;

2. Техническое описание компьютера;

3. Рисунок функциональной схемы компьютера;

4. Программа на языке программирования.

10. Что такое компьютерная информационная модель?

Представление объекта в виде теста на некотором искусственном языке, доступном компьютерной обработке.

Совокупность информации, характеризующая свойства и состояние объекта, а также взаимосвязь с внешним миром.

Модель в мысленной или разговорной форме, реализованная на компьютере.

Метод исследования, связанный с вычислительной техникой.

11. Компьютерный эксперимент состоит из последовательности этапов:

Что отражает характеристическое свойство объекта называемое атрибутом

Курс повышения квалификации

Дистанционное обучение как современный формат преподавания

Что отражает характеристическое свойство объекта называемое атрибутом

Курс повышения квалификации

Педагогическая деятельность в контексте профессионального стандарта педагога и ФГОС

Что отражает характеристическое свойство объекта называемое атрибутом

Курс повышения квалификации

Авторская разработка онлайн-курса

Ищем педагогов в команду «Инфоурок»

Что отражает характеристическое свойство объекта называемое атрибутом

Номер материала: ДA-020444

Не нашли то, что искали?

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

Что отражает характеристическое свойство объекта называемое атрибутом

Учителя о ЕГЭ: секреты успешной подготовки

Время чтения: 11 минут

Что отражает характеристическое свойство объекта называемое атрибутом

ОНФ планирует решить проблему с низкими зарплатами водителей школьных автобусов в России

Время чтения: 1 минута

Что отражает характеристическое свойство объекта называемое атрибутом

Итоговое сочинение успешно написали более 97% выпускников школ

Время чтения: 2 минуты

Что отражает характеристическое свойство объекта называемое атрибутом

Учителя о ЕГЭ: секреты успешной подготовки

Время чтения: 11 минут

Что отражает характеристическое свойство объекта называемое атрибутом

Зарплаты педагогов Ростовской области вырастут в среднем на 10-15%

Время чтения: 2 минуты

Что отражает характеристическое свойство объекта называемое атрибутом

Во всех педвузах страны появятся технопарки

Время чтения: 1 минута

Что отражает характеристическое свойство объекта называемое атрибутом

В Минпросвещения рассказали о формате обучения школьников после праздников

Время чтения: 1 минута

Подарочные сертификаты

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

Все материалы, размещенные на сайте, созданы авторами сайта либо размещены пользователями сайта и представлены на сайте исключительно для ознакомления. Авторские права на материалы принадлежат их законным авторам. Частичное или полное копирование материалов сайта без письменного разрешения администрации сайта запрещено! Мнение администрации может не совпадать с точкой зрения авторов.

Источник

Что отражает характеристическое свойство объекта называемое атрибутом

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

Что отражает характеристическое свойство объекта называемое атрибутом 2.1.1. Объекты и классы

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

Примеры объектов: форточка, Банк «Империал», Петр Сидоров, дело № 7461, сберкнижка и т.д.

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

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.1. Пример класса и объекта этого класса

Объединение объектов в классы позволяет ввести в задачу абстракцию и рассмотреть ее в более общей постановке. Класс имеет имя (например лошадь), которое относится ко всем объектам этого класса. Кроме того, в классе вводятся имена атрибутов, которые определены для объектов. В этом смысле описание класса аналогично описанию типа структуры (записи); при этом каждый объект имеет тот же смысл, что и экземпляр структуры (переменная или константа соответствующего типа). Пример класса и объекта этого класса приведен на рисунке 2.1.

Что отражает характеристическое свойство объекта называемое атрибутом 2.1.2. Атрибуты объектов

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

Что отражает характеристическое свойство объекта называемое атрибутом 2.1.3. Операции и методы

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.2. Другие примеры классов

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

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

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

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

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

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

Что отражает характеристическое свойство объекта называемое атрибутом

Рис 2.3. Открытые и закрытые атрибуты и операции

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

Рис. 2.4. Полное представление объекта в OMT

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.5. Возможные классы для системы AMT (банковское обслуживание)

Что отражает характеристическое свойство объекта называемое атрибутом 2.1.4. Зависимости между классами (объектами)

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.6. Зависимости между классами

Зависимости между классами являются двусторонними: все классы в зависимости равноправны. Это так даже в тех случаях, когда имя зависимости как бы вносит направление в эту зависимость. Так, в первом примере на рисунке 2.6 имя зависимости имеет_столицу предполагает, что зависимость направлена от класса страна к классу город (двусторонность зависимости вроде бы пропала); но следует иметь в виду, что эта зависимость двусторонняя в том смысле, что одновременно с ней существует и обратная зависимость является_столицей. Точно таким же образом, во втором примере на рисунке 2.6 можно рассматривать пару зависимостей владеет-принадлежит. Подобных недоразумений можно избежать, если идентифицировать зависимости не по именам, а по наименованиям ролей классов, составляющих зависимость.

Дальнейшие примеры зависимостей между классами приведены на рисунке 2.7. Первый пример показывает зависимость между клиентом банка и его счетами. Клиент банка может иметь одновременно несколько счетов в этом банке, либо вовсе не иметь счета (когда он впервые становится клиентом банка). Таким образом, нужно изобразить зависимость между клиентом и несколькими счетами, что и сделано на рисунке 2.7. Второй пример показывает зависимость между пересекающимися кривыми (в частности, прямыми) линиями. Можно рассматривать 2, 3, и более таких линий, причем они могут иметь несколько точек пересечения. Наконец, третий пример показывает необязательную (optional) зависимость: компьютер может иметь, а может и не иметь мышь.

Зависимостям между классами соответствуют зависимости между объектами этих классов. На рисунке 2.8 показаны зависимости между объектами для первого примера рисунка 2.6; на рисунке 2.9 показаны зависимости между объектами для примеров, изображенных на рисунке 2.7.

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.7. Дальнейшие примеры зависимостей. Обозначения

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.8. Зависимости между объектами

Отметим, что при изображении зависимостей между объектами мы, как правило, знаем количество объектов и не нуждаемся в таких обозначениях как «несколько», «два и более», «не обязательно».

При проектировании системы удобнее оперировать не объектами, а классами.

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.9. Более сложные зависимости между объектами

Понятие зависимости перенесено в объектно-ориентированную технологию проектирования программных систем из технологии проектирования (и моделирования) баз данных, где зависимости используются с давних пор. Языки программирования, как правило, не поддерживают явного описания зависимостей. Тем не менее описание зависимостей очень полезно при разработке программных систем. Технология OMT использует зависимости при интерпретации диаграмм, описывающих систему.

Что отражает характеристическое свойство объекта называемое атрибутом 2.1.5. Атрибуты зависимостей

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

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.10. Пример атрибута зависимости

Еще один пример зависимостей, имеющих атрибуты, показан на рисунке 2.11. Из примера видно, что зависимость может иметь несколько атрибутов. Кроме того, на рисунке 2.11 указаны роли различных объектов в зависимости (подробнее см. ниже). Зависимость руководит на этом рисунке удобнее именовать как начальник-сотрудник.

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.11. Атрибуты двух зависимостей между одним и многими

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

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

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.12. Представление зависимости в виде класса

Что отражает характеристическое свойство объекта называемое атрибутом 2.1.6. Имена ролей, квалификаторы

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

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.13. Имена ролей

Пользователь может быть либо владельцем, либо зарегистрированным пользователем директории; директория может содержать в себе другие директории.

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

Квалификатором называется некоторый атрибут, который позволяет снизить эффективную кратность зависимости. Квалификаторы применяются в зависимостях типов «один-ко-многим» или «много-ко-многим». Так в примере, показанном на рисунке 2.14, использование квалификатора имя_файла позволяет привести зависимость дает_доступ от вида, приведенного на рисунке 2.14(а), к виду, показанному на рисунке 2.14(б), сократив число зависимых объектов до одного. Еще один пример использования квалификатора показан на рисунке 2.14(в): использование квалификаторов и здесь позволяет сократить кратность зависимости до одного объекта. Квалификаторы указываются на схемах в прямоугольничках, пририсованных к прямоугольнику, изображающему соответствующий класс.

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.14. Использование квалификаторов

Что отражает характеристическое свойство объекта называемое атрибутом 2.1.7. Агрегация

Что отражает характеристическое свойство объекта называемое атрибутом

Наиболее важным свойством отношения агрегации является его транзитивность (если A есть часть B, а B есть часть C, то A есть часть C): так, из рисунка 2.15 можно заключить, что документ состоит из нескольких (нуля, или более) предложений. Легко видеть, что отношение агрегации антисимметрично (если A есть часть B, то B не есть часть A). Отметим также, что часть свойств целого может быть перенесена и на его части, возможно, с несущественными изменениями (например, контекст каждого оператора некоторой функции совпадает с внутренним контекстом всей функции).

Дальнейшие примеры агрегации показаны на рисунке 2.16. Отметим, что обе агрегации, показанные на рисунке 2.16(а), следует рассматривать не как зависимости между пятерками классов, а как четверки зависимостей между парами классов. Только при таком рассмотрении можно говорить о транзитивности и антисимметричности отношения агрегации.

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.16. Примеры агрегации

Что отражает характеристическое свойство объекта называемое атрибутом 2.1.8. Обобщение и наследование

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

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.17. Обобщение (выделение суперклассов)

На схемах обобщение (наследование) изображается треугольничком (рисунок 2.17). Треугольничек следует ставить даже в том случае, когда суперкласс имеет всего один подкласс. Слово размерность, следующее за верхним треугольничком на рисунке 2.17, является дискриминатором.

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.18. Другие примеры обобщения (наследования)

Необходимо отметить, что, как показывает опыт практического проектирования систем, следует избегать обширных многоуровневых классификаций, так как поведение подклассов низших уровней многоуровневой классификации бывает трудно понять: большая часть (а нередко и все) атрибутов и операций таких классов определена в их суперклассах различных уровней. Если количество уровней классификации стало непомерно большим, нужно слегка изменить структурирование системы. Чтобы понять, какое число уровней является непомерно большим, можно руководствоваться следующими оценками: два-три уровня наследования, как правило, приемлемы всегда (мне известна одна фирма, разрабатывающая программные системы, в которой издан стандарт фирмы, запрещающий более чем трехуровневые классификации в программах); десятиуровневая классификация почти всегда неприемлема; пять-шесть уровней, как правило, достаточно для программистов и не слишком обременяет администрацию.

Обобщение и наследование широко применяются не только при анализе требований к программным системам и их предварительном проектировании, но и при их реализации.

Иногда в подклассе бывает необходимо переопределить операцию, определенную в одном из его суперклассов. Для этого операция, которая может быть получена из суперкласса в результате наследования, определяется и в подклассе; это ее повторное определение «заслоняет» ее определение в суперклассе, так что в подклассе применяется не унаследованная, а переопределенная в нем операция. Напомним, что каждая операция определяется своей сигнатурой; следовательно, сигнатура переопределения операции должна совпадать с сигнатурой операции из суперкласса, которая переопределяется данной операцией. Так, в примере, изображенном на рисунке 2.17, в классе круг переопределяется операция вращение его суперкласса фигура (при повороте круга его изображение не меняется, что позволяет сделать операцию вращение в классе круг пустой).

Переопределение может преследовать одну из следующих целей:

Целесообразно придерживаться следующих семантических правил наследования:

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

Что отражает характеристическое свойство объекта называемое атрибутом 2.1.9. Абстрактные классы

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

Каждая из категорий служащих представлена своим подклассом класса служащий, от которого они наследуют атрибут годовой_доход и операцию подсчет_выплат. Но подсчет выплат для каждой категории служащих производится по-своему, с учетом значений их собственных (неунаследованных) атрибутов; поэтому в каждом из подклассов операция подсчет_выплат переопределяется. Следовательно, в суперклассе операция подсчет_выплат может быть определена произвольным образом, так как она никогда не будет выполняться. В то же время сигнатуры всех операций подсчет_выплат в суперклассе и в подклассах должны быть одинаковыми (иначе это будут разные операции). Из сказанного следует, что в суперклассе можно задать только сигнатуру операции подсчет_выплат, это обеспечит одинаковые сигнатуры этой операции во всех подклассах. Методы, реализующие операцию подсчет_выплат, достаточно определить только в подклассах класса служащий. Суперкласс, в котором заданы только атрибуты и сигнатуры операций, но не определены методы, реализующие его операции, называется абстрактным классом. Методы, реализующие операции абстрактного класса, определяются в его подклассах, которые называются конкретными классами.

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.19. Абстрактный класс

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

Что отражает характеристическое свойство объекта называемое атрибутом 2.1.10. Множественное наследование

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

Пример множественного наследования приведен на рисунке 2.20, на котором рассмотрена классификация транспортных средств. Класс транспортное средство имеет два подкласса сухопутное_ТС и водное_ТС (зачерненный треугольник, используемый для обозначения наследования, означает, что подклассы имеют непустое пересечение). Класс амфибии имеет два суперкласса сухопутное_ТС и водное_ТС, наследуя все свойства (атрибуты и операции) как класса сухопутное_ТС, так и класса водное_ТС.

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.20. Множественное наследование

Еще один пример множественного наследования приведен на рисунке 2.21, где рассмотрено множественное наследование от непересекающихся классов. В этом случае, который наиболее типичен для применения множественного наследования, свойства, унаследованные от разных предков, дополняют друг друга.

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.21. Множественное наследование от непересекающихся классов

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

Использование вложенного простого наследования представлено на рисунке 2.22.

Делегирование с использованием агрегации ролей показано на рисунке 2.23. Делегированием называется механизм реализации, в котором объект, ответственный за операцию, пересылает (делегирует) эту операцию другому объекту; в объектно-ориентированных языках делегирование реализуется путем присоединения методов непосредственно к объектам, а не к классам.

В рассматриваемом примере операции классов оплата_труда и пенсионное_обеспечение делегируются объектам класса служащий, который можно рассматривать как результат агрегации классов оплата_труда и пенсионное_обеспечение. Более подробно делегирование будет рассмотрено в разделе 5.

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.22. Реализация множественного наследования с помощью вложенного простого наследования

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.23. Реализация множественного наследования путем делегирования с использованием агрегации ролей

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

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.24. Реализация множественного наследования с использованием простого наследования и делегирования

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

Что отражает характеристическое свойство объекта называемое атрибутом 2.1.11. Связь объектов с базой данных

Что отражает характеристическое свойство объекта называемое атрибутомМетаданные

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.25. Объектная модель, определяющая абстрактный и конкретный классы

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.26. Тиражирование метакласса

Что отражает характеристическое свойство объекта называемое атрибутом Использование возможных ключей

На рисунке 2.27 показаны возможные ключи для различных бинарных зависимостей. Связь возможных ключей с кратностью зависимостей очевидна и в комментариях не нуждается.

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.27. Возможные ключи бинарных зависимостей

На рисунке 2.28 рассмотрены две тренарные зависимости. Первая из них определяется таблицей:

ПроектИсполнительЯзык
САПР радиосхемИвановAda
ПО АСУПетровC
Компилятор C++СидоровC
САПР радиосхемКузнецовFortran
САПР радиосхемСидоровAda
САПР радиосхемСидоровC
ПО АСУСидоровC++

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.28. Возможные ключи тренарных зависимостей

Легко видеть, что ни какой-либо из столбцов зависимости, ни какая-либо комбинация из двух столбцов не определяют однозначно строки таблицы. Следовательно, единственным возможным ключом является тройка (проект, исполнитель, язык).

Вторая зависимость определяется таблицей:

СтудентПрофессорУниверситет
БеловаЛавровМГУ
БеловаШапироМГТУ
ЧерноваЛавровМГТУ
ЧерноваЛавровМГУ
ХалецкийУилкинсонОксфорд

Студент может посещать более одного университета, профессор может преподавать более, чем в одном университете. В каждом университете студент должен иметь одного научного руководителя.

Легко видеть, что ни один из столбцов не может быть возможным ключом. Рассмотрим различные пары столбцов: (студент, профессор), (студент, университет), (профессор, университет). Отметим, что пары (студент, профессор) и (профессор, университет) не могут быть возможными ключами: значения (Чернова, Лавров) и (Лавров, МГУ) встречаются дважды. Что касается пары (студент, университет), то она может быть возможным ключом. Тройка (студент, профессор, университет) не является возможным ключом, так как это не минимальный набор атрибутов.

Что отражает характеристическое свойство объекта называемое атрибутом Ограничения

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.29. Ограничения на объекты

(а) зарплата служащего не может превышать зарплаты его начальника (ограничение на значения одного атрибута разных объектов);

(б) никакое окно (на экране дисплея) не может иметь отношение длины к ширине, не лежащее в интервале от 0.8 до 1.5 (ограничение на значения разных атрибутов одного объекта);

(в) возраст человека не может убывать (ограничение на изменение значения атрибута во времени).

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

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

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.30. Ограничения на связи

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

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.31. Общее ограничение между зависимостями

Что отражает характеристическое свойство объекта называемое атрибутом Производные объекты, связи и атрибуты

Производный объект определяется как функция от одного или нескольких объектов. Он полностью определяется этими объектами. Следовательно, производный объект избыточен, но он может быть включен в объектную модель для облегчения ее понимания. Аналогичным образом можно определить производные связи и производные атрибуты. Все производные сущности помечаются косой чертой («/»).

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.32. Производный атрибут

На рисунке 2.32 показан производный атрибут возраст класса человек, возраст определяется как разность значений объекта текущая_дата (соответствующий класс также показан на рисунке) и атрибута дата_рождения объекта класса человек.

На рисунке 2.33 показано, что объект класса машина состоит из нескольких объектов класса узел, каждый из которых может состоять из объектов класса деталь. Каждый узел характеризуется смещением в системе координат, связанной с машиной, а каждая деталь характеризуется смещением в системе координат, связанной с узлом.

Для удобства можно для каждого объекта деталь определить систему координат, в которой координаты вычисляются с помощью координат объекта машина, смещения объекта узел и смещения объекта деталь. Эта система координат может быть представлена в производном классе смещение, который связан с каждым объектом деталь производной зависимостью чистое_смещение. Поскольку в реальном мире наблюдается большая избыточность, в объектные модели удобно вводить большое количество производных сущностей.

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.33. Производный объект и производная зависимость

Что отражает характеристическое свойство объекта называемое атрибутом Гомоморфизмы

На рисунке 2.34 показаны классы, соответствующие физическим деталям (класс деталь) и их описаниям в каталоге (класс модель_детали), а также зависимости между такими классами (поскольку речь идет о сложных деталях, эти зависимости являются агрегациями зависимости содержит). На рисунке показано отображение диаграмм объектных моделей, соответствующих физическим деталям, в диаграмму объектной модели, соответствующей каталогу. При этом следует иметь в виду, что поскольку разным физическим деталям одного вида (номенклатуры) соответствует одно описание в каталоге, рассматриваемое отображение как бы «склеивает» все диаграммы объектных моделей, соответствующих физическим деталям, в одну диаграмму объектной модели, соответствующей каталогу. Описанное отображение есть один из наиболее типичных примеров гомоморфизма.

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.34. Пример гомоморфизма

Общий случай гомоморфизма показан на рисунке 2.35. Гомоморфизм отображает связи, определяемые зависимостью u, в связи, определяемые зависимостью t, являясь отображением типа «много-в-один». Гоморфизмы обычно используются при изучении связей между метаобъектами и порождаемыми ими объектами (описание детали в каталоге может рассматриваться как метадеталь).

Что отражает характеристическое свойство объекта называемое атрибутом

Рис. 2.35. Общий случай гомоморфизма

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *