лекция. Сборник лекций по МДК _Технология разработки программного обеспе. Курс лекций для специальности спо базовой подготовки
Скачать 4.41 Mb.
|
Статические модели объектно-ориентированных программных системобеспечивают представление структуры систем из базовых строительных блоков и отношений между ними; не показывают динамики изменений системы во времени; несут описания операций, реализующих заданное поведение системы. Основное средство для представления - диаграммы классов. Вершины диаграмм нагружены классами, а дуги (ребра) — отношениями между ними. Диаграммы используются: в ходе анализа — для указания ролей и обязанностей сущностей, которые обеспечивают поведение системы; в ходе проектирования — для фиксации структуры классов, которые формируют системную архитектуру.
Рис. 28. Вершины в диаграммах классов Имя класса указывается всегда, свойства и операции — выборочно. Предусмотрено задание области действия свойства (операции). Если свойство (операция) подчеркивается, его областью действия является класс, в противном случае областью действия является экземпляр.
Рис. 29. Свойства Синтаксис представления свойства: Видимость Имя [Множественность]: Тип = НачальнЗначение {Характеристики} В UML определены три уровня видимости (табл. 2):
Если видимость не указана, считают, что свойство объявлено с публичной видимостью. Существуют три характеристики свойств (табл. 3):
Если характеристика не указана, считают, что свойство объявлено с характеристикой changeable. Примеры объявления свойств (табл. 4):
Операции Синтаксис представления операции: Видимость Имя (Список Параметров): ВозвращаемыйТип {Характеристики} Примеры объявления операций:
В операции можно указать ноль или более параметров. Синтаксис формы представления параметра: Направление Имя: Тип - ЗначениеПоУмолчанию Элемент Направление может принимать одно из значений (табл. 6):
Характеристики операций (табл. 7):
Организация свойств и операций Пустота секции в обозначении класса не означает, что у класса отсутствуют свойства или операции. Для явного определения большего количества свойств или атрибутов в конце показанного списка проставляются три точки. В длинных списках свойств и операций разрешается группировка — каждая группа начинается со своего стереотипа.
Рис. 30. Множественность Ограничения количества экземпляров класса: задать ноль экземпляров (в этом случае класс превращается в утилиту, которая предлагает свои свойства и операции); задать один экземпляр (класс-singleton); задать конкретное количество экземпляров; не ограничивать количество экземпляров (по умолчанию). Количество экземпляров класса называется его множественностью.
Рис. 31. Множественность применима к свойствам. Отношения в диаграммах классов
Рис. 32. Ассоциации отображают структурные отношения между экземплярами классов, т. е. соединения между объектами.
Рис. 33. Класс играет в ассоциации определенную роль.
Рис. 34. Один класс в разных ассоциациях может играть разные роли. Для определения количества объектов, которое может соединяться через экземпляр ассоциации используется мощность роли в ассоциации.
Рис. 35. Чтобы для объекта на одном конце ассоциации выделить набор объектов на противоположном, вводится квалификатор — атрибут ассоциации.
Рис. 36. Роли в ассоциациях могут иметь пометки видимости.
Рис. 37. На конце ассоциации можно задать три уровня видимости , добавляя символ видимости к имени роли: по умолчанию для роли задается публичная видимость; приватная видимость указывает, что объекты на данном конце недоступны любым объектам вне ассоциации; защищенная видимость (protected) указывает, что объекты на данном конце недоступны любым объектам вне ассоциации, за исключением потомков того класса, который указан на противоположном конце ассоциации. Ассоциации могут иметь свойства.
Рис. 38. Свойства класса — ассоциации характеризуют пару объектов. Отношения агрегации и композиции — разновидности ассоциации — показывают отношения между "целым" (агрегатом) и его "частями". Агрегация показывает отношение по ссылке (в агрегат включены только указатели на части). Композиция — отношение физического включения (в агрегат включены сами части). Зависимость является отношением использования между клиентом (зависимым элементом) и поставщиком (независимым элементом). Операции клиента: вызывают операции поставщика; имеют сигнатуры, в которых возвращаемое значение или аргументы принадлежат классу поставщика.
Рис. 39. Обобщение — отношение между общим предметом (суперклассом) и специализированной разновидностью этого предмета (подклассом). Подкласс может иметь одного родителя (один суперкласс), или несколько родителей (несколько супер-классов). В этом случае говорят о множественном наследовании:
Рис. 40. Проблемы возникают при наследовании от двух классов, имеющих общего родителя. В результате образуется ромбовидная решетка наследования:
Рис. 41. ромбовидная решетка наследования Реализация — семантическое отношение между классами, в котором класс-приемник выполняет реализацию операций интерфейса класса-источника.
Рис. 42. Класс Каталог должен реализовать интерфейс Обработчик каталога. Таким образом, Обработчик каталога рассматривается как источник, а Каталог — как приемник. Интерфейс Обработчик каталога позволяет клиентам взаимодействовать с объектами класса Каталог без знания той дисциплины доступа, которая здесь реализована. Деревья наследования При использовании отношений обобщения строится иерархия классов. Некоторые классы в этой иерархии могут быть абстрактными. Абстрактным называют класс, который не может иметь экземпляров. Имена абстрактных классов записываются курсивом.
Рис. 43. Дерево наследования Класс наследует характеристики класса-родителя и передает свои характеристики классу-потомку. Конечный класс, который не может иметь детей, помечается теговой величиной (характеристикой) leaf, записываемой за именем класса. Корневой класс, который не может иметь родителей, помечается теговой величиной (характеристикой) root , записываемой за именем класса. Аналогичные свойства имеют и операции. Пример
Рис. 44. Диаграмма классов для информационной системы театра Эту систему образуют 6 классов. Классы-агрегаты Театр и Труппа имеют операции добавления и удаления своих частей, которые включаются в агрегаты по ссылке. Частями Театра являются Зрители и Труппы, а частями Труппы — Актеры. Театр может состоять из одной или нескольких трупп, но каждая труппа находится в одном и только одном театре. С другой стороны, в театр может ходить любое количество зрителей (включая нулевое количество), причем зритель может посещать один или несколько театров. Ассоциация между классами Спектакль и Актер фиксирует, что в спектакле должен быть занят хотя бы один актер. При этом актер может играть в любом количестве спектаклей (или вообще может ничего не играть). Ассоциация между классами Спектакль и Зритель поясняет, что зритель может смотреть любое число спектаклей, а на каждом спектакле может быть любое число зрителей. Между классами Труппа и Актер существуют два отношения:агрегация и ассоциация. Агрегация показывает, что каждый актер работает в одной или нескольких труппах, а в каждой труппе должен быть хотя бы один актер. Ассоциация отображает, что каждой труппой управляет только один актер — художественный руководитель, а некоторые актеры не являются руководителями. На диаграмме отображены два отношения наследования, утверждающие, что и в зрителях, и в актерах есть человеческое начало. |