Главная » Просмотр файлов » 2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006)

2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (1185732), страница 17

Файл №1185732 2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006).pdf) 17 страница2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (1185732) страница 172020-08-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Каждый из этих четырех специализированных классовпредставляет собой некоторую разновидность Security. Последнийвключает две операции: presentValue (текущаяСтоимость) и history(История). Поскольку Security является родителем CashAccount,Stock, Bond и Property, все они наследуют эти две операции, равно каки любые другие атрибуты и операции Security, которые могут бытьне указаны на этом рисунке.АбстрактИмена Security и presentValue написаны курсивом не случайно. Когные классыда вы строите иерархии, подобные той, что представлена на рис.

5.10,и операциито часто сталкиваетесь с нелистовыми классами, которые неполныобсуждают- или для которых не может существовать объектов. Такие классыся в главе 9.называются абстрактными. В UML вы можете пометить класс какабстрактный, написав его имя курсивом. То же касается и операций:в рассматриваемом примере операция presentValue имеет сигнатуру,Связи86но не реализуется в классе Security и должна быть реализованав виде методов на более низком уровне абстракции, поэтому ее имятакже выделено курсивом. Зато все четыре непосредственных потомка Security являются конкретными (то есть не абстрактными),а значит, каждый из них обязан представить конкретную реализацию операции presentValue.Иерархии обобщения/специализации не обязательно ограничиваются двумя уровнями. Обычно этих уровней больше, и рис.

5.10служит тому подтверждением. SmallCapStock (АкцияСМалымКапиталом) и LargeCapStock (АкцияСБольшимКапиталом) – потомки класса Stock, который, в свою очередь, является дочерним по отношениюк Security. Таким образом, Security – корневой класс, поскольку онне имеет родителей. SmallCapStock и LargeCapStock – листовые классы,потому что не имеют потомков. Stock имеет как родителя, так и потомков; он не подходит под определение ни корневого, ни листового класса.МножестХотя это и не показано здесь, вы можете создавать классы с невенное насколькими родителями.

Это называется множественным наследованием и означает, что классуFпотомку передаются все атрибуты,следованиеобсуждает- операции и ассоциации его родителей.Конечно, в системе наследования не может быть циклов: ни одинся в главе 10.класс не может быть своим собственным предком.Моделирование структурных связейАссоциациипо умолчанию двунаправленны,но вы можете ограничить ихнаправленность (см.главу 10).При использовании связей зависимости или обобщения вы можете моделировать классы, которые находятся на разных уровняхважности либо разных уровнях абстракции. В случае зависимостимежду двумя классами один класс зависит от другого, но этот последний ничего не знает о первом. В случае же обобщения междуклассами потомок наследует свойства родителя, но родитель не содержит никаких конкретных сведений о своих потомках.

Инымисловами, связи зависимости и обобщения асимметричны.Моделируя ассоциации, вы имеете дело с классами, находящимися на одном уровне. Два класса, вовлеченные в ассоциацию,некоторым образом связаны друг с другом, и часто вы можете осуществлять навигацию по этой связи в любом направлении.В то время как зависимость – связь использования, а обобщение – связь наследования, ассоциация определяет структурныйпуть взаимодействия объектов двух классов.Чтобы смоделировать структурные связи, воспользуйтесь следующими рекомендациями: Установите ассоциацию между каждой парой классов, по объектам которых следует обеспечить навигацию. Это основанноена данных представление ассоциации.Типичные приемы моделированияВариантыиспользования обсуждаютсяв главе 17.87 Установите ассоциацию между каждой парой классов, объектыодного из которых нуждаются во взаимодействии с объектами другого (но не в виде локальных переменных в процедуреили параметров операции).

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

Если вы обнаруживали, что какиеFлибо классы взаимодействуют, используя связипо данным, установите между ними ассоциацию.Рис. 5.11 показывает набор классов информационной системыучебного заведения. Перечислим эти классы начиная с нижнеголевого угла диаграммы: Student (Студент), Course (Курс) и Instructor(Преподаватель). Существует ассоциация между Student и Course,свидетельствующая о том, что студенты посещают курсы. Болеетого, каждый студент может посещать многие курсы и каждый курсможет быть прочитан для многих студентов.

Также вы обнаружите ассоциацию между Course и Instructor, которая говорит о том, чтопреподаватели ведут курсы. Для каждого курса назначен как минимум один преподаватель, причем каждый преподаватель можетвести один или несколько курсов либо не вести ни одного. Каждыйкурс относится исключительно к одному факультету.Рис. 5.11. Структурные связиСвязи88Агрегациямежду классами Schoolи Departmentпредставляет собойкомпозицию.Композиция – этоболее строгая формаагрегации,подразумевающаямонопольноевладение (см.главу 10).Связи между классом School (Учебное заведение) и классамиStudent и Department (Факультет) немного иные.

Здесь вы видите примеры агрегаций. Вуз может набрать или не набрать студентов; каждый студент может быть зарегистрирован в одном или несколькихвузах; в вузе имеется один или несколько факультетов, причем каждый относится исключительно к одному учебному заведению. Выможете опустить дополнительные символы агрегации и применятьпростые ассоциации, но, специфицируя School как целое, а Studentи Department – как его части, вы тем самым проясняете, что по отношению к чему является главным. По рисунку видно, что учебныезаведения в какомFто смысле определяются его студентами и факультетами. Впрочем, студенты и факультеты тоже не существуютсами по себе, вне вуза, к которому они прикреплены. Они получают свой статус только в связи с учебным заведением (так, человек,не учащийся в вузе, лишается права именоваться студентом).Кроме того, существуют две ассоциации между Department и Instructor. Одна из них показывает, что каждый преподаватель работаетна одном или нескольких факультетах и каждому факультету сопоставлен один или несколько преподавателей.

Эта связь моделируется как агрегация, поскольку организационно факультеты в структуре учебного заведения находятся выше, чем преподаватели. Втораяассоциация, установленная для каждого факультета, говорит о том,что на факультете есть один начальник – преподаватель, занимающий должность декана. Из приведенной модели явствует, что преподаватель может быть деканом не более чем на одном факультете,а некоторые преподаватели не являются деканами ни одного факультета.На заметку. Модель, приведенная на рис. 5.11, не являетсяединственно приемлемой. К примеру, учебное заведение можетне иметь факультетов. Декан не всегда является преподавателем, а иногда даже встречаются преподавателиQстуденты.

Всеэто не значит, что рассматриваемая нами модель не идеальна,она просто представляет один из возможных вариантов организационной структуры вуза. Каждая ваша модель, подобнаяэтой, будет строиться исходя из конкретных условий.Советы и подсказкиМоделируя связи на UML, соблюдайте следующие правила: используйте зависимости только тогда, когда моделируемыесвязи не являются структурными;Советы и подсказки89 используйте обобщение, только когда оно выражает связьтипа «является». Множественное наследование часто можетбыть заменено агрегацией; избегайте циклических связей обобщения; старайтесь обеспечить сбалансированность связей обобщения.Цепочки наследования не должны быть ни слишком длинными (глубина более четырех уровней уже нежелательна),ни слишком широкими (ищите возможность создания промежуточных абстрактных классов); при наличии структурных связей между объектами используйте главным образом ассоциации.

Но не применяйте ихдля того, чтобы выразить временные связи, например в параметрах или локальных переменных процедур.Представляя связи в UML графически, не забывайте о следующем: согласуйте в модели прямоугольные и наклонные линии.Прямоугольные линии визуально выражают соединение связанных сущностей с одним общим родителем.

Наклонные линии часто позволяют сэкономить пространство на сложныхдиаграммах. Применение линий обоих типов на одной диаграмме удобно для привлечения внимания к разным группамсвязей; избегайте пересекающихся линий там, где можно без нихобойтись; показывайте только те связи, которые нужны для понимания определенной группы сущностей.

Излишние связи (особенно избыточные ассоциации) нежелательны.Введение91ВведениеГлава 6. Общие механизмыВ этой главе:Общиемеханизмытакжеобсуждаются в главе 2.ПримечанияСтереотипы, помеченные значения и ограниченияМоделирование комментариевМоделирование новых строительных блоковМоделирование новых свойствМоделирование новой семантикиРасширения UMLРабота с UML значительно упрощается благодаря наличию четырех общих механизмов, которые используются в языке повсеместно:спецификаций, дополнений, общих средств разделения и средстврасширения. Настоящая глава посвящена двум из них: дополнениям и средствам расширения.Примечание – наиболее важное из дополнений, которое можетсуществовать и обособленно.

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

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

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