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

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

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

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

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

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

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

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

Или можно указать только параметры, имеющие в перспективе существенное значение.Когда дело дойдет до детального проекта, необходимо будет определить имя, типы параметров и возвращаемый тип каждой операции(см. раздел 17.4). Сюда входит и явное описание конструктора и деструктора.Уничтожение объекта не такая простая операция, как его создание.В разных ОО языках программирования семантика уничтожения объBankAccountBankAccount+create( accNumber : String )+BankAccount( accNumber : String )универсальное имя конструкторастандарт Java/C#/C++Рис.

7.16. Именование конструктора7.7. Создание и уничтожение объектов173екта разная. Более подробно создание и уничтожение объектов рассматриваются в следующих двух разделах.7.7.1. Конструкторы – пример класса ClubMemberПример класса ClubMember (член клуба) (рис. 7.17) показывает обычноеприменение атрибутов и операций уровня класса. Этот класс описываетнекий член клуба. Атрибут numberOfMembers (количество членов) – закрытый (private) атрибут класса типа int. Следовательно, этот атрибутиспользуется совместно всеми объектами класса ClubMember. Его значение для каждого из этих объектов будет одинаковым.ClubMember!membershipNumber : String!memberName : String!numberOfMembers : int = 0+create( number : String, name : String )+getMembershipNumber() : String+getMemberName() : String!incrementNumberOfMembers+decrementNumberOfMembers+getNumberOfMembers() : intРис.

7.17. Применение атрибутов и операций уровня классаПри создании атрибута numberOfMembers ему присваивается начальноезначение, равное нулю. Далее, если бы это был атрибут экземпляра,каждый объект при создании получал бы собственную копию этого атрибута. Однако область действия этого атрибута – класс. Значит, существует только одна его копия, и эта единственная копия инициализируется только один раз. Когда именно это происходит, зависит отязыка реализации. Мы должны знать лишь то, что атрибут инициализируется со значением нуль при запуске программы.Предположим, что в операции create(...) происходит вызов операциикласса incrementNumberOfmembers() (увеличить число членов).

Как можноожидать из ее имени, эта операция увеличивает значение атрибута класса numberOfMembers. При каждом создании экземпляра класса numberOfMembers увеличивается на единицу. В класс введен счетчик! С помощьюоперации класса getNumberOfMembers() (получить количество членов)можно запросить значение атрибута numberOfMembers. Данная операциявозвращает число, равное количеству созданных объектов ClubMember.7.7.2. Деструкторы – пример класса ClubMemberДеструкторы – это специальные операции, которые «наводят порядок»при уничтожении объектов.174Глава 7.

Объекты и классыЧто происходит, если программа создает и уничтожает объекты ClubMember? Очевидно, что значение атрибута numberOfMembers быстро потеряет смысл. Исправить эту ситуацию можно, введя в класс операциюдля уменьшения значения атрибута numberOfMembers (рис. 7.17) и обеспечив ее вызов при каждом уничтожении экземпляра класса ClubMember.В некоторых ОО языках программирования есть специальные операции уровня экземпляра, называемые деструкторами, которые автоматически вызываются в момент уничтожения объекта. Например, в С++деструктор всегда имеет форму ~ИмяКласса (списокПараметров). В С++операция уничтожения гарантированно вызывается в момент уничтожения объекта.В Java есть аналогичная возможность: каждый класс имеет операциюпод названием finalize(), которая вызывается при окончательном уничтожении объекта.

Но сама программа явно не уничтожает объекты.Этим занимается автоматический сборщик мусора. Вам известно, чтоfinalize() будет вызван, но вы не знаете, когда это произойдет! Конечно,это не подходит для нашего простого приложения со счетчиком. Здесьприходится самостоятельно уменьшать значение атрибута numberOfMembers, вызывая операцию уровня класса decrementNumberOfMembers(), когда работа с объектом завершена и он отправляется в сборщикмусора.C# имеет аналогичную Java семантику уничтожения, только операция называется Finalize().7.8. Что мы узналиВ этой главе были представлены основные сведения по классам и объектам, которые используются далее в книге. Классы и объекты – этостроительные блоки ОО систем, поэтому важно всесторонне и детальноих понимать.Мы узнали следующее:•Объекты – это образующие единое целое элементы, сочетающие в себе данные и функции.•Инкапсуляция – данные, находящиеся внутри объекта, скрыты.Манипулировать ими можно, только инициируя одну из функцийобъекта.••Операции – это спецификации функций объекта, создаваемыево время анализа.•Методы – это реализации функций объекта, создаваемые во время реализации.Каждый объект – это экземпляр класса.

Класс определяет общиехарактеристики, присущие всем объектам этого класса.7.8. Что мы узнали•У каждого объекта есть следующие характеристики:••••175Идентичность – уникальность существующего объекта: вы используете объектные ссылки для однозначного указания на конкретный объект.• Состояние – значимый набор значений атрибутов и отношенийобъекта в определенный момент времени.• Состояние образуют наборы только таких значений атрибутов и отношений, которые обуславливают существенное семантическое отличие от других возможных наборов. Например, объект BankAccount: balance < 0, state = Overdrawn; balance > 0,state = InCredit.• Переход состояний – перемещение объекта из одного значимого состояния в другое.• Поведение – сервисы, предлагаемые объектом другим объектам:• моделируется в виде набора операций;• вызов операции может генерировать переход состояния.Совместная работа объектов генерирует поведение системы.• Взаимодействие включает в себя обмен сообщениями между объектами – при получении сообщения инициируется соответствующая операция; это может привести к переходу состояний.Нотация объектов в UML – в каждой пиктограмме объекта двеячейки.• В верхней ячейке находится имя объекта и/или имя класса,и то и другое должно быть подчеркнуто.• Имена объектов записываются в стиле lowerCamelCase.• Имена классов записываются в стиле UpperCamelCase.• Никаких специальных символов, знаков препинания или сокращений.• Имя объекта отделяется от имени класса одним двоеточием.• Нижняя ячейка содержит имена и значения атрибутов, разделяемые знаком равенства.• Имена атрибутов записываются в стиле lowerCamelCase.• Типы атрибутов могут быть представлены, но обычно для краткости их опускают.Класс определяет характеристики (атрибуты, операции, отношения и поведение) ряда объектов.• Каждый объект – это экземпляр только одного класса.• Разные объекты одного класса имеют одинаковый набор атрибутов, но значения этих атрибутов могут быть разными.

Разныезначения атрибутов обусловливают разное поведение объектоводного класса. Например, сравните попытку снять $100 с объек176Глава 7. Объекты и классыта BankAccount, кредит которого превышен, с попыткой снять$100 с объекта BankAccount, на котором есть $200 кредита.•Существует множество классификаций мира. Правильный выбор схемы классификации – один из ключей к успешному ООанализу.•Отношение создания экземпляра между классом и одним из егообъектов можно показать с помощью зависимости, обозначенной стереотипом «instantiate»:•••отношения объединяют сущности;•отношение зависимости показывает, что изменение сущностипоставщика оказывает влияние на сущностьклиент.При создании экземпляра с использованием класса в качествешаблона создается новый объект.•Большинство ОО языков программирования предоставляютспециальные операции, конструкторы, которые вызываются,когда необходимо создать объект – конструкторы создаютили инициализируют объекты; область действия конструкторов – класс (они принадлежат классу).•Некоторые ОО языки программирования предоставляют специальные операции, деструкторы, которые вызываются приуничтожении объекта – деструкторы «наводят порядок» после уничтожения объектов.Нотация классов в UML:•В ячейке имени размещается имя класса, записанное в стилеUpperCamelCase:•••никаких сокращений, знаков препинания или специальныхсимволов.Ячейка атрибутов – у каждого атрибута есть:•видимость – управляет доступом к характеристикам класса;•имя (обязательно) – записывается в стиле lowerCamelCase;•кратность – коллекции, например [10]; неопределенные значения, например [0..1];•тип;•у атрибутов могут быть стереотипы и помеченные значения.Ячейка операций – у каждой операции может быть:•видимость;•имя (обязательно) – записывается в стиле lowerCamelCase;•список параметров (имя и тип каждого параметра);•у параметра может быть применяемое по умолчанию значение (не обязательно);7.8.

Что мы узнали••177у параметра может быть направление (не обязательно): in,out, inout, return.• возвращаемый тип;• стереотип;• помеченные значения.• В операциях запроса атрибут isQuery = true – эти операции не оказывают побочного действия.• Сигнатура операции включает:• имя;• список параметров (типы всех параметров);• возвращаемый тип.• Сигнатура каждой операции или метода класса должна бытьуникальной.Область действия.• Атрибуты и операции, область действия которых – экземпляр,принадлежат или выполняются в конкретных объектах:• операции уровня экземпляра имеют доступ к другим операциям или атрибутам уровня экземпляра;• операции уровня экземпляра имеют доступ ко всем атрибутам или операциям уровня класса.• Атрибуты и операции, область действия которых – класс, принадлежат или выполняются во всех объектах класса:• атрибуты и операции уровня класса имеют доступ толькок операциям уровня класса.8Выявление классов анализа8.1.

План главыЭта глава посвящена основной деятельности ОО анализа – выявлениюклассов анализа. В разделе 8.2 описывается деятельность UP по выявлению классов анализа. Из раздела 8.3 можно узнать, что такое классанализа.В разделе 8.4 обсуждается, как выявлять классы анализа. Представлены три метода: анализ существительное/глагол (8.4.1), анализ CRC(8.4.2) и RUPстереотипы классов анализа (8.4.3). В подразделе 8.4.4рассмотрены в общих чертах другие возможные источники классов.8.2. Деятельность UP: Анализ прецедентаРезультатом рабочего потока UP Анализ прецедента (рис.

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