Что такое класс?
Класс — это план, который используется для создания объекта. Класс определяет, что может делать объект.
Что такое диаграмма классов?
UML CLASS DIAGRAM дает обзор программной системы путем отображения классов, атрибутов, операций и их взаимосвязей. Эта диаграмма включает в себя имя класса, атрибуты и операции в отдельных назначенных отсеках.
Диаграмма классов определяет типы объектов в системе и различные типы отношений, которые существуют между ними. Это дает общее представление о приложении. Этот метод моделирования может работать практически со всеми объектно-ориентированными методами. Класс может ссылаться на другой класс. Класс может иметь свои объекты или наследовать от других классов.
Диаграмма классов помогает построить код для разработки программного приложения.
В этом уроке вы узнаете:
- Что такое класс?
- Что такое диаграмма классов?
- Преимущества диаграммы классов
- Основные элементы диаграммы классов UML
- Агрегация против состава
- Абстрактные классы
- Пример диаграммы классов UML:
- Диаграмма классов в жизненном цикле разработки программного обеспечения:
- Лучшие практики проектирования диаграммы классов
Преимущества диаграммы классов
- Диаграмма классов Иллюстрирует модели данных даже для очень сложных информационных систем
- Это обеспечивает обзор того, как приложение структурировано перед изучением фактического кода. Это может легко сократить время обслуживания
- Это помогает лучше понять общие схемы приложения.
- Позволяет рисовать подробные диаграммы, которые выделяют код, необходимый для программирования
- Полезно для разработчиков и других заинтересованных сторон.
Основные элементы диаграммы классов UML
Основные элементы диаграммы классов UML:
- Имя класса
- Атрибуты
- операции
Имя класса
Имя класса требуется только в графическом представлении класса. Появляется в самом верхнем отсеке. Класс — это план объекта, который может иметь одинаковые отношения, атрибуты, операции и семантику. Класс отображается в виде прямоугольника, включая его имя, атрибуты и операции в отдельных отсеках.
При представлении класса необходимо соблюдать следующие правила:
- Имя класса всегда должно начинаться с заглавной буквы.
- Название класса всегда должно быть в центре первого отсека.
- Имя класса всегда должно быть написано жирным шрифтом .
- Имя абстрактного класса должно быть написано курсивом.
Атрибуты:
Атрибут именуется свойством класса, который описывает моделируемый объект. На диаграмме классов этот компонент расположен чуть ниже отсека имени.
Производный атрибут вычисляется из других атрибутов. Например, возраст учащегося можно легко вычислить по дате его рождения.
Атрибуты характеристики
- Атрибуты обычно записываются вместе с фактором видимости.
- Публичная, частная, защищенная и пакетная — это четыре видимости, которые обозначаются знаками +, -, # или ~ соответственно.
- Видимость описывает доступность атрибута класса.
- Атрибуты должны иметь осмысленное имя, которое описывает его использование в классе.
Отношения
В UML есть в основном три вида отношений:
- зависимости
- Обобщения
- ассоциации
зависимость
Зависимость означает отношение между двумя или более классами, в котором изменение одного может вызвать изменения другого. Тем не менее, это всегда будет создавать более слабые отношения. Зависимость указывает, что один класс зависит от другого.
В следующем примере студент имеет зависимость от колледжа
Обобщение:
Обобщение помогает связать подкласс с его суперклассом. Подкласс наследуется от своего суперкласса. Отношение обобщения нельзя использовать для моделирования реализации интерфейса. Диаграмма классов позволяет наследовать от нескольких суперклассов.
В этом примере класс Student обобщается из класса Person.
Ассоциация:
Этот тип отношений представляет статические отношения между классами A и B. Например; сотрудник работает на организацию.
Вот несколько правил для Ассоциации:
- Ассоциация — это в основном глагол или глагольная фраза, или существительное, или именная фраза.
- Он должен быть назван так, чтобы указывать роль, которую играет класс, присоединенный в конце пути ассоциации.
- Обязательно для рефлексивных ассоциаций
В этом примере показана связь между студентом и колледжем, который является учебой.
множественность
Кратность — это фактор, связанный с атрибутом. Он указывает, сколько экземпляров атрибутов создается при инициализации класса. Если кратность не указана, по умолчанию она считается кратностью по умолчанию.
Допустим, что в одном колледже 100 студентов. Колледж может иметь несколько студентов.
агрегирование
Агрегация — это особый тип ассоциации, который моделирует отношение всей части между агрегатом и его частями.
Например, класс колледжа состоит из одного или нескольких студентов. В совокупности содержащиеся классы никогда полностью не зависят от жизненного цикла контейнера. Здесь класс колледжа останется, даже если ученик недоступен.
Сочинение:
Композиция — это особый тип агрегации, который обозначает сильную собственность между двумя классами, когда один класс является частью другого класса.
Например, если колледж состоит из классов ученика. Колледж может содержать много студентов, в то время как каждый студент принадлежит только одному колледжу. Так что, если колледж не функционирует, все студенты также удаляются.
Агрегация против состава
агрегирование |
Сочинение |
Агрегация указывает на отношение, в котором ребенок может существовать отдельно от своего родительского класса. Пример: автомобиль (родитель) и автомобиль (ребенок). Так что, если вы удалите автомобиль, автомобиль ребенка все еще существует. |
Композиция отображает отношения, где ребенок никогда не будет существовать независимо от родителя. Пример: Дом (родитель) и Комната (ребенок). Комнаты никогда не разделятся на дом. |
Абстрактные классы
Это класс с прототипом операции, но не с реализацией. Также возможно иметь абстрактный класс без каких-либо операций, объявленных внутри него. Аннотация полезна для определения функциональных возможностей классов. Давайте рассмотрим пример абстрактного класса. Предположим, у нас есть абстрактный класс, называемый движением с методом или операцией, объявленной внутри него. Метод, объявленный внутри абстрактного класса, называется move () .
Этот метод абстрактного класса может использоваться любым объектом, таким как автомобиль, животное, робот и т. Д., Для изменения текущей позиции. Эффективно использовать этот метод абстрактного класса с объектом, потому что для данной функции не предусмотрена реализация. Мы можем использовать его любым способом для нескольких объектов.
В UML абстрактный класс имеет те же обозначения, что и класс. Единственная разница между классом и абстрактным классом состоит в том, что имя класса строго написано курсивом.
Абстрактный класс не может быть инициализирован или создан.
В приведенной выше записи абстрактного класса есть единственный единственный абстрактный метод, который может использоваться несколькими объектами классов.
Пример диаграммы классов UML
Создание диаграммы классов — простой процесс. Это не связано со многими техническими аспектами. Вот пример:
Система банкоматов очень проста, так как клиенты должны нажать несколько кнопок, чтобы получить наличные. Однако существует несколько уровней безопасности, которые должна пройти любая система ATM. Это помогает предотвратить мошенничество и предоставить наличные или необходимые данные для банковских клиентов.
Ниже приведен пример диаграммы классов UML:
Диаграмма классов в жизненном цикле разработки программного обеспечения
Диаграммы классов могут использоваться на разных этапах разработки программного обеспечения. Это помогает в моделировании диаграмм классов в трех разных ракурсах.
1. Концептуальная перспектива: концептуальные диаграммы описывают вещи в реальном мире. Вы должны нарисовать диаграмму, которая представляет понятия в изучаемой области. Эти понятия относятся к классу и он всегда не зависит от языка.
2. Перспектива спецификации: Перспектива спецификации описывает программные абстракции или компоненты со спецификациями и интерфейсами. Тем не менее, это не дает никаких обязательств для конкретной реализации.
3. Перспектива реализации: этот тип диаграмм классов используется для реализаций на определенном языке или в приложении. Перспектива реализации, использование для реализации программного обеспечения.
Лучшие практики проектирования диаграммы классов
Диаграммы классов являются наиболее важными диаграммами UML, используемыми для разработки программных приложений. Есть много свойств, которые следует учитывать при рисовании диаграммы классов. Они представляют различные аспекты программного приложения.
Вот некоторые моменты, которые следует учитывать при рисовании диаграммы классов:
- Имя, данное диаграмме классов, должно быть значимым. Более того, следует описать реальный аспект системы.
- Отношения между каждым элементом должны быть определены заранее.
- Ответственность за каждый класс должна быть определена.
- Для каждого класса должно быть указано минимальное количество свойств. Следовательно, нежелательные свойства могут легко усложнить диаграмму.
- Примечания пользователя должны быть включены всякий раз, когда вам нужно определить некоторые аспекты диаграммы. В конце чертежа это должно быть понятно для команды разработчиков программного обеспечения.
- Наконец, перед созданием окончательной версии диаграмму необходимо нарисовать на обычной бумаге. Более того, он должен быть переработан до тех пор, пока не будет готов к окончательной сдаче.
Вывод
- UML является стандартным языком для определения, проектирования и визуализации артефактов программных систем.
- Класс — это план объекта
- Диаграмма классов описывает типы объектов в системе и различные виды отношений, которые существуют между ними
- Это позволяет анализировать и проектировать статическое представление программного приложения
- Диаграммы классов являются наиболее важными диаграммами UML, используемыми для разработки программных приложений.
- Основные элементы диаграммы классов UML: 1) Класс 2) Атрибуты 3) Отношения
- Диаграмма классов дает обзор того, как приложение структурировано перед изучением реального кода. Это, безусловно, сокращает время обслуживания
- Диаграмма классов полезна для отображения объектовно-ориентированных языков программирования, таких как Java, C ++, Ruby, Python и т. Д.