Skip to content

Latest commit

 

History

History
250 lines (145 loc) · 17.4 KB

README.md

File metadata and controls

250 lines (145 loc) · 17.4 KB

Курсовой проект по дисциплине "Проектирование информационных систем"

Петров Н.О., ИДБ-17-06

1. Определение требований к модели

Тема ВКР: Разработка интеллектуальной автоматизированной системы информирования пользователей для мессенджера Telegram

Объект исследований: системы электронно-информационных коммуникаций.

Предмет исследований: средства мгновенного обмена сообщениями.

Процессы верхнего уровня:

  • **А1 ** Управление взаимодействием с пользователями.
  • **А2 ** Обработка запроса.
  • **А3 ** Выполнение запроса.
  • **А4 ** Выдача информации.

2. Функциональное моделирование процессов (IDEF0)

  • A-0 (контекстная диаграмма)

A-0

  • A0 (диаграмма верхнего уровня)

A0

  • A2 (декомпозиция процесса/процессов внутренней среды)

A2

  • A3 (декомпозиция процесса/процессов внутренней среды)

A3

  • A4 (декомпозиция процесса/процессов внутренней среды)

A4

3. Функциональное моделирование программных и информационных средств (DFD)

Конфигурация технических средств: Рабочие станции (ПК).

Конфигурация программных средств: Многоуровневые.

Допустимые виды хранилищ и их размещение: Хранилище предопределенных значений, запоминающее устройство ПК.

  • A21 Автоматизация процесса А21

A21

  • A32 Автоматизация процесса А32

A32

  • A43 Автоматизация процесса А43

A43

4. Описание выбранного процесса в формате прецедента (Use Case)

Диаграмма UML Use Case p4

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 минуты.

5. Описание структуры объекта в формате ERD (Class)

  • Описываемый объект: telegram bot.

  • Диаграмма UML Class:

p5

6. Описание алгоритма в формате UML (Sequence)

  • Описываемые процессы и потоки данных: А33

  • Диаграмма UML Sequence:

p6

7. Описание состава в формате UML (Component)

  • Описываемый объект: Струкрутра программных средств системы

  • Диаграмма UML Component: p7

8. Демонстрация реализации (личная страница)

https://miglecov.github.io/miglecov/#!/topics

9. Подготовка к интерпретации построенных моделей

9.1 Используемые паттерны проектирования и разработки :

9.1.1 Процессная модель для сравнения: Задача: Необходимость в автоматизированной системе информирования пользователей о новостях, погоде и курсе в мессенджере Telegram Способ решения: при помощи методологии PDCA:

  1. Этап Plan (планирование) Выявление проблемы:
  • Процесс поиска информации пользователем является затратным по времени.
  • Цель: автоматизация процесса запроса информации с интернет-ресурсов помощью бота Telegram
  • Требования: повысить производительность и эффективность без увеличения трудозатрат
  • Ожидаемый результат: разработано автоматизированное средство информирования пользователей в Telegram
  • Ресурсы, необходимые для достижения ожидаемого результата: разработанные требования для формы предоставляемой информации, наличие сервера, ПК или мобильного телефона, хранилище данных
  • Процессы (запланированные действия):
  • Разработать бота Telegram,
  • Разработать алгоритм обращения к информационным ресурсам
  • Создать необходимые процедуры, которые будут формализовать полученные данные
  • Разработать кнопки (функционал), отвечающие за работу с фильтрами
  1. Этап Do (Выполнение) Разработчики-аналитики выполняют поставленные задачи
  2. Этап Check (Проверка): По итогу разработки произвести апробацию, и в случае успеха, произвести внедрение
  3. Act (Улучшение): При успешной работе системы она внедряется в новостное агентство с возможностью дальнейшей доработки.
  • Используемые в разработке паттерны и фреймворки:
  • Паттерн Посредник - это поведенческий паттерн проектирования, который позволяет уменьшить связанность множества классов между собой, благодаря перемещению этих связей в один класс-посредник

9.2 Используемые паттерны выявления проблем :

  • Муда: трата времени на поиск информации вручную
  • Мура: неправильно сформированный формат содержания сообщений
  • Мури: единовременное использование функций бота многими пользователями

9.3 Возможные антипаттерны :

Категория Антипаттерн (риск) Действие по избежанию
Разработка Божественный объект. Чрезмерное скопление функций и данных в рамках одного объекта Использование системы классов,интерфейсов, конструкций и пр.
Архитектура Большой комок грязи (Big ball of mud) Разработать "читаемую" архитектуру системы
Организация Аналитический паралич. Неоправданно большие затраты на анализ и проектирование. Проанализировать приоритеты
Среда Accidental complexity. Сложность решения значимо выше сложности задачи Искать более простые пути решения задачи

10. Интерпретация построенных моделей

10.1 Определение числовых показателей для поставленной цели моделирования:

Выявление процессов, нуждающихся в повышении качества.

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:

2

10.5 План-факт сравнение для затрат на реализацию: 💻

3

Из расчета:

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%.