1. Определение требований к модели ✋
Тема ВКР: Разработка интеллектуальной автоматизированной системы информирования пользователей для мессенджера Telegram
Объект исследований: системы электронно-информационных коммуникаций.
Предмет исследований: средства мгновенного обмена сообщениями.
Процессы верхнего уровня: ✋
- **А1 ** Управление взаимодействием с пользователями.
- **А2 ** Обработка запроса.
- **А3 ** Выполнение запроса.
- **А4 ** Выдача информации.
2. Функциональное моделирование процессов (IDEF0) ✋
- A-0 (контекстная диаграмма)
- A0 (диаграмма верхнего уровня)
- A2 (декомпозиция процесса/процессов внутренней среды)
- A3 (декомпозиция процесса/процессов внутренней среды)
- A4 (декомпозиция процесса/процессов внутренней среды)
3. Функциональное моделирование программных и информационных средств (DFD) ✋
Конфигурация технических средств: Рабочие станции (ПК).
Конфигурация программных средств: Многоуровневые.
Допустимые виды хранилищ и их размещение: Хранилище предопределенных значений, запоминающее устройство ПК.
- A21 Автоматизация процесса А21
- A32 Автоматизация процесса А32
- A43 Автоматизация процесса А43
4.1 Идентификатор прецедента: А4
4.2 Название прецедента: Отправка сообщения пользователям Telegram
4.3 Контекст: А0
4.4 Участники (actors) и цели (goals):
Участник | Категория | Цель (goal) |
---|---|---|
Бот | Инструмент | Предоставить средства для получения сообщения |
Telegram API | Инструмент | Обеспечить работоспособность системы |
Правила синтаксиса | Внешний | Формализовать данные |
Пользователь | Основной | Запросить информацию |
4.5 Предусловия (pre-conditions):
-
Выполненное подключение компонентов системы
-
Пользователь
-
Бот
4.6 Постусловия (post-conditions):
- Полученное в чате сообщение
4.7 Основной поток выполнения (main flow):
Участник | Действие (activity) | Ожидаемый результат |
---|---|---|
Пользователь | Управляет программой | Вхождение в telegram |
Пользователь | Запускает программу | Заходит в telegram бот |
Пользователь | Нажимает необходимую кнопку | Включение бота |
Telegram Bot | Обращается к информационному ресурсу | Получение данных |
Telegram Bot | Формализует полученные данные | Приведение к читаемому виду |
Telegram Bot | Отправляет сообщение | Ответ на запрос |
Пользователь | Читает сообщение | Полученная информация |
Пользователь | Выходит из Telegram | Завершает работу с ботом |
4.8 Исключения (exceptions):
Условие (риск) | Последствия | Реакция |
---|---|---|
Бот не реагирует на нажатие кнопки | Пользователь не получает отчет | Обратиться к разработчкику |
4.9 Альтернативы (alternates):
Не предусмотрено.
4.10 Временные параметры:
- Триггер (событие, стартующее прецедент): Необходимость получить сообщение в Telegram.
- Номинальная частота повторения прецедента: 1-2 раза в день.
- Продолжительность прецедента: 2 минуты.
-
Описываемый объект: telegram bot.
-
Диаграмма UML Class:
-
Описываемые процессы и потоки данных: А33
-
Диаграмма UML Sequence:
https://miglecov.github.io/miglecov/#!/topics
9.1 Используемые паттерны проектирования и разработки ✋:
9.1.1 Процессная модель для сравнения: Задача: Необходимость в автоматизированной системе информирования пользователей о новостях, погоде и курсе в мессенджере Telegram Способ решения: при помощи методологии PDCA:
- Этап Plan (планирование) Выявление проблемы:
- Процесс поиска информации пользователем является затратным по времени.
- Цель: автоматизация процесса запроса информации с интернет-ресурсов помощью бота Telegram
- Требования: повысить производительность и эффективность без увеличения трудозатрат
- Ожидаемый результат: разработано автоматизированное средство информирования пользователей в Telegram
- Ресурсы, необходимые для достижения ожидаемого результата: разработанные требования для формы предоставляемой информации, наличие сервера, ПК или мобильного телефона, хранилище данных
- Процессы (запланированные действия):
- Разработать бота Telegram,
- Разработать алгоритм обращения к информационным ресурсам
- Создать необходимые процедуры, которые будут формализовать полученные данные
- Разработать кнопки (функционал), отвечающие за работу с фильтрами
- Этап Do (Выполнение) Разработчики-аналитики выполняют поставленные задачи
- Этап Check (Проверка): По итогу разработки произвести апробацию, и в случае успеха, произвести внедрение
- Act (Улучшение): При успешной работе системы она внедряется в новостное агентство с возможностью дальнейшей доработки.
- Используемые в разработке паттерны и фреймворки:
- Паттерн Посредник - это поведенческий паттерн проектирования, который позволяет уменьшить связанность множества классов между собой, благодаря перемещению этих связей в один класс-посредник
9.2 Используемые паттерны выявления проблем ✋:
- Муда: трата времени на поиск информации вручную
- Мура: неправильно сформированный формат содержания сообщений
- Мури: единовременное использование функций бота многими пользователями
9.3 Возможные антипаттерны ✋:
Категория | Антипаттерн (риск) | Действие по избежанию |
---|---|---|
Разработка | Божественный объект. Чрезмерное скопление функций и данных в рамках одного объекта | Использование системы классов,интерфейсов, конструкций и пр. |
Архитектура | Большой комок грязи (Big ball of mud) | Разработать "читаемую" архитектуру системы |
Организация | Аналитический паралич. Неоправданно большие затраты на анализ и проектирование. | Проанализировать приоритеты |
Среда | Accidental complexity. Сложность решения значимо выше сложности задачи | Искать более простые пути решения задачи |
10. Интерпретация построенных моделей ✋
10.1 Определение числовых показателей для поставленной цели моделирования:
Выявление процессов, нуждающихся в повышении качества.
Способ получения: извлечение из диаграмм IDEF0 и DFD.
10.2 Определение числовых показателей для цели потенциального проекта автоматизации: ✋
Числовыми показателями являются время и трудозатраты.
10.3 Расчет потенциального эффекта от автоматизации:
Менеджер информационного агентства в случае необходимости отправки актуальных материалов, в среднем, тратит час ежедневно на актуализацию новостей, прогноза погоды и текущего курса валют. Процесс этот происходит 1 раз в день и отнимает 1/8 рабочего времени, что очень весомо, в связи с чем было решено разработать интеллектуальную систему информирования в мессенджере Telegram.
После внедрения системы, менеджер не только получит больше рабочего времени в свое распоряжение, но и будет уверен в максимальной актуальности материалов. Экономия: 1Ч в день, в месяц 1 * 30 = 30 часов. При наличии 3-х менеджеров экономия составит 30 * 3 ~ 90 чел/час в месяц.
10.4 Определение числовых показателей и расчет затрат на реализацию проекта автоматизации:
Расчет сложности разработки методом FPA IFPUG и расчет трудозатрат на разработку «с нуля» методом COCOMO II:
10.5 План-факт сравнение для затрат на реализацию: 💻
Из расчета:
SLOC = 7 776 строк кода
PM (Трудозатраты) = 4.1 человеко-месяцы
TDEV (Полный срок разработки, месяцы) = 5.5 месяцев
Исходя из значений по факту:
SLOC = 4000 строк кода
PM (Трудозатраты) = 450 человеко-часы
TDEV (Полный срок разработки) = 5.5 месяцев
Готовность = 85%
ВЫВОДЫ
Исходя из результатов таблицы п.10.5 можно сделать вывод, что за счет использования готовых функций и библиотек удалось сократить количество строк кода (язык программирования Java) в 1.7 раза. Также, за счет сокращения тестирования, объема документации, и использования CASE, удалось сократить срок разработки с 5.5 месяцев до 4.7. Срок окупаемости разработки сократился в 1.4 раза. На данный момент работа выполнена на 100%.