Диаграммы компонентов UML: эффективное моделирование систем с программными модулями

Унифицированный язык моделирования (UML) является общепринятым стандартом ISO для разработки программного обеспечения и более сложных системных архитектур. Этот язык моделирования использует различные типы диаграмм для процессов планирования и разработки в объектно-ориентированном программировании.

Последняя версия (UML 2.5) имеет 14 различных типов диаграмм, которые условно делятся на две категории: поведенческие и структурные диаграммы. К последней категории относятся диаграммы компонентов. Далее мы объясним, что такое диаграмма компонентов, и расскажем, как нарисовать диаграмму компонентов на конкретном примере. Вы также узнаете, для чего используются диаграммы компонентов в UML.

Что такое диаграмма компонентов?

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

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

Факт

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

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

Факт

В объектно-ориентированном программировании класс функционирует как абстрактная модель, которая описывает набор похожих объектов. Они имеют одинаковые атрибуты, операции, отношения и так далее.

Понятие компонентов имеет широкое определение в UML. Компоненты включают различные части системы, такие как базы данных, пакеты, файлы и библиотеки (например, библиотеки динамических связей или DLL). Помимо технических компонентов (например, для доступа к базе данных), существуют также специализированные компоненты, которые могут относиться к таким областям, как бизнес и бизнес-процессы. Эти отношения могут быть более сложными, поэтому UML предоставляет стереотип <<subsystem>> для их описания.

Поскольку диаграммы компонентов моделируются с ориентацией на реализацию, существуют специальные компоненты реализации, которые фокусируются на отдельных аспектах реализации. Эти компоненты могут быть использованы, например, для реализации других компонентов, таких как исполняемые файлы (т.е. исполняемые файлы с расширением *.exe) в Windows.

Факт

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

Несколько компонентов объединяются вместе, образуя более сложную архитектуру системы. Компоненты также могут содержать другие компоненты и опираться друг на друга, поэтому компонент может требовать другого компонента (т.е. отношения зависимости). Кроме того, программные модули могут относиться к различным фазам выполнения. Некоторые компоненты в основном используются для планирования и разработки на этапе проектирования, в то время как другие компоненты используются во время выполнения программного обеспечения. Их также называют компонентами проектирования и компонентами времени выполнения.

Факт

Время выполнения относится к промежутку времени, в течение которого программа выполняется и выполняет задачу.

Для чего используются диаграммы компонентов UML?

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

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

В мире бизнеса диаграммы компонентов UML являются важным средством обмена информацией с заказчиком, поскольку они помогают уменьшить сложность, тем самым делая проекты и планы более простыми для понимания и передачи другим. Диаграммы компонентов также поддерживают и упрощают администрирование разработки программного обеспечения, например, путем объединения классов в управляемые компоненты.

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

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

Из каких элементов состоит диаграмма компонентов?

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

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

Как нарисовать диаграмму компонентов на примере

В нашем примере компонентной диаграммы мы покажем вам, как визуализируется структура и функции программы электронной почты. Эта компонентная модель иллюстрирует, как три основных модуля взаимодействуют через интерфейсы:

  • управление электронной почтой (1)
  • входящая электронная почта (2)
  • исходящая электронная почта (3)

Управление электронной почтой (1) является центром управления этой системой, взаимодействуя с пользователями и другими программными модулями через многочисленные интерфейсы и служебные порты. Чтобы пользователи могли следить за тем, все ли работает гладко, для администрирования системы предусмотрены интерфейс и служебный порт (порт управления). Стрелка использования» с пунктирной линией указывает на то, что пользователь зависит от этого интерфейса для выполнения своих задач администрирования.

Системы и компоненты за пределами смоделированной архитектуры могут быть подключены к системе через предусмотренный интерфейс, обозначенный как «Retrieve email». Функции и данные, необходимые модулю исходящей электронной почты (3), предоставляются модулем управления через реализованный и предоставленный интерфейс, обозначенный «Отправить электронную почту». Модуль управления также использует услуги и функции через интерфейс «Получить электронную почту» для модуля входящей электронной почты (2). Графически соединения между компонентами представлены с помощью шаровых и гнездовых соединений для интерфейсов.

На схеме примера компоненты системы показаны в виде «черного ящика», который не учитывает внутреннюю работу, чтобы обеспечить более четкий обзор. В представлении «белого ящика» диаграмма компонентов показывает внутреннюю структуру компонентов. Например, компонент управления (1) может содержать функциональные подкомпоненты «frontend» и «системное администрирование», которые помогают администратору управлять системой.

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

Оцените статью
cdelat.ru
Добавить комментарий