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

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

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

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

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

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

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

Например, в языке программирования 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Область действия – экземплярОбласть действия – классАтрибуты По умолчанию область действия Для атрибутов может быть опреатрибутов – экземпляр.делена область действия класс.Каждый объект класса получа Каждый объект класса испольет собственную копию атрибу зует одну и ту же единственнуютов, область действия которых – копию атрибутов класса.экземпляр.Следовательно, значения атри Следовательно, значения атрибутов экземпляра могут быть бутов класса во всех объектахразными в каждом объекте.одинаковые.Операции По умолчанию область действия Для операций может быть опреопераций – экземпляр.делена область действия – класс.Каждый вызов операции экзем Вызов операции класса не касапляра касается конкретного эк ется конкретного экземпляраземпляра класса.класса.

Операции уровня классаможно рассматривать как применяемые к самому классу.Невозможно вызвать операциюэкземпляра, не имея в распоряжении экземпляра класса. Безусловно, это означает, что нельзя использовать операции, область действия которых – экземпляр, для создания объектовэтого класса: никогда не получится создать первый объект.Инициировать операции классаможно, даже не имея экземпляра класса; это идеально подходит для операций создания объектов.7.7. Создание и уничтожение объектовКонструкторы – это специальные операции, создающие новые объекты.Область их действия – класс.172Глава 7.

Объекты и классыКонструкторы – это специальные операции, создающие новые экземпляры классов. Эти операции должны иметь область действия – класс.Если бы они были уровня экземпляра, не было бы возможности создать первый экземпляр класса.Конструкторы – забота проектирования. Обычно их не показываютна аналитических моделях.В разных языках программирования действуют разные стандартыименования конструкторов. Абсолютно универсальный подход – называть конструктор просто create(…) (создать). Это делает понятнымназначение данной операции.

Однако языки Java, C# и C++ требуют,чтобы имя конструктора совпадало с именем класса.У класса может быть несколько конструкторов с одинаковыми именами, но с разным набором параметров. Конструктор без параметров называют применяемым по умолчанию конструктором (default con+structor).

Параметры конструктора можно использовать для инициализации значений атрибутов в момент создания объекта.На рис.7.16 показан простой пример класса BankAccount (банковскийсчет). При каждом создании объекта BankAccount в качестве параметрав его конструктор должно передаваться значение типа String. Эта строка используется для задания атрибута accountNumber (номер счета) (например, значение “XYZ001002”). Тот факт, что конструктору класса BankAccount необходим параметр, говорит о том, что создать объект BankAccount, не определив этот параметр, нельзя.

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