Вы находитесь на странице: 1из 6

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,

СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ


 
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ


ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА» (СПбГУТ)
Кафедра информационных управляющих систем

Практическая работа № 03

по дисциплине

«ПРОГРАММИРОВАНИЕ КРИТИЧЕСКИХ СЕРВИСОВ»

Студент гр. ИБ-04з ____________________________ Алексеев Е.А.


(подпись)

Проверил ___________________________ Параничев А.В.


(оценка и подпись)

Санкт-Петербург
2021 год
2

Практическая работа № 03


ЗАДАЧА.
Построить диаграмму профилей Full-stack приложения, определяя
требования к развертыванию MSA. Исходные данные следует взять из
предыдущей практической работы.
РЕШЕНИЕ.
Дополнительные исходные данные для построения диаграммы
профилей для варианта 08:
Значени Параметр по цифре
Параметр по цифре y
е z
Шаблоны GoF-
Видимые сущности в Константы в стереотипе стандарта в
Цифра стереотипе параметров ограничений метаклассе
yz  администратора администратора операций
администратора
0 Список заказов; Время отправки и число
Список номеров телефона / вопросов пользователю;
имен; Сообщения в логе –
Время ожидания действий
пользователя
8 – – Abstract Factory;
Façade;
Strategy
 видимые сущности в стереотипе параметров администратора:
o список заказов;
o список номеров телефона / имен;
o время ожидания действий пользователя;
 константы в стереотипе ограничений администратора:
o время отправки и число вопросов пользователю;
o сообщения в логе;
 шаблоны GoF-стандарта в метаклассе операций администратора:
o порождающий паттерн: Abstract Factory;
o структурирующий паттерн: Façade;
o поведенческий паттерн: Strategy.
Типовые параметры, ограничения и операции представлены на рис. 3,
учитывая данные предыдущей практической работы:
3

Рис. 3. UML-диаграмма профилей для варианта 08


 профиль администратора (Admin) определен следующими
элементами:
o скрытые требуемые параметры: опции драйвера Selenium для Opera;
o видимые требуемые параметры: список заказов, список номеров
телефона / имен, время ожидания действий пользователя;
o требуемые программные компоненты, определяющие ограничения:
WhatsApp, Chrome, PyCharm, Selenium;
o требуемые константы, определяющие ограничения: время отправки
запроса, число вопросов пользователю, сообщения в логе;
o предметная область операций Create и Delete: список заказов;
o предметная область операций Update: список заказов и время
ожидания действий пользователя;
o предметная область операции Read: список номеров телефона / имен;
o применение шаблона Singleton: обеспечить создание единственного
WhatsApp-бота для данного аккаунта;
o применение шаблона Flyweight: определить структуру «один-к-
одному» управляемых данных;
o применение шаблона Iterator: выполнять перечисление заказов через
унифицированный объект;
 профиль пользователя (TopUser, User, Guest) определен следующими
элементами (при этом не предусмотрены следующие опции метакласса
CRUD: предметная область операции Update и применение шаблонов
проектирования):
o скрытые параметры: номер телефона / имя;
o видимые параметры: варианты ответа;
o программные компоненты, определяющие ограничения: WhatsApp;
o константы, определяющие ограничения: опция согласия с рассылкой;
4

o действия операции Create: ответное сообщение при разрешении


рассылки;
o действия операции Read: сообщение бота;
o действия операции Delete: ответное сообщение с запретом рассылки.
Исходный код PlantUML-диаграммы:
@startuml
left to right direction
title Диаграмма профилей Full-stack приложения
folder pAdmin as "<U+003C><U+003C>profile<U+003E><U+003E>\n
Администратор"{
rectangle AdminOper as
"<U+003C><U+003C>metaclass<U+003E><U+003E>\n **CRUD**"{
}
rectangle AdminParams as
"<U+003C><U+003C>stereotype<U+003E><U+003E>\n Parameters"{
}
rectangle AdminConstrs as
"<U+003C><U+003C>stereotype<U+003E><U+003E>\n Constraints"{
}
note right of AdminOper
**Create:** {Cписок заказов};
**Read:** {Cписок номеров
телефона / имен};
**Update:** {Cписок заказов;
Время ожидания
действий пользователя};
**Delete:** {Cписок заказов};
__GoF Patterns__: {Singleton;
Flyweight;
Iterator}
end note
note left of AdminParams
__Hidden__: {Опции драйвера
Selenium для Chrome};
__Visible__: {Список заказов;
Список номеров
телефона / имен;
Время ожидания
действий пользователя}
5

end note
note left of AdminConstrs
__Components__**:** {WhatsApp; Chrome;
PyCharm; Selenium}
__Constants__**:** {Время отправки запроса;
Число вопросов пользователю;
Сообщения в логе}
end note
}
AdminParams -[bold]->> AdminOper : {required}
AdminConstrs -[bold]->> AdminOper : {required,\nstrict}
folder pUser as "<U+003C><U+003C>profile<U+003E><U+003E>\n
Пользователь"{
rectangle UserOper as "<U+003C><U+003C>metaclass<U+003E><U+003E>\
n **CRUD**"{
}
rectangle UserParams as
"<U+003C><U+003C>stereotype<U+003E><U+003E>\n Parameters"{
}
rectangle UserConstrs as
"<U+003C><U+003C>stereotype<U+003E><U+003E>\n Constraints"{
}
note right of UserOper
**Create:** {Ответное сообщение
при разрешении рассылки};
**Read:** {Cообщение бота};
**Update:** <не поддерживается>;
**Delete:** {Ответное сообщение
с запретом рассылки};
__GoF Patterns__: <не реализуются>
end note
note left of UserParams
__Hidden__: {Номер телефона / имя};
__Visible__: {Варианты ответа}
end note
note left of UserConstrs
__Components__**:** {WhatsApp};
__Constants__**:** {Опция согласия
с рассылкой}
6

end note
}
UserParams -[bold]->> UserOper
UserConstrs -[bold]->> UserOper : {strict}
@enduml

Вам также может понравиться