8
Наличие между классами связи-ассоциации говорит о том, объекты этих классов
каким-либо образом связаны друг с другом (вызывают
методы друг друга, работают с
общей памятью и др.).
Рис. 2. Виды ассоциаций
Агрегирование – это частный случай ассоциации,
который обозначает наличие
связи «целое/часть» между экземплярами классов. Объект-часть в той или иной форме
включается в объект-целое.
Наследование является отношением только между классами и не переходит в
отношение между экземплярами классов, в отличие от ассоциации и агрегирования.
Наследование
модифицирует класс-предок, добавляя в него новые свойства (атрибуты,
методы, реализацию методов).
Рис. 3. Пример диаграммы классов
9
Для описания фрагмента системы при помощи экземпляров классов – объектов –
используется одноимённая диаграмма. Объект – это конкретный экземпляр некоторого
класса, обладающий уникальным идентификатором, который
позволяет отличить его от
других объектов этого же класса, а также конкретными значениями атрибутов и связей.
Пример диаграммы объектов – на рис. 4.
Рис. 4. Пример диаграммы объектов.
Требования к системе удобно отобразить на диаграмме случаев использования.
Элементами диаграммы являются потенциальные пользователи системы, именуемые
актёрами (actors), и функции системы (случаи использования),
необходимые
пользователю. Пример диаграммы приведён на рис. 5.
2.2
UML-практикум
В этом разделе описаны исходные материалы по UML-практикуму, которые в
рамках данной работы было необходимо доработать.
Студенты кафедры системного программирования СПбГУ знакомятся с основами
UML в рамках отдельного курса, посвящённого изучению этого языка моделирования.
Особый акцент
делается на практической части, специально для которой автором курса
были составлены задачи, объединённые в практикум.
Каждое из заданий нацелено на отдельный небольшой аспект UML, нуждающийся,
как это показывает многолетний опыт автора курса, в особом акценте. В практикум вошло
несколько контрольных вопросов, которые носят теоретический характер, и практические
задачи, для решения которых требуется нарисовать соответствующую диаграмму.
Практикум охватывает диаграммы классов и диаграммы объектов.
Практикум охватывает следующие аспекты диаграмм классов:
10
отношение агрегирования;
иерархия агрегирования;
наследование;
правила построения иерархии наследования;
совместное использование агрегирования и наследования;
множественное наследование и множественность классификаций;
однонаправленные ассоциации;
множественность концов
ассоциаций;
множественное агрегирование;
имена ролей ассоциаций;
рефлексивные ассоциации (одно- и двунаправленные).
Предполагается, что студенты обладают следующими навыками и знаниями:
основы программирования на языках Java или C#;
минимальный опыт работы с базами данных;
сведения из области компиляторов и формальных грамматик;
первичные навыки написания технической документации.
Выполнение этих требований необходимо для понимания студентами предметной
области предлагаемых задач.
Возможные случаи использования практикума приведены на рис. 5.
Достарыңызбен бөлісу: