Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Диаграммы классов и объектов



Диаграмма классов представляет набор:

классов,

типов данных,

интерфейсов и

отношений между ними.

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

Классы

Графическое представление класса - это прямоугольник, который может быть разделен на три части (рис. 34):

 

 

Рис. 34. Пример изображения класса.

Верхняя часть прямоугольника содержит имя класса, средняя - атрибуты, нижняя - методы поведения (операции). Атрибуты или методы при изображении класса могут быть скрыты для того, чтобы подчеркнуть другие аспекты диаграммы классов, например, состав классов и отношения между ними. В этом случае изображение класса принимает простейший вид прямоугольника с именем класса.

Каждый атрибут представляется в следующем виде:

видимость имя: тип = начальное значение

Перед именем может следовать знак, обозначающий видимость атрибута для других классов:

+ общедоступный (public) атрибут

# защищенный (protected) атрибут

-закрытый (private) атрибут

Каждый метод представляется в следующем виде:

видимость имя(список параметров): тип возвращаемого значения

Описатель видимости имеет те же значения, что и для атрибута.

Список параметров представляет собой перечень описателей параметров, разделенных запятой. Описатель каждого параметра имеет вид:

вид имя: тип = значение по умолчанию

Вид параметра может быть следующим:

in входной параметр,

out выходной параметр,

inout входной и выходной параметр.

Текст реализации операции может быть сопоставлен в качестве примечания для каждого метода.

Пример изображения класса представлен на рис. 35.

 
 

 


Рис. 35. Пример изображения класса " Геометрическая фигура".

Интерфейсы

Интерфейсы предназначены для спецификации внешнего вида операций для классов.

Отношения между классами

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

В следующем примере указано отношение между двумя классами “линия” и “точка”. Отношение имеет имя “Содержать”, роли для каждого из классов называются соответственно “Включает” и “Входит в” (рис. 36):

Содержать>

Включает Входит в

Рис. 36. Пример отношения.

Для каждой роли может быть определена дополнительная информация следующего вида:

множественность,

сортировка,

квалификатор,

имя роли,

спецификация интерфейса,

изменяемость,

видимость.

Множественность, определяет количество экземпляров классов, участвующих в отношении. Множественность определяется в виде одного или нескольких диапазонов:

нижняя граница.. верхняя граница

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

1..*

*

Сортировка, определяет тип упорядочения элементов для множественности больше чем 1. Возможные значения: упорядочено, неупорядочено.

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

Рис. 37. Пример агрегации

Квалификатор, это один или несколько атрибутов, значения которых обеспечивают идентификацию экземпляров класса по данной связи. Множественность, указанная для роли, при наличии квалификатора указывает на количество экземпляров класса, выбираемых одним значением квалификатора. Наиболее часто используются следующие значения для множественности: 0..1 - уникальный экземпляр может быть выбран, но не обязательно будет выбран; 1 - каждое значение квалификатора однозначно выбирает экземпляр класса; * - одному значению квалификатора соответствует множество экземпляров. Графически квалификатор обозначается как прямоугольник, в котором указаны имена атрибутов, являющихся квалификатором. Прямоугольник располагается между линией связи и классом. Ниже представлен пример, в котором классы " линия" и " точка" связаны отношением “входить в”. Квалификатором является координата точки (рис. 38). Множественность со стороны класса “точка” равна 0..1, что обозначает, что каждая точка линии должна иметь уникальные координаты. Множественность со стороны класса “линия” равна *, что обозначает, что разные линии могут иметь общие точки.

Рис. 38. Пример использования квалификатора

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

Класс, описывающий связь

(Associaton class). Связь между классами также может обладать свойствами, присущими некоему классу. Для определения таких свойств для связи может быть задан ассоциированный с ней класс. Связь и ассоциированный класс представляют одно целое.

Ассоциированный класс изображается обычным образом в виде прямоугольника и связывается с отношением, для которого он задан, штриховой линией. Имена связи (отношения) и описывающего его класса должны совпадать (рис. 39).

 

Рис. 39. Пример класса, описывающего связь

N - местная связь

(N-ry Association) Это связь между тремя и более классами. Эта связь графически обозначается ромбом, к которому подходят линии, соединяющие ромб с классами. Имя отношения указывается внутри или вблизи ромба. Класс, описывающий связь присоединяется к ромбу с помощью штрих - пунктирной линии. Пример такой связи представлен на рис. 42:

 

*Принадлежать

 

*Включать Содержать*

 

Рис. 40. Пример многоместной связи.

Для подобного вида связей не может быть применена агрегация.

Композиция. Сборка.

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

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

Отличие сборки от композиции может быть продемонстрировано на следующем примере:

Сборка. Элементы входят в таблицу и образуют ее. Они могут существовать друг без друга. Таблица имеет собственную структуру и логику поведения. Она может не содержать ни одного элемента. В то же время элементы могут существовать изолированно от таблицы. Таким образом, элементы собираются внутри таблицы и наполняют ее.

Композиция. Здание образуется набором внутренних помещений. Но они не могут существовать друг без друга и вне друг друга.

Соответственно такие отличия оказывают влияние на удаление объектов. Для композиции должно быть обеспечено удаление всех составных частей после удаления объемлющего объекта. Каждая часть также должна быть удалена в случае ее исключения из составного объекта.

Обобщение

Обобщение (Generalization) - это отношение между общим и уточняющим элементом. Обобщение показывается как сплошная линия с треугольником на конце. Треугольник располагается у общего элемента (рис. 41).

Рис. 41. Пример обобщения

 

Зависимость (Dependency)

Зависимость (Dependency) - э то отношение обозначает любую зависимость между любыми элементами модели. Зависимость изображается штриховой линией с направлением (рис. 42). Элемент, для которого линия является выходной, зависим от элемента на другом конце линии. На линии может быть указано имя отношения.

 
 

 


Видимая область

 

Рис. 42.. Пример зависимости

Подобная связь никак не регламентирует вид отношений между объектами а указывает лишь на то, что зависимый класс использует какие-то особенности реализации иного класса.

Все отношения между классами сведены в следующую таблицу:

 

Таблица 10. Отношения между классами

Отношение Изображение Класс Отношение Класс
1. Наследование (Inheritance)
2. Сборка (Aggregation)
3. Композиция (Composition)
4. Однонаправленная ассоциация (Uni-directional Association)
5. Двунаправленная ассоциация (Bi-directional Association)
6. Зависимость (Dependency)
7. Шаблон (Template Instantiation)

Пример диаграммы классов

Пример диаграммы классов представлен на рис. 43:

Рис. 43. Диаграмма классов для предметной области графического диаграммера.

Диаграммы использования

Диаграммы использования (use case diagram) предназначены для отображения внешнего функционирования проектируемой системы и ее взаимодействия с внешним миром пользователями. Эти диаграммы впервые были предложены Иваром Якобсоном (Ivar Jacobson). Основой подхода являются так называемые блоки использования (use case), которые представляют собой некоторый набор функций системы, объединяемых в единое целое с точки зрения пользователя. Один блок использования не обязательно представляет собой одну часть системы или даже единую группу функций. Он представляет собой именно понимание пользователем поведения системы.

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

Диаграмма состоит из следующих элементов:

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

блоки использования (use case), это такие группы функций системы, которые объединяются в единое целое для внешнего пользователя,

связи между блоками использования и связи между блоками использования и внешними пользователями.

Выделены следующие виды связей:

взаимодействие (только между пользователем и блоком использования);

расширение - данный вид отношения от блока А к блоку В обозначает, что исполнение блока В может дополняться исполнением некоторых функций блока А;

использование - данный вид отношения от блока А к блоку В обозначает, что исполнение А также включает исполнение блока В;

Графически блоки использования обозначаются эллипсами с указанием имени внутри эллипса или рядом с ним. Внешние пользователи графически обозначаются как прямоугольники с табулятором “Пользователь” или в виде схематичной фигурки человека с именем под ней.

Графическое обозначение для связей следующее:

взаимодействие - сплошная линия,

расширение - линия со стрелкой от блока, предоставляющего расширение к базовому блоку, помеченная словом “extends”,

использование - линия со стрелкой от использующего блока к используемому блоку, помеченная словом “uses”.

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

Примером диаграммы может являться диаграмма, представленная на рис. 44, демонстрирующая структуру системы учета клиентов Internet для Internet Service Provider (ISP).

Внешними пользователями (actor) являются:

“клиент” - физическое или юридическое лицо, заказывающее услуги по подключению к сети Internet,

“оператор” - сотрудник ISP, осуществляющий работу с клиентом и системой учета,

“бухгалтер”- бухгалтер ISP,

“системный администратор” - сотрудник ISP, обеспечивающий системное администрирование системы учета клиентов.

Основными задачами “клиента” являются:

заключение договора о предоставлении услуг сети Internet,

выбор перечня услуг для работы в сети (например, создание почтового ящика, создание web-сервера, регистрация и обслуживание домена),

оплата предоставленных услуг или авансовый платеж,

получение необходимых документов (договор, счет, счет-фактура, акт о выполненных работах),

получение статистических отчетов (состояние счета, сеансы работы, начисления за услуги),

подключение и работа в режиме on-line.

Основной задачей “бухгалтера” является

получение отчетов о поступлении платежей

Основными задачами “системного администратора” являются:

удаление сведений о клиенте,

создание нового вида услуг.

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

формулировка требований, ориентированная на пользователя, т.е. система заведомо проектируется так, как ее будет видеть пользователь;

простота модели, ее ориентированность на неподготовленного пользователя;

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

Рис. 44. Пример диаграммы использования.

Рекомендуется следующая последовательность формулирования требований к системе с помощью диаграмм использования:

определить перечень главных пользователей (внешних входов-выходов) системы, это целесообразно сделать методом мозгового штурма с участием большого количества людей, начиная от руководителя разработки и кончая программистами;

определить методику участия внешних пользователей в проекте (методы привлечения их к составлению требований);

определить главные цели пользователей (что они хотят сделать с помощью системы) и задачи, которые нужно решить для достижения этих целей;

составить диаграмму использования, в которой каждой задаче каждого пользователя сопоставить блок использования; соединить блоки использования и внешних пользователей, ответственных за данную задачу;

проверить каждый блок использования какой-либо количественной метрикой, например, можно использовать оценку времени выполнения задачи или объема ресурсов, необходимого для ее решения; на этой стадии полезно составить прототип программного средства, для оценки реализуемости проекта (но ни в коем случае не интерфейса пользователя);

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

диаграммы должны быть простыми и понятными любому пользователю;

автор проекта и идеи системы должен участвовать в спецификации требований;

каждый участник проекта должен понимать конечную цель и предназначение разрабатываемой системы;

блоки использования должны быть основаны на их целях (а не, например, структуре);

не использовать слишком много отношений “extends” и “uses” - они усложняют понимание диаграммы;

блоки использования не должны отражать вопросов пользовательского интерфейса;

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


Поделиться:



Популярное:

  1. XVIII. ОСОБЕННОСТИ ПРАВОВОГО РЕЖИМА ПРИРОДНЫХ ОБЪЕКТОВ
  2. Безопасность объектов почтовой связи и работающего персонала.
  3. Благоустройство производственных объектов различных отраслей
  4. Векторный тип объектов, которые основаны на определении пространственных размеров
  5. Взаимодействие объектов Word с текстом и страницей
  6. Взаимодействие объектов друг с другом
  7. Взаимодействие с руководством и сотрудниками объектов контрольного мероприятия
  8. Викторина по ПДД для 5-7 классов
  9. Возникновение конфликтологической традиции в социологии: органистическая школа Г. Спенсера, теория классовой борьбы К. Маркса, учение о солидарности и аномии Э. Дюркгейма.
  10. Вопрос 1. Понятие и виды объектов гражданских правоотношений. Вещи как объекты гражданских правоотношений.
  11. Вопрос 17. Режимы работы источника напряжения. Определение потенциалов точек цепи и их расчёт. Построение потенциальной диаграммы.
  12. ВОПРОС: Виды стоимостей, цена и принципы оценки объектов недвижимости


Последнее изменение этой страницы: 2016-05-30; Просмотров: 1445; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.046 с.)
Главная | Случайная страница | Обратная связь