Главная » Просмотр файлов » А.М. Вендров - Объектно-ориентированный анализ и проектирование

А.М. Вендров - Объектно-ориентированный анализ и проектирование (1158627), страница 5

Файл №1158627 А.М. Вендров - Объектно-ориентированный анализ и проектирование (А.М. Вендров - Объектно-ориентированный анализ и проектирование) 5 страницаА.М. Вендров - Объектно-ориентированный анализ и проектирование (1158627) страница 52019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

В разделе "Теория классификации"Британской Энциклопедии сказано следующее:20"В постижении реального мира люди пользуются тремя методами,организующими их мышление:(1) разделение окружающей действительности на конкретные объектыи их атрибуты - например, когда явно различаются понятия дерева и еговысоты или пространственного расположения по отношению к другимобъектам.(2) различие между целыми объектами и их составными частями например, ветви являются составными частями дерева.(3) формирование и выделение различий между различными классамиобъектов - например, между классом всех деревьев и классом всехкамней."Понятие "объект" впервые было использовано около 30 лет назад втехнических средствах при попытках отойти от традиционнойархитектуры фон Неймана и преодолеть барьер между высоким уровнемпрограммных абстракций и низким уровнем абстрагирования на уровнекомпьютеров. С объектно-ориентированной архитектурой также тесносвязаны объектно-ориентированные операционные системы. Однаконаиболее значительный вклад в объектный подход был внесен объектнымии объектно-ориентированными языками программирования: Simula (1967),Smalltalk (1970-е), C++ (1980-е) и языком моделирования UML (1990-е).

Наобъектный подход оказали влияние также развивавшиеся достаточнонезависимо методы моделирования данных, в особенности модель"сущность-связь".1.3.1. Основные принципы построения объектной моделиКонцептуальной основой ООП является объектная модель.Основными принципами ее построения являются [2]:• абстрагирование (abstraction);• инкапсуляция (encapsulation);• модульность (modularity);• иерархия (hierarchy).Абстрагирование - это выделение наиболее важных, существенныххарактеристик некоторого объекта, которые отличают его от всех другихвидов объектов и, таким образом, четко определяют его концептуальныеграницы с точки зрения дальнейшего рассмотрения и анализа, иигнорированиеменееважныхилинезначительныхдеталей.Абстрагированиепозволяетуправлятьсложностьюсистемы,концентрируясь на существенных свойствах объекта.

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

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

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

Применим принципинкапсуляции к. Допустим, управление банка постановило, что есликлиент имеет кредитный счет, то этот кредит может быть использован каковердрафт на его счете "до востребования". В неинкапсулированнойсистеме модификация начинается с узконаправленного анализа изменений,которые необходимо будет внести в систему. Как правило, неизвестно, гдев системе находятся все обращения к функции снятия со счета, поэтомуприходится искать их везде. После того, как они найдены, нужноосуществить в них некоторые изменения, чтобы реализовать новыетребования. Если работать тщательно, то, вероятно, можно будетобнаружить около 80% случаев использования данной функции.

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

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

Основными видамииерархических структур применительно к сложным системам являютсяструктура классов (иерархия по номенклатуре) и структура объектов(иерархия по составу). Примерами иерархии классов являются простое имножественное наследование (один класс использует структурную илифункциональную часть соответственно одного или нескольких другихклассов), а иерархии объектов - агрегация.1.3.2. Основные элементы объектной моделиК основным понятиям объектно-ориентированного подхода(элементам объектной модели) относятся:• объект;• класс;• атрибут;• операция;• полиморфизм (интерфейс);• компонент;• связи.Объект определяется как осязаемая сущность (tangible entity) предмет или явление (процесс), имеющие четко определяемое поведение.Объект может представлять собой абстракцию некоторой сущностипредметной области (объект реального мира) или программной системы(архитектурный объект).

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

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

Термины "экземпляр класса" и "объект" являются эквивалентными.Графическое представление объектов в языке моделирования UML(который будет рассматриваться в подразд. 1.4) показано на рис. 1.1.Только имя объектаСлужащий ПетровТолько имя класса: СлужащийСлужащий Петров :СлужащийИмя объекта и имя классаРис. 1.1. Графическое представление объектовКласс - это множество объектов, связанных общностью свойств,поведения, связей и семантики. Класс инкапсулирует (объединяет) в себеданные (атрибуты) и поведение (операции).

Класс является абстрактнымопределением объекта и служит в качестве шаблона для созданияобъектов. Графическое представление класса в языке UML показано нарис. 1.2. Класс изображается в виде прямоугольника, разделенного на три24части. В первой содержится имя класса, во второй - его атрибуты. Впоследней части содержатся операции класса, отражающие его поведение(действия, выполняемые классом).Любой объект является экземпляром (instance) класса. Определениеклассов и объектов - одна из самых сложных задач объектноориентированного проектирования.Рис. 1.2. Графическое представление классаАтрибут - поименованное свойство класса, определяющее диапазондопустимых значений, которые могут принимать экземпляры данногосвойства.

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

Рассмотрим каждый из них в контексте примера (рис. 1.1).Пусть имеется класс Employee с атрибутом Address и класс Company:Public (общий, открытый). Это значение видимости предполагает,что атрибут будет виден всеми остальными классами. Любой класс можетпросмотреть или изменить значение атрибута. В таком случае классCompany может изменить значение атрибута Address класса Employee. Всоответствии с нотацией UML общему атрибуту предшествует знак "+".Private (закрытый, секретный). Соответствующий атрибут не виденникаким другим классом. Класс Employee будет знать значение атрибута25Address и сможет изменять его, но класс Company не сможет его ниувидеть, ни редактировать.

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

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

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6439
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее