понедельник, 10 декабря 2012 г.

Диаграммы классов


 Диаграммы классов
Общие сведения
Диаграмма классов определяет типы классов системы и различного рода статические связи, которые существуют между ними. На диаграммах классов  изображаются  также  атрибуты  классов,  операции  классов и ограничения,  которые  накладываются  на  связи  между  классами.
Диаграмма классов UML - это граф, узлами которого являются элементы статической структуры проекта (классы, интерфейсы), а дугами - отношения между узлами (ассоциации, наследование, зависимости).
На диаграмме классов изображаются следующие элементы:
  • Пакет (package) - набор элементов модели, логически связанных между собой;
  • Класс (class) - описание общих свойств группы сходных объектов;
  • Интерфейс (interface) - абстрактный класс, задающий набор операций, которые объект произвольного класса, связанного с данным интерфейсом, предоставляет другим объектам.
Класс
Класс - это группа сущностей (объектов), обладающих сходными свойствами, а именно, данными и поведением. Отдельный представитель некоторого класса называется объектом класса или просто объектом.
Под поведением объекта в UML понимаются любые правила взаимодействия объекта с внешним миром и с данными самого объекта.
На диаграммах класс изображается в виде прямоугольника со сплошной границей, разделенного горизонтальными линиями на 3 секции:
  • Верхняя секция (секция имени) содержит имя класса и другие общие свойства (в частности, стереотип).
  • В средней секции содержится список атрибутов
  • В нижней - список операций класса, отражающих его поведение (действия, выполняемые классом).
Любая из секций атрибутов и операций может не изображаться (а также обе сразу). Для отсутствующей секции не нужно рисовать разделительную линию и как-либо указывать на наличие или отсутствие элементов в ней.
На усмотрение конкретной реализации могут быть введены дополнительные секции, например, исключения (Exceptions).
http://unesco.kemsu.ru/study_work/method/po/UMK/lab_pract/lab04.19.gif
Рис. 9. Пример диаграммы классов
Стереотипы классов
Стереотипы классов –  это  механизм,  позволяющий  разделять  классы на категории.
В языке UML определены три основных стереотипа классов:
  • Boundary (граница);
  • Entity (сущность);
  • Control (управление).
Граничные классы
Граничными  классами (boundary classes)  называются  такие  классы, которые  расположены  на  границе  системы  и  всей  окружающей  среды. Это экранные  формы,  отчеты,  интерфейсы  с  аппаратурой (такой  как принтеры или сканеры) и интерфейсы с другими системами.
Чтобы  найти  граничные  классы,  надо  исследовать  диаграммы вариантов использования. Каждому взаимодействию между действующим лицом и вариантом использования должен соответствовать, по  крайней мере, один граничный класс. Именно такой класс позволяет действующему лицу взаимодействовать с системой.
Классы-сущности
Классы-сущности (entity classes)  содержат  хранимую  информацию. Они  имеют  наибольшее  значение  для  пользователя,  и  потому в их названиях часто используют термины из предметной области. Обычно для каждого класса-сущности создают таблицу в базе данных.
Управляющие классы
Управляющие  классы (control classes)  отвечают  за  координацию действий  других  классов.  Обычно  у  каждого  варианта  использования имеется один  управляющий класс, контролирующий последовательность событий  этого  варианта  использования.  Управляющий  класс  отвечает за координацию, но сам не несет в себе никакой функциональности, так как остальные классы не посылают ему большого количества сообщений. Вместо этого он сам посылает множество сообщений. Управляющий класс просто делегирует ответственность другим классам, по этой причине его часто называют классом-менеджером.
В  системе  могут  быть  и  другие  управляющие  классы,  общие для нескольких  вариантов  использования.  Например,  может  быть  класс SecurityManager (менеджер  безопасности),  отвечающий  за  контроль событий, связанных с безопасностью. Класс TransactionManager (менеджер транзакций)  занимается  координацией  сообщений,  относящихся к транзакциям  с  базой  данных.  Могут  быть  и  другие  менеджеры для работы с другими элементами функционирования системы, такими как разделение  ресурсов,  распределенная  обработка  данных  или  обработка ошибок.
Помимо  упомянутых  выше  стереотипов  можно  создавать  и свои собственные.
Атрибуты
Атрибут – это элемент информации, связанный с классом. Атрибуты хранят инкапсулированные данные класса.
Так как атрибуты содержатся внутри класса, они скрыты от других классов. В связи с этим может понадобиться указать, какие классы имеют право читать и изменять атрибуты. Это свойство называется видимостью атрибута (attribute visibility).
У  атрибута  можно  определить  четыре  возможных  значения  этого параметра:
  • Public (общий, открытый). Это значение видимости предполагает, что атрибут будет виден всеми остальными классами. Любой класс может просмотреть или изменить значение атрибута.  В соответствии  с  нотацией UML  общему  атрибуту предшествует знак « + ».
  • Private (закрытый,  секретный).  Соответствующий  атрибут не виден  никаким  другим  классом.  Закрытый  атрибут  обозначается  знаком  « – » в соответствии с нотацией UML.
  • Protected (защищенный). Такой атрибут доступен только самому классу и его потомкам. Нотация UML для защищенного атрибута – это знак « # ».
  • Package or Implementation (пакетный). Предполагает, что данный атрибут является общим, но только в пределах его пакета. Этот  тип  видимости  не  обозначается никаким специальным значком.
В  общем  случае,  атрибуты  рекомендуется  делать  закрытыми  или защищенными. Это позволяет лучше контролировать сам атрибут и код.
С помощью  закрытости  или  защищенности  удается  избежать  ситуации, когда  значение  атрибута  изменяется  всеми  классами  системы.  Вместо этого  логика  изменения  атрибута  будет  заключена  в  том  же  классе, что и сам  этот  атрибут.  Задаваемые  параметры  видимости  повлияют на генерируемый код.
 

2 комментария:

  1. спасибо, помогло прояснить картину.

    ОтветитьУдалить
  2. Baccarat Rules | Online casino - febcasino
    The game rules, the game rules, and more for you to play online. A basic 원피스 바카라 rule, known as “baccarat”, is the simplest part of the game. Learn more here.

    ОтветитьУдалить