Диплом: Управление разработкой ИС на основе Agile технологий и ее внедрением на предприятии ООО «Агентство Сейлконтент»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
74
Рисунок 15. Древо функций системы для пользователя
75
Рисунок 16. Сценарий диалога для пользователя
76
2.4.2 Характеристика базы данных
База данных разрабатываемой информационной системы должна содержать
следующие таблицы.
Tasks (Таблица задач). id идентификатор задачи, categoryId –
идентификатор категории задач (Categories), stateId – идентификатор состояния
задачи (TaskStates), ownerId – идентификатор создателя задачи (Contacts), chatId –
идентификатор связанного чата (Chats), createdDate - дата создания, dueDate - срок
задачи, priority - приоритет задачи.
Categories (Таблица категорий задач). id - идентификатор категории,
name - название категории.
TaskStates (Таблица состояний задач). id - идентификатор состояния
задачи, name - название состояния.
Chats (Таблица чатов). id - идентификатор чата, ownerId -
идентификатор создателя чата (Contacts), draftMessageId - идентификатор
черновика сообщения (Messages), createdDate - дата создания, isClosed - индикатор
закрытого чата, isMuted - индикатор, что уведомления для этого чата выключены.
Contacts (Таблица контактов). id - идентификатор контакта, firstName -
имя, lastName - фамилия, address - адрес офиса, jobPosition - должность, cellPhone -
мобильный телефон, email - почтовый адрес, sip - SIP номер.
ChatSubscribers (Таблица подписчиков чата). subscriberId -
идентификатор подписчика (Contacts), chatId - идентификатор чата (Chats),
составной уникальный ключ из subscriberId и chatId.
Messages (Таблица сообщений в чате). id - идентификатор сообщения,
chatId - идентификатор чата (Chats), senderId - идентификатор отправителя
(Contacts), date - дата отправки, content - текстовое содержание сообщения.
MessageRecipients (Таблица получателей сообщения). recipientId -
идентификатор получателя (Contacts), messageId - идентификатор сообщения
(Messages), readDate - дата прочтения получателем, составной уникальный ключ из
recipientId и messageId.
Files (Таблица метаданных файлов). id - идентификатор файла,
fileName - имя файла, fileMime - MIME файла, filePath - абсолютный путь к файлу
77
на диске, uploadDate - дата загрузки файла на сервер, size - размер файла, составной
уникальный ключ из uploadId и messageId.
MessageFiles (Таблица файлов в сообщениях). fileId – идентификатор
файла, messageId - идентификатор сообщения, которое ссылается на файл
(Messages).
Signatures (Таблица подписей). id - идентификатор подписи, taskId -
идентификатор задачи, в которой запрошена подпись (Tasks), name - наименование
подписи, reason - причина запроса подписи, initializeDate - дата запроса подписи,
maxDate - срок подписи.
SignatureResolutions (Таблица решений по подписи). id -
идентификатор резолюции, signatureId - идентификатор подписи (Signatures), name
- наименование резолюции, reasonRequired - индикатор, что подписание должно
сопровождаться пояснением.
Acceptors (Таблица акцептантов подписи). acceptorId - идентификатор
акцептанта (Contacts), signatureId - идентификатор подписи (Signatures), составной
уникальный ключ из acceptorId и signatureId.
Actions (Таблица действий-переходов между статусами в задаче). id -
идентификатор действия, stateId - идентификатор состояния задачи, в котором
действие присутствует (TaskStates), name - наименование действия.
Performers (Таблица исполнителей в задаче). performerId -
идентификатор исполнителя (Contacts), taskId - идентификатор задачи (Tasks),
responsible - индикатор, что исполнителя является ответственным, составной
уникальный ключ из performerId и taskId.
ExtParams (Таблица дополнительных параметров). id - идентификатор
параметра, paramType - тип ДП (число, строка, URL, таблица…), value -
сериализованное в строку значение ДП, name - название ДП.
TaskExtParams (Таблица ДП в задачах). paramId - идентификатор
параметра, taskId - идентификатор задачи, составной уникальный ключ из paramId
и taskId.
LaborCost (Таблица трудозатрат). performerId - идентификатор
исполнителя в задаче (Contacts), taskId - идентификатор задачи (Tasks), date - дата
78
трудозатрат, minutes - выражение трудозатрат в минутах, comment - комментарий
при внесении ТЗ, составной уникальный ключ из performerId, taskId и date.
Resource (Таблица отделов и департаментов организации). id -
идентификатор отдела, name - наименование отдела.
TaskResource (Таблица плановых ТЗ в задачах по отделам). resourceId -
идентификатор ресурса (Resource), taskId - идентификатор задачи (Tasks), minutes -
плановые трудозатраты отдела в данной задаче, составной уникальный ключ из
resourceId и taskId.
ER-диаграмма базы данных разрабатываемой ИС приведена на рисунке 17.
Рисунок 17. ER-диаграмма базы данных
2.4.1 Структурная схема пакета (дерево вызова программных
модулей)
Структурная схема информационной системы включает подсистему
визуального взаимодействия с пользователем.
Разрабатываемое приложение для платформы iOS является мобильным
клиентом платформы Первая форма. Приложение имеет клиент-серверную
архитектуру («толстый» клиент). Независимо от модуля приложения, основная
79
последовательность действий для получения данных и отображения их в
приложении следующая:
сначала данные берутся из локальной базы данных или кэша;
сразу выполняется асинхронный запрос на сервер;
когда придет ответ с сервера, данные разбираются, структурируются и
записываются в БД, при этом удаляются старые данные;
затем данные снова берутся из БД и отдаются вызывающему коду.
Приложение содержит большое количество программных модулей,
основные из которых приведены дальше.
Модуль авторизации пользователя в приложении и ведения списка учетных
записей. В данном модуля предусмотрена возможность выбора сервера и ввода
данных учетной записи для входа в приложение. Свайп пальцем по ячейке учетной
записи показывает кнопки отключения/включения УЗ, очистки всех данных для УЗ
(БД, кэш, защищенное хранилище, сброс настроек) и удаления УЗ из приложения.
В модуле управления задачами разработана лента задач, в которой для
каждой задачи есть своя ячейка. В каждой ячейке есть бриф по соответствующей
задаче, в том числе категория задачи, ее статус, заказчик, исполнитель и краткое
содержание. Также заголовок задачи заполнен определенным цветом. Зеленый
означает, что задачу поставил я, синий – задачу поставили мне, серый – задача не
относится ко мне, красный – задача просрочена. Кроме того, в ленте задач
предусмотрена фильтрация. Соответственно, можно показать все задачи, только
новые, задачи типа Обсуждения, задачи, где я заказчик, где я исполнитель, лента
избранных задач и лента просроченных задач. В баре навигации ленты задач
предусмотрены кнопки создания новой задачи и поиска по задачам. Поиск по
задачам позволяет искать задачи локально и на сервере по номеру задачи, тексту,
исполнителю или постановщику.
Выбрав одну из задач, будет показан экран с «контейнером» задачи. По
умолчанию в «контейнере» задачи будет открыта «карточка» задачи, в которой
приведена детальная информация по задаче, в том числе категория, номер задачи,
заказчик, список исполнителей, список подписчиков, дата постановки и срок,
полное описание, статус и приоритет. Задача предусматривает переход между
статусами, к примеру для перехода из статуса «Новая» в статус «Завершена»
80
необходимо нажать кнопку «Завершить». Для каждой категории задач можно
полностью настроить маршрут переходов, который будет учитывать необходимую
бизнес-логику. Отсюда можно перейти в журнал истории всех подписей и в модуль
трудозатрат задачи.
В «контейнере» задачи выводятся и другие экраны, в том числе лента
комментариев по задаче, которая идентична обычному чату, и экран
дополнительных параметров (ДП) по задаче. Дополнительные параметры задачи –
параметры, которые не укладываются в стандартное представление задачи и
настраиваются отдельно для каждой категории. Для категории iOS Backlog
настроены такие ДП, как проект, спринт, характер задачи (к примеру, новый
функционал, исправление ошибки, доработка, Code review, анализ и так далее) и
ветка в системе контроля версий, в которой выполнялась разработка функционала.
В модуль учета трудозатрат пользователей можно перейти из карточки
задачи. Первым будет представлен экран со всеми отделами, сотрудники которых
являются исполнителями в задаче. Здесь для каждого отдела будет выведено время,
которое запланировано на выполнение данной задачи суммарно всеми
сотрудниками данного отдела. Для каждого сотрудника напротив его имени будет
указано суммарное время, которое он потратил на выполнение данной задачи.
Нажав на ячейку сотрудника пользователь попадет на экран фактических
трудозатрат данного сотрудника детализированных по дням. На данном экране в
виде списка, будут выведены все трудозатраты пользователя по данной задаче,
отсортированные по дням. Зеленые круги – единицы времени. Один круг – 1 час
потраченного времени. Неполный круг означает часть часа, то есть, если круг
заполнен на половину – полчаса. Если за день сотрудник потратил более 8 часов, то
каждый следующий круг будет красного цвета, сразу давая понять о величине
переработок.
В баре навигации на данном экране предусмотрена кнопка «+», которая
откроет экран внесения трудозатрат. Если до сих пор по данному сотруднику не
было внесено трудозатрат, то автоматически будет показан последний экран с
внесением трудозатрат. Данный экран позволяет выбрать дату внесения
трудозатрат, количество часов и минут регулируются двумя отдельными
слайдерами с шагом 1 час и 5 минут, соответственно. Также, есть возможность
81
ввести комментарий к данным трудозатратам, детализируя что конкретно было
выполнено по данной задаче. Пользователь может внести не только свои
трудозатраты, но и для других сотрудников, если ему даны соответствующие
права.
Разрабатываемая информационная система призвана автоматизировать
корпоративную деятельность. В описании модуля задач было сказано про
переходы между статусами. Зачастую, такой процесс сопровождается
подтверждением со стороны постановщика задачи, либо руководителем
сотрудника. Для автоматизации данного бизнес-требования было решено
разработать модуль электронных подписей, благодаря которым, акцептант может
принять то или иное решение.
Модуль подписей подразумевает наличие списка подписей, которые
отображаются в двух режимах. Первый режим выводит все подписи, которые
адресованы данному пользователю. В шапке ячейки подписи выводится
информация по задачам, к которым эти подписи относятся, то есть постановщик
задачи, краткое содержание задачи и ее номер. После шапки идет информация по
подписи, в том числе причина и срок подписания, а так же набор кнопок-
резолюций. Среди основных резолюций можно выделить такие как «Подписать»,
«Подписать с замечаниями», «Отклонить», «Удалить» и «Делегировать».
Некоторые резолюции требуют комментария при подписании. При нажатии на
ячейку подписи пользователь попадет в «контейнер» задачи – второй режим
отображения. В данном случае лента состоит не только из подписей, адресованных
мне, но выводятся все актуальные подписи по задаче, в том числе необязательные
(при нажатии на которые они запрашиваются как обязательные). Здесь ячейка
подписи не содержит краткую информацию по задаче, но отображает кому
запрошена подпись. Кнопки резолюций для каждой подписи отображаются в
зависимости от прав пользователя.
Во время работы в данной ИС приходится очень тесно взаимодействовать с
сотрудниками компании, впрочем именно для взаимодействия система и
создавалась. Поэтому одним из важнейших модулей программы является модуль
контактов. Здесь можно вести поиск по контактам, видеть наиболее близких с
точки зрения взаимодействия сотрудников и краткую информацию по ним, в том
82
числе имя, фамилию, аватарку и статус (онлайн статус, либо статус занятости).
При нажатии на кнопку информации контакта открывается его карточка, в
которой выводится вся доступная информация по данному сотруднику. При этом
отображаемая информация регулируется правами пользователя. Здесь могут быть
указаны контактные данные сотрудника, его телефон, внутренняя и внешняя
почты, его онлайн статус, либо статус занятости, аватарка, должность и адрес
офиса с кабинетом. Отсюда можно позвонить пользователю, отправить СМС,
написать в чат, либо запросить геолокацию. По данному сотруднику можно
оставить заметку или посмотреть его публикации.
В приложении предусмотрен модуль чатов. Данный модуль позволяет
создавать и вести приватную переписку с одним пользователем, либо создать
групповой чат, в котором будут участвовать неограниченное количество
сотрудников. Чат может называться либо именами собеседников, либо
специальным удобным названием для простой его идентификации в общем списке.
Список чатов представлен на отдельном экране, он может состоять из
совокупности списков всех учетных записей в приложении, либо отдельно по
выбранной УЧ. В списке приведены ячейки с чатами, по каждому чату выводится
краткая информация, в том числе название чата, онлайн статус собеседника,
последнее сообщение, аватарки пользователей от 1 до 3, дата последнего
сообщения и статус сообщения (отправляется, отправлено, просмотрено,
произошла ошибка отправки).
При выборе нужного чата пользователь перейдет на экран с лентой
сообщений данного чата. Здесь пользователи ведут переписку. Сообщения
доставляются мгновенно, без необходимости обновлять экран. В чате есть
возможность отправлять как простые текстовые сообщения, так и медиа-файлы.
Пользователь может отправить картинку, сделав снимок или выбрав из галереи,
снять и отправить видео, записать голосовое аудио сообщение, вложить текстовый
файл или отправить все что угодно в виде документа. Кроме того, пользователю
может выбрать получателей данного сообщения, либо даже удалить сообщение или
переслать его. Пользователю доступен функционал выключения уведомлений от
данного чата и полная очистка всей переписки.
В приложении предусмотрено множество лент, задач, комментариев, заметок
83
по клиентам, циклов продаж, планов развития и других. Одной из важнейших
является лента новостей, с помощью которой, к примеру, сотрудники отдела PR
собирают самые актуальные и релевантные новости, тем самым держа остальных
сотрудников компании в курсе происходящих событий в мире бизнеса.
Ячейка ленты новостей представляет из себя бриф по новости, в ней содержится
изображение, автор новости и дата публикации, тема новости, ее заголовок и
аннотацию. Кроме того, внизу ячейки расположены счетчики количества
пользователей, которым понравилась данная новость, количества комментариев к
данной новости и количества просмотров. Зайдя в карточку новости, пользователь
увидит более детальную информацию по данной новости и сможет прочитать
полное содержание. А также сможет просмотреть вложенные файлы и
поучаствовать в обсуждении новости. Помимо этого, в ленте предусмотрен фильтр
новостей, здесь пользователь может отсортировать новости в определенном
порядке и выбрать список тем, которые его интересуют.
Важным элементом разрабатываемой ИС является VoIP телефония. Среди
основных целей создания внутренней корпоративной телефонии можно выделить
такие как бесперебойная круглосуточная связь между сотрудниками, независимо от
операторов и безопасность разговора. Существующая инфраструктура позволяет
звонить сотрудникам на мобильный телефон, на SIP мобильного телефона, либо на
стационарный SIP-телефон (если соответствующие номера указаны в профиле
сотрудника). Во время звонка есть возможность переключать вывод звука на
разные источники, такие как встроенный динамик или Bluetooth-гарнитуру.
Предусмотрена возможность создания конференций, удержание абонента или
переадресация звонка другому сотруднику.
Компании порой требуется знать где находится его сотрудник в рабочее
время, как правило это касается курьерской службы. К тому же необходимо
понимать, что сотрудник на выезде не свернул в другое место и не потратил
рабочее время не по назначению. Для этого потребовался функционал
периодического сбора геоданных пользователя. Администратор устанавливает
период, в течение которого с периодичностью в несколько минут или часов
собираются геоданные сотрудника и отправляются на сервер, затем по этим
данным строится маршрут. Сложность реализации подобного функционала

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
«Управление ресурсами проекта» (на примере организации ООО «ЛАКОСТЭ»)
Agile-методология в управлении проектами на примере ООО «Ресурсный центр «Академия КлассИнфо»
Aвтoмaтизaция пpoцecca вeдeния инфopмaциoннoй бaзы o дoлжнocтяx и вaкaнcияx c укaзaниeм тpeбoвaний к уpoвню знaний и нaвыкoв кaндидaтoв для гpуппы кaдpoв вoйcкoвoй чacти 3474»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
Cовершенствование управления рентабельности предприятия (на примере гуипп «бендерская типография «полиграфист»)