Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
B16-B18_DEMO.doc
Скачиваний:
9
Добавлен:
20.11.2019
Размер:
8.98 Mб
Скачать

Создание диаграмм

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

Первой задачей, решаемой при построении диаграмм классов является выделение перечня классов, присутствующих в моделируемой системе. Для решения этой задачи можно использовать функциональную модель системы в виде диаграмм Вариантов Использования или SADT. На первом этапе в качестве кандидатов для названий классов берутся имеющие отношение к рассматриваемой системе имена существительные, появляющиеся в диаграммах функциональной модели. Далее выкидывают синонимы и несущественные классы. Часть существительных может представлять собой не классы, а их атрибуты. Если возникает сложность с определением – является ли существительное классом или атрибутом, то обычно поступают следующим образом: если значение данной сущности важнее чем факт её существования, то это атрибут, если наоборот – класс. Далее на основании связей между сущностями функциональной модели выясняются зависимости между классами и выделяются основные методы классов. Если несколько классов обладают набором одинаковых методов, то в большинстве случаев целесообразно вынести эти методы в отдельный класс или интерфейс, а исходные классы унаследовать от него. Во время дальнейшего моделирования, в частности, при рассмотрении динамических аспектов системы, может изменяться как множество классов так и их структура.

В зависимости от точки зрения различают несколько уровней диаграмм классов:

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

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

  • Уровень реализации. Отличается от предыдущего тем, что моделированию подлежит не просто структура интерфейсов и связей между ними, но и конкретные детали реализации. Две последние точки зрения намеренно разделяют для обеспечения независимости интерфейсной части от деталей реализации.

Классы

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

+ означает, что атрибут доступен для всех классов.

# означает, что атрибут доступен только методам данного класса или его наследников.

- означает, что данный атрибут доступен только методам данного класса.

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

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

Например, класс представляющий квадратный трёхчлен должен содержать в качестве атрибутов как его коэффициенты, так и дискриминант. Тогда при каждой модификации любого коэффициента необходимо пересчитывать дискриминант. Вызов операции пересчёта дискриминанта удобно встроить в методы модификации коэффициентов.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]