1. Определение требований к модели ✋
Тема ВКР: Разработка интеллектуальной информационной системы обработки сообщений пользователей для мессенджера Telegram
Объект исследований: системы электронно-информационных коммуникаций.
Предмет исследований: средства мгновенного обмена сообщениями.
Процессы верхнего уровня: ✋
- **А1 ** Управлять коммуникациями.
- **А2 ** Подготовить коммуникации.
- **А3 ** Провести коммуникации.
- **А4 ** Оценить качество коммуникаций.
- **А5 ** Выявить проблемы.
Точка зрения: Проректор универсистета.
Цель моделирования: Определение автоматизируемых функций.
2. Функциональное моделирование процессов (IDEF0) ✋
- A-0 (контекстная диаграмма)
- A0 (диаграмма верхнего уровня)
- A2 (декомпозиция процесса/процессов внутренней среды)
- A3 (декомпозиция процесса/процессов внутренней среды)
- A4 (декомпозиция процесса/процессов внутренней среды)
3. Функциональное моделирование программных и информационных средств (DFD) ✋
Конфигурация технических средств: Рабочие станции (ПК).
Конфигурация программных средств: Многоуровневые.
Допустимые виды хранилищ и их размещение: Почтовый сервер, сервер Amazon AWS, запоминающее устройство ПК.
- A32 Автоматизация процесса А32
- A33 Автоматизация процесса А33
4.1 Идентификатор прецедента: А33
4.2 Название прецедента: Отправка сообщения пользователям Telegram
4.3 Контекст: А3
4.4 Участники (actors) и цели (goals):
Участник | Категория | Цель (goal) |
---|---|---|
Подключение к IMAP | Инструмент | Обеспечить работоспособность системы |
Преподаватель | Внешний | Произвести отправку сообщения |
Бот | Инструмент | Предоставить средства для получения сообщения |
Telegram API | Инструмент | Обеспечить работоспособность системы |
4.5 Предусловия (pre-conditions):
-
Выполненное подключение компонентов системы
-
Преподаватель
-
Бот
4.6 Постусловия (post-conditions):
- Полученное в чате сообщение
4.7 Основной поток выполнения (main flow):
Участник | Действие (activity) | Ожидаемый результат |
---|---|---|
Пользователь | Управляет программой | Вхождение в telegram |
Пользователь | Запускает программу | Заходит в telegram бот |
Пользователь | Нажимает необходимую кнопку | Включение бота |
Telegram Bot | Отображает полученные сообщения | Отображенные сообщения |
Пользователь | Читает сообщение | Полученная информация |
Пользователь | Выходит из Telegram | Завершает работу с ботом |
4.8 Исключения (exceptions):
Условие (риск) | Последствия | Реакция |
---|---|---|
Бот не реагирует на нажатие кнопки | Пользователь не получает отчет | Обратиться к разработчкику |
4.9 Альтернативы (alternates):
Не предусмотрено.
4.10 Временные параметры:
- Триггер (событие, стартующее прецедент): Необходимость получить сообщение в Telegram.
- Номинальная частота повторения прецедента: 1-2 раза в день.
- Продолжительность прецедента: 3 минуты.
-
Описываемый объект: telegram bot.
-
Диаграмма UML Class:
-
Описываемые процессы и потоки данных: А33
-
Диаграмма UML Sequence:
https://vivatgeorge.github.io/vivatgeorge/#!/topics/1
9.1 Используемые паттерны проектирования и разработки ✋:
9.1.1 Процессная модель для сравнения: Задача: Необходимость в автоматизированной системе отправки сообщений пользователям в telegram Способ решения: при помощи методологии PDCA:
- Этап Plan (планирование) Выявление проблемы:
- Процесс пересылки сообщений пользователям является время затратным по времени.
- Цель: автоматизация процесса пересылки сообщений с помощью telegram бота
- Требования: повысить производительность и эффективность без увеличения трудозатрат
- Ожидаемый результат: разработано автоматизированное средство пересылки сообщений в telegram
- Ресурсы, необходимые для достижения ожидаемого результата: разработанные требования для состава письма электронной почты, наличие сервера, ПК или мобильного телефона, хранилище данных
- Процессы (запланированные действия):
- Разработать telegram бота
- Привязать почтовый сервер к Telegram
- Создать необходимые процедуры, которые будут формировать состав входящего электронного письма
- Разработать кнопки (функционал), отвечающие за работу с фильтрами
- Этап Do (Выполнение) Разработчики-аналитики выполняют поставленные задачи
- Этап Check (Проверка): По итогу разработки произвести апробацию, и в случае успеха, произвести внедрение
- Act (Улучшение): При успешной работе системы она внедряется в учебное учреждение с дальнейшей возможностью доработки.
- Используемые в разработке паттерны и фреймворки:
- Паттерн Посредник - это поведенческий паттерн проектирования, который позволяет уменьшить связанность множества классов между собой, благодаря перемещению этих связей в один класс-посредник
9.2 Используемые паттерны выявления проблем ✋:
- Муда: трата времени на пересылку сообщений вручную
- Мура: неправильно сформированный формат содержания сообщений
- Мури: единовременное использование функций бота многими пользователями
9.3 Возможные антипаттерны ✋:
Категория | Антипаттерн (риск) | Действие по избежанию |
---|---|---|
Разработка | Spaghetti code. Спагетти-код —Ход выполнения программы похож на спагетти, т.е извилистый и очень запутанный код. | изучение правил написания кода, переписывание кода |
Архитектура | Большой комок грязи (Big ball of mud) | разработать "читаемую" архитектуру системы |
Организация | Аналитический паралич. Неоправданно большие затраты на анализ и проектирование. | проанализировать приоритеты |
Среда | Чрезмерное усложнение | стараться упростить систему |
10. Интерпретация построенных моделей ✋
10.1 Определение числовых показателей для поставленной цели моделирования:
Выявление процессов, нуждающихся в повышении качества.
Способ получения: извлечение из диаграмм IDEF0 и DFD.
10.2 Определение числовых показателей для цели потенциального проекта автоматизации: ✋
Числовыми показателями являются время и трудозатраты.
10.3 Расчет потенциального эффекта от автоматизации:
Староста группы в любом учебном заведении в случае ожидания сообщения от преподавателя, в среднем, тратит 3 минут на проверку почты и пересылку необходимых сообщений. Таких проверок в день (8 часов) насчитывается около 5 штук, каждый раз при этом ему нужно зайти в почту. Этот процесс отнимает драгоценное время, в связи с этим, было принято разработать интеллектуальную систему обработки сообщений в приложении Telegram.
После внедрения системы старосте не придется отправлять сообщения, так как это сделает система за него. Итого экономия: 0.25Ч в день, в месяц (0.25) * 30 = 7.5 часов. При наличии 1 старосты в каждой из 200 групп и при их активности в 8 часов в день, ежемесячная экономия времени составит 7.5 * 200 ~ 1500 чел/мес.
10.4 Определение числовых показателей и расчет затрат на реализацию проекта автоматизации:
Расчет сложности разработки методом FPA IFPUG:
Расчет трудозатрат на разработку «с нуля» методом COCOMO II:
10.5 План-факт сравнение для затрат на реализацию: 💻
Из расчета:
SLOC = 7056 строк кода
PM (Трудозатраты) = 18.5 человеко-месяцы
TDEV (Полный срок разработки, месяцы) = 8.4 месяцев
Исходя из значений по факту:
SLOC = 5000 строк кода
PM (Трудозатраты) = 800 человеко-часы
TDEV (Полный срок разработки) = 8 месяцев
Готовность = 80%
ВЫВОДЫ
Исходя из результатов таблицы п.10.5 можно сделать вывод, что за счет использования готовых функций и библиотек удалось сократить строки кода (языки программирования Python) в 3.1 раза. Также, за счет сокращения тестирования, объема документации, и использования CASE, удалось сократить срок разработки с 8.4 месяцев до 8. Срок окупаемости разработки сократился в 3.1 раза. На данный момент работа выполнена на 100%.