- •Лабораторная работа по uml n2 «Работа со связями»
- •1. Ассоциации
- •2. Ограничения ассоциаций
- •В этом примере ограничение ассоциации Обслуживает указывает на то, что БанковскийСлужащий обслуживает клиентов в порядке очереди
- •3. Классы ассоциаций
- •4. Связи
- •5. Кратность
- •8. Наследование и обобщение
- •6. Квалификатор ассоциации
- •7. Рефлексивные ассоциации
- •9. Изучение наследования
- •10. Абстрактные классы
- •11. Зависимости
- •12. Объекты-агрегаты
- •17. Ограничения агрегаций
- •18. Композитные объекты
- •19. Контексты
- •20. Интерфейсы и реализации
- •Класс связан с интерфейсом отношением реализации, которое обозначается пунктирной линией с незакрашенным треугольником, примыкающим к интерфейсу и указывающим на него
- •21. Области видимости
- •Общедоступные и защищенные операции для автомобиля
- •22. Статические и динамические классы
- •Вопросы и ответы
- •Задание
9. Изучение наследования
Во время бесед с клиентом аналитик выявляет отношение наследования несколькими способами. В процессе переговоров могут быть выявлены как родительские так и дочерние классы. Аналитик должен определить, что атрибуты и операции одного класса являются общими для нескольких других классов, которые могут характеризоваться наличием и своих собственных атрибутов и операций.
В модели игры в баскетбол из л/р N 1, "Использование концепций объектно-ориентированного проектирования", содержатся классы Игрок, Защитник, Нападающий и Центровой. Атрибутами класса Игрок являются имя, рост, вес, стартоваяСкорость и высотаВертикальногоПрыжка. Этот класс имеет операции вестиМячО, передавать Мяч (), отбиратьМяч (), бросатьМяч (). Классы Защитник, Нападающий и Центровой наследуют эти атрибуты и операции, кроме того у них имеются некоторые собственные. Класс Защитник должен включать операции начинатьАтаку (), перехватыватьВерхние Мячи (). Класс Центровой должен содержать операцию забиватьМячВКорзину (). Основываясь на информации тренера об относительном росте, аналитик может наложить ограничения на рост человека, выполняющего определенную роль в команде.
Аналитик может также заметить, что несколько классов имеют некоторое количество общих атрибутов и операций. В модели баскетбола используется класс ВремяИгры, показывающий сколько времени осталось до конца периода, и класс ВремяАтаки, отвечающий за определение времени с момента овладения команды мячом. Учитывая показания обоих временнь« счетчиков, аналитик может определить класс Время с операцией отслеживатьВремя (), а классы ВремяИгры и ВремяАтаки будут наследоваться от него.
Поскольку класс ВремяАтаки отслеживает 24 секунды (в профессиональном баскетболе) или 35 секунд (в любительском), а ВремяИгры отслеживает 12 минут и 20 минут соответственно, то операция отслеживатьВремя () обладает свойством полиморфизма.
10. Абстрактные классы
В модели баскетбола два класса — Игрок и Время — очень полезны, поскольку служат в качестве родительских для важных дочерних классов. Важность дочерних классов состоит в том, что в системе непременно появятся их экземпляры: при реализации модели понадобятся экземпляры классов Защитник, Нападающий, Центровой, ВремяИгры, ВремяАтаки. Классы Игрок и Время не предоставляют никаких экземпляров в модели. Объекты класса Игрок не служат какой-либо цели, так же как и объекты класса Время.
Классы, подобные классам Игрок и время, называются абстрактными. Их имена выделяются курсивом. На рис. 14 изображены два абстрактных класса и их дочерние классы.
Рис.14. Две иерархии наследования с абстрактными классами в модели баскетбола
11. Зависимости
Другой тип взаимосвязи характеризуется тем, что один класс использует другой. Это называется зависимостью. Наиболее общим случаем зависимости является использование одного класса в сигнатуре операции другого класса.
Предположим, нужно спроектировать систему, отображающую на экране монитора формы, заполняемые служащими. Для выбора заполняемой формы используется меню. В системе будет два класса: Система и Форма. В числе операции класса Система имеется операция отобразитьФорму (f: Форма). Отображаемая системой форма, вероятно, зависит от того, какой экземпляр класса Форма выбрал пользователь. В UML это отношение изображается пунктирной линией, направленной от зависимого класса (рис. 15).
Рис. 15. Зависимость изображается пунктирной линией со стрелкой
