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

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

Файл №1037782 Джим Арлоу, Айла Нейштадт - UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование (Джим Арлоу, Айла Нейштадт - UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование) 29 страницаДжим Арлоу, Айла Нейштадт - UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование (1037782) страница 292017-12-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Это мо+жет обусловить переход состояний – целенаправленный переход объекта из одного состояния в другое. Из табл. 7.1 видно, что состояниеобъекта может влиять и на его поведение. Например, если в принтерезакончились чернила (состояние объекта = OutOfBlackInk), вызов операции printDocument() приведет к сообщению об ошибке. Поэтому поведение printDocument() является зависимым от состояния.Метод – это реализация операции.Операция – это описание части поведения.

Реализация этого поведения называется методом (method).Таблица 7.1Состояние объекта Атрибут классаЗначение атри Отношениебута объектаOnpoweronНе определеноOffpoweroffНе определеноOutOfBlackInkblackInkCartridgeemptyНе определеноOutOfColorInkcolorInkCartridgeemptyНе определеноConnectedне определеноне определеноПодключен к объекту компьютерNotConnectedне определеноне определеноНе подключен к объекту компьютер7.2.1.

ИнкапсуляцияКак уже говорилось, идентификатор объекта – это некий уникальныйдескриптор, обычно адрес памяти, предоставляемый языком реализации. С этого момента будем называть эти дескрипторы объектнымиссылками. В ОО анализе не надо беспокоиться об их реализации. Можно просто принять, что у каждого объекта есть уникальный идентификатор, управляемый технологией реализации. Возможно, при проектировании понадобится рассмотреть реализацию объектных ссылок.Это необходимо, если целевым языком является ОО язык программирования, такой как С++, который позволяет напрямую работать с определенными типами объектных ссылок, известными как указатели.На рис. 7.2 приведено концептуальное представление объекта, подчеркивающее инкапсуляцию.

Обратите внимание, что рис. 7.2 не яв+1517.2. Что такое объекты?значения атрибутовdeposit( )withdraw( )1234567801«Jim Arlow»300.00getOwner( )setOwner( )объект AccountоперацииРис. 7.2. Представление объекта, подчеркивающее инкапсуляциюляется UMLдиаграммой. UMLсинтаксис для объектов будет показанпозже.Состояние объекта определяется значениями его атрибутов.Состояние объекта – это набор значений атрибутов (в данном случае1234567801, «Jim Arlow», 300.00) объекта в любой момент времени.Значения некоторых атрибутов постоянны, значения других могут современем меняться.

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

При изменении баланса из отрицательного в нулевой объект существенно меняет свою суть: переходит из состоянияOverdrawn в состояние Empty (пустой). Более того, когда баланс объектаAccount (счет) становится положительным, осуществляется еще один переход состояния: из Empty в InCredit (кредитоспособен). Возможны и другие переходы состояний.

Фактически любой вызов операции, приводящий к изменению сути объекта, обуславливает переход состояний.UML предоставляет мощный набор методов моделирования изменений состояния, которые называются конечными автоматами; им посвящена глава 21.Поведение объекта – это то, «что он может сделать для нас», т. е. егооперации.152Глава 7. Объекты и классыПоведение любого объекта – это, по существу, то, «что он может сделать» для вас. Объект на рис. 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),и самым обычным примером этого деления являются класс и объект.Класс – это спецификация или шаблон, которому должны следоватьвсе объекты этого класса (экземпляры). Атрибуты, описанные классом,в каждом объекте имеют конкретные значения.

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

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

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