Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все лекции по системам реального времени.pdf
Скачиваний:
252
Добавлен:
02.05.2014
Размер:
8.11 Mб
Скачать

СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ

214

Рис.9.6. Пример класса-алгоритма: а аналитическая модель (диаграмма коо- перации); б проектная модель (диаграмма кооперации); в проектная модель (диаграмма классов)

9.7. Классы интерфейса пользователя

Класс интерфейса пользователя скрывает от других классов де-

тали человеко-машинного интерфейса. В зависимости от приложения

www.pdffactory.com

СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ

215

интерфейс пользователя может быть очень простым (например, в ви- де командной строки) или весьма сложным (графический интерфейс пользователя ГИП). Чтобы реализовать интерфейс командной стро- ки, достаточно одного класса, а для графического интерфейса требу- ется, как правило, несколько. Низкоуровневые классы интерфейса пользователя это элементы управления, находящиеся в библиотеках компонентов: окна, меню, кнопки и диалоги. Высокоуровневые клас- сы пользовательского интерфейса часто составляются из таких клас- сов.

В аналитической модели акцент делается на идентификации со-

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

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

зователем: вывести ОкноПИН-кода, вывестиОкноСнятияДенёг, вы- вестиОкноПеревода Денег и вывестиОкноСправки а также для вы-

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

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

терфейса с клиентом: окно Главного Меню, Окно ПИН-кода, Окно Снятия Денег, Окно Перевода Денег, Окно Справки и Окно Пригла- шения.

www.pdffactory.com

СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ

216

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

акласс интерфейса пользователя с операциями;

бструктура составного класса пользовательского интерфейса

9.8.Классы бизнес-логики

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

www.pdffactory.com

СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ

217

Примером такого класса может служить класс Менеджер Тран- закций Снятия (рис.9.8), где инкапсулированы правила обработки за- проса на снятие денег.

Рис.9.8. Пример класса бизнес-логики: а аналитическая модель (диаграмма кооперации); б проектная модель (диаграмма кооперации); в проектная мо- дель (диаграмма классов)

www.pdffactory.com

СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ

218

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

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

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

анализа строится диаграмма кооперации для проектной модели (рис.9.86) и диаграмма классов (рис.9.8в).

9.9.Классы-обертки базы данных

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

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

классы-обертки базы данных, скрывающие детали реализации дос- тупа к базе.

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

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

Класс-обертка скрывает детали доступа к данным, хранящимся в таблицах базы, а значит, и все операторы языка SQL. Обычно один класс соотносится с одной таблицей, но возможны также классы-

www.pdffactory.com

СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ

219

обертки и для представлений, то есть соединения двух или более таб- лиц.

Рис.9.9. Пример класса-обертки базы данных: а аналитическая модель; б проектная модель

www.pdffactory.com