Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Проектирование_МПС_лек07

.pdf
Скачиваний:
18
Добавлен:
15.02.2015
Размер:
347.91 Кб
Скачать

1

7. Статическое моделирование. Модели предметной области

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

этой лекции описывается процесс создания черновой концептуальной статической модели, выполняемой на этапе анализа. Более подробная статическая модель строится на этапе проектирования.

7.1 Статическая модель предметной области

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

Рассмотрим статическую модель предметной области «Обслуживание клиента банка через банкомат» (рис. 7.1).

Рисунок 7.1 – Статическая модель предметной области.

2

У банка есть несколько банкоматов. Каждый банкомат – это составной класс, содержащий «Устройство Считывания Карточек», «Устройство Выдачи Наличных», «Устройство Печати Чеков» и «Клиент Банкомата». «Клиент банкомата» взаимодействует с системой посредством клавиатуры и дисплея. «Устройство Считывания Карточек» читает пластиковую «Карточку», являющуюся физической сущностью. «Устройство Выдачи Наличных» выдает

«Наличные», которые вполне осязаемы. «Устройство Печати Чеков» распечатывает Чек – тоже физическую сущность в виде листка бумаги. В большинстве случаев нужно создать программные классы, отражающие данные физической сущности. «Оператор», являющийся пользователем, в обязанности которого входит обслуживание банкомата. Как и «Клиент Банкомата», «Оператор» взаимодействует с системой при помощи клавиатуры и дисплея.

7.2 Статическое моделирование контекста системы

Интерфейс между системой и внешней средой называют так же

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

Диаграмму классов контекста системы можно построить путем статического моделирования внешних классов, соединенных с системой. В частности, физические классы – это, как правило, устройства ввода/вывода, которые выступают в роли внешних для системы классов. Можно также воспользоваться диаграммой прецедентов, рассмотрев актеров и устройства, которыми они пользуются для взаимодействия с системой.

7.2.1 Внешние классы

При моделировании контекста система изображается в виде агрегатного класса со стереотипом «система», а внешняя среда – в виде набора внешних классов, с которыми система может взаимодействовать. Внешний класс можно

3

назвать «внешним устройством ввода», «внешним устройством вывода», «внешним пользователем», «внешней системой» или «внешним таймером».

Для систем реального времени желательно выявить низкоуровневые классы, соответствующие физическим устройствам ввода/вывода. Примерами могут служить «Вал» в системе круиз-контроля и «Мотор» в системе управления лифтами.

Человек часто взаимодействует с системой посредством стандартных устройств ввода/вывода. Характеристики данных устройств несущественны, гораздо полезнее описать интерфейс с точки зрения того, какую информацию пользователь получает, а какую – вводит. Поэтому внешний пользователь, взаимодействующий с системой при помощи стандартных устройств,

моделируется как «внешний пользователь», а не как устройство.

Класс «внешнего таймера» используется, если приложение должно следить за временем или если событие внешнего таймера инициирует какие-то события в системе. Чаще всего класс «внешний таймер» бывает полезным в системах реального времени. Например, «Тактовый генератор» в системе круиз-контроля нужен для того, чтобы система могла вести отсчет времени при вычислении скорости движения, а так же для запуска различных периодических видов деятельности.

Класс «внешняя система» необходим в случаях, когда система обменивается данными с другими системами. Например, система АСУТП взаимодействует с двумя внешними системами – «Подъемно-транспортный робот» и «Сборочный робот».

7.2.2 Пример разработки диаграммы классов контекста системы с внешними классами

Пример диаграммы классов контекста системы приведен на рис. 7.2. С точки зрения общей программно-аппаратной структуры системы «клиент банкомата» является внешним по отношению к системе, тогда как устройства ввода/вывода – частями самой системы.

4

Рисунок 7.2 – Диаграмма классов контекста банковской системы.

В данном примере выделяются три класса внешних устройств –

«Устройство Считывания Карточек», «Устройство Печати Чеков» и «Устройство Выдачи Наличных». Есть также два класса внешних пользователей – «Клиент Банкомата» и «Оператор». Для каждого банкомата имеется ровно по одному экземпляру этих внешних классов.

7.2.3 Актеры и внешние классы

Между актерами и внешними классами существует следующие отношения:

Актер-устройство ввода/вывода эквивалентен классу внешнего устройства. Это значит, что такой актер связан с системой посредством класса внешнего устройства.

Актер-внешняя система эквивалентен классу внешней системы.

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

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

5

7.2.4 Пример разработки диаграммы классов контекста системы на основе рассмотрения актеров

Чтобы определить внешние классы по актерам, необходимо ясно представ себе характеристики каждого актера и взаимодействие с системой. Эту информацию можно найти в описании прецедентов. Рассмотрим случай, когда актерами являются люди. В банковской системе (см. рис. 7.2) есть два актера-человека – «Клиент банкомата» и «Оператор».

Банковская система представлена в виде одного агрегатного класса и соединенных с ним внешних классов. Оператор общается с системой с помощью стандартного устройства. В этом случае он изображен как внешний пользователь (характеристики пользователя важнее характеристик устройства). Что касается клиента, то он взаимодействует с системой посредством одного стандартного и трех специализированных устройств. К нестандартным устройствам относятся: «Устройство Считывания Карточек», « Устройство Печати Чеков» и «Устройство Выдачи Наличных». Все пять внешних классов связаны с банковской системой ассоциациями «один-ко-многим».

7.3 Статическое моделирование сущностных классов

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

«сущность». Затем определяются атрибуты таких классов и отношения между ними. Пример концептуальной статической модели сущностных классов в банковской системе приведен на рис. 7.3. На этом рисунке изображен класс «Банк», который находится в отношении «один-ко-многим» с классами «Клиент» и «Дебетовая Карточка». Между классами «Клиент» и «Счет» имеется отношение «многие-ко-многим». У класса «Счет» есть специализация «Чековый Счет» и «Сберегательный Счет». В случае, когда атрибуты

6

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

Рисунок 7.3 – Концептуальная статическая модель банковской системы:

сущностные классы.

Так, для ассоциации «многие-ко-многим» между классами «Дебетовая Карточка» и «Счет» атрибутами класса-ассоциации «Карточный Счет» являются индивидуальные счета, доступные по данной карточке.