Главная » Просмотр файлов » Сведения о языке UML

Сведения о языке UML (1183998), страница 5

Файл №1183998 Сведения о языке UML (Сведения о языке UML) 5 страницаСведения о языке UML (1183998) страница 52020-08-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

1.10. ЗависимостьПри генерации кода для этих классов к ним не будут добавлятьсяновые атрибуты. Однако, будут созданы специфические для языкаоператоры, необходимые для поддержки связи. Например, на языке С++в код войдут необходимые операторы #include.АгрегацииАгрегации (aggregations) представляют собой более тесную формуассоциации. Агрегация – это связь между целым и его частью. Например,у вас может быть класс Автомобиль, а также классы Двигатель, Покрышкии классы для других частей автомобиля. В результате объект классаАвтомобиль будет состоять из объекта класса Двигатель, четырех объектовПокрышек и т. д. Агрегации визуализируют в виде линии с ромбикому класса, являющегося целым:WholePartРис. 1.11.

АгрегацияВ дополнение к простой агрегации UML вводит более сильнуюразновидностьагрегации,называемуюкомпозицией.Согласно27композиции, объект-часть может принадлежать только единственномуцелому, и, кроме того, как правило, жизненный цикл частей совпадаетс циклом целого: они живут и умирают вместе с ним. Любое удалениецелого распространяется на его части.Такое каскадное удаление нередко рассматривается как частьопределения агрегации, однако оно всегда подразумевается в том случае,когда множественность роли составляет 1..1; например, если необходимоудалить Клиента, то это удаление должно распространиться и на Заказы(и, в свою очередь, на Строки заказа).ОбобщенияС помощью обобщений (generalization) показывают связинаследования между двумя классами.

Большинство объектноориентированных языков непосредственно поддерживают концепциюнаследования. Она позволяет одному классу наследовать все атрибуты,операции и связи другого. На языке UML связи наследования называютобобщениями и изображают в виде стрелок от класса-потомка к классупредку:Student(from Design Model)- name- address- studentID+ // get tuition()+ // add schedule()+ // delete schedule()FulltimeStudentParttimeStudent(from Design Model)(from Design Model)- gradDate- maxNumCoursesРис. 1.12.

Обобщение28Помимо наследуемых, каждый подкласс имеет свои собственныеуникальные атрибуты, операции и связи.МножественностьМножественность (multiplicity) показывает, сколько экземпляроводного класса взаимодействуют с помощью этой связи с однимэкземпляром другого класса в данный момент времени.Например,приразработкесистемырегистрациикурсовв университете можно определить классы Course (курс) и Student(студент). Между ними установлена связь: у курсов могут быть студенты,а у студентов – курсы. Вопросы, на который должен ответить параметрмножественности: «Сколько курсов студент может посещать в данныймомент? Сколько студентов может за раз посещать один курс?»Так как множественность дает ответ на оба эти вопроса, еёиндикаторы устанавливаются на обоих концах линии связи. В примеререгистрации курсов мы решили, что один студент может посещатьот нуля до четырех курсов, а один курс могут слушать от 10 до 20студентов. На диаграмме классов это можно изобразить, как показанона рис.

1.13.CourseStudent0..410..20Рис. 1.13. МножественностьВ языке UML приняты следующие нотации для обозначениямножественности:МножественностьЗначение0..*Ноль или больше1..*Один или больше0..1Ноль или один1..1 (сокращенная запись: 1)Ровно один29Имена связейСвязи можно уточнить с помощью имен связей или ролевых имен.Имя связи – это обычно глагол или глагольная фраза, описывающая, зачемона нужна. Например, между классом Person (человек) и классом Company(компания) может существовать ассоциация. Можно задать в связи с этимвопрос, является ли объект класса Person клиентом компании,её сотрудником или владельцем? Чтобы определить это, ассоциациюможно назвать «employs» (нанимает):CompanyEmploysPersonРис.

1.14. Имя связиИмена у связей определять не обязательно. Обычно это делают, еслипричина создания связи не очевидна. Имя показывают около линиисоответствующей связи.РолиРолевые имена применяют в связях ассоциации или агрегации вместоимен для описания того, зачем эти связи нужны. Возвращаясь к примерус классами Person и Company, можно сказать, что класс Person играет рольсотрудника класса Company. Ролевые имена – это обычно именасуществительные или основанные на них фразы, их показываютна диаграмме рядом с классом, играющим соответствующую роль.

Какправило, пользуются или ролевым именем, или именем связи,но не обоими сразу. Как и имена связей, ролевые имена не обязательны,их дают, только если цель связи не очевидна. Пример ролей приводитсяниже:Company+Employer+EmployeeРис. 1.15. Ролевые имена30Person1.6. Диаграммы состоянийДиаграммы состояний определяют все возможные состояния,в которых может находиться конкретный объект, а также процесс сменысостояний объекта в результате наступления некоторых событий.Существует много форм диаграмм состояний, незначительноотличающихся друг от друга семантикой. Наиболее распространеннаяформа, используемая в объектно-ориентированных методах, впервыеприменялась в методе ОМТ и впоследствии была адаптирована ГрадиБучем.На рис.

1.16 приводится пример диаграммы состоянийдля банковского счета. Из данной диаграммы видно, в каких состоянияхможет существовать счет. Можно также видеть процесс перехода счетаиз одного состояния в другое. Например, если клиент требует закрытьоткрытый счет, он переходит в состояние «Закрыт». Требование клиентаназывается событием (event), именно такие события и вызывают переходиз одного состояния в другое.Снятие денег[отрицательный баланс]Превышение кредитаОткрытКлиент требуетзакрыть счет /Сохранить датузакрытия счетаentry: Временно заморозить счетdo: Послать уведомление клиентуВклад денег[положительный exit: Разморозить счетбаланс]Закрытentry: Выдатькредитную картуПроверка баланса[отрицательный балансв течение более 30 дней]Рис. 1.16.

Диаграмма состояний для класса Account31Если клиент снимает деньги с открытого счета, он может перейтив состояние «Превышение кредита». Это происходит, только если баланспо этому счету меньше ноля, что отражено условием [отрицательныйбаланс] на нашей диаграмме. Заключенное в квадратных скобках условие(guard condition) определяет, когда может или не может произойти переходиз одного состояния в другое.На диаграмме имеются два специальных состояния – начальное (start)и конечное (stop). Начальное состояние выделено черной точкой, оносоответствует состоянию объекта, когда он только что был создан.Конечное состояние обозначается черной точкой в белом кружке, оносоответствует состоянию объекта непосредственно перед егоуничтожением. На диаграмме состояний может быть одно и только одноначальное состояние.

В то же время, может быть столько конечныхсостояний, сколько вам нужно, или их может не быть вообще. Когдаобъект находится в каком-то конкретном состоянии, могут выполнятьсяразличные процессы. В нашем примере при превышении кредита клиентупосылается соответствующее сообщение. Процессы, происходящие, когдаобъект находится в определенном состоянии, называются действиями(actions).С состоянием можно связывать данные пяти типов: деятельность,входное действие, выходное действие, событие и история состояния.Рассмотрим каждый из них в контексте диаграммы состояний для классаAccount системы ATM.ДеятельностьДеятельностью (activity) называется поведение, реализуемоеобъектом, пока он находится в данном состоянии. Например, когда счетнаходится в состоянии «Закрыт», происходит возврат кредитной карточкипользователю.

Деятельность – это прерываемое поведение. Оно можетвыполняться до своего завершения, пока объект находится в данномсостоянии, или может быть прервано переходом объекта в другоесостояние. Деятельность изображают внутри самого состояния, ей должнопредшествовать слово do (делать) и двоеточие.32Входное действиеВходным действием (entry action) называется поведение, котороевыполняется, когда объект переходит в данное состояние. В примере счетав банке, когда он переходит в состояние «Превышен счет», выполняетсядействие «Временно заморозить счет», независимо от того, откуда объектперешел в это состояние. Таким образом, данное действие осуществляетсяне после того, как объект перешел в это состояние, а, скорее, как частьэтого перехода.

В отличие от деятельности, входное действиерассматривается как непрерываемое.Входное действие также показывают внутри состояния, емупредшествует слово entry (вход) и двоеточие.Выходное действиеВыходное действие (exit action) подобно входному. Однако, оноосуществляется как составная часть процесса выхода из данногосостояния. В нашем примере при выходе объекта Account из состояния«Превышен счет», независимо от того, куда он переходит, выполняетсядействие «Разморозить счет».

Оно является частью процесса такогоперехода. Как и входное, выходное действие является непрерываемым.Выходное действие изображают внутри состояния, ему предшествуетслово exit (выход) и двоеточие.Поведение объекта во время деятельности, при входных и выходныхдействиях может включать отправку события другому объекту. Например,объект account (счет) может посылать событие объекту card reader(устройство чтения карты). В этом случае описанию деятельности,входного действия или выходного действия предшествует знак « ^ ».Соответствующая строка на диаграмме выглядит какDo: ^Цель.Событие(Аргументы)Здесь Цель – это объект, получающий событие, Событие – этопосылаемое сообщение, а Аргументы являются параметрами посылаемогосообщения.Деятельность может также выполняться в результате полученияобъектом некоторого события.

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

Тип файла
PDF-файл
Размер
1,05 Mb
Тип материала
Высшее учебное заведение

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

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