Лекции (1 курс, 2 семестр) УТкПО / Управление требованиями к программному обеспечению 4
.pdf
Модельклассовсистемыуправленияокнамидлярабочейстанции
Класс Window определяет общие параметры окон всех типов, в частности прямоугольную границу, определяемую атрибутами х1, у1, х2, у2, и операции, позволяющие отображать и скрывать окно, а также помещать его на передний или на задний план в общем наборе окон. Холстом (canvas) называется область, в которой может отображаться графика. Canvas наследует границу от класса Window и добавляет размеры области холста, которые определяются атрибутами сх1, су1, сх2, су2. Canvas содержит множество элементов, на что
указывает ассоциация с классом Shape. Все фигуры
характеризуются цветом и шириной линии. Фигуры могут быть линиями, эллипсами или многоугольниками. Каждый класс фигур обладает своими собственными параметрами. Многоугольник (Polygon) определяется списком его вершин. Эллипсы (Ellipse) и многоугольники являются замкнутыми фигурами, которые характеризуются цветом и шаблоном заливки. Линии (Line) являются одномерными, а потому не могут быть залиты. Холст поддерживает операции добавления и удаления элементов.
Агрегация |
случай ассоциации, описывающий |
|
Агрегация (aggregation) – это частный |
|
объекты, состоящие из частей. |
|
Составляющие являются частями |
|
агрегации. |
|
Агрегат с семантической точки зрения |
|
представляет собой расширенный |
|
объект, обрабатываемый многими |
|
операциями как единое целое, хотя |
|
физически он состоит из нескольких |
|
объектов. |
|
Агрегация определяется как отношение |
|
между классом-агрегатом и одним |
|
составляющим классом. Агрегат из |
|
составляющих частей разных типов |
|
должен моделироваться как несколько |
|
агрегаций. Например, газонокосилка |
|
состоит из ножа, двигателя, нескольких |
|
колес и корпуса. |
Композиция
Композиция (composition) – это частный случай агрегации, характеризующийся двумя дополнительными ограничениями.
Составляющая часть может принадлежать не более чем одному агрегату. Более того, составляющая часть, приписанная к некоторому агрегату, автоматически получает срок жизни, совпадающий со сроком жизни агрегата. Таким образом, композиция подразумевает, что части принадлежат целому.
Это удобно для программирования: удаление объекта-агрегата автоматически вызывает удаление всех его составляющих, если он образует их композицию.
Для обозначения композиции используется небольшой закрашенный ромбик, который ставится рядом с классом-агрегатом (для агрегации, не являющейся композицией, используется не закрашенный ромбик).
Композиция
На рисунке изображена компания, состоящая из отделений, которые, в свою очередь, состоят из отделов. Компания косвенно является композицией отделов. Однако компания не является композицией сотрудников, поскольку компания и человек являются независимыми объектами одинакового уровня.
Моделирование
состояний
Модель состояний
Модель состояний описывает последовательности операций, происходящих в системе в ответ на внешние воздействия (в противоположность содержанию, предмету и реализации операций, описываемым моделью классов).
Модель состояний состоит из нескольких диаграмм состояний, по одной на каждый класс, поведение которого во времени важно для приложения.
Диаграмма состояний — это стандартная концепция из информатики (графическое представление конечного автомата), связывающая события и состояния. События представляют внешние воздействия, а состояния — значения объектов.
События
Событие (event) — это происшествие, случившееся в определенный момент времени, например нажатие пользователем левой кнопки мыши или вылет рейса 123 из Чикаго.
Часто события соответствуют глаголам в прошедшем времени (питание было включено, будильник был установлен) или выполнению некоторого условия (опустошился лоток для бумаги, температура опустилась ниже точки замерзания) в описании задачи.
К событиям относятся не только нормальные происшествия, но и ошибочные ситуации.
Одно событие может логически предшествовать другому или следовать за ним. События могут быть и несвязанными друг с другом. Рейс 123 должен вылететь из Чикаго прежде, чем он сможет прибыть в Сан-Франциско. Эти два события находятся в причинноследственной связи. Однако рейс 123 может вылететь как перед вылетом рейса 456 из Рима, так и после него. Эти два события не связаны друг с другом. Несвязанные события называются параллельными (concurrent). Они никак не влияют друг на друга.
Виды
событий
события сигналов
события изменения
события времени
Событие
сигнала
Сигнал (signal) — это явная односторонняя передача информации от одного объекта другому. Сигнал отличается от вызова подпрограммы, который может возвращать значение. Объект, передающий сигнал другому объекту, может рассчитывать на получение ответа, но этот ответ будет отдельным сигналом, и его отправка (или задержка) будет целиком зависеть от второго объекта.
Событие сигнала (signal event) — это событие получения или отправки сигнала. Обычно более важным считается получение сигнала, потому что оно влияет на объектполучатель. Обратите внимание на разницу между сигналом и событием сигнала: сигнал
— это сообщение между объектами, а событие сигнала — это происшествие.
Классы сигналов
Каждая передача сигнала является уникальным происшествием, но можно группировать их в классы сигналов и дать каждому классу имя, подчеркивая общую структуру и поведение.
Например, вылет рейса 123 Юнайтед Эйрлайнс из Чикаго 10 января 1991 года — это экземпляр класса сигналов Вылет Рейса.
Некоторые сигналы являются обычными происшествиями, но большинство из них характеризуются атрибутами, в которых хранятся передаваемые этими сигналами значения.
