Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 2. Анализ и моделирование на UML.docx
Скачиваний:
18
Добавлен:
21.09.2019
Размер:
547.87 Кб
Скачать

3. Агрегация.

Отношение между двумя классами в том случае, когда один из классов представляет собой некоторую сущность, которая включает в себя в качестве составных частей другие сущности. Применяется для представления системных взаимосвязей типа "часть-целое". Показывает внутреннюю структуру системы, связь между элементами. Части целого не обязаны наследовать ее свойства и поведение. Графически: сплошная линия, конец- не закрашенный ромб.

4.Композиция. Частный случай отношения агрегации. Для спецификации более сильной формы отношения "часть-целое", при которой составляющие части тесно взаимосвязаны с целым. С уничтожением целого уничтожаются все составные части. Графически: сплошная линия с закрашенным ромбом на конце. (живая клетка и ее составные части)

5. Зависимость. Указывает на некоторое смысловое отношение между 2мя элементами или 2мя множествами, которое не является отношением ассоциации, обобщения или реализации. Изменение одного элемента может потребовать изменения другого зависящего от него элемента модели. Графически: пунктир со стрелкой от класса-клиента. Также может иметь стереотипы.

15.Диаграмма классов. Интерфейсы и абстрактные классы.

Интерфейс (interface) является специальным случаем класса, у которого имеются только операции и отсутствуют атрибуты. Для обозначения используется специальный графический символ окружность или стандартный способ-прямоугольник класса со стереотипом <<interface>>. Служат для спецификации таких элементов модели, которые видимы извне, но их внутренняя структура остается скрытой от клиентов. Интерфейс определяют совокупность операций, которые обеспечивают необходимый набор сервисов или функциональности для актеров. Не могут содержать ни атрибутов, ни состояний, ни направленных ассоциаций. Они содержат только операции без указания особенностей реализации. Формально интерфейс эквивалентен абстрактному классу без атрибутов и методов с наличием только абстрактных операций. С т.з. системной аналитики интерфейс определяет общие границы проектируемой системы. Важность интерфейсов заключается в том, что они определяют стыковочные узлы в системе, что совершенно необходимо для организации коллективной работы над проектом. Спецификация интерфейсов способствует легкой модификации уже существующей системе при переходе на новые технологические решения без нарушения функциональности.

Абстрактный класс - класс, который не имеет экземпляров или объектов. Для обозначения имени абстрактного класса используется наклонный шрифт (курсив). В некоторых случаях необходимо явно указать, к какому пакету относится тот или иной класс. Для этой цели используется специальный символ разделитель – двойное двоеточие - (::). Синтаксис строки имени класса в этом случае будет следующий: <Имя пакета>::<Имя класса>. Например, если определен пакет с именем Банк, то класс Счет в этом банке может быть записан в виде: Банк::Счет

16. Компоненты и интерфейсы.

Д иаграмма компонентов описывает особенности физического представления системы. Отражает общие зависимости между компонентами, рассматривая последние в качестве классификаторов. Для представления физических сущностей применяется термин - компонент(потомок классификатора). Классификатор - механизм описания свойств поведения или структуры. Компонент предназначен для представления физической организации связанных с ним элементов модели. Может иметь текстовый стереотип и помеченные значения, некоторые компоненты- специальное графическое представление. Может реализовывать некоторый набор интерфейсов.

Графическое представление: прямоугольник со вставленными слева двумя прямоугольника меньшего размера. Внутри компонента записывается имя и дополнительная информация.

Имя компонента. Может быть представлен на уровне типа или на уровне экземпляра. Тип: <имя типа> ; экземпляр: <имя компонента: имя типа>(обязательное подчеркивание).

Виды компонентов. Наглядное изображение видов компонентов осуществляется с помощью стереотипов.

- компоненты развертывания (Deployment components), которые необходимы и достаточны для построения исполняемой системы (динамически подключаемые библиотеки с расширением DLL), Web - страницы и файлы справки.

- компоненты - рабочие продукты (Work product components). По сути дела, это побочный результат процесса разработки.

-компоненты исполнения (Execution components). Они создаются как следствие работы системы. Примером может служить объект СОМ+, экземпляр которого создается из DLL.

Текстовые стереотипы:

  • executable (исполнимый) - определяет компонент, который может исполняться в узле;

  • library (библиотека) - определяет статическую или динамическую объектную библиотеку;

  • table (таблица) - определяет компонент, представляющий таблицу базы данных;

  • file (файл) - определяет компонент, представляющий документ, который содержит исходный текст или данные;

  • document (документ) - определяет компонент, представляющий документ.

Интерфейсы. Интерфейс - это набор операций, которые описывают услуги, предоставляемые классом или компонентом. Существенным является отношение между компонентом и интерфейсом. Все популярные компонентные средства операционных систем (такие как СОМ+, CORBA и Enterprise JavaBeans) используют интерфейсы для "склеивания" различных компонентов.

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

Отношения между компонентом и его интерфейсами можно изобразить двумя способами. Первый, наиболее распространенный, состоит в том, что интерфейс рисуется в свернутой (elided) форме. Компонент, реализующий интерфейс, присоединяется к нему с помощью отношения свернутой реализации. Во втором случае интерфейс рисуется в развернутом виде, возможно с раскрытием операций. Реализующий его компонент присоединяется с помощью отношения полной реализации. В обоих случаях компонент, получающий доступ к услугам других компонентов через этот интерфейс, подключается к нему с помощью отношения зависимости.

И нтерфейс, реализуемый компонентом, называется экспортируемым интерфейсом (Export interface). Это означает, что компонент через данный интерфейс предоставляет ряд услуг другим компонентам. Компонент может экспортировать много интерфейсов. Интерфейс, которым компонент пользуется, называется импортируемым (Import interface). Это означает, что компонент совместим с таким интерфейсом и зависит от него при выполнении своих функций. Компонент может импортировать различные интерфейсы, причем ему разрешается одновременно экспортировать и импортировать интерфейсы.

Конкретный интерфейс может экспортироваться одним компонентом и импортироваться другим. Если между двумя компонентами располагается интерфейс, их непосредственная взаимозависимость разрывается. Компонент, использующий данный интерфейс, будет функционировать корректно (притом безразлично, каким именно компонентом реализован интерфейс). Разумеется, компонент можно использовать в некотором контексте только тогда, когда все импортируемые им интерфейсы экспортируются какими-либо другими компонентами.