UC1: Произвести моделирование: различия между версиями

Материал из CAMaaS preliminary wiki
Перейти к навигации Перейти к поиску
 
(не показано 7 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{NavBar|{{Навигация:Use cases}}\[[UC1: Произвести моделирование]]}}
== Аннотированное описание ==
== Аннотированное описание ==


=== Основной сценарий успешного выполнения ===
=== Основной сценарий успешного выполнения ===


[[Заглавная страница#Действующие лица и их роли | Моделирующий пользователь]] запускает клиент доступа к <u>системе моделирования</u>. <u>Моделирующий пользователь</u> устанавливает соединение с серверной подсистемой CAMaaS. <u>Моделирующий пользователь</u> проходит процедуры аутентификации и авторизации. <u>Моделирующий пользователь</u> задает геометрическую и физическую модель среды распределения поля, загружает ее с локального хранилища или получает эту модель путем обращения к <u>системе</u>. <u>Моделирующий пользователь</u> задает параметры вывода результатов моделирования, либо загружает их с локального хранилища или путем обращения к <u>системе</u>. На основе физико-геометрической модели и параметров вывода результатов <u>система</u> выполняет моделирование поля. <u>Система</u> отображает результаты моделирования в виде таблиц или графически на основе этих таблиц.
{{UC1 brief}}


=== Альтернативные сценарии ===
=== Альтернативные сценарии ===


Если <u>моделирующий пользователь</u> не зарегистрирован в <u>системе</u>, и политикой безопасности разрешена удаленная регистрация, <u>моделирующий пользователь</u> имеет возможность зарегистрироваться удаленно либо отказаться от доступа к <u>системе</u>.
Если [[моделирующий пользователь]] не зарегистрирован в <u>системе</u>, и политикой безопасности разрешена удаленная регистрация, [[моделирующий пользователь]] имеет возможность зарегистрироваться удаленно либо отказаться от доступа к <u>системе</u>.
 
Если <u>моделирующий пользователь</u> не проходит процедуру аутентификации, и политикой безопасности разрешена удаленная регистрация, <u>моделирующему пользователю</u> предлагается возможность зарегистрироваться либо отказаться от использования <u>системы</u>.
 
Если <u>моделирующий пользователь</u> не проходит процедуру аутентификации, соединение с ним автоматически разрывается.
 
При отказе <u>моделирующего пользователя</u> от использования <u>системы</u> соединение с ним разрывается.


Информация о проектах хранится на стороне <u>моделирующих пользователей</u>, которые, в свою очередь, самостоятельно реализуют хранение проектов моделирования. На стороне сервера данные о проекте хранятся лишь временно, пока над ними ведется работа,
Информация о проектах хранится в системе в [[банк данных пользователей|банке данных пользователей]], а также, опционально, на стороне [[моделирующий пользователь|моделирующих пользователей]].


Если <u>моделирующий пользователь</u>, успешно вошедший <u>систему</u> и единолично работающий над своим проектом, разрывает соединение (аварийно или нет), данные о проекте на стороне сервера удаляются.  
Если [[моделирующий пользователь]], успешно вошедший <u>систему</u>, разрывает соединение (аварийно или нет), и системой используется конфигурация с автосохранением пользовательских данных, модельный проект сохраняется в [[банке данных пользователей]]. Если при этом конкретный [[моделирующий пользователь]] работал над своим проектом единолично, данные о проекте удаляются из всех темпоральных хранилищ предметно-независимой подсистемы системы моделирования. Однако при этом, если к моменту разрыва соединения был запущен процесс моделирования, данные о процессе остаются в системе независимо от соединения пользователя, запустившего процесс.


Если более одного <u>моделирующего пользователя</u> работают над проектом, данные о нем остаются на серверной стороне пока все <u>моделирующие пользователи</u> не завершат работу.
Если более одного [[моделирующий пользователь|моделирующего пользователя]] работают над проектом, темпоральные данные о проекте остаются на серверной стороне пока все пользователи не завершат работу над этип проектом (т.е. пока все ссылки на проект не будут уничтожены).


Если хотя бы один <u>моделирующий пользователь</u> ведет работу в <u>системе</u> над модельным проектом, новые <u>моделирующие пользователи</u> имеют возможность подключиться к работе, загрузив проект с сервера.
Если хотя бы один [[моделирующий пользователь]] ведет работу в <u>системе</u> над модельным проектом, новые [[моделирующий пользователь|моделирующие пользователи]] имеют возможность подключиться к работе, загрузив проект с сервера.


Ошибки пользовательского ввода, если это возможно, идентифицируются до выполнения собственно моделирования поля, то есть во время самого ввода. При этом <u>моделирующему пользователю</u> позволяется их быстрое исправление.
Ошибки пользовательского ввода, если это возможно, идентифицируются до выполнения собственно моделирования поля, то есть во время самого ввода. При этом [[моделирующий пользователь|моделирующему пользователю]] позволяется их быстрое исправление.


Пользовательские ошибки, идентифицируемые лишь во время процедуры моделирования, сбрасывают результаты моделирования, полученные на момент обнаружения ошибки, при этом данные об ошибке всегда возвращаются <u>моделирующему пользователю</u> и,  в зависимости от настроек системы, помещаются в системный журнал.
Пользовательские ошибки, идентифицируемые лишь во время процедуры моделирования, сбрасывают результаты моделирования, полученные на момент обнаружения ошибки, при этом данные об ошибке всегда возвращаются [[моделирующий пользователь|моделирующему пользователю]] и,  в зависимости от настроек системы, помещаются в системный журнал.


Любые системные ошибки рассматриваются как исключительные. При их возникновении удаляются результаты моделирования, полученные на момент возникновения ошибочной ситуации, а сведения об ошибке заносятся в системный журнал.
Любые системные ошибки рассматриваются как исключительные. При их возникновении удаляются результаты моделирования, полученные на момент возникновения ошибочной ситуации, а сведения об ошибке заносятся в системный журнал.
Строка 35: Строка 31:
Произвести моделирование.
Произвести моделирование.


=== Масштабность<ref>Попытка перевести '''scope'''.</ref> ===
=== Охват системы. ===


Вся система моделирования в целом.
Вся система моделирования в целом.
Строка 45: Строка 41:
=== Основное действующее лицо ===
=== Основное действующее лицо ===


<u>[[Заглавная страница#Действующие лица и их роли | Моделирующий пользователь]]</u>
<u>[[Моделирующий пользователь]]</u>


=== [[Заглавная страница#Целевые пользователи | Заинтересованные стороны]] ===
=== [[Заглавная страница#Целевые пользователи | Заинтересованные стороны]] ===


<u>Моделирующий пользователь</u>: Заинтересован в быстром получении адекватных результатов моделирования в соответствии с заданными им настройками детализации и имеющимися в его распоряжении вычислительными мощностями. ''Под "его" вычислительными мощностями предполагаются мощности, запрошенные у системы в соответствии с политикой их предоставления. См. [[#Открытые вопросы | Открытые вопросы]].'' Также заинтересован в безошибочности работы системы и в том, что его безопасность не будет нарушена (никто не будет действовать от имени пользователя без разрешения последнего, подлинность сервера должна быть подтверждена, на сервер не будут переданы конфиденциальные данные).
<u>[[Моделирующий пользователь]]</u>: Заинтересован в быстром получении адекватных результатов моделирования в соответствии с заданными им настройками детализации и имеющимися в его распоряжении вычислительными мощностями. ''Под "его" вычислительными мощностями предполагаются мощности, запрошенные у системы в соответствии с политикой их предоставления. См. [[#Открытые вопросы | Открытые вопросы]].'' Также заинтересован в безошибочности работы системы и в том, что его безопасность не будет нарушена (никто не будет действовать от имени пользователя без разрешения последнего, подлинность сервера должна быть подтверждена, на сервер не будут переданы конфиденциальные данные).


<u>Поставщик предметно-независимых сервисов</u>: Заинтересован в том, что пользователь докажет свою подлинность и получит в свое распоряжение лишь те информационные и вычислительные ресурсы, на которые он имеет права в соответствии с политиками безопасности и предоставления ресурсов сервера. Также заинтересован в подлинности моделирующей подсистемы.
<u>[[Поставщик предметно-независимых сервисов]]</u>: Заинтересован в том, что пользователь докажет свою подлинность и получит в свое распоряжение лишь те информационные и вычислительные ресурсы, на которые он имеет права в соответствии с политиками безопасности и предоставления ресурсов сервера. Также заинтересован в подлинности моделирующей подсистемы.


<u>Поставщик подсистемы предметной области</u>: Заинтересован в том, что политика предоставления вычислительного ресурса предметно-независимой подсистеме и пользователю не будет нарушена. Заинтересован в подтверждении своей подлинности сервером.
<u>[[Поставщик подсистемы предметной области]]</u>: Заинтересован в том, что политика предоставления вычислительного ресурса предметно-независимой подсистеме и пользователю не будет нарушена. Заинтересован в подтверждении своей подлинности сервером.


=== Предусловия ===
=== Предусловия ===


<u>Моделирующий пользователь</u> имеет информацию, идентифицирующую сервер (напр. адрес).
<u>[[Моделирующий пользователь]]</u> имеет информацию, идентифицирующую экземпляр [[подсистема управления|подсистемы управления]] (напр. адрес).


Серверная подсистема запущена и слушает канал связи.
<u>[[Моделирующий пользователь]]</u> зарегистрирован в системе.
 
<u>Система</u> запущена и слушает канал связи, по которому подключается [[моделирующий пользователь]].


=== Постусловия ===
=== Постусловия ===


<u>Моделирующий пользователь</u> имеет картину распределения характеристик интересующего его поля в заданных им точках геометрической модели среды. Пользователь имеет графическое отображение этой геометрической модели и наложенное на него графическое представление картины распределения поля.
[[Моделирующий пользователь]] имеет картину распределения характеристик интересующего его поля в заданных им точках геометрической модели среды. Пользователь имеет графическое отображение этой геометрической модели и наложенное на него графическое представление картины распределения поля.


=== Главный сценарий успешного выполнения ===
=== Главный сценарий успешного выполнения ===


# <u>Моделирующий пользователь</u> выполняет [[UC3: Инициализация соединения "пользователь-система"]].
# [[Моделирующий пользователь]] через браузер [[Веб-сервер|подключается]] к управляющей подсистеме, выполняя [[UC3: Инициализация соединения "пользователь-система"]].
# <u>Моделирующий пользователь</u> получает доступ к модельному проекту в системе.
# <u>Система</u> отображает пользователю форму для поиска существующего (активного) экземпляра [[Вычислительная подсистема|подсистемы предметной области]], а также, возможно, иные формы выбора подсистемы предметной области (напр. список недавно использованных экземпляров, "избранное" и т.п.).
# <u>Моделирующий пользователь</u> задает геометрическую модель среды распределения поля (визуально, т.е. рисованием 2D или 3D модели, или текстовым описанием координат опорных точек и направляющих).
# <u>Система</u> дополнительно отображает ссылки для создания модельного проекта или его загрузки со стороны пользователя.
# <u>Моделирующий пользователь</u> задает физические свойства компонентов модели среды генерации поля.
# [[Моделирующий пользователь]] начинает работу с модельным проектом (создает новый, загружает с локального хранилища, подключается к работе над существующим проектом, загружает его с банка данных пользователя, восстанавливает автосохранённый проект), задавая проект и геометрическую модель.
# <u>Моделирующий пользователь</u> задает координаты источников моделируемого поля (рисованием или текстовым описанием).
# [[Моделирующий пользователь]] изменяет геометрическую модель. <strike>Все изменения модели на данном этапе остаются локальными.</strike> Результат любого изменения сразу же закачивается на сервер<ref>Для межпользовательского взаимодействия</ref>.
# <u>Моделирующий пользователь</u> задает физические свойства источников поля в соответствии с предметной областью, в которой будет проводиться моделирование, например направленность, частотные характеристики, интенсивность.
# [[Моделирующий пользователь]] задает физические параметры предметной области для элементов геометрической модели, задавая физико-геометрическую модель.
# <u>Моделирующий пользователь</u> задает сетку (положение секущих плоскостей и прямых<ref>Для двумерного случая</ref>), на которой будут накапливаться результаты моделирования поля, на геометрической модели среды распределения поля.
# [[Моделирующий пользователь]] посылает запрос на запуск процедуры моделирования [[подсистема управления|подсистеме управления]] с помощью экземпляра подсистемы предметной области, выбранного пользователем на шаге 4. Запрос должен задавать флаг актуализации данных предметной области, используемый на шаге 11.
# <u>Система</u> визуализирует геометрическую модель среды распределения поля.
# [[Подсистема управления]] сохраняет модель среды, введенную пользователем, в [[Банк данных пользователей|банке данных пользователей]]
# <u>Моделирующий пользователь</u> инициирует процесс моделирования в <u>системе</u> в заданной предметной области.
# [[Подсистема управления]] передает полученную модель подсистеме предметной области для моделирования.
# <u>Система</u> отображает результаты в выбираемом <u>моделирующим пользователем</u> формате: в виде таблиц, описывающих распределение поля и статистические параметры распределения; в виде эквиповерхностей  (для 3D-моделирования) или линий уровня (для 2D-моделирования), наложенных на визуализацию геометрической модели.
# [[Вычислительная подсистема|Экземпляр подсистемы предметной области]] проверяет корректность данных предметной области входной модели (соответствие предметной области, формату и т.п.)
# [[Вычислительная подсистема|Экземпляр подсистемы предметной области]] проверяет актуальность данных предметной области, заданных пользователем для входной модели, данным из [[банк данных предметных областей|базы данных предметных областей]]).
# [[Вычислительная подсистема|Экземпляр подсистемы предметной области]] создает процесс моделирования и возвращает его идентификатор [[подсистема управления|подсистеме управления]].
# [[Подсистема управления]] возвращает полученный идентификатор процесса пользователю.
# [[Вычислительная подсистема|Экземпляр подсистемы предметной области]] выполняет моделирование над локальной копией полученной физико-математической модели среды.
# [[Вычислительная подсистема|Экземпляр подсистемы предметной области]] завершает моделирование и переходит в завершенное состояние.
# [[Моделирующий пользователь]] посылает запрос на получение результатов моделирования.
# <u>Система</u> отвечает пользователю результатами моделирования.
# Браузер выполняет визуализацию результатов моделирования.
# [[Моделирующий пользователь]] локально сохраняет результаты моделирования.


=== Расширения<ref>Альтернативные сценарии успешного выполнения и обработки ошибок</ref> ===
=== Расширения<ref>Альтернативные сценарии успешного выполнения и обработки ошибок</ref> ===


* 1A. Ошибка соединения с сервером, аутентификации или авторизации <u>моделирующего пользователя</u>, аутентификации экземпляра системы.
* 1A. Ошибка соединения с сервером, аутентификации или авторизации [[Моделирующий пользователь|моделирующего пользователя]], аутентификации экземпляра системы.
** 1. <u>Моделирующий пользователь</u> завершает работу с системой.
** 1. [[Моделирующий пользователь]] остается на форме авторизации.
* 2A. <u>Моделирующий пользователь</u> решает создать новый модельный проект или загрузить его с локального хранилища.
* 4A. [[Моделирующий пользователь]] решает создать новый модельный проект  
** 1. <u>Моделирующий пользователь</u> закачивает данные о проекте в систему.
** 1. <u>Система</u> предлагает пользователю выбрать [[Вычислительная подсистема|экземпляр подсистемы предметной области]] (поиск, список недавно использовавшихся, "избранное").
** 2. <u>Моделирующий пользователь</u> задает параметры контроля доступа к проекту.</u>
** 2. [[Моделирующий пользователь]] выбирает экземпляр подсистемы предметной области.
* 3A В случае создания нового проекта, или если пользователь решает выполнить новое моделирование в выбранной им предметной области
*** 2А. [[Моделирующий пользователь]] выбрал некорректный экземпляр подсистемы предметной области (экземпляр по указанному имени не найден, не активен, не доступен для пользователя).
** 1. Пользователь обращается к управляющей подсистемой с запросом на получение списка подсистем предметных областей (т.е. списка самих предметных областей).
**** 1. Повторное выполнение шага 4А1.
** 2. Пользователь выбирает предметную область.
** 2. <u>Система</u> предлагает пользователю выбрать геометрическую модель (поиск, список недавно использовавшихся, "избранное"), создать новую модель или загрузить ее со стороны пользователя.
* 3Б Если пользователь решает загрузить проект из [[банк данных пользователей|банка данных пользователей]]
** 3. [[Моделирующий пользователь]] выбирает метод создания геометрической модели.
** Пользователь получает список доступных ему сохраненных проектов.
*** 3A. При загрузке геометрической модели, существующей в системе моделирования.
** Пользователь выбирает один из проектов
**** 1. Система осуществляет проверку доступа пользователя к модели.
** Пользователь получает имя экземпляра предметной области, для которой задан проект
***** 1А. Доступ запрещен.
** Пользователь скачивает модель среды распространения поля
****** 1. Переход на шаг 4А3.
* 4A. <u>Моделирующий пользователь</u> имеет доступ к базе данных предметной области желает поискать интересующие его удельные параметры там.
**** 2. [[Моделирующий пользователь]] скачивает модель.
** 1. <u>Моделирующий пользователь</u> ищет параметры интересующих его элементов геометрической модели среды распределения поля в банках данных системы.
**** 3. Пользователь изменяет модель. Любые изменения в реальном времени закачиваются в систему.
*** . <u>Моделирующий пользователь</u> не находит необходимых параметров.
*** 3B. Пользователь решает создать новую модель.
**** 1. <u>Моделирующий пользователь</u> задает параметры вручную.
**** 1. Пользователь создает модель. Любые изменения в реальном времени закачиваются в систему.
*** 2A. Нужные <u>моделирующему пользователю</u> параметры найдены в системе.
* 4B. [[Моделирующий пользователь]] решает загрузить проект с локального хранилища.
**** 1. <u>Система</u> создает ассоциацию выбранного <u>моделирующим пользователем</u> объекта с идентификатором параметров в банке данных.
** 1. [[Моделирующий пользователь]] передает файл проекта системе моделирования.
* 4B. <u>Моделирующий пользователь</u> не имеет доступа к банку данных на чтение.
** 2. Система моделирования проверяет имя [[Вычислительная подсистема|экземпляра подсистемы предметной области]] в файле.
** 1. <u>Моделирующий пользователь</u> задает параметры вручную.
*** 2А. В проекте не указано имя [[Вычислительная подсистема|экземпляра подсистемы предметной области]].
* 6A. <u>Моделирующий пользователь</u> имеет доступ к системным банкам данных на чтение и желает поискать параметры выбранных источников поля там.
**** 1. <u>Система</u> предлагает пользователю выбрать [[Вычислительная подсистема|экземпляр подсистемы предметной области]] (поиск, список недавно использовавшихся, "избранное").
** 1. <u>Моделирующий пользователь</u> ищет параметры интересующих его источников поля в банках данных системы.
**** 2. [[Моделирующий пользователь]] выбирает экземпляр подсистемы предметной области.
*** . <u>Моделирующий пользователь</u> не находит необходимых параметров.
***** 2А. [[Моделирующий пользователь]] выбрал некорректный экземпляр подсистемы предметной области (экземпляр по указанному имени не найден, не активен, не доступен для пользователя).
**** 1. <u>Моделирующий пользователь</u> задает параметры вручную.
****** 1. Повторное выполнение шага 4B2A1.
*** 2A. Нужные <u>моделирующему пользователю</u> параметры найдены в системе.
*** 2B. Имя указанное в файле проекта некорректно (экземпляр не найден, не активен или доступ к нему со стороны пользователя запрещен).
**** 1. <u>Система</u> создает ассоциацию выбранного <u>моделирующим пользователем</u> объекта с идентификатором параметров в банке данных.
**** 1. Переход на шаг 4B2A1.
* 6B. <u>Моделирующий пользователь</u> не имеет доступа к банку данных на чтение.
** 3. Система моделирования проверяет имя геометрической модели в файле.
** 1. <u>Моделирующий пользователь</u> задает параметры вручную.
*** 3A. Имя модели уже зарегистрировано в системе.
* *A. В любое время <u>моделирующий пользователь</u> разрывает соединение.
**** 1. <u>Система</u> уведомляет пользователя о конфликте имен и предлагает выполнить объединение с существующей моделью или сгенерировать другое имя для загружаемой модели.
***** 1A. Возникли конфликты объединения.
****** 1. <u>Система</u> предлагает пользователю создать копию геометрической модели с иным именем, в которой используются объединенные параметры, для которых отсутствуют конфликты, а для каждого из конфликтующих параметров предлагается выбор между версиями.
******* 1А. [[Моделирующий пользователь]] отменяет загрузку проекта.
** 4. [[Моделирующий пользователь]] изменяет модель. Любые изменения в реальном времени закачиваются в систему.
* 4C. [[Моделирующий пользователь]] выбирает загрузку найденного им модельного проекта со стороны системы.
** 1. <u>Система</u> проверяет доступность указанных в данных проекта [[Вычислительная подсистема|экземпляра подсистемой предметной области]] и геометрической модели.
*** 1A. [[Вычислительная подсистема|Экземпляр подсистемы предметной области]] не найден.
**** 1. <u>Система</u> предлагает пользователю задать другой экземпляр подсистемы предметной области либо отменить загрузку проекта и перейти на шаг 4 основного сценария.
**** 2. [[Моделирующий пользователь]] делает необходимый выбор.
*** 1B. Геометрическая модель зарегистрирована в системе.
**** 1. Выполнить шаг 4B3A1.
** 2. [[Моделирующий пользователь]] скачивает модель. Любые изменения в реальном времени закачиваются в систему.
* 6А. [[Моделирующий пользователь]] решает задать данные предметной области вручную или загрузить их с локального источника.
** 1. Браузер пользователя, по окончанию ввода пользователем (загрузки) данных предметной области для элемента геометрической модели, загружает данные в систему. Загрузка осуществляется при каждом вводе данных.
* 6B. [[Моделирующий пользователь]] решает использовать данные из [[банк данных предметных областей|банка данных предметных областей]].
** 1. [[Моделирующий пользователь]] указывает конкретную базу данных и конкретный элемент данных в ней.
*** 1A. База данных или элемент не найдены, либо пользователь не имеет необходимых прав доступа.
**** 1. Переход на шаг 6 основного сценария.
** 2. <u>Система</u> ассоциирует с соответствующим элементом геометрической модели ссылку на указанный пользователем элемент данных и копирует в элемент сами данные.
* *A. В любое время [[моделирующий пользователь]] разрывает соединение.
** 1. <u>Система</u> система закрывает канал связи с пользователем.
** 1. <u>Система</u> система закрывает канал связи с пользователем.
*** 1A. Отключившийся <u>моделирующий пользователь</u> являлся единственным на момент обнаружения разрыва пользователем, работающим над проектом.
** 2. <u>Система</u> сохраняет геометрическую модель в [[банк данных пользователя|банке данных пользователя]].
**** 1. Система удаляет данные, связанные с модельным проектом, над которым работал отключившийся <u>моделирующий пользователь</u>.
** 3. Если отключившийся [[моделирующий пользователь]] являлся единственным на момент обнаружения разрыва пользователем, работающим над проектом, <u>система</u> удаляет геометрическую модель из своих темпоральных хранилищ.
* 3-10A. К работе над проектом подключается новый <u>моделирующий пользователь</u>.
* 4-14A. Возникает системная ошибка.
** 1. <u>Моделирующий пользователь</u> задает индивидуальные геометрические параметры сетки, на которой будут накапливаться результаты моделирования поля.
** 1A. <u>Моделирующий пользователь</u> изменяет физико-геометрическую модель среды распределения поля.
*** 1. <u>Система</u> синхронизирует изменения между пользователями, обеспечивая возможность отката изменений.
* 3-10B. Возникает системная ошибка.
** 1. <u>Система</u> пытается предложить пользователю сохранить проект и разорвать соединение с системой.
** 1. <u>Система</u> пытается предложить пользователю сохранить проект и разорвать соединение с системой.
* 3-7А. <u>Моделирующий пользователь</u> вводит в систему неверные параметры, причем ошибка ввода обнаруживается до проведения моделирования поля.
*** 1A. [[Моделирующий пользователь]] решает сохранить проект в [[банк данных пользователей|базе данных пользователей]].
** 1. <u>Система</u> предлагает <u>моделирующему пользователю</u> ввести данные еще раз.
**** 1. <u>Система</u> выполняет сохранение.
* 9A. <u>Система</u> обнаруживает неверно введенные пользователем данные на этапе моделирования поля и исправление возможно на данном этапе.
***** 1A. Ошибка записи в базу данных.
** 1. <u>Система</u> предлагает пользователю скорректировать ввод или прекратить моделирование.
****** 1. Переход на шаг 4-14A1.
*** 1A. <u>Моделирующий пользователь</u> вводит новые данные.
*** 1B. [[Моделирующий пользователь]] решает сохранить проект локально (скачать).
**** 1. <u>Система</u> продолжает моделирование с учетом правки.
**** 1. <u>Система</u> выполняет сохранение.
*** 1B. <u>Моделирующий пользователь</u> отменяет моделирование.
***** 1A. Ошибка сохранения.
**** 1. <u>Система</u> производит откат состояния проекта к состоянию на момент инициации процесса моделирования.
****** 1. Переход на шаг 4-14A1.
* 9B. <u>Система</u> обнаруживает неверно введенные пользователем данные на этапе моделирования поля, но исправление на данном этапе невозможно.
*** 1C. В результате ошибки соединение с пользователем разорвано.
** 1. <u>Система</u> производит откат состояния проекта к состоянию на момент инициации процесса моделирования.
**** 1. Система от имени пользователя пытается сохранить проект в [[банк данных пользователей|базе данных пользователя]].
***** 1A. Возникает ошибка сохранения.
****** 1. Все данные о проекте удаляются из системы.
** 2. Темпоральные данные о проекте удаляются из системы.
* 4-7A. [[Физико-геометрическая модель]] среды меняется со стороны пользователя.
** 1. Браузер пользователя закачивает изменения в <u>систему</u>.
** 2. <u>Система</u> выполняет объединение версий физико-геометрической модели и хранит результат объединения.
*** 2A. Произошел конфликт объединения моделей, поступивших от множества пользователей одновременно.
**** 1. <u>Система</u> выбирает версию для объединения произвольно.
** 3. [[Моделирующий пользователь]] получает объединенную модель в качестве ответа и заменяет им свою версию.
* 10A. Данные предметной области в физико-геометрической модели среды распространения моделируемого поля не верны (не соответствуют предметной области, имеют неверный формат и т.п.).
** 1. [[Вычислительная подсистема|Экземпляр подсистемы предметной области]] возвращает ошибку о неверном формате данных предметной области.
** 2. Переход на шаг 6 основного сценария.
* 11A. [[Моделирующий пользователь]] на шаге 7 основного сценария не указывал на необходимость актуализации данных.
** 1. [[Вычислительная подсистема|Экземпляр подсистемы предметной области]] пропускает проверку данных предметной области на актуальность, осуществляется переход на шаг 12.
* 11B. Для какого-либо элемента не задана ссылка на данные в бвзе данных, или попытка доступа к данным со стороны [Вычислительная подсистема|экземпляра подсистемы предметной области]] вызывает ошибку (в т.ч. отсутствия данных).
** 1. Данные элемента не актуализируются.
* 11B. Для какого-либо элемента данные по ссылке в [[банк данных предметных областей]] являются устаревшими по отношению к копии данных, которые (помимо ссылки) заданы для геометрической модели.
** 1. Данные элемента не актуализируются.
* 12-15A. [[Вычислительная подсистема|Экземпляр подсистемы предметной области]] обнаруживает ошибку пользовательского ввода.
** 1. Процесс моделирования переходит в завершенное моделирования. Результатом моделирования является обнаруженная пользовательская ошибка. Результаты моделирования поля удаляются.
* 14-15А. [[Моделирующий пользователь]] посылает запрос на получение информации о состоянии процесса моделирования.
** 1. [[Вычислительная подсистема|экземпляр подсистемы предметной области]] возвращает код выполнения моделирования.
* 14-15B. [[Моделирующий пользователь]] посылает запрос на получение результатов моделирования.
** 1. [[Вычислительная подсистема|экземпляр подсистемы предметной области]] возвращает либло код ошибки, соответствующий неверному запросу, либо частичные результаты моделирования.


=== Нефункциональные требования ===
=== Нефункциональные требования ===
Строка 141: Строка 188:


Необходимо решить как будет реализовываться политика предоставления вычислительного ресурса пользователю или группе пользователей. В настоящий момент видится следующее. <u>Поставщик подсистемы предметной области</u> предоставляет ресурс, выполняющий моделирование в предметной области, как это реализовано <u>программистом предметной области</u> и <u>экспертом предметной области</u>, под управлением предметно-независимых сервисов. Имеющийся сейчас [[[Протокол балансировки нагрузки | протокол балансировки нагрузки]] не предполагает поддержки выделения лишь части ресурса для пользователя, но использует весь ресурс. Кроме того, поскольку разные пользователи, работающие над одним проектом, скорее всего хотят получать разные результаты остается вопрос о том, можно ли использовать один ресурс для разных пользователей, хотя бы частично. Последнее, очевидно, должно зависит от алгоритма, предоставленного <u>экспертом предметной области</u>. Для наших текущих задач данные вопросы не являются важными, поэтому приоритет их разрешения - '''низкий'''.
Необходимо решить как будет реализовываться политика предоставления вычислительного ресурса пользователю или группе пользователей. В настоящий момент видится следующее. <u>Поставщик подсистемы предметной области</u> предоставляет ресурс, выполняющий моделирование в предметной области, как это реализовано <u>программистом предметной области</u> и <u>экспертом предметной области</u>, под управлением предметно-независимых сервисов. Имеющийся сейчас [[[Протокол балансировки нагрузки | протокол балансировки нагрузки]] не предполагает поддержки выделения лишь части ресурса для пользователя, но использует весь ресурс. Кроме того, поскольку разные пользователи, работающие над одним проектом, скорее всего хотят получать разные результаты остается вопрос о том, можно ли использовать один ресурс для разных пользователей, хотя бы частично. Последнее, очевидно, должно зависит от алгоритма, предоставленного <u>экспертом предметной области</u>. Для наших текущих задач данные вопросы не являются важными, поэтому приоритет их разрешения - '''низкий'''.
Необходимо более подробно расписать поведение системы в случае исключительной ситуации.


== Примечания ==
== Примечания ==

Текущая версия на 15:48, 25 мая 2016

Список сценариев использования\UC1: Произвести моделирование

Аннотированное описание

Основной сценарий успешного выполнения

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

Альтернативные сценарии

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

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

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

Если более одного моделирующего пользователя работают над проектом, темпоральные данные о проекте остаются на серверной стороне пока все пользователи не завершат работу над этип проектом (т.е. пока все ссылки на проект не будут уничтожены).

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

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

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

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

Полное описание

Имя сценария

Произвести моделирование.

Охват системы.

Вся система моделирования в целом.

Уровень[1]

Пользовательский

Основное действующее лицо

Моделирующий пользователь

Заинтересованные стороны

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

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

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

Предусловия

Моделирующий пользователь имеет информацию, идентифицирующую экземпляр подсистемы управления (напр. адрес).

Моделирующий пользователь зарегистрирован в системе.

Система запущена и слушает канал связи, по которому подключается моделирующий пользователь.

Постусловия

Моделирующий пользователь имеет картину распределения характеристик интересующего его поля в заданных им точках геометрической модели среды. Пользователь имеет графическое отображение этой геометрической модели и наложенное на него графическое представление картины распределения поля.

Главный сценарий успешного выполнения

  1. Моделирующий пользователь через браузер подключается к управляющей подсистеме, выполняя UC3: Инициализация соединения "пользователь-система".
  2. Система отображает пользователю форму для поиска существующего (активного) экземпляра подсистемы предметной области, а также, возможно, иные формы выбора подсистемы предметной области (напр. список недавно использованных экземпляров, "избранное" и т.п.).
  3. Система дополнительно отображает ссылки для создания модельного проекта или его загрузки со стороны пользователя.
  4. Моделирующий пользователь начинает работу с модельным проектом (создает новый, загружает с локального хранилища, подключается к работе над существующим проектом, загружает его с банка данных пользователя, восстанавливает автосохранённый проект), задавая проект и геометрическую модель.
  5. Моделирующий пользователь изменяет геометрическую модель. Все изменения модели на данном этапе остаются локальными. Результат любого изменения сразу же закачивается на сервер[2].
  6. Моделирующий пользователь задает физические параметры предметной области для элементов геометрической модели, задавая физико-геометрическую модель.
  7. Моделирующий пользователь посылает запрос на запуск процедуры моделирования подсистеме управления с помощью экземпляра подсистемы предметной области, выбранного пользователем на шаге 4. Запрос должен задавать флаг актуализации данных предметной области, используемый на шаге 11.
  8. Подсистема управления сохраняет модель среды, введенную пользователем, в банке данных пользователей
  9. Подсистема управления передает полученную модель подсистеме предметной области для моделирования.
  10. Экземпляр подсистемы предметной области проверяет корректность данных предметной области входной модели (соответствие предметной области, формату и т.п.)
  11. Экземпляр подсистемы предметной области проверяет актуальность данных предметной области, заданных пользователем для входной модели, данным из базы данных предметных областей).
  12. Экземпляр подсистемы предметной области создает процесс моделирования и возвращает его идентификатор подсистеме управления.
  13. Подсистема управления возвращает полученный идентификатор процесса пользователю.
  14. Экземпляр подсистемы предметной области выполняет моделирование над локальной копией полученной физико-математической модели среды.
  15. Экземпляр подсистемы предметной области завершает моделирование и переходит в завершенное состояние.
  16. Моделирующий пользователь посылает запрос на получение результатов моделирования.
  17. Система отвечает пользователю результатами моделирования.
  18. Браузер выполняет визуализацию результатов моделирования.
  19. Моделирующий пользователь локально сохраняет результаты моделирования.

Расширения[3]

  • 1A. Ошибка соединения с сервером, аутентификации или авторизации моделирующего пользователя, аутентификации экземпляра системы.
  • 4A. Моделирующий пользователь решает создать новый модельный проект
    • 1. Система предлагает пользователю выбрать экземпляр подсистемы предметной области (поиск, список недавно использовавшихся, "избранное").
    • 2. Моделирующий пользователь выбирает экземпляр подсистемы предметной области.
      • 2А. Моделирующий пользователь выбрал некорректный экземпляр подсистемы предметной области (экземпляр по указанному имени не найден, не активен, не доступен для пользователя).
        • 1. Повторное выполнение шага 4А1.
    • 2. Система предлагает пользователю выбрать геометрическую модель (поиск, список недавно использовавшихся, "избранное"), создать новую модель или загрузить ее со стороны пользователя.
    • 3. Моделирующий пользователь выбирает метод создания геометрической модели.
      • 3A. При загрузке геометрической модели, существующей в системе моделирования.
        • 1. Система осуществляет проверку доступа пользователя к модели.
          • 1А. Доступ запрещен.
            • 1. Переход на шаг 4А3.
        • 2. Моделирующий пользователь скачивает модель.
        • 3. Пользователь изменяет модель. Любые изменения в реальном времени закачиваются в систему.
      • 3B. Пользователь решает создать новую модель.
        • 1. Пользователь создает модель. Любые изменения в реальном времени закачиваются в систему.
  • 4B. Моделирующий пользователь решает загрузить проект с локального хранилища.
    • 1. Моделирующий пользователь передает файл проекта системе моделирования.
    • 2. Система моделирования проверяет имя экземпляра подсистемы предметной области в файле.
    • 3. Система моделирования проверяет имя геометрической модели в файле.
      • 3A. Имя модели уже зарегистрировано в системе.
        • 1. Система уведомляет пользователя о конфликте имен и предлагает выполнить объединение с существующей моделью или сгенерировать другое имя для загружаемой модели.
          • 1A. Возникли конфликты объединения.
            • 1. Система предлагает пользователю создать копию геометрической модели с иным именем, в которой используются объединенные параметры, для которых отсутствуют конфликты, а для каждого из конфликтующих параметров предлагается выбор между версиями.
    • 4. Моделирующий пользователь изменяет модель. Любые изменения в реальном времени закачиваются в систему.
  • 4C. Моделирующий пользователь выбирает загрузку найденного им модельного проекта со стороны системы.
  • 6А. Моделирующий пользователь решает задать данные предметной области вручную или загрузить их с локального источника.
    • 1. Браузер пользователя, по окончанию ввода пользователем (загрузки) данных предметной области для элемента геометрической модели, загружает данные в систему. Загрузка осуществляется при каждом вводе данных.
  • 6B. Моделирующий пользователь решает использовать данные из банка данных предметных областей.
    • 1. Моделирующий пользователь указывает конкретную базу данных и конкретный элемент данных в ней.
      • 1A. База данных или элемент не найдены, либо пользователь не имеет необходимых прав доступа.
        • 1. Переход на шаг 6 основного сценария.
    • 2. Система ассоциирует с соответствующим элементом геометрической модели ссылку на указанный пользователем элемент данных и копирует в элемент сами данные.
  • *A. В любое время моделирующий пользователь разрывает соединение.
    • 1. Система система закрывает канал связи с пользователем.
    • 2. Система сохраняет геометрическую модель в банке данных пользователя.
    • 3. Если отключившийся моделирующий пользователь являлся единственным на момент обнаружения разрыва пользователем, работающим над проектом, система удаляет геометрическую модель из своих темпоральных хранилищ.
  • 4-14A. Возникает системная ошибка.
    • 1. Система пытается предложить пользователю сохранить проект и разорвать соединение с системой.
      • 1A. Моделирующий пользователь решает сохранить проект в базе данных пользователей.
        • 1. Система выполняет сохранение.
          • 1A. Ошибка записи в базу данных.
            • 1. Переход на шаг 4-14A1.
      • 1B. Моделирующий пользователь решает сохранить проект локально (скачать).
        • 1. Система выполняет сохранение.
          • 1A. Ошибка сохранения.
            • 1. Переход на шаг 4-14A1.
      • 1C. В результате ошибки соединение с пользователем разорвано.
        • 1. Система от имени пользователя пытается сохранить проект в базе данных пользователя.
          • 1A. Возникает ошибка сохранения.
            • 1. Все данные о проекте удаляются из системы.
    • 2. Темпоральные данные о проекте удаляются из системы.
  • 4-7A. Физико-геометрическая модель среды меняется со стороны пользователя.
    • 1. Браузер пользователя закачивает изменения в систему.
    • 2. Система выполняет объединение версий физико-геометрической модели и хранит результат объединения.
      • 2A. Произошел конфликт объединения моделей, поступивших от множества пользователей одновременно.
        • 1. Система выбирает версию для объединения произвольно.
    • 3. Моделирующий пользователь получает объединенную модель в качестве ответа и заменяет им свою версию.
  • 10A. Данные предметной области в физико-геометрической модели среды распространения моделируемого поля не верны (не соответствуют предметной области, имеют неверный формат и т.п.).
  • 11A. Моделирующий пользователь на шаге 7 основного сценария не указывал на необходимость актуализации данных.
  • 11B. Для какого-либо элемента не задана ссылка на данные в бвзе данных, или попытка доступа к данным со стороны [Вычислительная подсистема|экземпляра подсистемы предметной области]] вызывает ошибку (в т.ч. отсутствия данных).
    • 1. Данные элемента не актуализируются.
  • 11B. Для какого-либо элемента данные по ссылке в банк данных предметных областей являются устаревшими по отношению к копии данных, которые (помимо ссылки) заданы для геометрической модели.
    • 1. Данные элемента не актуализируются.
  • 12-15A. Экземпляр подсистемы предметной области обнаруживает ошибку пользовательского ввода.
    • 1. Процесс моделирования переходит в завершенное моделирования. Результатом моделирования является обнаруженная пользовательская ошибка. Результаты моделирования поля удаляются.
  • 14-15А. Моделирующий пользователь посылает запрос на получение информации о состоянии процесса моделирования.
  • 14-15B. Моделирующий пользователь посылает запрос на получение результатов моделирования.

Нефункциональные требования

Технология реализации и форматы данных

Частота выполнения

Широкий диапазон - от крайне редкого (раз в несколько месяцев) до практически непрерывного (см. масштабируемость).

Открытые вопросы

Необходимо решить как будет реализовываться политика предоставления вычислительного ресурса пользователю или группе пользователей. В настоящий момент видится следующее. Поставщик подсистемы предметной области предоставляет ресурс, выполняющий моделирование в предметной области, как это реализовано программистом предметной области и экспертом предметной области, под управлением предметно-независимых сервисов. Имеющийся сейчас [[[Протокол балансировки нагрузки | протокол балансировки нагрузки]] не предполагает поддержки выделения лишь части ресурса для пользователя, но использует весь ресурс. Кроме того, поскольку разные пользователи, работающие над одним проектом, скорее всего хотят получать разные результаты остается вопрос о том, можно ли использовать один ресурс для разных пользователей, хотя бы частично. Последнее, очевидно, должно зависит от алгоритма, предоставленного экспертом предметной области. Для наших текущих задач данные вопросы не являются важными, поэтому приоритет их разрешения - низкий.

Примечания

  1. Пользовательский или подфункция
  2. Для межпользовательского взаимодействия
  3. Альтернативные сценарии успешного выполнения и обработки ошибок