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

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

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

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

Расширенный синтаксис атрибутаПодобно любому другому элементу моделирования UML, семантикуатрибутов можно расширять, указывая перед ними стереотипы илизадавая после них помеченные значения, например«стереотип» атрибут { метка1 = значение1, метка2 = значение2, … }В помеченных значениях можно хранить любую информацию. Например, иногда они используются для хранения информации о версии,как показано здесь:address { addedBy="Jim Arlow", dateAdded="20MAR2004" }В этом примере записано, что Джим Арлоу (Jim Arlow) добавил атрибут address (адрес) в некоторый класс 20 марта 2004 года.7.5.3. Ячейка операцийОперации – это функции, закрепленные за определенным классом.По сути, они обладают всеми характеристиками функций:• имя• список параметров• возвращаемый типСигнатура операции включает имя, тип всех ее параметров и возвращаемый тип.Сочетание имени операции, типов всех ее параметров и возвращаемоготипа образует сигнатуру операции (рис.

7.10). Сигнатура каждой опесигнатура операциивидимость имя( направление имяПараметра : типПараметра = значениеПоУмолчанию, ... ) : возвращаемыйТипсписок параметровРис. 7.10. Сигнатура операции166Глава 7. Объекты и классырации класса должна быть уникальной, поскольку именно сигнатураидентифицирует операцию. Когда объект получает сообщение, его сигнатура сравнивается с сигнатурами операций, определенных в классеобъекта.

Если обнаруживается соответствие, инициируется запрашиваемая операция объекта.Разные языки программирования немного поразному определяют,что должно составлять сигнатуру операции. Например, в С++ и Javaвозвращаемый тип игнорируется. Это означает, что две операции класса, отличающиеся только возвращаемыми типами, будут рассматриваться как одна и та же операция и генерировать ошибку компилятора/интерпретатора.

В Smalltalk, языке со слабым контролем типов,все параметры и возвращаемый тип имеют тип Object, и поэтому сигнатуру составляет только имя операции.Имена операций записываются в стиле lowerCamelCase. В качествеимен используются глаголы или глагольные группы. Необходимо избегать применения в именах специальных символом и сокращений.Каждый параметр операции имеет форму, показанную на рис. 7.11.В операции может быть от нуля до нескольких параметров.направление имяПараметра : типПараметра = значениеПоУмолчаниюРис. 7.11. Синтаксис параметров операцииИмена параметров записываются в стиле lowerCamelCase и обычно являются именем существительным или именной группой, посколькуобозначают чтото, что передается в операцию. Каждый параметр имеет определенный тип, который является классом или примитивнымтипом.Направление и применяемое по умолчанию значение параметра рассматриваются в следующих двух разделах.7.5.3.1.

Направление параметраДля параметров операции может быть задано направление:операция( in p1:Integer, inout p2:Integer, out p3:Integer, return p4:Integer, returnp5:Integer )Если направление не указано, по умолчанию оно принимает значениеin (в). Семантика направления параметра приведена в табл. 7.6.Семантика значений in, inout (виз) и out (из) довольно проста, а вотreturn (возвратить) возможно потребует большего внимания.Обычно ожидается, что функция возвращает один объект, как показано ниже:maximumValue = max( a, b )minimumValue = min( a, b )1677.5.

Нотация классов в UMLгде a, b, maximumValue (максимальное значение) и minimumValue (минимальное значение) – целые числа. Обычный синтаксис операции поддерживает именно эту ситуацию: каждая операция обычно имееттолько одно возвращаемое значение. Как мы видели, в UML такие«обычные» операции можно смоделировать следующим образом:maximumValue( a:Integer, b:Integer ) : IntegerТаблица 7.6ПараметрСемантикаin p1:IntegerПрименяется по умолчанию.Операция использует p1 как входной параметр.Значение p1 какимто образом используется операцией.Операция не изменяет p1.inout p2:IntegerОперация принимает p2 как параметр ввода/вывода.Значение p2 какимто образом используется операцией.и принимает выходное значение операции.Операция может изменять p2.out p3:IntegerОперация использует p3 как выходной параметр.Параметр служит хранилищем для выходного значенияоперации.Операция может изменять p3.return p4:IntegerОперация использует p4 как возвращаемый параметр.Операция возвращает p4 как одно из своих возвращаемыхзначений.return p5:IntegerОперация использует p5 как возвращаемый параметр.Операция возвращает p5 как одно из своих возвращаемыхзначений.Однако в некоторых языках операции могут возвращать более одногозначения.

Например, в языке программирования Python можно былобы написать:maximumValue, minimumValue = maxMin( a, b )где maxMin( a, b ) возвращает два значения – максимальное и минимальное. В UML это можно смоделировать следующим образом:maxMin( in a: Integer, in b:Integer, return maxValue:Integer, return minValue:Integer )Как видим, направление return параметра позволяет моделировать ситуации, когда операция возвращает более одного значения.Возвращаемые параметры могут быть перечислены и после имени операции:maxMin( in a: Integer, in b:Integer ) : Integer, Integer168Глава 7.

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

Генераторы кода будутпроецировать направления параметров UML в конкретную семантикупередачи параметров в целевом языке программирования.7.5.3.2. Значения параметров по умолчаниюДля параметра операции может быть задано значение, применяемое поумолчанию. Если при вызове операции параметру не присваивается значение, используется значение по умолчанию.На рис. 7.12 показано, как задаются применяемые по умолчанию значения. Здесь в классе Canvas имеется две операции: drawCircle(...) (нарисовать круг) и drawSquare(...) (нарисовать квадрат), отрисовывающие наэкране круг и квадрат соответственно.

Для параметра origin (начало отсчета) задается значение по умолчанию Point(0,0). Если при вызове этихопераций данный параметр будет опущен, фигуры будут отрисованына экране относительно точки {0,0}.На самом деле применяемые по умолчанию значения являются вопросом проектирования; во время анализа они используются редко.7.5.3.3. Расширенный синтаксис операцииСемантику операций можно расширить, предваряя их стереотипамии дополняя помеченными значениями.«стереотип» операция(…) { метка1 = значение1, метка2 = значение2, … }Можно также ввести помеченные значения в параметры операций, номы ни разу не сталкивались с ситуацией, когда это было бы полезно.7.5.3.4. Операции запросаВ каждой операции есть свойство isQuery.

Если в инструменте моделирования этому свойству присвоено значение true, операция являетсяоперацией запроса. Это означает, что она не имеет побочных эффектови не меняет состояние объекта, в котором вызывается. Операция, возCanvasdrawCircle( origin: Point = Point( 0, 0 ), radius : Integer )drawSquare( origin: Point = Point( 0, 0 ), size : Dimension )Рис. 7.12. Задание параметров по умолчанию1697.5. Нотация классов в UMLBankAccountbalance : doubleоперация запроса(isQuery = true)getBalance() : doubleвозвращает значениеатрибута balanceимя атрибута начинаетсяс большой буквыРис. 7.13. Именование операций запросавращающая значение атрибута, называется операцией запроса.

Ее свойству isQuery должно быть присвоено значение true.По умолчанию isQuery имеет значение false. Обычно isQuery задается припроектировании. Однако если в UMLмоделях применяется OCL (см.главу 25), важно обозначить операции запроса, потому что выраженияOCL не могут менять состояния системы и поэтому могут использоватьтолько операции запроса. Если задано isQuery, компиляторы OCL могут проверять, какие операции (допустимые или нет) вызывают OCLвыражения.Более или менее универсальный способ наименования операций запроса – ставить приставку get перед именем того, что вы запрашиваете.

Пример приведен на рис. 7.13.7.5.4. Синтаксис стереотипа классаСтереотипы могут отображаться поразному (рис. 7.14). Однако большинство разработчиков моделей используют имя, заключенное в кавычки («имя cтереотипа»), или пиктограмму. Другие варианты не такшироко используются, и инструментальные средства моделированиячасто налагают ограничения.Стереотипы также могут быть ассоциированы с цветами или текстурами, но это очень плохая практика. У некоторых читателей, имеющихпроблемы со зрением или не различающих цвета, могут возникнутьсложности с пониманием таких диаграмм. Кроме того, чаще всего диаграммы распечатываются в чернобелом варианте.предпочтительное«entity»Ticket«entity»TicketпиктограммастереотиппредпочтительноеTicketTicketРис. 7.14. Варианты отображения стереотипов170Глава 7. Объекты и классы7.6.

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

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

7.7.7.6.2. Область действия определяет возможность доступаВозможность доступа операции к другому свойству класса определяется областью действия операции и областью действия свойства, к которому пытаются получить доступ.Операции, область действия которых – экземпляр, могут организовывать доступ к другим атрибутам и операциям с такой же областью дейBankAccount!accountNumber : String!count : int = 0область действия –класс (подчеркнуто)+create( accNumber : String )+getAccountNumber : String!incrementCount()+decrementCount()+getCount() : intобласть действия –экземплярРис. 7.15. Атрибуты и операции с областями действия класс и экземпляр1717.7.

Создание и уничтожение объектовствия, а также ко всем атрибутам и операциям, область действия которых – класс.Операции, область действия которых – класс, могут организовыватьдоступ только к атрибутам и операциям, имеющим область действия –класс. Операции уровня класса не имеют доступа к операциям уровняэкземпляра, потому что:• возможно, еще не создано ни одного экземпляра класса;• даже если экземпляры класса существуют, неизвестно, какой изних использовать.Таблица 7.7Область действия – экземплярОбласть действия – классАтрибуты По умолчанию область действия Для атрибутов может быть опреатрибутов – экземпляр.делена область действия класс.Каждый объект класса получа Каждый объект класса испольет собственную копию атрибу зует одну и ту же единственнуютов, область действия которых – копию атрибутов класса.экземпляр.Следовательно, значения атри Следовательно, значения атрибутов экземпляра могут быть бутов класса во всех объектахразными в каждом объекте.одинаковые.Операции По умолчанию область действия Для операций может быть опреопераций – экземпляр.делена область действия – класс.Каждый вызов операции экзем Вызов операции класса не касапляра касается конкретного эк ется конкретного экземпляраземпляра класса.класса.

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

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

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