Базовые принципы языка UML
Унифицированный язык моделирования UML
Назначение языка UML. Общая структура языка UML. Характеристики основных объектов.
Назначение языка UML
Это графический язык моделирования общего назначения, предназначенный для спецификации, визуализации, проектирования и документирования всех артефактов, создаваемых при разработке программных систем.
Общая структура языка UML
UML представляет собой объектно–ориентированный язык моделирования, обладающий следующими основными характеристиками:
· является языком визуального моделирования, который обеспечивает разработку репрезентативных моделей для организации взаимодействия заказчика и разработчика ИС, различных групп разработчиков ИС;
· содержит механизмы расширения и специализации базовых концепций языка.
Характеристики основных объектов
Классы — это базовые элементы любой объектно–ориентированной системы. Классы представляют собой описание совокупностей однородных объектов с присущими им свойствами — атрибутами, операциями, отношениями и семантикой.
Атрибут — это свойство класса, которое может принимать множество значений. Множество допустимых значений атрибута образует домен. Атрибут имеет имя и отражает некоторое свойство моделируемой сущности, общее для всех объектов данного класса. Класс может иметь произвольное количество атрибутов.
Операция — реализация функции, которую можно запросить у любого объекта класса. Операция показывает, что можно сделать с объектом. Исполнение операции часто связано с обработкой и изменением значений атрибутов объекта, а также изменением состояния объекта.
Базовые принципы языка UML. Абстракция. Наследование. Полиморфизм. Инкапсуляция. Передача сообщений. Ассоциации. Агрегирование. Зависимость.
Базовые принципы языка UML
Использование языка UML основывается на следующих общих принципах моделирования:
- абстрагирование - в модель следует включать только те элементы проектируемой системы, которые имеют непосредственное отношение к выполнению ей своих функций или своего целевого предназначения.
- многомодельность - никакая единственная модель не может с достаточной степенью точности описать различные аспекты системы. Допускается описывать систему некоторым числом взаимосвязанных представлений, каждое из которых отражает определенный аспект её поведения или структуры;
- иерархическое построение – при описании системы используются различные уровни абстрагирования и детализации в рамках фиксированных представлений. При этом первое представление системы писывает её в наиболее общих чертах и является представлением концептуального уровня, а последующие уровни раскрывают различные аспекты системы с возрастающей степенью детализации вплоть до физического уровня.
Абстракция
Придание объекту характеристик, которые отличают его от всех других объектов, четко определяя его концептуальные границы. Основная идея состоит в том, чтобы отделить способ использования составных объектов данных от деталей их реализации в виде более простых объектов, подобно тому, как функциональная абстракция разделяет способ использования функции и деталей её реализации в терминах более примитивных функций, таким образом, данные обрабатываются функцией высокого уровня с помощью вызова функций низкого уровня.
Пример: чтобы вычислить скорость движения необходимо путь поделить на время. Нет необходимости учитывать силу трения, температуру и потоки ветров.
Наследование
Наследование является базовым принципом ООП и позволяет одному классу (наследнику) унаследовать функционал другого класса (родительского). Нередко отношения наследования еще называют генерализацией или обобщением. Наследование определяет отношение IS A, то есть "является". С помощью диаграмм UML отношение между классами выражается в незакрашенной стрелочке от класса-наследника к классу-родителю.
Полиморфизм
«Один интерфейс, множество реализаций». Возможность объектов с одинаковой спецификацией иметь различную реализацию. Полиморфизм позволяет писать более абстрактные программы и повысить коэффициент повторного использования кода. Общие свойства объектов объединяются в систему, которую могут называть по-разному — интерфейс, класс.
Пример: классы Man и Woman наследуют интерфейс Human и реализовывают в нем методы под свои нужды.
Инкапсуляция
Сокрытие реализации программы от посторонних глаз. Позволяет взаимодействовать с переменными и методами посредством предоставляемого интерфейса (публичных методов и членов), а также объединять и защищать жизненно важные для компонента данные. При этом пользователю предоставляется только спецификация (интерфейс) объекта. Пользователь может взаимодействовать с объектом только через этот интерфейс
· public – доступен везде
· protected – доступен, только если мы наследуем этот класс, либо ссылаемся на него
· internal – доступен в текущей сборке
· private – доступ ограничен
Пример: пилоты самолета видят все. Пассажиры самолета не видят ничего, кроме окон и сидений.
Передача сообщений
Взаимодействие между экземплярами актеров и объектами моделируется посредством передачи сообщений. Сообщение (англ. message) – это спецификация факта передачи информации между сущностями с ожиданием выполнения определенных действий со стороны принимающей сущности. Сущность, отправляющую сообщение, называют клиентом, а принимающую – сервером. Таким образом, сообщения не только передают некоторую информацию, но и требуют или предполагают выполнения сервером определенных действий или передачу (возврат) клиенту необходимой информации. Если принимающей сообщение сущностью является объект, то оно представляет собой операцию (метод) объекта-сервера. Прием сообщения обычно трактуется, как возникновение события на сервере. Сообщения изображаются стрелкой с обязательным указанием направления (остриё стрелки указывает на принимающую сторону) и спецификации.
Ассоциации
Ассоциация - это отношение, при котором объекты одного типа неким образом связаны с объектами другого типа. Например, объект одного типа содержит или использует объект другого типа. Например, игрок играет в определенной команде. На схемах UML ассоциация обозначается в виде обычно стрелки.
Агрегирование
При агрегации реализуется слабая связь, то есть в данном случае объекты Car и Engine будут равноправны. В конструктор Car передается ссылка на уже имеющийся объект Engine. И, как правило, определяется ссылка не на конкретный класс, а на абстрактный класс или интерфейс, что увеличивает гибкость программы.
Отношение агрегации на диаграммах UML отображается также, как и отношение композиции, только теперь ромбик будет незакрашенным:
Зависимость
Зависимость (dependency) — это слабая форма отношения использования, при котором изменение в спецификации одного влечёт за собой изменение другого, причём обратное не обязательно. Возникает, когда объект выступает, например, в форме параметра или локальной переменной.
Графически представляется штриховой стрелкой, идущей от зависимого элемента к тому, от которого он зависит.
Существует несколько именованных вариантов. Зависимость может быть между экземплярами, классами или экземпляром и классом.
Дата добавления: 2017-06-13; просмотров: 4402;