Технологии разработки программного обеспечения Структуризация классов программной системы

advertisement
Технологии разработки
программного обеспечения
Лекция 9.
Структуризация классов
программной системы
Последовательность выполнения
анализа системы
1. Построение концептуальной статической
модели системы:
– выявляются внешние и интерфейсные классы;
– выявляются сущностные классы;
2. Структуризация программных классов
статической модели.
– выявляются другие программные классы
3. Построение динамической модели системы
на основе реализации вариантов
использования.
• Концептуальная статическая модель
создается на раннем этапе анализа.
• Концептуальная модель
– применяется для моделирования ПрО и
– помогает понять проблемы ПрО.
• Разработка концептуальной статической
модели включает:
1. выделению контекста системы – внешних и
интерфейсных классов;
2. выделению сущностных классов.
Пример концептуальной статической
модели
• Концептуальная
статическая модели
банковской системы.
• Банк предоставляет
сервисы (услуги) для
нескольких Банкоматов
(ATM).
• Каждый ATM является
композитным классом,
который включает
составные части
Типы объектов и классов
• Объекты и классы разделяются в соответствии с
теми ролями, которые они играют в приложении,
на следующие типы:
1. сущностные классы (entity class);
2. интерфейсные (граничные классы, boundary class);
3. управляющие классы (control class);
4. классы прикладной логики (application logic class).
• Большинство приложений будет включать
объекты всех 4 типов.
• Однако, разные виды приложений будут иметь
наибольшее количество классов какого-то одного
типа.
Типы программных классов
• Обычно выделяют следующие типы программных
классов :
• Связи между классами показывают отношение
наследования.
Типы классов приложения
• Обычно выделяют следующие типы программных
классов :
• Связи между классами показывают отношение наследования.
Отнесение объектов к типам
• В большинстве случаев, отнесение объекта к
определенному типу, является очевидным.
• Однако, в некоторых случаях, может оказаться, что объект
удовлетворяет более чем одному описанному ранее
критерию.
• Например: объект может иметь
– характеристики сущностного объекта, тем что он инкапсулирует
некоторые данные и
– характеристики алгоритмического объекта, тем что он
выполняет некоторый существенный алгоритм..
• В этом случае данный объект следует отнести к тому типу,
которая кажется более подходящей.
• Более важно определить все объекты в системе, чем
чрезмерно беспокоиться о том, к какому точно типу их
отнести в не понятных случаях.
• Для каждой типа объектов имеется некоторый
шаблон их поведения объектов, который
описывает, как они взаимодействуют со
своими соседними объектами.
• Полезно понять типичный шаблон поведения
объектов,
– когда некоторая категория объектов используется
в приложении, то очень вероятно, что ее объекты
взаимодействует с соседними объектами
одинаковых типов аналогичным способом.
1. Сущностные объекты
• Сущностной объект (entity object) это
программный объект, который содержит
информацию и предоставляет доступ к
хранилищу, которое хранит данную
информацию.
– во многих случая является устойчивым
(persistent).
• В некоторых случаях доступ к сущностному
объекту можно получить через сервисный
объект.
2. Интерфейсный (граничный) объект
•
•
Граничный объект (boundary object) это программный
объект, который взаимодействует и обменивается
информацией с внешней средой (контекстом).
Граничные объекты далее делятся на следующие
подтипы:
1. объект взаимодействия с пользователем (user
interaction object) - программный объект,
взаимодействующий и предоставляющий интерфейс для
пользователя – человека;
2. объект – заместитель (Proxy object) - программный
объект, который взаимодействует и обменивается
информацией с внешней системой или подсистемой;
3. объект взаимодействующий с устройством
ввода/вывода (device I/O boundary object).
3. Управляющий объект
• Управляющий объект (control object) это
программный объект, выполняющий
координацию работы набора объектов.
• Управляющие объекты делятся на
следующие подтипы:
1. координирующие объекты;
2. управляющие объекты, зависящие от состояния;
3. таймерные объекты, формирующие сообщения по
заданному временному.
4. Объект прикладной логики
•
•
Объект прикладной логики (application logic object)
это программный объект, содержащий подробности
прикладной логики.
Требуется, когда желательно скрыть прикладную
логики отдельно от данных, которые она использует,
–
•
•
Например, чтобы прикладной логикой можно было
обмениваться независимо от данных.
В информационных системах, объекты прикладной
логики обычно являются объектами бизнес-логики.
А в СРВ, научных и инженерных приложениях,
объекты прикладной логики обычно являются
алгоритмическими объектами.
5. Сервисные объекты
• Сервисные объекты это еще один тип
программных объектов.
• Они предоставляют сервисы клиентским
объектам, обычно в сервисориентированных архитектурах (ServiceOriented Architectures, SOA) и приложениях.
UML стереотипы
• Для задания типа конкретного класса на UML
диаграммах используются стереотипы.
• Каждый поведенческий шаблон изображается на
UML диаграммах в виде <<тип>>
• Такое разделение по типам применяется
одинаково и к классам и к объектам.
1. Моделирование контекста
системы
Моделирование контекста системы
• Важно понять пределы компьютерной системы,
– что должно быть включено в саму систему,
– что должно остаться вне системы.
• Моделирование контекста явно задает, что
находится внутри системы, а что находится вне
системы.
• Моделирование контекста может быть сделано
– на уровне всей системы (технического и
программного обеспечения) или
– на уровне программной системы (только ПО).
• Моделирование контекста системы состоит
в следующем:
1. определение внешних сущностей,
взаимодействующих с сиcтемой (внешние
классы);
2. определение классов, которые будут
взаимодействовать с этими внешними
сущностями (интерфейсные классы).
• В диаграмме классов контекста (ДКК) системы
задает явную границу между
– системой (технической и программной),
рассматриваемой в виде черного ящика, и
– внешней средой (которая теперь включает ТО)
• Такое задание границ вокруг системы является
более детальным, чем то, что обычно
показывается в диаграммах вариантов
использования.
Пример технич. и прогр. системы
• На контекстной ДК технич. и прогр. обеспечения
банковской системы показываются ее взаимодействие
с актерами:
– ATM Клиентами и
– ATM Операторами
• Все другие элементы включаются (как часть) в общую
технич. и прогр. систему.
Стереотипы для задания типа
внешних классов
• Внешние классы также описываются с помощью UML
стереотипов.
• На схеме показаны типы внешних классов.
• Каждый прямоугольник представляет разные типы
внешних классов, а связи между ними отношения
наследования.
Пример стереотипов для
внешних классов
• Стереотипы для классификации внешних классов
системы:
– «external user» («внешний пользователь»),
– «external system» («внешняя система»),
– «external timer» («внешний таймер»).
• Классы внешних устройств далее
классифицируются следующим образом:
1. внешние классы устройств ввода (например:
датчики);
2. внешние классы устройств вывода (например,
исполнительные механизмы (приводы, actuator));
3. внешние классы устройств ввода/вывода (ATM card
reader).
Пример диаграммы классов контекста
• Контекстная диаграмма классов для Банковской
Системы.
Пример диаграммы классов контекста (2)
• Диаграмма классов контекста Банковской Системы
со стереотипами
Моделирование человекапользователя системой
• Человек-пользователь часто взаимодействует с ПС с
помощью стандартных устройств ввода/вывода, таких,
как клавиатура/дисплей и «мышь».
– Характеристики таких стандартных устройств не являются
важными, т.к. они управляются ОС.
• Более важным является интерфейс с пользователем в
терминах
– информации, которая выводится для пользователя и
– информации, которая вводится пользователем.
• Поэтому внешний пользователь, взаимодействующий с
системой при помощи стандартных устройств,
моделируется как «внешний пользователь», а не как
устройство.
Рекомендация
• Если пользователь-человек взаимодействует с
системой с помощью стандартных устройств
ввода/вывода, то только тогда он показываться в
виде внешнего класса пользователей
• Если пользователь взаимодействует с ПС с помощью
специфичных для приложения устройств
ввода/вывода, то эти устройства должны
показываться в виде внешних классов устройств
ввода/вывода.
• Для встроенных систем реального времени
желательно выявлять низкоуровневые
внешние классы, которые соответствуют
физическим устройств ввода/вывода, для
которых ПС должна выполнять
взаимодействие.
• Такие внешние классы показываются с
помощью стереотипа «внешнее устройство
ввода/вывода» («external I/O device»).
• Примерами таких внешних устройств I/O в
«Автоматизированной Системе Управления
Транспортными средствами» являются:
– внешнее устройство ввода - «Датчика прибытия»
(Arrival Sensor);
– внешнее устройство вывода - «Двигатель» (Motor).
Класс «внешняя система»
• Класс «внешняя система» («external system»)
требуется, в том случае, если
разрабатываемая система взаимодействует с
другими системами (посылает или получает от
них данные).
– Например, в «Автоматизированной Системе
Управления ТC») система взаимодействует с двумя
внешними системами:
1. Управляющая система
2. Показывающая система
Класс «внешний таймер»
• Класс «внешний таймер» («external timer»)
показывается в контекстной ДК,
– если требуется отслеживать время;
– и/или если требуется внешний таймер для запуска
(инициирования) внешних действий в данной
системе.
• Классы «внешний таймер» наиболее часто
требуются в системах реального времени (СРВ).
– Пример: в «Автоматизированной Системе Управления
ТС» моделируются «Часы» (Clock).
– Они требуются, т.к. ПС требуются события от внешнего
таймера, чтобы инициировать различные
периодически повторяющиеся действия.
Связи внешних классов с системой
• Ассоциации между внешними классами и
агрегированным классом ПС и показывается на
контекстной диаграммы классов.
• Также показывается имя и кратность (multiplicity)
таких ассоциаций.
• Стандартными именами таких ассоциаций в
контекстной ДК ПС являются
1. «Вводить_в» (Inputs to);
2. «Выводить_в» (Outputs to);
3. «Общаться_с» (Communicates with);
4. «Взаимодействовать_с» (Interacts with);
5. «Отправлять_сигналы» (Signals).
Выявление интерфейсных
(граничных) классов
Интерфейсные классы
• Внешние классы это классы, описывающие
сущности, которые находятся вне системы и
взаимодействуют с ней.
• Интерфейсные (граничные) классы это
классы, находящиеся внутри системы,
которые взаимодействуют и обмениваются
данными с внешними классами.
• Для определения интерфейсных классов
программной системе, необходимо
рассмотреть внешние классы, с которыми они
связаны.
Выявление интерфейсных классов
• Выявление внешних классов,
взаимодействующих с системой, помогает
выявить некоторые из классов внутри
системы, а именно интерфейсные классы.
• Каждый внешний класс взаимодействует с
некоторым интерфейсным классом.
• Между внешними и соответствующими им
интерфейсными классами существует
взаимно-однозначное соответствие (при
условии, что внешние классы правильно
выявлены).
Типы интерфейсных классов
1. Классы интерфейсов пользователя.
2. Классы прокси-объектов.
3. Классы интерфейсов устройств.
Изображение внешних и
интерфейсных классов
• Ранее рассматривалось, как провести границу системы и
разработать диаграмму классов контекста системы, на которой
представлены все внешние классы, взаимодействующие с
системой.
• Полезно уточнить эту диаграмму, показав интерфейсные и.
внешние классы.
• Интерфейсные классы расположены внутри системы - точнее, на
границе между системой и внешней средой.
• Система показана в виде пакета, внутри которого изображены
интерфейсные классы, являющиеся частью системы.
• Каждый внешний класс взаимно-однозначно связан с каким-либо
интерфейсным.
• Таким образом, начав с внешних классов, изображенных на
рассматриваемой диаграмме, задача уточняется до выявления
интерфейсных классов.
Пример показа внешних и
интерфейсных классов
• Внешние и интерфейсные классы в банковской системе
1. Объекты интерфейса пользователя
• Объект интерфейса пользователя описывает
интерфейс с человеком на основе таких
стандартных устройств, как клавиатура, дисплей
и мышь.
• Стандартные устройства ввода/вывода обычно
управляются операционной системой, так что в
приложение не нужно включать специальные
объекты для интерфейса с ними.
• В зависимости от применяемой технологии
интерфейс пользователя бывает
– очень простым (в виде командной строки) или
– очень сложным (графический интерфейс пользователя
- GUI).
Пример класса и объекта
взаимодействия с пользователем
• Пример представления простого класса,
выполняющего взаимодействие с
пользователем, который называется «Operator
Interaction»:
Объекты интерфейса пользователя
• Примером простого объекта интерфейса
пользователя является «Интерфейс Оператора»,
который
– принимает команды оператора,
– запрашивает показания датчика от сущностного
объекта «Хранилище Показаний Датчика» и
– отображает полученные данные на дисплее.
• Объект интерфейса пользователя может быть
составным и включать несколько более
простых объектов.
• Это значит, что актеры взаимодействуют с
системой при помощи нескольких объектов
интерфейса пользователя, последовательно
или параллельно.
• Для таких объектов предусмотрен стереотип
«интерфейс пользователя» («user
interaction»).
2. Прокси объекты
• Объект-заместитель (прокси объект)
взаимодействует и обменивается данными с
внешней системой.
• Прокси объект является представителем
внешней системы и скрывает детали того,
«как» выполняется взаимодействие с внешней
системой.
• Например: прокси класс для робота «Захвати и
положи».
• Каждый прокси объект скрывает детали того, как
он взаимодействует и обменивается данными с
конкретной внешней системой.
• Наиболее вероятно, что прокси объект
обменивается данными, с помощью сообщений,
с внешней, управляемой компьютером системой
(такой, как робот в рассмотренном примере), а
не с датчиками и исполнительными
устройствами, как это делают граничные объекты
устройств ввода/вывода.
• Однако, такие задачи рассматриваются уже на
этапе проектирования.
3. Объекты интерфейса устройства
• Объект интерфейса устройства представляет
собой программный интерфейс с аппаратным
устройством ввода/вывода.
• Для нестандартных устройств требуются
объекты интерфейса устройства, относящиеся
к уровню приложения.
• Чаще они встречаются в системах реального
времени, хотя бывают необходимыми и в
других системах.
• Физический объект в ПрО приложения
является объектом реального мира, который
имеет физические характеристики.
– Например, его может видеть и к нему можно
прикоснуться.
• Для каждого физического объекта реального
мира, который релевантен решаемой
проблеме, должен быть соответствующий ему
программный объект в системе.
• Реальные физические объекты обычно
взаимодействуют с системой при помощи датчиков и
приводов.
• Такие объекты либо передают информацию в систему
посредством датчиков, либо получают от нее
управляющие воздействия на приводы.
• С точки зрения программной системы объекты
реального мира — это, по сути дела, устройства
ввода/вывода, поставляющие в систему входную
информацию и получающие от нее выходную.
• Поскольку объекты реального мира соответствуют
устройствам ввода/вывода, то осуществляющие
интерфейс с ними программные объекты называются
объектами интерфейса устройств.
Пример объекта интерфейса устройства
ввода на диаграмме коммуникации.
• Объект интерфейса устройства ввода «Интерфейс
Датчика Температуры» получает информацию о
температуре от объекта, представляющего физическое
устройство ввода, - Датчика Температуры.
Моделирование классов
сущностей
Сущностные классы
• Сущностные классы (классы-сущности, entity
classes) это концептуальные классы, активно
использующие данные.
– их основная цель состоит в хранении данных и
предоставлении доступа этим данным.
• Во многих случаях, классы сущностей
являются постоянными (persistent)
– эти данные являются долгоживущими и должны
храниться файлах или БД.
• Сущностные объекты хранят данные и
предоставляют ограниченный доступ к ним с
помощью своих операций.
• Иногда сущностному объекту может
понадобиться доступ к информации,
инкапсулированной в других аналогичных
объектах.
• В системах реального времени такие объекты
часто располагаются в оперативной памяти.
• Во многих информационных системах
инкапсулированные ими данные находятся в
базе данных.
Пример атрибутов классов сущностей
системы он-лайн торговли
Выявление сущностных классов
• Сущностные классы выявляются с помощью
ранее рассмотренных методов:
– грамматический анализ «существительное
глагол»;
– CRC анализ;
– объектный блиц.
Пример концептуальной статической
модели : сущностные классы
• Концептуальная статическая модель банковской
системы: сущностные классы
Пример моделирования сущностных
классов
• Пример моделирования сущностных классов – система онлайн торговли.
• В описании проблемы упоминаются:
– клиенты (customers),
– счета (accounts) и
– каталоги (accounts) .
Пример сущностного класса и
объекта
• На рис. показан фрагмент диаграммы коммуникации,
объект «Счет» получает сообщения «Открыть»,
«Закрыть», «Кредитовать», «Дебетовать» и
«Прочитать» и отвечает на них, предоставляя
информацию о «Балансе» и «Состоянии».
• «Счет» также используется в варианте использования
ежемесячной подготовки и печати выписок из счета
для клиентов.
Примером сущностного класса (2)
• Примером сущностного класса в приложении, которое занимается
мониторингом датчика реального времени, может служить класс
«Показания Датчика» (рис. 9.10), где хранится информация об аналоговых
датчиках.
• Его атрибуты - имя Датчика, значение Датчика, верхний Предел, нижний
Предел и состояние Тревоги.
• Экземпляром этого класса может быть объект показания Датчика
Температуры, который получает сообщения Прочитать и Обновить и
отвечает, возвращая Текущие Показания Датчика.
• Как показано на рисунке, объект, нуждающийся в получении последних
показаний датчика, посылает сообщение Прочитать.
• Объект, который считал показания реального датчика и хочет обновить
объект показания Датчика Температуры, посылает сообщение Обновить.
3. Управляющие классы и объекты
• Управляющие объекты (control object) это
программные объекты, выполняющие
координацию работы для наборов объектов.
• Управляющие объекты делятся на:
1. координирующие объекты;
2. управляющие объекты, зависящие от
состояния;
3. таймерные объекты, связанные с отправкой
сообщений в заданные моменты времени.
Управляющие объекты (2)
• Управляющий объект обеспечивает общую
координацию исполнения варианта
использования.
• Для простых ВИ управляющие объекты не нужны,
но для более сложных могут понадобиться.
• Управляющий объект похож на дирижера
оркестра, который распоряжается поведением
других объектов, участвующих в ВИ, говоря
каждому из них, что и когда он должен делать.
• В зависимости от особенностей ВИ управляющий
объект может зависеть или не зависеть от
состояния.
1. Объекты-координаторы
• Объект-координатор задает весь порядок работы
набора взаимосвязанных объектов на основе
поступающих входных данных, вне зависимости
от состояния.
• Он устанавливает, когда и в какой
последовательности будут действовать другие
объекты, участвующие в прецеденте.
• Координатор принимаем решение только на
основе поступающих входных данных и не
зависят от состояния.
• Иными словами, действие, инициированное
координатором, определяется исключительно
информацией во входном
Пример объекта-координатора
• Пример объекта-координатора и объектов бизнеслогики.
• В банковской системе такими объектами являются
–
–
–
–
Менеджер Транзакций Снятия,
Менеджер Транзакций Перевода,
Менеджер Транзакций Получения Справки и
Менеджер Транзакций Проверки ПИН-кода.
2. Управляющие объекты, зависящие от
состояния
• Поведение управляющего объекта, зависящего от
состояния, различно в каждом из возможных состояний.
• Для определения такого объекта применяется конечный
автомат, и графически он изображается на диаграмме
состояний.
• Существует два вида диаграммы состояний
– плоские и
– иерархические.
• Управляющий объект, зависящий от состояния, получает
входные события, которые вызывают переходы между
состояниями, и генерирует выходные события,
управляющие работой других объектов.
• Выходное событие зависит не только от входного, но и от
текущего состояния объекта.
Пример управляющего объекта,
зависящего от состояния
• Примером управляющего объекта, зависящего от
состояния, служит объект «Управление Банкоматом»,
определяемый с помощью диаграммы состояний.
• Из рисунка видно, что этот объект управляет двумя
объектами интерфейса устройства –
– Интерфейсом Устройства Печати Чеков и
– Интерфейсом Устройства Выдачи Наличных.
• В системах реального времени обычно есть
один или несколько управляющих объектов,
зависящих от состояния.
• Может существовать даже несколько
объектов одного типа.
• Каждый объект исполняет экземпляр одного и
того же конечного автомата (изображаемого в
виде диаграммы состояний), хотя в каждый
момент времени эти объекты, скорее всего,
оказываются в разных состояниях.
• В банковской системе примерами такого рода
являются банкоматы, имеющие собственный
зависящий от состояния управляющий объект
«Управление Банкоматом», который исполняет
свой экземпляр диаграммы состояний.
• Другой пример - система управления лифтами,
моделируемой с помощью управляющего
объекта «Управление Лифтом» посредством
диаграммы состояний.
• Очевидно, что у любого лифта есть свой объект
«Управление Лифтом».
3. Объекты-таймеры
• Объект-таймер - это управляющий объект, активизируемый
внешним таймером, например тактовым генератором или часами
операционной системы.
• Объект-таймер либо сам осуществляет некоторое действие, либо
активизирует другой объект, который выполнит нужное действие.
• Объект «Таймер Пути» активизируется событием, которое
генерирует внешний таймер «Тактовый Генератор».
• Объект-таймер посылает сообщение «Вычислить объекту Путь»,
который вычисляет общее пройденное автомобилем расстояние.
4. Классы и объекты прикладной
логики
• Обычно выделяют 3 типа объектов
прикладной
1. Объекты бизнес-логики
2. Алгоритмические объекты
3. Сервисные объекты.
• Как и управляющие объекты, объекты
прикладной логики наиболее вероятно будут
рассматриваться, когда будет разрабатываться
в динамическая модель, а не начальная
концептуальная модель.
1. Объекты бизнес-логики
• Объекты бизнес-логики определяют логику
обработки приложением запросов клиентов.
• Их назначение заключается в инкапсуляции
бизнес-правил, которые могут изменяться
независимо друг от друга.
• Обычно во время выполнения объекты
бизнес-логики обращаются к сущностным
объектам.
• Объекты бизнес-логики нужны только в
некоторых ситуациях.
• иногда бизнес-логику разумно инкапсулировать в
отдельный объект,
• иногда она настолько проста, что ее можно
реализовать в виде операции сущностного
объекта.
• Общая рекомендация такова:
– если для выполнения бизнес-правила приходится
обращаться к двум или более сущностным объектам,
вводите отдельный объект бизнес-логики;
– если же для выполнения правила достаточно одного
сущностного объекта, предоставьте это операции
самого объекта.
Пример объекта бизнес-логики
• На диаграмме показан пример объекта бизнес-логики – «Менеджер
Транзакций Снятия денег».
• Он обслуживает запросы клиентов на снятие денег.
• Например:
– первое бизнес-правило может состоять в том, что после снятия на счету
клиента должно остаться не менее 100 рублей.
– Второе правило гласит, что по дебетовой карточке клиент не имеет нрава
снимать более 30000 рублей в день.
• Менеджер Транзакций Снятия обращается к объекту Счет, чтобы
удостовериться в выполнении условий первого правила.
• Для проверки второго правила он запрашивает объект Дебетовая
Карточка, который хранит накопительный итог сумм, снятых клиентом
банкомата в течение дня.
• Если хотя бы одно правило не выполняется, запрос на снятие денег
отклоняется.
• Для выполнения бизнес-правил объект бизнес-логики обычно
должен взаимодействовать с сущностными объектами.
• В этом отношении он напоминает объект-координатор.
• Однако, если в обязанности координатора входит управление
работой других объектов, объект бизнес-логики отвечает, прежде
всего, за выполнение бизнес-правил.
2. Алгоритмические объекты
• Объект-алгоритм инкапсулирует алгоритм, применяемый в
данной предметной области.
• Такие объекты чаще всего встречаются
– в приложениях реального времени,
– а также научных и инженерных задачах в тех случаях,
когда в предметной области имеется нетривиальный
алгоритм, который может изменяться независимо от
других ее аспектов.
• Простые алгоритмы обычно реализуются как операции
сущностного объекта, работающие с хранящимися в нем
данными.
• Во многих научных и инженерных приложениях алгоритмы
уточняются итеративно, поскольку их совершенствование,
например с точки зрения производительности и точности
вычислений, не зависит от данных.
• В системе круиз-контроля объект-алгоритм Крейсер
вычисляет, как надо изменить тягу путем сравнения
текущей скорости автомобиля с требуемой
крейсерской скоростью.
• Алгоритм достаточно сложен, поскольку требуется
плавно разгонять или притормаживать автомобиль,
чтобы пассажиры не испытывали неудобств.
• Объект-алгоритм часто инкапсулирует данные,
необходимые для выполнения алгоритма.
• Это могут быть начальная информация,
промежуточные результаты или пороговые
данные, например максимальные и
минимальные значения.
• Объект-алгоритм обычно взаимодействует с
другими объектами. В этом отношении он
напоминает объект-координатор.
• Но в отличие от координатора, который должен
управлять другими объектами, назначение
объекта-алгоритма состоит, прежде всего, в
инкапсуляции и выполнении алгоритма.
3. Сервисные объекты
• Сервисный объект это объект, который предоставляет
услуги (сервис) для других объектов.
• Обычно они используются в сервис-ориентированных
архитектурах и приложениях.
• Клиентский объект может сделать запрос на услугу от
сервисного объекта, на который сервисный объект будет
отвечать.
• Сервисный объект сам никогда не инициирует запрос,
однако, в ответ на запрос в услуге он может искать помощи
у других сервисных объектов.
• Сервисные объекты играют важную роль в сервисориентированных архитектурах (SOA), хотя они также
используются и в других архитектурах, таких, как
клиент/серверная архитектуры и основанных на
компонентах архитектурах ПО.
• Сервисный объект может инкапсулировать данные,
которые должны для обработки запроса клиента
сервиса или для доступа к другому сущностному
объекту (или объектам), которые содержат эти данные.
• Примером сервисного класса является «Сервис
Каталога» (Catalog Service):
• На рис. показан пример выполнения экземпляра класса «Catalog
Service».
• Объект класса «Catalog Service» предоставляет поддержку для
просмотра различных элементов из каталога поставщика и для их
выбора.
• Координатор «Customer Coordinator» помогает объекту класса
«Customer Interaction» найти каталог поставщика, путем
предоставления объекта «Catalog Service» и выполнения выборки
из данного каталога.
Download