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

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

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

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

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

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

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

В табл. 7.4 проводится сравнение семантики видимости UML и языков программирования Java и C#.Видимость зависит от языка реализации и может стать очень сложной. Какой именно тип видимости используется, является конкрет162Глава 7. Объекты и классыным решением реализации, которое обычно принимается программистом, а не аналитиком/проектировщиком. Для общего моделированиястандартных UMLопределений public, private, protected и packageвполне достаточно.

Рекомендуем ограничиться ими.Таблица 7.4ВидимостьСемантика UMLpublicЛюбойэлемент, Аналогично UML.который имеет доступ к классу, имеетдоступ к любой изего возможностей,видимостькоторой public.Семантика JavaАналогичноUML.Семантика C#privateТолько операции Аналогично UML.класса имеют доступ к возможностям, имеющим видимость private.АналогичноUML.protectedТолько операциикласса или потомкакласса имеют доступ к возможностям, имеющим видимость protected.Аналогично UML, но Аналогичнодоступ также имеют UML.все классы, находящиеся в том же пакете Java, что и определяющий класс.packageЛюбойэлемент,находящийся в одном пакете с классом или во вложенномподпакете,имеет доступ ковсем его возможностям,видимостькоторых package.Применяемаяпо –умолчаниювидимость в Java: вложенным классам вложенных подпакетов доступ к элементам родительского пакетаавтоматическинепредоставляется.private protected–(закрытый защищенный)Аналогично protect –ed в UML.internal(внутренний)––Доступны любому элементу тойже программы.protected internal(защищенныйвнутренний)––Сочетает семантику protectedи internal, применимо толькок атрибутам.1637.5.

Нотация классов в UML7.5.2.2. ТипТипом атрибута может быть другой класс или примитивный тип.Типом атрибута может быть другой класс или примитивный тип.Спецификация UML определяет четыре примитивных типа, используемых в самой спецификации UML. Их можно применять в аналитических моделях, если необходимо сохранить платформонезависимость.Эти типы приведены в табл.

7.5.Таблица 7.5UMLOCLПростой типСемантикаIntegerЦелое число.UnlimitedNaturalЦелое число >= 0.Бесконечность обозначается как *.BooleanМожет принимать значения true или false.StringПоследовательность символов.Строковые литералы заключаются в кавычки,например "Джим".RealЧисло с плавающей точкой.Объектный язык ограничений (Object Constraint Language, OCL) –формальный язык для выражения ограничений в UMLмоделях.

Подробно OCL обсуждается в главе 25. OCL определяет стандартные операции для простых типов UML (кроме UnlimitedNatural) и вводит новыйтип Real.Если модель ориентирована на определенный язык программирования, например Java или C#, можно использовать простые типы этогоязыка.

Однако тогда модель будет привязана к этому конкретномуязыку программирования.Иногда необходимо ввести в UMLмодель ряд примитивных типов, используемых в остальных классах в качестве атрибутов и типов параметров операций. Добавить простой тип можно, создав класс с таким жеименем и стереотипом «primitive». У такого класса обычно нет атрибутовили операций, поскольку он просто выступает в роли структурного нуля для простого типа, добавляя его имя в пространство имен модели.7.5.2.3. КратностьКратность широко используется при проектировании. Она также может быть полезной в аналитических моделях, поскольку с ее помощьюможно лаконично обозначить определенные бизнесограничения, касающиеся «количества сущностей», участвующих в отношении.164Глава 7.

Объекты и классыPersonDetails–name : String [2..*]–address : String [3]–emailAddress : String [0..1]имя состоит из двух или более строкадрес состоит из трех строкemailAddress состоит из одной строки или имеет значение nullвыражение кратностиРис. 7.9. Примеры синтаксиса кратностиКратность позволяет моделировать коллекции сущностей или неопределенные значения.Применяя выражение кратности к атрибуту, можно моделировать двесовершенно разные сущности (рис. 7.9).• Коллекции – если выражение кратности определяет целое числобольше нуля, значит, задается коллекция типа. Например, выражение colors : Color[7] моделирует атрибут, являющийся коллекциейиз семи объектов Color (цвет), которые можно использовать для моделирования цветов радуги.• Неопределенные значения – большинство языков различают атрибут, содержащий пустой, или неинициализированный, объект (например, пустая строка, ""), и атрибут, указывающий в «никуда»,т.

е. ссылку на неопределенный (null) объект. Когда атрибут ссылается на null, это означает, что объект, на который он указывает, ещене был создан или уже прекратил существование. При детальномпроектировании иногда важно указать, что null является возможным значением атрибута. Смоделировать это можно с помощьюспециального выражения кратности [0..1]. Рассмотрим пример атрибута emailAddress (электронныйАдрес) (рис. 7.9): если значение атрибута – "" (пустая строка), то это можно понять так, что адресэлектронной почты был запрошен, но не был предоставлен. С другой стороны, если атрибут emailAddress указывает на null, можно сказать, что адрес электронной почты еще не был запрошен и, следовательно, его значение неизвестно. Если проводятся такие разграничения, исключительно важно указывать в документации emailAddress точную семантику "" и null.

Как видите, это довольно тонкиепроектные рассуждения, но они могут быть важны и полезны.На рис. 7.9 приведено несколько примеров синтаксиса кратности.7.5.2.4. Начальное значениеНачальное значение позволяет задавать значение атрибута в моментсоздания объекта.1657.5. Нотация классов в UMLНачальное значение (initialValue) позволяет задавать значение, принимаемое атрибутом при создании экземпляра класса (т.

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

Расширенный синтаксис атрибутаПодобно любому другому элементу моделирования 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 как одно из своих возвращаемыхзначений.Однако в некоторых языках операции могут возвращать более одногозначения.

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