Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Изображение атрибутов и операций на диаграммах КлассовСодержание книги
Поиск на нашем сайте
Видимость атрибутов и операций может принимать одно из следующих значений: общая, закрытая, защищенная и пакетная. Первые три представляют на языке UML символами и соответственно. У пакетной видимости обозначения нет. При изображении видимости атрибутов и операций можно использовать также собственную нотацию Rose. Нотации Rose и UML для показа параметров видимости представлены в таблице Практика 14. Связи Типы связей Существуют четыре типа связей, которые могут быть установлены между классами: ассоциации, зависимости, агрегации и обобщения. 1. Ассоциация (association) — это семантическая связь между классами. Ее рисуют на диаграмме класов в виде обыкновенной линии (см. рис.) После того как классы связали ассоциацией, они могут передавать друг другу сообщения на диаграмме Последовательности или Кооперативной диаграмме. Ассоциации могут быть двунаправленными (рис. 7.1) или однонаправленными. На языке UML двунаправленные ассоциации изображают виде простой линии без стрелок или со стрелками с обеих сторон. На однонаправленной ассоциации ставят только одну стрелку, показывающую направление связи. После определения ассоциации Rose помещает в классы соответствующие дополнительные атрибуты. Например, если между классом Дом и классом Жилец установлена связь ассоциации, класс До: получит атрибут "жилец", чтобы знать, кто его владелец, а класс Жилец — атрибут "дом", что позволит: жильцу определить, каким домом он владеет. 2. Связь зависимости (dependency) также отражает связь между классами, но делает это несколько иначе. Зависимости всегда однонаправленные, они показывают, что один класс зависит от определений, сделанных в другом. Специальные атрибуты для классов, связанных зависимостью, не создаются. Т; если от класса Жилец к классу Дом проведена связь зависимости, а не ассоциации, Rose не генерирует каких-то специальных атрибутов внутри этих классов. Тем не менее класс Жилец будет зависеть сделанных в классе Дом определений. Зависимости изображают в виде стрелки, проведенной пунктирной линией (см. рис.) 3. Агрегация (aggregations) представляет собой более тесную форму ассоциации. Агрегация - связь между целым и его частями. Например, у вас может быть класс Автомобиль, а также классы Двигатель, Покрышки и классы для других частей автомобиля. В результате объект класса Автомобиль будет состоять из объекта класса Двигатель, четырех объектов Покрышек и т.д. Агрегацию изображают в виде линии с ромбиком у класса, являющегося целым (см. рис.) 4. С помощью обобщений (generalization) показывают связи наследования между двумя классами. Большинство объектноориентированных языков непосредственно поддерживают концепцию наследования. Она позволяет одному классу наследовать все атрибуты, операции и связи другого. На языке UML связь наследования называют обобщением и изображают в виде стрелки от классапотомка классу-предку Выявление связей Для выявления связей следует изучить созданные к этому моменту элементы модели. Почти вся информация о связях уже описана вами на диаграммах Последовательности и Кооперативных диаграммах. Просмотрите их еще раз, и вы найдете ассоциации и зависимости. Агрегации и обобщения можно обнаружить, изучив имеющиеся классы. Для обнаружения связей сделайте следующее: · Начните с изучения диаграмм Последовательности и Кооперативных диаграмм. Если класс А посылает сообщение классу В, между этими классами должна быть установлена связь. Как правило, обнаруживаемые таким способом связи — это ассоциации или зависимости. · Исследуйте ваши классы на предмет наличия связей целое-часть. Любой класс, состоящий из других классов, может принимать участие в связях агрегации. · Исследуйте классы на предмет связей обобщения. Постарайтесь найти все классы, у которых есть несколько типов или вариантов. Например, у вас может быть класс Employee (Сотрудник). В вашей компании имеются два типа сотрудников — получающих почасовую оплату и оклад. Это значит, что вам нужно создать классы HourlyEmp и SalariedEmp, наследующие от класса Employee. Общие для всех сотрудников атрибуты, операции и связи следует поместить в класс Employee. Атрибуты, операции и связи, уникальные для сотрудников какого-то типа, необходимо поместить в классы HourlyEmp и SalariedEmp. · Изучите классы еще раз и найдите остальные связи обощения. Постарайтесь обнаружить такие классы, которые имеют много общего. В частности, у вас могут быть классы CheckingAccount (Счет до востребования) и SavingsAccount (Сберегательный счет). Их данные и поведение сходны. Для общих элементов двух классов можно создать третий класс Account (Счет). Будьте осторожны, работая с классами, у которых слишком много связей. Одной из особенностей хорошо спроектированного приложения является сравнительно небольшое количество связей в системе. Класс, у которого много связей, должен знать о большом числе других классов системы. В результате его трудно будет использовать во второй раз. Кроме того, сложно будет вносить изменения в твое приложение. Если изменится любой из классов, это может повлиять на данный.
|
||||
Последнее изменение этой страницы: 2016-04-18; просмотров: 356; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.200.16 (0.008 с.) |