Requirements » History » Revision 20
Revision 19 (Никита Артемов, 03/20/2012 01:33 PM) → Revision 20/25 (Никита Артемов, 03/20/2012 02:06 PM)
h1. Требования к системе {{TOC}} h2. Требования к системе в целом h3. Требования к структуре и функциональности системы *Функциональные подсистемы:* подсистемы* * Плагины - обеспечивает взаимосвязь с сервисами (для каждой социальной сети свой плагин) * Ядро - обеспечивает взаимосвязь между плагином и компонентами. Содержит основную логику. * Компоненты интерфейса - обеспечивает доступ к функциям ядра из приложения. * Приложение Places - содержит интерфейс Интерфейс пользователя для работы с геолокационными данными. * Приложения Events - содержит интерфейс пользователя для работы с событиями. * Webauth - приложение для авторизации пользователя с сервисом. *Информационного обмена между компонентами системы* *Функциональные подсистемы* * Взаимодействие плагинов с Webauth происходит посредством службы D-Bus. * Между остальными компонентами обмен реализуется с помощью системы сигналов и слотов h3. Требования к численности и квалификации персонала системы и режиму его работы *Требования к численности и квалификации персонала системы и режиму его работы* В состав персонала, необходимого для обеспечения эксплуатации КХД в рамках соответствующих подразделений Заказчика, необходимо выделение следующих ответственных лиц: * Менеджер проекта - 1 человек. * Разработчики - 3-4 человека. * Секретарь - 1 человек. * Тестеры - 1-2 человека. Данные лица должны выполнять следующие функциональные обязанности. * Менеджер проекта - на всем протяжении разработки обеспечивает общее руководство группой. * Разработчики - ответственны за написания кода. * Секретарь - ведет протоколы проектных собраний, записывает замечания на общепроектных собраниях. * Тестеры - занимаются тестированием *Требования к квалификации персонала* * Менеджер проекта - знание соответствующей предметной области, наличие управленческих качеств. * Разработчики - знание соответствующей предметной области, знание Qt и QML. * Секретарь - умение грамотно и опрятно составлять отчет, знание формата составления отчета. * Тестеры - знание формата составления отчета тестирования. *Требования к режимам работы персонала* * каждый участник должен тратить не менее 15 часов в неделю на проект. h3. Требования к надежности *Состав показателей надежности для системы в целом* Уровень надежности должен достигаться согласованным применением организационных, организационно-технических мероприятий и программно-аппаратных средств. Надежность должна обеспечиваться за счет применения технических средств, системного и базового программного обеспечения, соответствующих классу решаемых задач. h3. Требования к эргономике и технической эстетике Подсистема формирования и визуализации отчетности данных должна обеспечивать удобный для конечного пользователя интерфейс, отвечающий следующим требованиям. В части внешнего оформления: * интерфейсы подсистем должен быть типизированы; * должно быть обеспечено наличие локализованного (русскоязычного) интерфейса пользователя; В части диалога с пользователем: * для наиболее частых операций должны быть предусмотрены «горячие» клавиши; * при возникновении ошибок в работе подсистемы на экран монитора должно выводиться сообщение с наименованием ошибки. h3. Требования к защите информации от несанкционированного доступа Обеспечение информационное безопасности Geo-Events должно удовлетворять следующим требованиям: * Защищенный доступ к данным авторизации пользователя. * Запрос на подтверждение при иcпользовании местоположения пользователя. h2. Требования (URE) Работа с событиями h3. (URE1) Создание события Пользователь должен иметь возможность создавать новое событие и синхронизировать его с сервисом. h3. (URE2) Редактирование события - Пользователь должен иметь возможность редактировать информацию о событии (если у него есть на это права) и синхронизировать изменения с сервисом. h3. (URE3) Удаление события Пользователь должен иметь возможность удаления(отммены) события, как из локального хранилища, так и с сервиса(если у него есть на это права). h3. (URE4) Получение списка событий Пользователь должен иметь возможность получать список событий из сервисов. h3. (URE5) Поиск событий Пользователь должен иметь возможность искать события в сервисах по средствам поискового запроса. h3. (URE6) Хранение информации о событиях в кэше Пользователь должен иметь возможность получать напоминания от приложения о грядущем событии (в соответствии с настройками). h2. (URG) Работа с геолокацией h3. (URG1) Получение списка мест Пользователь должен иметь возможность получить список мест находящихся поблизости от него. Местоположение пользователя должно определяться посредством GPS. h3. (URG2) Отметка на месте Пользователь должен иметь возможность отметиться на найденном месте и оставить короткий комментарий. h3. (URG3) Создание нового места Пользователь должен иметь возможность создать место, если ему не удалось его найти его в (URG1). Также пользователь должен иметь возможность отметиться на созданном месте. h3. (URG4) Получение списка отметок Пользователь должен иметь возможность получить список людей, отметившихся в местах поблизости. Также пользователь должен иметь возможность получить список последних отметок друзей. h1. Предметная область !Место.jpg! !Событие.jpg! Модуль Places должен будет предоставлять методы для работы с геолокационными данными из социальных сетей(ВКонтакте, Facebook). Приложение позволяет пользователю производить поиск мест и людей поблизости. Также можно будет создать новое место или отметиться на одном из уже созданных. Отмечаясь, можно оставить короткий комментарий или отзыв о месте. Это дает пользователям возможность смотреть, как люди отзываются о некотором месте, будь то кафе или ресторан (Сущность "место" представлена на рисунке 1). Модуль Events будет обеспечивать возможности для работы с событиями в социальных сетях. Под событиями здесь понимаются встречи(Vkontakte), мероприятия/events(Facebook), также планируется синхронизация с событиями из Google Calendar. С помощью этого модуля будет возможно: получать список мероприятий(событий) в которых участвует пользователь и отображать их на календаре, создавать новые, редактировать уже существующие и удалять ненужные события. Также планируется сделать отображение дней рождений друзей пользователя (Сущность "событие" представлена на рисунке 2). h1. Работа с геолокацией h2. Поиск мест и отметка # появляется форма "SearchPlaces form" # пользователь вводит в поле для ввода поисковый запрос # пользователь нажимает "Search" # появляется список найденных мест # пользователь нажимает на элемент одного из найденных мест # появляется форма "CheckinsOfPlace Form", где отображается подробная информация о месте и список отметок # пользователь нажимает кнопку "Checkin" # появляется форма "CheckinDialog form" # пользователь вводит комментарий к функциям, выполняемым системой отметке # пользователь нажимает "OK" для отправки или "Cancel" для закрытия формы h2. Просмотр отметок # появляется форма "Checkins form" # пользователь нажимает на вкладку "Friends" # появляется список последних отметок друзей # пользователь нажимает на вкладку "Nearby" # появляется список отметок сделанных людьми поблизости h2. Отображение отметок или мест на карте # на странице со списками мест или отметок пользователь нажимает "On Map" # появляется форма "Map form" # на карте отображаются отметки или места # пользователь нажимает "Cancel" для выхода h1. Работа с событиями и встречами h2. Поиск событий (URE5) # появляется форма "SearchEvents form" # пользователь вводит в поле для ввода поисковый запрос # пользователь нажимает "Search" # появляется список найденных событий # пользователь нажимает на элемент одного из найденных событий # появляется форма "Event Form", где отображается подробная информация о событии # пользователь нажимает кнопку "Attend", "Maybe" или "Decline", тем самым заявив о своем участии/возможном участии/не участии в мероприятии(в случае если мероприятие открыто для участия) # пользователь может оставить комментарий на стене события # пользователь может нажать на кнопку пригласить друзей # чтобы перейти обратно к списку событий пользователь нажимает кнопку "Back" h2. Получение списка событий (URE4) # пользователь нажимает кнопку "Update" на главной странице для обновления(загрузке при первом запуске) списка событий h2. Получение информации о событии # в общем списке событий пользователь щелкает на одно из них # появляется форма отображения информации о событии # пользователь может нажать кнопку "Edit event" для редактирования события # в этом случае появляется форма "EditEvent form", где пользователь может редактировать поля события и статус своего участия # пользователь нажимает кнопки "Save" ил "Cancel" # пользователь может нажать на кнопку "Invate friends" для приглашение пользователя(ей) # чтобы перейти обратно к списку событий пользователь нажимает кнопку "Back" h1. Функциональные требования h2. Системные функции h3. Ядро |_.ID |_.Описание |_.Приоритет |_.Аттестация | |SR.FSYSA.01|+Функция+ Получить данные от сервиса +Описание+ Посылка запроса через библиотеку текущего сервиса, получение ответа +Предусловие+ Правильно заданы параметры запроса +Постусловие+ Ответ от сервиса или уведомление об ошибке +Входные данные+ идентификатор запроса, идентификатор драйвера +Выходные данные+ сигнал для менеджеру событий, идентификатор ответа, ответ в формате xml|Высокий|| |SR.FSYSA.02|+Функция+ Создание аккаунта +Описание+ Создание аккаунта в приложении для доступа к сервисам +Предусловие+ Установлены библиотеки сервисов +Постусловие+ Учетная запись в программе +Входные данные+ идентификатор сервиса +Выходные данные+ сообщение об ошибке или вывод списка уже созданных аккаунтов|Высокий|| |SR.FUSRP.03|+Функция+ Настройки сети +Описание+ Изменение настроек прокси +Предусловие+ У приложения есть доступ к сети +Постусловие+ нет +Входные данные+ тип прокси, хост, порт +Выходные данные+ конфигурация приложения|Высокий|| |SR.FUSRP.04|+Функция+ Выбор сервиса +Описание+ Пользователь выбирает сервис перед запросом(поиск места, отметка) +Предусловие+ В приложение уже зарегистрированы аккаунты сервисов +Постусловие+ Сервис выбран для отправки следующего запроса +Входные данные+ идентификатор аккаунта +Выходные данные+ сообщение о статусе выполнения|Средний|| h2. Пользовательские функции h3. Приложение Places Функции работы с местами |_.ID |_.Описание |_.Приоритет |_.Аттестация | |SR.FUSRP.01|+Функция+ Поиск места по названию +Описание+ Получение списка мест +Предусловие+ Пользователь прошел авторизацию +Постусловие+ нет +Входные данные+ строка поискового запроса (если не указано - поиск ближайших мест), координаты +Выходные данные+ список найденных мест|Высокий|Пользователь вводит в поле для ввода название места, нажимает на кнопку. Отображается список найденных мест или (если не найдено) сообщение о том что место не найдено.| |SR.FUSRP.02|+Функция+ Получение списка отметок +Описание+ Пользователь получает список людей, кто уже отметился на конкретном месте или поблизости. +Предусловие+ Если поиск отметок по месту, то должен быть получен список мест +Постусловие+ нет +Входные данные+ координаты, идентификатор места или ничего(для получения ленты обновления отметок друзей) +Выходные данные+ список отметок пользователей|Высокий|Пользователь нажимает на кнопку получения отметок. Отображается список полученных отметок или (если не найдено) сообщение о том что отметки не найдены.| |SR.FUSRP.03|+Функция+ Создание нового места +Описание+ Создание нового места в базе сервиса +Предусловие+ Пользователь не нашел нужное место, чтобы отметиться +Постусловие+ нет +Входные данные+ Название места, координаты, тип места, адрес места, свой комментарий (опционально) +Выходные данные+ Сообщение об успехе или ошибке|Высокий|Пользователь заполняет поля нового места. Выводится сообщение об успехе или (если ошибка с сетью или не заполнены обязательные поля) сообщение об ошибке.| |SR.FUSRP.04|+Функция+ Отметка +Описание+ Регистрация на месте, что вы там были или просто оставление комментария о месте +Предусловие+ Пользователь получил список мест +Постусловие+ нет +Входные данные+ идентификатор места, свой комментарий (опционально) +Выходные данные+ Сообщение об успехе или ошибке|Высокий|Пользователь вводит комментарий к отметке (или не вводит). Выводится сообщение об ошибке или успехе.| h3. Приложение Events Функции работы с событиями |_.ID |_.Описание |_.Приоритет |_.Аттестация | |SR.FUSRE.01|+Функция+ Получение всех мероприятий +Описание+ Получение списка событий +Предусловие+ Пользователь прошел авторизацию +Постусловие+ нет +Входные данные+ id пользователя временной интервал (опционально) +Выходные данные+ список событий|Высокий|При запуске приложения список всех событий получается(обновляется) автоматически. Также пользователь может нажать кнопку "Update" для принудительного обновления списка.| |SR.FUSRE.02|+Функция+ Создание нового события +Описание+ Создание своего события и добавление его к общему списку +Предусловие+ Пользователь прошел авторизацию (со специальными правами) +Постусловие+ нет +Входные данные+ обязательно: название, время начала, время завершения необязательно: описание, место проведения, приватность +Выходные данные+ id созданного события|Высокий|Пользователь заполняет поля нового события. Выводится сообщение об успехе или (если ошибка с сетью или не заполнены обязательные поля или др.) сообщение об ошибке.| |SR.FUSRE.03|+Функция+ Редактирование события +Описание+ Редактирование события при наличии прав +Предусловие+ Пользователь прошел авторизацию и имеет права на редактирование +Постусловие+ нет +Входные данные+ (новые): название, время начала, время завершения и тд.(Все опционально) +Выходные данные+ успех, неудача|Высокий|Пользователь нажимает на элемент нужного события в списке, далее в общей форме события нажимает кнопку "Edit", после в форме редактирования вносит в поля изменения и нажимает кнопку "Save", либо "Cancel". Выводится сообщение об успехе или (если ошибка с сетью или др.) сообщение об ошибке.| |SR.FUSRE.04|+Функция+ Удаление события +Описание+ Удаление события при наличии прав +Предусловие+ Пользователь прошел авторизацию и имеет права на удаление(те же что и для создания) +Постусловие+ нет +Входные данные+ id события +Выходные данные+ успех, неудача|Высокий|Пользователь нажимает на элемент нужного события в списке, далее в общей форме события нажимает кнопку "Cancel". Выводится сообщение об успехе или (если ошибка с сетью или др.) сообщение об ошибке.| |SR.FUSRE.05|+Функция+ Установка статуса +Описание+ Установка(изменение) своего статуса участия в мероприятии +Предусловие+ Пользователь прошел авторизацию +Постусловие+ нет +Входные данные+ id события, статус(declined, maybe, attending) +Выходные данные+ успех, неудача|Высокий|Пользователь нажимает на элемент нужного события в списке, далее в общей форме события нажимает кнопку "Change RSVP". Открывается форма где пользователь устанавливает статус и нажимает кнопку "Save", либо "Cancel". Выводится сообщение об успехе или (если ошибка с сетью или др.) сообщение об ошибке.| |SR.FUSRE.06|+Функция+ Получение списка участников +Описание+ Получение списка содержащего: id пользователей и их статусы, относительно данного события +Предусловие+ Пользователь прошел авторизацию +Постусловие+ нет +Входные данные+ id события +Выходные данные+ список участников|Высокий|Пользователь нажимает на элемент нужного события в списке, далее в общей форме события нажимает кнопку "Members". Выводится список участников, либо сообщение "No memebers", либо сообщение об ошибке (если ошибка с сетью или др.).| |SR.FUSRE.07|+Функция+ Поиск событий по названию +Описание+ Получение списка событий, удовлетворяющих поисковому запросу +Предусловие+ Пользователь прошел авторизацию +Постусловие+ нет +Входные данные+ поисковая строка +Выходные данные+ список событий|Средний|Пользователь вводит в поле для ввода название события, нажимает на кнопку. Отображается список найденных событий или (если не найдено) сообщение о том что событий не найдено.| |SR.FUSRE.08|+Функция+ Приглашение пользователей +Описание+ Приглашение пользователей принять участие в мероприятии +Предусловие+ Пользователь прошел авторизацию +Постусловие+ нет +Входные данные+ id события, список id пользователей +Выходные данные+ успех, неудача|Средний|Пользователь нажимает на элемент нужного события в списке, далее в общей форме события нажимает кнопку "Invate ". В появившейся форме вводит имя пользователя в поле ввода и нажимает "OK". Выводится сообщение об успехе или (если ошибка с сетью, проблемы приватностью, пользователь не найден) сообщение об ошибке.| h1. Работа с геолокацией h2. Поиск мест и отметка # появляется форма "SearchPlaces form" # пользователь вводит в поле для ввода поисковый запрос # пользователь нажимает "Search" # появляется список найденных мест # пользователь нажимает на элемент одного из найденных мест # появляется форма "CheckinsOfPlace Form", где отображается подробная информация о месте и список отметок # пользователь нажимает кнопку "Checkin" # появляется форма "CheckinDialog form" # пользователь вводит комментарий к отметке # пользователь нажимает "OK" для отправки или "Cancel" для закрытия формы h2. Просмотр отметок # появляется форма "Checkins form" # пользователь нажимает на вкладку "Friends" # появляется список последних отметок друзей # пользователь нажимает на вкладку "Nearby" # появляется список отметок сделанных людьми поблизости h2. Отображение отметок или мест на карте # на странице со списками мест или отметок пользователь нажимает "On Map" # появляется форма "Map form" # на карте отображаются отметки или места # пользователь нажимает "Cancel" для выхода h1. Работа с событиями и встречами h2. Поиск событий (URE5) # появляется форма "SearchEvents form" # пользователь вводит в поле для ввода поисковый запрос # пользователь нажимает "Search" # появляется список найденных событий # пользователь нажимает на элемент одного из найденных событий # появляется форма "Event Form", где отображается подробная информация о событии # пользователь нажимает кнопку "Attend", "Maybe" или "Decline", тем самым заявив о своем участии/возможном участии/не участии в мероприятии(в случае если мероприятие открыто для участия) # пользователь может оставить комментарий на стене события # пользователь может нажать на кнопку пригласить друзей # чтобы перейти обратно к списку событий пользователь нажимает кнопку "Back" h2. Получение списка событий (URE4) # пользователь нажимает кнопку "Update" на главной странице для обновления(загрузке при первом запуске) списка событий h2. Получение информации о событии # в общем списке событий пользователь щелкает на одно из них # появляется форма отображения информации о событии # пользователь может нажать кнопку "Edit event" для редактирования события # в этом случае появляется форма "EditEvent form", где пользователь может редактировать поля события и статус своего участия # пользователь нажимает кнопки "Save" ил "Cancel" # пользователь может нажать на кнопку "Invate friends" для приглашение пользователя(ей) # чтобы перейти обратно к списку событий пользователь нажимает кнопку "Back"