Пример ТЗ. Чат в мобильном банке

Попался еще один пример задания. Выкладываю свой вариант ответа.

Общее описание

Данный документ описывает требования к онлайн-чату с оператором в мобильном приложении Сквербанк Онлайн на платформах iPhone, iPad, Android, WP.

Цели

Онлайн-чат имеет следующие цели:

  • повысить лояльность клиентов. Метриками лояльности являются опросы клиентов и анализ отзывов;
  • увеличить количество обрабатываемых сообщений сотрудником КЦ.

 

Рамки системы

Онлайн-чат позволяет пользователю отправлять короткие сообщения и получать ответы оператора.

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

Онлайн-чат встраивается в приложения Сквербанк Онлайн на платформах iPhone, iPad, Android, WP.

Выделяем отдельный сервер для приема сообщений от пользователя, распределения сообщений по операторам, приема и отправки ответов операторов и хранения истории переписки.

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

Для операторских компьютеров выделяем отдельную программу (а-ля qip). Программа запускается на клиентской стороне и обращается к тому же серверу.

Заинтересованные лица и пользователи

 

Группа ЗЛ Представители группы Основные интересы
Колл-центр Контактова А.П. 1.       Соблюдение KPI ответов

2.       Увеличение обрабатываемых сообщений сотрудником КЦ

3.       Учёт количества обработанных сообщений в нормативах операторов

Оператор КЦ Ансверова В.А.

Донтансверова Г.Л.

1.       Ответ на сообщения в течение установленного времени

2.       Удобство интерфейса

3.       Учёт количества обработанных сообщений в нормативах операторов

Руководство Департамента клиентского сервиса Лионозов А.А. 1.       Внедрение системы онлайн-чата в приложения Сквербанк Онлайн на всех платформах
Аналитики Сидоров А.К. 1.       Информация о количестве обработанных сообщений каждым оператором и о количестве не обработанных сообщений.

 

 

Модули

Требуется реализовать следующие модули:

  1. Онлайн чат. Встроить в мобильные приложения Сквербанк Онлайн на платформах iPhone, iPad, Android, WP.
  2. Сервер обработки сообщений
  3. Программа-клиент для работы оператора(а-ля qip). Отказались от доступа через браузер, т.к. операторы в браузере работают с другими системами банка и требуется одновременно видеть переписку и данные из браузера. Несколько вкладок – вариант не удобен (источник: Ансверова В.А., Донтансверова Г.Л.)

Рисунок 1 Потоки данных

 

Объекты

Рисунок 2 Диаграмма объектов

 

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

 

Атрибуты объекта «Сообщение»

Атрибут Тип Описание
type Int Тип сообщения:

·         0 – от пользователя к оператор

·         1 – от оператора к пользователю

from uid Идентификатор пользователя, отправившего сообщение. Заполняется только для сообщений типа 0
messageId ulong Идентификатор сообщения
oper operid Идентификатор оператора, отправившего сообщение. Заполняется только для сообщений типа 1
date datestamp Дата и время создания сообщения. Берется часовой пояс сервера.
message string Текст сообщения

Атрибуты объекта «Переписка»

Атрибут Тип Описание
dialogId ulong Идентификатор объекта
messages [message] Массив сообщений данной переписки
user uid Идентификатор пользователя, по которому сформирована переписка
curStatus int Текущий статус переписки:

·         0 – активная

·         1 – неактивная

curOper operid Идентификатор оператора, который работает с перепиской в данный момент. Пустой для переписки в статусе 1

 

 

Сценарии использования

Рисунок 3 Диаграмма сценариев использования

Сценарий «Открыть чат»

Действующее лицо: пользователь

Предусловия: пользователь залогинен в мобильное приложение Сквербанк онлайн

Основной сценарий:

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

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

  • В ответе пришла пустая переписка. Приложение отображает стандартное приветственное сообщение «Здравствуйте, %%username%%! Чем могу Вам помочь?». В качестве %%username%% подставляется значение имени пользователя, полученное при авторизации.
  • В ответ пришел код ошибки о недоступности сервера. Приложении отображает поп-ап сообщение об ошибке с текстом «Сбой на сервере. Повторите попытку позже». Пользователь остается на том же экране.
  • Запросить историю не удалось, метод ответил ошибкой. Приложении отображает поп-ап сообщение об ошибке с текстом «Сбой на сервере. Повторите попытку позже».. Пользователь остается на том же экране.

 

Сценарий «Отправить сообщение»

Действующее лицо: пользователь

Предусловия: открыто окно чата

Основной сценарий:

  1. Пользователь нажимает на поле для ввода текста сообщения
  2. Приложение вызывает системную клавиатуру
  3. Пользователь вводит текст сообщения и нажимает кнопку «Отправить»
  4. Приложение отображает сообщение в окне чата и отправляет сообщение на сервер.

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

2.1. Вызов системной клавитуры вернул ошибку. Приложении отображает поп-ап сообщение об ошибке с текстом «Невозможно отобразить клавиатуру. Повторите попытку позже»

4.1. Нет связи. Приложение выводит сообщение: «Нет сети. Ошибка при подключении. Проверьте соединение и повторите попытку». Приложение пытается отправить сообщение повторно через 10 секунд. Если через 3 попытки не удалось отправить сообщение, выводится поп-ап окно «Не удается отправить сообщение». Сообщение стирается из окна чата.

4.2. Отправка сообщения на сервер вернула ошибку. Приложение пытается отправить сообщение повторно через 10 секунд. Если через 3 попытки не удалось отправить сообщение, выводится поп-ап окно «Не удается отправить сообщение». Сообщение стирается из окна чата.

 

Примечание: обработка системных прерываний (нажатие кнопки «назад», «домой», кнопки питания) остается на уровне самого приложения, но не на уровне онлайн-чата.

Сценарий «Закрыть чат»

Действующее лицо: пользователь

Предусловия: открыто окно чата

Основной сценарий:

  1. Пользователь нажимает на кнопку «Закрытие чата»
  2. Приложение закрывает окно чата. Приложение в фоне продолжает опрашивать сервер для обновления переписки в чате. При получении новых сообщений выводится пуш-уведомление пользователю. Если подключены AppleWatch, необходимо направить уведомление еще и туда.

Сценарий «Открыть окно переписки»

Действующее лицо: оператор

Предусловия: открыта программа оператора

Основной сценарий:

  1. Оператор нажимает двойным щелчком мыши на переписку.
  2. Программа запрашивает последние 10 сообщений и открывает переписку.

 

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

  • Нет связи. Программа выводит сообщение: «Нет сети. Ошибка при подключении»
  • В ответе пришла пустая переписка. Программа отображает окно переписки без сообщений.
  • В ответ пришла ошибка. Программа отображает сообщение «Ошибка сервера. Повторите позже»

 

Сценарий «Отправить сообщение»

Действующее лицо: оператор

Предусловия: открыто окно переписки

Основной сценарий:

  1. Оператор вводит текст сообщения и нажимает кнопку «Отправить»
  2. Программа отображает сообщение в окне чата и отправляет сообщение на сервер.

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

2.1. Нет связи. Программа выводит сообщение: «Нет сети. Ошибка при подключении. Проверьте соединение и повторите попытку». Программа пытается отправить сообщение повторно через 10 секунд. Если через 3 попытки не удалось отправить сообщение, выводится поп-ап окно «Не удается отправить сообщение». Сообщение стирается из окна чата.

2.2. Отправка сообщения на сервер вернула ошибку. Программа пытается отправить сообщение повторно через 10 секунд. Если через 3 попытки не удалось отправить сообщение, выводится сообщение окно «Не удается отправить сообщение». Сообщение стирается из окна

 

чата.

Сценарий «Создать нового оператора»

Действующее лицо: админ операторов

Предусловия: веб-интерфейс сервера сообщений

Основной сценарий:

  1. Пользователь нажимает на кнопку «Создать нового оператора»
  2. Веб-интерфейс отображает поля для ввода «ФИО», направляет запрос на сервер на создание нового оператора, дожидается ответа об успехе, выводит информацию ФИО и operid

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

  • Не удалось создать оператора. Выводится сообщение об ошибке

Сценарий «Посмотреть отчет»

Действующее лицо: админ операторов

Предусловия: веб-интерфейс сервера сообщений

Основной сценарий:

  1. Пользователь нажимает на кнопку «Скачать отчеты»
  2. Веб-интерфейс направляет запрос на формирования отчетов , получает файлы и сохраняет их на рабочую станцию пользоваеля

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

  • Не удалось создать оператора. Выводится сообщение об ошибке

 

Диаграмма последовательности для основного сценария

Рисунок 4 Диаграмма последовательности для основного сценария

Описание сообщений

ID Сообщение Где исполняется Описание
1. Открыть чат Приложение Пользователь нажимает кнопку «Открыть чат» в приложении Сквербанк –онлайн.
2. Запросить историю переписки: +10 сообщ Приложение Приложение запрашивает у сервера следующие N сообщений в порядке убывания от более новых к более старым.

Если открывается окно чата, то запрашиваются сообщения от самого последнего до N=10.

Если пользователь нажал «Показать предыдущие собщения», то запрашиваются сообщения от N+1 до N+10.

Параметры запроса:

— user: uid (id пользователя)

— N: int (кол-во сообщений)

3. Поиск переписки Сервер Сервер ищет переписку
4. Возврат переписки Сервер Сервер возвращает объект «Переписка»
5. Отображение переписки в чате Приложение Приложение отображает присланную переписку.

Если переписка пустая, отображается стандартное приветственное сообщение: «Здравствуйте, %%username%%!  Чем могу Вам помочь?»

6. Отправить сообщение Приложение Пользователь нажимает кнопку «Отправить» в чате.
7. Валидация сообщения Приложение Приложение проверяет сообщение по следующим правилам:

— Текст сообщения не пустой

 

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

8. Отправить сообщение Приложение Приложение отправляет на сервер объект типа «Сообщение» со следующими полями:
·         type = 0  (от пользователя к оператору)·         from = uid (id пользователя)

·         oper = “”

·         date = текущая дата и время

·         message = текст сообщения

9. Добавить сообщение к переписке Сервер Сервер на основании uid пользователя добавляет сообщение к переписке.

Если переписка была в статусе «Неактивная» (curStatus=1), то сервер переводит переписку с данным пользователем в статус «Активна» (curStatus=0) и делает пустым значение связанного оператора (curOper=””)

10. Распределение переписки к оператору Сервер Сервер выбирает оператора, которому назначить переписку.

Выполняется по расписанию каждые M мс. По умолчанию M=1000.

Выполняется для всех переписок с пустым значением поля  curOper и со значением curStatus==0.

Распределение происходит по дате последнего сообщения в переписке в порядке возрастания (сначала распределяются более старые, затем – более новые).

Выбирается активный оператор с наименьшим числом присвоенных ему переписок.

11. Запросить список переписок Программа оператора Программа запрашивает список активных переписок для оператора.

Параметры запроса:

— oper: operid

12. Возврат списка переписок Сервер Сервер на основании operid отбирает список активных переписок и возвращает список пар {dialogID, userId} для данного оператора
13. Открыть переписку Программа оператора Оператор нажимает на конкретную переписку, чтобы прочитать ее и/или ответить.

Программа оператора запрашивает историю переписки и отображает окно с перепиской.

14. Запросить историю переписки: +10 сообщ Программа оператора Программа оператора запрашивает у сервера следующие N сообщений в порядке убывания от более новых к более старым.

Если открывается окно чата, то запрашиваются сообщения от самого последнего до N=10.

Если пользователь нажал «Показать предыдущие собщения», то запрашиваются сообщения от N+1 до N+10, где N – сохраняется от предыдущего запроса.

Параметры запроса:

— dialog: dialogID (id переписки)

— N: int (кол-во сообщений)

 

15. Возврат переписки Сервер Сервер возвращает объект «Переписка»
16. Отобразить окно с перепиской Программа оператора Программа отображает окно с перепиской
17. Отправить сообщение Программа оператора Пользователь инициирует отправку сообщения.
18. Валидация сообщения Программа оператора Программа оператора проверяет сообщение по следующим правилам:

— Текст сообщения не пустой

 

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

19. Отправка сообщения Программа оператора Программа оператора отправляет на сервер объект типа «Сообщение» со следующими полями:
·         type = 1 (от оператора к пользователю)·         from = uid (id пользователя)

·         oper = operid (id оператора)

·         date = текущая дата и время

·         message = текст сообщения

20. Добавить сообщение к переписке Сервер Сервер на основании dialogID добавляет сообщение к переписке.
21. Обновить состояние переписки Приложение Приложение запрашивает N последних сообщений.

Выполняется по расписанию каждые M мс.

По умолчанию M=10000 и N=10

22. Возврат переписки Сервер Сервер возвращает объект «Переписка»
23. Обновление переписки в окне чата Приложение Приложение выводит на экран сообщения, которые не были выведены до этого.

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

Доработка мобильного приложения для онлайн-чата

  1. Требуется реализовать пункт меню в Боковом меню для входа в чат. Пункт меню должен находиться между пунктами «Настройки» и «Написать в банк».

Рисунок 5 Мокап «Положение пункта меню»

  1. Окно чата должно выводить историю переписки и позволять отправлять сообщение.
    • Дата выводится один раз перед группой приложения.
    • Для каждого сообщения выводится время
    • Сообщения пользователя выравниваются по правому краю, сообщения оператора – по левому.
    • При нажатии на крестик в правом верхнем углу исполняется сценарий «Закрыть окно чата»

Рисунок 6 Мокап «Окно чата»

  1. При достижении ограничения на длину вводимого сообщения не дает ввести новые символы и выводит сообщение о длине ограничения
  2. Приложение в фоне опрашивает сервер на наличие нового сообщения. Если оно имеется, то направляет обновляет сообщения в окне чата (если оно открыто) или направляет пуш-уведомление (если окно чата не открыто).

 

Сервер сообщений

  1. Хранит историю переписки с каждым пользователем за 3 года (срок исковой давности)
  2. Осуществляет следующие сервисы для приложений, для программы клиента и для веб-интерфейса админа:
    • Предоставить сообщения с N по M из переписки с пользователем uid.
    • Принять новое сообщение в переписку с пользователем uid ИЛИ в переписку с dialogid
    • Предоставить список переписок, назначенных на оператора operid
    • Изменение статуса оператора operid на {активный, неактивный}
    • Создание оператора
    • Предоставление отчетов
  3. Сервер осуществляет следующие функции:
    • Поиск переписки по uid
    • Добавление нового сообщения в переписку
    • Перевод переписки из статуса «Неактивная» в статус «Активная» после добавления нового сообщения от пользователя
    • Перевод переписки из статуса «Активная» в статус «Неактивная» после отсутствия новых сообщений в течение 5 минут
    • Учет статусов операторов
    • Учет количества активных переписок у оператора
    • Распределение активных переписок без операторов
      • Переписка назначается активному оператору с наименьшим числом переписок в данный момент
      • Если таковых несколько, выбирается оператор с самой старой датой/временем последнего сообщения в переписке
      • Если и таковых несколько, выбирается оператор с наибольшим operID
    • Изменение поля «оператор» для активных переписок у операторов, которые изменили статус на «неактивен»
    • Заведение новых операторов (operid)

 

Программа-клиент

  1. Программа-клиент запускается на рабочей станции операторов
  2. Программа для каждой переписки отображает uid пользователя
  3. Программа позволяет из окна отображения переписки в один клик перейти в интерфейс АБС для поиска счетов пользователя по uid
  4. Программа направляет сообщение серверу о переводе оператора в активный статус после выставления статуса «онлайн» оператором в интерфейсе
  5. Программа направляет сообщение серверу о переводе оператора в неактивный статус после выставления статуса «оффлайн» оператором в интерфейсе
  6. Программа по uid запрашивает у сервера, хранящего информацию о клиентах, ФИО пользователя и выводит ФИО в окно переписки.
  7. Приложение в фоне опрашивает сервер на наличие нового сообщения для каждой из активных переписок.
  8. Приложение в фоне опрашивает о состоянии переписок оператора. Приложение сохраняет неактивные переписки в течение 5 минут после изменения их статуса.

Рисунок 7 Мокап приложения оператора

Веб-интерфейс Админа

  1. Две кнопки «Создать оператора» и «Скачать отчеты»

 

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

Доработка мобильного приложения для онлайн-чата

 

  1. Реализуется в мобильном приложении Сквербанк Онлайн на платформах iPhone, iPad, Android, WP.
  2. Ограничение на длину вводимого сообщения – 1024 символов.
  3. Кол-во повторных попыток отправки сообщений при неудаче = 3
  4. Длина отправляемого сообщения должна быть не менее 1 символа
  5. Должна быть обеспечена защита от инъекций исполняемого кода в сообщение
  6. Расписание обновления сообщений в чате: 1000 мс
  7. Специальные требования к времени отрисовки экранов не предъявляются

Сервер сообщений

  1. Максимальное число зарпосов сообщений 5 rps
  2. Максимальное число запросов списков переписок 1 rps
  3. Максимальный объем хранимых данных 1,5 Тб
  4. Максимальный срок простоя сервера: 1 ч. в месяц
  5. Должна быть обеспечена защита от инъекций исполняемого кода в сообщение
  6. Расписание распределение переписок между операторами: 1000 мс.
  7. По запросу из веб-интерфейса предоставлять следующие отчеты в виде файлов .csv:
  • Статистика использования функционала клиентами: кол-во сообщений за текущий день, накопительное количество сообщений за текущий месяц, среднее кол-во сообщений на одного клиента за день, за месяц, кол-во клиентов, написавших за день, за месяц
  • Статистика обработки обращений операторами: кол-во написанных сообщений в разбивке по операторам, кол-во активных переписок, обработанных каждым оператором за день, те же данные — за месяц, максимальное время ответа на сообщение, среднее время ответа на сообщения для каждого оператора – за месяц и за день.

 

Примечание: все расчеты исходят из верхней оценки 10 Млн сообщений в месяц

Программа-клиент

  1. Запускается на компьютерах с ОС Windows 7, i3, 4Гб ОЗУ
  2. Расписание обновления состояние переписки: 1000 мс
  3. Расписание обновления сообщений в чате: 1000 мс

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

About the Author: Администратор

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Яндекс.Метрика