Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование

Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование, страница 30

PDF-файл Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование, страница 30 Объектно-ориентированный анализ и проектирование (53090): Книга - 7 семестрДж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование: Объектно-ориентированный ан2019-09-18СтудИзба

Описание файла

PDF-файл из архива "Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование", который расположен в категории "". Всё это находится в предмете "объектно-ориентированный анализ и проектирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 30 страницы из PDF

7.2 предоставляет операции, перечисленные в табл. 7.2.Таблица 7.2ОперацияСемантикаdeposit()Размещает некоторую сумму в объекте Account.Увеличивает значение атрибута balance.withdraw()Снимает некоторую сумму с Account.Уменьшает значение атрибута balance.getOwner()Возвращает владельца объекта Account – операция запроса.setOwner()Меняет владельца объекта Account.Этот набор операций определяет поведение объекта. Обратите внимание, что вызов некоторых из этих операций (deposit(), withdraw(), setOwner()) приводит к изменению значений атрибута и может генерироватьпереходы состояния.

Операция getOwner() не меняет значения атрибутаи поэтому не приводит к переходу состояния.Инкапсуляция, или сокрытие данных, – одно из основных преимуществ ОО программирования. Она обеспечивает возможность созданияболее надежного и расширяемого программного обеспечения. В этомпростом примере объекта Account пользователю не надо беспокоитьсяо структуре данных, сокрытых в объекте. Его интересует только то,что объект может сделать.

Иначе говоря, ему интересны сервисы (ser+vices), предлагаемые другим объектам.7.2.2. Обмен сообщениямиОбъекты формируют поведение системы путем обмена сообщениямипо связям. Это – кооперация.У объектов есть значения атрибутов и поведение, но как эти объектыобъединить, чтобы создать систему программного обеспечения? Объекты кооперируются для осуществления функций системы. Это означает, что они устанавливают связи с другими объектами и обмениваются сообщениями по этим связям. Когда объект получает сообщение,он проверяет набор своих операций в поиске той, сигнатура которойсоответствует сигнатуре сообщения. Если таковая имеется, он инициирует эту операцию (рис. 7.3).

В сигнатуру входят имя сообщения (илиоперации), типы параметров и возвращаемое значение.Во время выполнения ОО система состоит из множества создаваемыхобъектов, существующих некоторое время и затем, возможно, уничтожаемых. Эти объекты обмениваются сообщениями, инициируя сервисы друг друга. Такая структура радикально отличается от процедур1537.3. Нотация объектов в UMLОбъект BankсообщениеОбъект Accountwithdraw (150.00)Объект Bank посылает сообщение«withdraw 150.00» объекту AccountВ ответ объект Account вызывает свою операциюwithdraw, которая уменьшает баланс счета на 150.00Рис.

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

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

Если необходимо показатьдва объекта одного и того же класса, каждому из них должно бытьприсвоено уникальное имя, чтобы можно было их различать.имяобъектаячейка имениячейка атрибутовимяклассаjimsAccount:AccountaccountNumber : String = "1234567"owner : String = "Jim Arlow"balance : double = 300.00имятипзначениеатрибута атрибута атрибутаРис. 7.4. Нотация объектов в UML154Глава 7. Объекты и классы•Только имя объекта, например jimsAccount.

Здесь обозначен конкретный объект, но не указано, какому классу он принадлежит.Данное обозначение может быть полезным на самых ранних стадиях анализа, когда еще не выявлены все классы.•Если указываются и имя объекта, и имя класса, они разделяютсядвоеточием. Двоеточие может читаться как «является экземпляром класса». Таким образом, диаграмму на рис. 7.4 можно прочитать так: существует объект с именем jimsAccount, который являетсяэкземпляром класса Account.Объекты одного класса имеют одинаковые операции и атрибуты, но значения их атрибутов могут быть разными.Имена объектов обычно записываются заглавными и строчными буквами вперемежку, начиная со строчной буквы. Следует избегать специальных символов, таких как пробелы и подчеркивания.

Такойстиль записи называют lowerCamelCase, потому что в результате получаются «горбатые» на вид слова.Как сказано в разделе 7.2, класс определяет атрибуты и операции набора объектов. Поскольку все объекты одного класса имеют совершенно одинаковый набор операций, они перечисляются в пиктограммекласса, а не в пиктограмме объекта.Атрибуты по выбору могут быть приведены в нижней ячейке пиктограммы объекта. Тем атрибутам, которые решено вынести на диаграмму, должны быть присвоены имена.

Их тип и значение указывать необязательно. Имена атрибутов также записываются в стиле lowerCamelCase.7.3.1. Значения атрибутов объектовЗначение каждого атрибута записывается следующим образом:имя : тип = значениеМожно отображать все, некоторые или вообще не отображать значения атрибутов. Все зависит от назначения диаграммы.Чтобы сохранить простоту и ясность диаграммы, можно опускать типы атрибутов, поскольку они уже определены в классе объекта. Когдабудет показано применение диаграмм объектов при анализе (глава 12),станет понятно, почему может быть принято решение отображатьв пиктограмме объекта не всю информацию.7.4. Что такое классы?Книга «UML Reference Manual» [Rumbaugh 1] определяет класс как «дескриптор набора объектов, имеющих одинаковые атрибуты, операции,7.4.

Что такое классы?155методы, отношения и поведение». Подытожить это можно так: класс –это дескриптор набора объектов, имеющих одинаковые свойства.Класс описывает свойства ряда объектов.Каждый объект – это экземпляр только одного класса. Вот несколькорекомендаций относительно классов.• Класс надо рассматривать как шаблон объектов: класс определяетструктуру (набор свойств) всех объектов этого класса. Все объектыодного класса должны иметь одинаковый набор операций, одинако+вый набор атрибутов и одинаковый набор отношений, но значенияатрибутов могут быть различными.• Класс – это штамп, а объекты – отпечатки этого штампа на листкебумаги. Или класс – это форма для печенья, а объекты – печенье.Каждый объект – это экземпляр только одного класса.Классификатор и экземпляр – принятые деления UML (см.

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

По существу, это также однаиз самых важных ОО концепций. Применяя понятие классов, можноговорить об отдельном типе машин или о виде дерева, даже не упоминая конкретный экземпляр. То же самое в программном обеспечении.Классы позволяют описывать набор свойств, которыми должен обладать каждый объект класса, без необходимости описывать каждый изэтих объектов.Посмотрим на рис. 7.5 и подумаем, сколько классов изображено наэтом рисунке?На самом деле ответа на этот вопрос нет! Существует практически неисчислимое количество способов классификации объектов реальногомира. Вот несколько классов, которые можно увидеть:• класс кошек;• класс жирных прожорливых котов (у нас есть кот – экземпляр этого класса!);156Глава 7.

Объекты и классыРис. 7.5. Сколько классов здесь изображено?•••класс деревьев;класс листьев;и т. д., и т. п.Правильный выбор схемы классификации – один из ключей к успешному ОО анализу.Поскольку существует такое огромное количество вариантов, выборнаиболее подходящей схемы классификации – один из самых важныхаспектов ОО анализа и проектирования.

Как это делать, будет показано в главе 8.Посмотрев на рис. 7.5 внимательнее, можно увидеть другие типы отношений кроме уже упоминавшегося класс/экземпляр. Например,можно обнаружить несколько уровней классификации. Есть класс кошек. Классификацию можно расширить и выделить подклассы «домашних кошек» и «диких кошек». Или даже подклассы «современные кошки» и «доисторические кошки». Это отношение между классами: один класс является подклассом другого. И наоборот, класс«кошки» является суперклассом «домашних кошек» и «диких кошек».

Более подробно об этом рассказывается в главе 10, посвященнойнаследованию.На рис. 7.5 видно, что у объектов «деревья» есть наборы объектов «листья». Это очень прочный вид отношений между деревьями и листьями.Каждый объект «лист» принадлежит определенному объекту «дерево».Деревья не могут обмениваться или совместно использовать листья.И жизненный цикл листа тесно связан и контролируется деревом. Такое отношение между объектами в UML называют композицией (composition).1577.4. Что такое классы?Однако отношения между, скажем, компьютерами и внешними устройствами совершенно другие. Компьютеры могут обмениваться внешними устройствами, например такими, как пара динамиков.

Разные компьютеры даже могут совместно использовать некоторые устройства.Кроме того, если компьютер выходит из строя, его внешние устройствамогут прекрасно пережить его и использоваться новой машиной. Жизненный цикл внешних устройств обычно не зависит от жизненногоцикла компьютера. В UML этот тип отношений объектов называется агрегацией (aggregation). Отношения объектов, в частности композицияи агрегация, более подробно рассматриваются в главе 18.7.4.1. Классы и объектыОтношения объединяют сущности.Между классом и объектами этого класса устанавливается отношение«instantiate» (создать экземпляр).

Это первый встречающийся нам пример отношения. Книга «UML Reference Manual» [Rumbaugh 1] определяет отношение как «связь между элементами модели». В UML существует множество типов отношений, и со временем все они будут намирассмотрены.Отношение зависимости означает, что изменение сущностипоставщикаоказывает влияние на сущностьклиент.Отношение «instantiate» между объектами и классами показано нарис. 7.6.

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