В современном мире, где цифровизация проникла во все сферы человеческой деятельности, эффективность и скорость обслуживания клиентов становятся ключевыми факторами успеха для любой организации. Традиционные справочные службы, опирающиеся исключительно на человеческий фактор, сталкиваются с постоянно растущим объемом запросов, что приводит к увеличению времени ожидания, снижению качества сервиса и, как следствие, падению удовлетворенности клиентов.
Решением этой проблемы выступает автоматизация процессов взаимодействия с пользователями посредством внедрения компьютерных агентов. По прогнозам Gartner, к 2025 году 80% компаний планируют внедрить умных помощников в процессы обслуживания клиентов, что подчеркивает не только актуальность, но и неизбежность этого тренда.
Настоящая дипломная работа ставит своей целью комплексное исследование и проектирование компьютерного агента для справочной службы, а также его последующую программную реализацию с использованием современных веб-технологий, таких как PHP и MySQL. Задачи исследования включают глубокий анализ теоретических основ функционирования программных агентов, разработку детализированной архитектуры базы данных, выбор и обоснование программных инструментов, а также создание методологии разработки, тестирования и оценки эффективности. Структура работы последовательно раскрывает эти аспекты, двигаясь от фундаментальных теоретических концепций к практической реализации и анализу результатов, что позволит создать всестороннее академическое исследование, ценное для студентов и аспирантов, специализирующихся на информационных технологиях и программной инженерии.
Теоретические Основы и Функциональные Требования к Компьютерному Агенту
Компьютерный агент, некогда концепция из научной фантастики, сегодня стал неотъемлемой частью цифровой инфраструктуры, трансформируя методы взаимодействия человека с информационными системами. Для справочных служб он становится не просто инструментом автоматизации, но и интеллектуальным помощником, способным значительно улучшить пользовательский опыт и эффективность операционной деятельности, при этом, помимо снижения нагрузки на персонал, он обеспечивает круглосуточную доступность и мгновенную реакцию на запросы, что существенно повышает лояльность клиентов.
Понятие и Классификация Программных Агентов
В основе концепции лежит определение программного агента как аппаратной или программной сущности, которая способна действовать в интересах достижения поставленных перед ней пользователем целей. Это не просто программа, а скорее посредник, взаимодействующий как с пользователями, так и с другими программами, чтобы выполнять задачи от их имени. Отличительной чертой часто является требование самостоятельного запуска, что означает, что агенты активизируются автономно, а не ждут прямого вызова для каждой задачи.
Минимальный набор характеристик, которые делают сущность агентом, включает:
- Активность: Способность организовывать и реализовывать действия для достижения поставленных целей.
- Автономность: Относительная независимость от прямого человеческого вмешательства, способность принимать решения и действовать самостоятельно в рамках своей предметной области.
- Коммуникабельность: Необходимость взаимодействовать с другими объектами или агентами для решения комплексных задач.
- Целенаправленность: Наличие внутренних источников мотивации и четких целей, к которым агент стремится.
Развитие технологий привело к появлению интеллектуальных агентов, которые обладают более сложными свойствами, приближающими их к разумным сущностям:
- Реактивность: Способность оперативно реагировать на изменения в окружающей среде.
- Проактивность (активность): Возможность не просто реагировать, но и генерировать собственные цели, инициировать действия.
- Знания, убеждения, желания (beliefs, desires, intentions — BDI): Внутреннее представление агента о мире, его целях и планах действий.
- Намерения: Цели, которые агент активно собирается реализовать.
- Принципы социального поведения: Способность взаимодействовать с другими агентами, соблюдая определенные правила и протоколы.
- Правдивость: Тенденция предоставлять достоверную информацию.
- Мобильность: Способность перемещаться между различными вычислительными средами.
Архитектуры Интеллектуальных Агентов
Архитектура интеллектуального агента представляет собой его внутреннее устройство, определяющее, как он воспринимает окружающую среду, обрабатывает информацию и принимает решения. Классическая архитектура включает три ключевых блока:
- Блок наблюдения: Отвечает за восприятие состояния окружающей среды. Это могут быть датчики, программные интерфейсы или другие механизмы для сбора входных данных (например, текстовые запросы пользователя, события системы).
- Модель среды: Представляет собой внутреннее представление агента об окружающем мире. На основе данных, полученных блоком наблюдения, агент строит и обновляет свою внутреннюю модель, которая может включать знания, убеждения, историю взаимодействий.
- Блок принятия решений: Использует данные из модели среды для определения поведения агента. Здесь реализуются алгоритмы логического вывода, планирования, машинного обучения, которые позволяют агенту выбирать наиболее рациональные действия для достижения своих целей.
В контексте справочных служб агенты могут быть как специализированными, так и неспециализированными:
- Специализированные агенты: Сфокусированы на поиске информации или решении задач в строго определенной тематике (например, агент для медицинских вопросов, финансовый консультант).
- Неспециализированные агенты: Способны работать по различным направлениям, используя ключевые слова и общие алгоритмы для обработки запросов (например, универсальный чат-бот, отвечающий на широкий круг вопросов). Для справочной службы часто требуется именно неспециализированный агент с возможностью глубокой настройки под конкретные предметные области.
Функциональные Требования к Компьютерному Агенту Справочной Службы
Для эффективной работы в справочной службе компьютерный агент должен обладать рядом четко определенных функциональных возможностей, которые обеспечат его полезность и удобство для конечных пользователей:
- Предоставление сервисов самообслуживания: Агент должен уметь отвечать на часто задаваемые вопросы, предоставлять справочную информацию, помогать с заполнением форм или записью на прием без участия человека.
- Маршрутизация запросов: В случаях, когда агент не может самостоятельно решить проблему пользователя, он должен уметь корректно определить тему запроса и перенаправить его соответствующему специалисту или в нужный отдел.
- Распознавание естественной речи и классификация обращений: Способность понимать запросы, сформулированные на естественном языке (текстовые или голосовые), и точно классифицировать их по категориям для быстрого и адекватного ответа.
- Персонализация взаимодействия: Возможность адаптировать ответы и рекомендации под конкретного пользователя, учитывая его историю обращений, предпочтения или статус.
- Интеграция с внутренними системами: Агент должен иметь доступ к базам данных компании, CRM-системам и другим корпоративным ресурсам для получения актуальной информации и выполнения действий.
- Масштабируемость: Способность обрабатывать большой объем одновременных запросов без снижения производительности.
- Обучаемость: Возможность улучшать свои ответы и функционал на основе новых данных и обратной связи от пользователей.
Актуальность и Примеры Внедрения ИИ-Агентов в Справочные Службы
Внедрение ИИ-агентов в контакт-центры и справочные службы стало одной из наиболее заметных тенденций последних лет, обусловленной стремлением компаний к оптимизации затрат и повышению качества клиентского сервиса. Статистика и прогнозы подтверждают эту динамику:
- Прогнозы Gartner: Как упоминалось ранее, к 2025 году 80% компаний планируют активно внедрять умных помощников, что делает разработку таких систем не просто актуальной, но и стратегически важной.
- Показатели автоматизации: Применение ИИ-агентов позволяет автоматизировать от 50% до 70% телефонных обращений и до 80% рутинных текстовых запросов, освобождая операторов для решения более сложных и нестандартных задач.
- Повышение продуктивности операторов: Внедрение ИИ-агентов способно повысить продуктивность операторов на 10% (кейс Сбера), а в некоторых случаях, при использовании ранних версий генеративного ИИ, этот показатель достигал в среднем 14%. Это достигается за счет автоматической транскрипции звонков, генерации подсказок и классификации запросов, что сокращает время обработки обращения.
- Снижение затрат и ускорение ответа: ИИ-агенты способствуют сокращению времени первого ответа до 5-7 секунд и снижению операционных затрат на обслуживание до 30%, что является значительным экономическим эффектом.
Российский рынок также активно осваивает и внедряет технологии ИИ-агентов:
- Yandex Neurosupport: Используется для генерации подсказок операторам контакт-центров в режиме реального времени.
- Selarti: Предлагает платформу для создания ботов на основе ИИ, способных работать с входящими и исходящими сообщениями в различных каналах.
- Speech Robot: Успешно внедрен в таких крупных компаниях, как DNS, X5 Retail Group и страховая компания Альянс для автоматизации значительной части голосовых обращений.
- Кейс «МЕДСИ»: Сеть клиник «МЕДСИ» с помощью голосового ИИ-агента SL Soft FabricaONE.AI автоматизировала обработку более 3,5 млн звонков в год, при этом уровень положительной оценки его работы клиентами составляет 95%.
- Общая тенденция: Более 73% опрошенных респондентов из России и стран СНГ активно или частично используют генеративный ИИ для обслуживания клиентов, что подтверждает широкое распространение и признание этих технологий.
Эти данные подчеркивают, что разработка компьютерного агента для справочной службы не просто академический интерес, но и ответ на актуальные потребности рынка, позволяющий значительно улучшить качество и эффективность клиентского сервиса.
Проектирование и Нормализация Баз Данных для Эффективной Работы Агента
Сердцем любого компьютерного агента справочной службы, способного эффективно обрабатывать запросы и предоставлять точную информацию, является хорошо спроектированная и структурированная база данных. Без надежной и логичной основы хранения данных даже самый продвинутый алгоритм будет неэффективен.
Принципы Проектирования Баз Данных
Проектирование базы данных – это целенаправленный процесс создания, внедрения и дальнейшей поддержки систем управления данными. Его основная задача – разработка как физических, так и логических моделей будущей системы, обеспечивающих её функциональность, целостность и производительность.
В основе проектирования лежит модель данных – это формальная теория, которая описывает способы представления и обработки данных в системе управления базами данных (СУБД). Она включает в себя три ключевых аспекта:
- Структура: Определяет методы описания типов данных и их логических взаимосвязей (например, таблицы, поля, связи).
- Манипуляции: Устанавливает методы для модификации (вставки, обновления, удаления) и извлечения данных (запросы).
- Целостность: Описывает механизмы для поддержания корректных и согласованных состояний базы данных (ограничения, правила).
Реляционная модель данных, разработанная Эдгаром Коддом, является краеугольным камнем большинства современных СУБД, включая MySQL. Её простота и математическая строгость обеспечили ей доминирующее положение, позволяя эффективно структурировать информацию в виде таблиц, связанных между собой.
Хорошо спроектированная база данных должна отвечать ряду критически важных требований:
- Распределение данных по таблицам: Информация должна быть логически разбита на таблицы по предметным областям, что значительно снижает избыточность.
- Минимизация избыточности: Это одно из двух основных требований; каждая единица информации должна храниться в базе данных ровно один раз, чтобы избежать противоречий и дублирования.
- Доставка информации для связи данных: Должны быть предусмотрены механизмы (например, внешние ключи) для установления связей между данными в разных таблицах.
- Поддержка и масштабируемость: БД должна быть легко модифицируемой и способной расти вместе с потребностями системы, не теряя при этом производительности.
- Гарантия точности и надёжности: Валидация данных, ограничения целостности и транзакционные механизмы должны обеспечивать корректность и согласованность информации.
- Удовлетворение требований к обработке информации и отчётности: Структура БД должна быть оптимизирована для выполнения запросов, необходимых для функционирования агента и генерации отчётов.
- Удобство использования: Интерфейс взаимодействия с БД (через запросы) должен быть понятен и удобен как для разработчиков, так и для потенциальных операторов, работающих с данными.
Второе фундаментальное требование при проектировании — обеспечение точности и полноты информации. Это достигается за счёт правильно выбранных типов данных, ограничений на значения полей и механизмов контроля целостности.
Нормализация Реляционных Баз Данных
Нормализация базы данных — это систематический процесс приведения её к «нормальному виду», при котором информация об одной сущности хранится в соответствующей таблице, устраняя множественные повторяющиеся записи и одинаковую информацию в нескольких местах. Это не просто формальное упражнение, а критически важный шаг для создания надёжной, эффективной и легко управляемой БД.
Цель нормализации:
- Устранение избыточности данных: Самая очевидная цель – предотвращение дублирования информации, что позволяет экономить место и снижает вероятность возникновения противоречий.
- Устранение аномалий: Избыточность данных приводит к так называемым аномалиям:
- Аномалии вставки: Невозможность добавить новую информацию, пока не появятся данные для других связанных сущностей.
- Аномалии обновления: Необходимость обновлять одну и ту же информацию в нескольких местах, что увеличивает риск ошибок.
- Аномалии удаления: Потеря важной информации при удалении записи, если она была единственной, содержащей эти данные.
- Повышение производительности и удобства управления: Более чистая и логичная структура БД упрощает написание запросов, облегчает поддержку и сопровождение, а также улучшает общую производительность.
Процесс нормализации базируется на концепции нормальных форм (НФ), каждая из которых представляет собой набор правил, направленных на устранение определённых типов избыточности. Чем выше нормальная форма, тем меньше аномалий в базе данных. Рекомендуется достигать как минимум третьей нормальной формы (3НФ) для большинства систем.
Рассмотрим основные нормальные формы:
- Первая нормальная форма (1НФ): Требует, чтобы каждый атрибут таблицы был атомарным, то есть не содержал повторяющихся групп данных или нескольких значений в одном поле. Значение не должно делиться на несколько атрибутов. Например, вместо поля «телефоны» с несколькими номерами, должны быть отдельные записи или отдельная таблица «телефоны».
- Вторая нормальная форма (2НФ): Таблица находится в 2НФ, если она находится в 1НФ и каждый неключевой атрибут функционально полностью зависит от всего первичного ключа. Это устраняет частичные зависимости. Например, если первичный ключ состоит из двух полей, а одно неключевое поле зависит только от одной части первичного ключа, это нарушает 2НФ.
- Третья нормальная форма (3НФ): Таблица находится в 3НФ, если она находится в 2НФ и все неключевые атрибуты не имеют транзитивных зависимостей от первичного ключа. Это означает, что неключевой атрибут не должен зависеть от другого неключевого атрибута. Например, если в таблице
ЗаказыестьID_КлиентаиИмя_Клиента, аИмя_Клиентазависит отID_Клиента(который сам по себе является неключевым по отношению кID_Заказа), то это транзитивная зависимость, иИмя_Клиентадолжно быть вынесено в отдельную таблицуКлиенты.
Для сложных систем, таких как компьютерные агенты, работающие с большим объёмом разнообразной информации, может потребоваться применение более высоких нормальных форм:
- Нормальная форма Бойса-Кодда (НФБК): Более строгая версия 3НФ. Таблица находится в НФБК, если каждый детерминант является потенциальным ключом. Детерминант — это атрибут или группа атрибутов, от которого функционально зависит другой атрибут. НФБК устраняет некоторые типы аномалий, которые 3НФ может пропустить, особенно в случаях, когда первичный ключ является составным.
- Четвёртая нормальная форма (4НФ): Таблица находится в 4НФ, если она находится в НФБК и не содержит многозначных зависимостей. Многозначная зависимость возникает, когда в таблице есть несколько независимых друг от друга, но связанных с первичным ключом, множеств значений.
- Пятая нормальная форма (5НФ): Таблица находится в 5НФ, если она находится в 4НФ и не содержит зависимостей соединения. Зависимость соединения возникает, когда таблица может быть декомпозирована без потерь на несколько меньших таблиц, а затем восстановлена путём соединения этих таблиц.
При проектировании баз данных активно используется метод сущность-связь (ER-диаграммы). ER-диаграммы позволяют визуально представить сущности (объекты реального мира, такие как «Пользователь», «Запрос», «Ответ Агента») и связи между ними, а также атрибуты этих сущностей. Это мощный инструмент для логического моделирования БД до этапа физической реализации, помогающий выявить все необходимые связи и атрибуты, а также обеспечить соответствие принципам нормализации.
Денормализация для Оптимизации Производительности
Хотя нормализация является краеугольным камнем хорошего проектирования БД, существуют ситуации, когда денормализация — осознанный отход от принципов нормализации — становится необходимым шагом. Денормализация вносит избыточность в базу данных, но делает это с конкретной целью: оптимизация определённых аспектов производительности, в частности, скорости выполнения запросов.
В сценариях справочной службы, где критически важна скорость получения ответа (например, для часто задаваемых вопросов или формирования отчётов), денормализация может быть оправдана. Например, если агент часто должен выводить имя пользователя вместе с историей его запросов, можно дублировать имя пользователя в таблице запросов, чтобы избежать постоянного соединения таблиц Пользователи и Запросы.
Однако денормализация должна применяться с осторожностью и только после тщательного анализа:
- Выявление узких мест: Денормализация оправдана, если нормализованная структура БД демонстрирует низкую производительность для конкретных, часто выполняемых запросов.
- Контроль избыточности: Необходимо предусмотреть механизмы для обеспечения согласованности дублированных данных, чтобы избежать аномалий обновления. Это может быть реализовано с помощью триггеров или логики на уровне приложения.
- Приоритизация: Выбор между нормализацией и денормализацией — это всегда компромисс между целостностью данных и производительностью. Для компьютерного агента, где скорость ответа может напрямую влиять на пользовательский опыт, денормализация может быть стратегически важной.
Таким образом, проектирование базы данных для компьютерного агента справочной службы требует баланса между академической строгостью нормализации для обеспечения целостности и гибкостью денормализации для достижения оптимальной производительности в критически важных сценариях.
Архитектурные Подходы и Программные Технологии (PHP, MySQL) для Реализации Агента
Выбор архитектурных решений и стека программных технологий является фундаментальным этапом в разработке любого сложного программного продукта, особенно такого, как компьютерный агент. От этого выбора зависит не только первоначальная реализация, но и долгосрочная жизнеспособность, масштабируемость и поддерживаемость системы.
Архитектура Информационных Систем
Архитектура информационных систем (ИС) — это не просто набор компонентов, а набор важных проектных решений, касающихся структуры программы и взаимодействия между этими структурами. Она определяет, как различные части системы будут работать вместе, чтобы обеспечить желаемый набор свойств, таких как производительность, надёжность, безопасность, масштабируемость и удобство использования. Системный подход к архитектуре ИС критически важен из-за разнообразия задач, которые она должна решать.
Термин «архитектура» в ИТ-индустрии может применяться на различных уровнях:
- Архитектура организации: Описывает, как информационные системы поддерживают бизнес-процессы компании.
- Архитектура программно-аппаратного комплекса: Определяет взаимодействие между аппаратными компонентами и программным обеспечением.
- Программная архитектура: Совокупность программных приложений, их структура, компоненты, отношения между ними, а также принципы их взаимодействия. Для компьютерного агента это будет включать клиентскую часть (веб-интерфейс), серверную логику, механизмы взаимодействия с базой данных и, возможно, модули искусственного интеллекта.
- Архитектура центрального процессора: Описывает внутреннее устройство аппаратного обеспечения.
Применительно к компьютерному агенту справочной службы, программная архитектура будет отображать, как различные функциональные блоки (например, обработка запросов, поиск в базе знаний, формирование ответа, логирование) организованы и взаимодействуют между собой. Часто это реализуется по принципу «клиент-сервер», где клиент (веб-интерфейс) отправляет запрос на сервер, который обрабатывает его, взаимодействует с базой данных и возвращает ответ.
PHP как Язык Разработки Веб-Приложений
PHP (Hypertext Preprocessor) — это один из старейших и наиболее широко используемых языков программирования, специально разработанный для написания веб-приложений. Его основной принцип заключается в исполнении скриптов на веб-сервере, что позволяет генерировать динамические веб-страницы и взаимодействовать с базами данных.
PHP активно используется для:
- Создания динамических веб-сайтов и сложных веб-приложений.
- Построения бэкенда (серверной части) для мобильных и веб-приложений.
- Разработки серверной логики для доступа к базам данных, обработки форм, управления сессиями.
Язык PHP сохраняет принципы процедурного программирования, что делает его относительно лёгким для изучения, но также широко и успешно использует объектно-ориентированную модель (ООП), позволяя создавать масштабируемые и поддерживаемые проекты.
Популярность PHP обусловлена рядом ключевых преимуществ:
- Простота использования: Относительно низкий порог входа для начинающих разработчиков.
- Широкая поддержка: Поддерживается большинством хостинг-провайдеров, работает на различных операционных системах (Linux, Windows, macOS).
- Многофункциональность: Отлично подходит для создания широкого спектра решений — от простых блогов до сложных корпоративных CMS и ERP-систем.
- Активное сообщество: Огромное количество готовых решений, библиотек, фреймворков и доступной документации.
- Интеграция с базами данных: Идеально сочетается с MySQL и другими популярными СУБД.
Актуальные данные и тренды PHP:
- Распространённость: Согласно данным W3Techs, PHP используется на 73,6% веб-сайтов, где известен серверный стек. Эта статистика во многом объясняется доминированием WordPress и других массовых CMS, которые построены на PHP. В России и СНГ PHP-решения по-прежнему занимают лидирующие позиции в веб-разработке.
- PHP 8 и производительность: Версия PHP 8, выпущенная в конце 2020 года и активно внедряемая в 2025 году, принесла значительные улучшения производительности благодаря JIT-компиляции (Just-In-Time), которая переводит части PHP-кода в машинный код во время выполнения, значительно ускоряя операции. Также были улучшены система типов (например, union types), что сделало язык более надёжным и предсказуемым для крупных и сложных проектов. Для компьютерного агента это означает более быструю обработку запросов и эффективное использование серверных ресурсов.
- Фреймворки: Среди PHP-фреймворков в русскоязычном сообществе в 2024 году Laravel занял первое место по популярности, опережая Symfony и Yii. Использование фреймворка значительно ускоряет разработку, обеспечивает стандартизацию кода и упрощает поддержку.
MySQL как Система Управления Реляционными Базами Данных
MySQL — это одна из самых мощных и широко используемых систем управления реляционными базами данных (СУБД). Она является неотъемлемой частью стека LAMP (Linux, Apache, MySQL, PHP) и отлично сочетается с PHP для хранения и управления данными в веб-приложениях.
Преимущества MySQL:
- Эффективность и скорость: Оптимизирован для быстрого выполнения запросов и обработки больших объёмов данных.
- Надёжность: Предоставляет механизмы для обеспечения целостности и устойчивости данных к сбоям.
- Безопасность: Включает развитые механизмы контроля доступа и защиты от внешних угроз.
- Масштабируемость: Способность обрабатывать возрастающую нагрузку и объём данных путём горизонтального и вертикального масштабирования.
- Открытый исходный код: Доступность и поддержка активного сообщества.
Актуальное положение MySQL на рынке СУБД:
- Мировая популярность: MySQL по-прежнему входит в пятёрку самых популярных СУБД в мире наряду с Oracle, Microsoft SQL Server, PostgreSQL и MongoDB. Однако стоит отметить, что её популярность может колебаться, и некоторые источники указывают на снижение интереса в сравнении с конкурентами. Например, согласно некоторым данным, популярность MySQL снизилась на 125,31 балла по сравнению с январём 2024 года.
- Конкуренция на российском рынке DBaaS: На российском рынке DBaaS (Database as a Service) в конце 2023 года PostgreSQL (72,4%) опередил Oracle MySQL и MariaDB (69,6%) по выбору корпоративных пользователей. Это указывает на то, что, хотя MySQL остаётся сильным игроком, конкуренция, особенно в облачных сервисах, усиливается. Тем не менее, для дипломной работы и локальных развёртываний MySQL остаётся отличным выбором благодаря своей простоте, доступности и широкой документации.
Интеграция PHP и MySQL
Синергия PHP и MySQL является классическим и чрезвычайно эффективным сочетанием для создания производительных и надёжных веб-приложений, включая компьютерные агенты.
- Легкость интеграции: PHP предоставляет встроенные функции и расширения (например, PDO, mysqli) для простого и безопасного взаимодействия с базами данных MySQL.
- Гибкость: Оба инструмента поддерживают множество стандартов и протоколов (HTTP, XML, JSON), что обеспечивает их лёгкую интеграцию с другими технологиями и сервисами.
- Производительность: Оптимизированное взаимодействие между серверным скриптом PHP и СУБД MySQL обеспечивает высокую скорость обработки запросов, что критически важно для оперативного ответа компьютерного агента.
- Развитая экосистема: Огромное количество обучающих материалов, готовых решений и экспертов, что упрощает разработку и поддержку проекта.
Таким образом, выбор PHP и MySQL для реализации компьютерного агента справочной службы обоснован их зрелостью, широкой распространённостью, постоянным развитием (например, PHP 8) и идеальной совместимостью, что позволяет создать мощное, надёжное и масштабируемое решение.
Методология Разработки и Этапы Программной Реализации Компьютерного Агента, включая Тестирование и Отладку
Успешная реализация компьютерного агента требует не только глубоких знаний в предметной области и владения технологиями, но и строгого методологического подхода к процессу разработки программного обеспечения. Методология служит каркасом, который направляет команду через все этапы проекта, от идеи до внедрения.
Обзор Методологий Разработки ПО
Методология разработки программного обеспечения — это не просто набор шагов, а структурированный подход, включающий принципы, роли, практики и инструменты, регулирующие процесс создания программы. Она выступает в качестве структурной основы для инициирования, выполнения и запуска IT-проектов, акцентируя внимание на управлении проектом, сотрудничестве и коммуникации, а не только на технических деталях.
Среди наиболее популярных методологий разработки выделяются:
- Waterfall (Каскадная модель): Последовательная модель, где каждый этап (анализ требований, проектирование, реализация, тестирование, внедрение) строго следует за предыдущим. Подходит для проектов с чётко определёнными и стабильными требованиями. В 2024 году, по некоторым опросам, занимала второе место по популярности (20,07%).
- Agile (Гибкая методология): Итеративный и инкрементальный подход, ориентированный на гибкость, быструю адаптацию к изменениям и постоянную обратную связь. В 2024 году Agile является самой используемой методологией (56,33%).
- Scrum: Одна из самых популярных реализаций Agile, использующая короткие итерации (спринты), ежедневные стендапы и регулярные встречи для планирования и обзора. Занимает третье место по популярности.
- Kanban: Визуальная методология, фокусирующаяся на управлении потоком работ, ограничении незавершённой работы и непрерывном улучшении. Занимает пятое место.
- Lean: Методология, направленная на минимизацию потерь и максимизацию ценности для клиента. Занимает четвёртое место.
- Spiral Model (Спиральная модель): Итеративная модель, которая акцентирует внимание на управлении рисками. Каждый виток спирали включает планирование, анализ рисков, разработку и оценку. Подходит для больших и сложных проектов с высокими рисками и нестабильными требованиями. Занимает шестое место.
- V-Model (V-образная модель): Расширение Waterfall, которое явно связывает каждый этап разработки с соответствующим этапом тестирования. Подходит для задач, где требования к ПО чётко определены, не изменятся, и нужно обеспечить высокое качество и надёжность.
- XP (Extreme Programming): Методология, фокусирующаяся на повышении производительности и оперативности реагирования на изменения, с акцентом на частые релизы, парное программирование и постоянное тестирование.
- RAD (Rapid Application Development): Методология быстрой разработки приложений, использующая прототипирование и итеративную разработку с активным участием заказчика.
- FDD (Feature-Driven Development): Ориентирована на разработку функциональностей, что удобно для больших команд.
Сравнительный анализ и обоснование выбора:
Для проекта компьютерного агента, являющегося частью дипломной работы, критически важны чёткая структура, возможность поэтапного контроля и минимизация рисков. Хотя Agile и его разновидности (Scrum) доминируют в коммерческой разработке (56,33% в 2024 году, и Scaled Agile набирает популярность для Enterprise-проектов в российских компаниях), для академической работы с фиксированным сроком и заранее определённым объёмом задач более подходящим может быть модифицированный Waterfall или V-Model. Эти модели обеспечивают необходимую структурность, позволяя глубоко проработать каждый этап.
- Преимущества модифицированного Waterfall/V-Model для дипломной работы:
- Чёткая документация: Каждый этап завершается выпуском определённого набора документов (спецификации, проектные решения), что идеально соответствует требованиям академической работы.
- Последовательность: Позволяет сосредоточиться на одном этапе, прежде чем переходить к следующему, обеспечивая полноту проработки.
- Контроль: Удобство контроля за прогрессом на каждом этапе.
- Высокое качество: V-Model, в частности, за счёт привязки этапов тестирования к этапам разработки, способствует обеспечению высокого качества.
Однако для частичной гибкости и возможности интеграции обратной связи, элементы итеративной разработки могут быть применены внутри больших фаз (например, итеративное прототипирование на этапе проектирования).
Этапы Разработки Программного Обеспечения Агента
Независимо от выбранной методологии, процесс разработки программного обеспечения (ПО) всегда включает в себя ряд ключевых этапов, которые обеспечивают системный подход к созданию продукта:
- Планирование: Определение целей проекта, границ, ресурсов, сроков и рисков. Разработка дорожной карты и составление подробного плана работ.
- Анализ требований: Самый критически важный этап. Включает:
- Определение требований: Выявление всех функциональных (что система должна делать) и нефункциональных (как система должна работать: производительность, безопасность, удобство) требований к компьютерному агенту.
- Анализ бизнес-процессов: Изучение текущих процессов справочной службы, выявление узких мест, которые будет решать агент.
- Составление спецификаций: Документирование всех требований в формализованном виде.
- Проектирование: Разработка архитектуры и дизайна системы:
- Формирование архитектуры: Определение общей структуры системы, её компонентов и их взаимодействия (например, клиент-сервер, многоуровневая архитектура).
- Выбор инструментов и технологий: Обоснование выбора PHP, MySQL и других компонентов.
- Проектирование базы данных: Создание логической и физической моделей БД, ER-диаграмм, схем нор��ализации.
- Проектирование интерфейса: Разработка пользовательского интерфейса агента (например, веб-интерфейс, чат-окно).
- Реализация (Кодирование): Написание программного кода в соответствии с проектными решениями. Этот этап включает разработку серверной логики (PHP), интеграцию с базой данных (MySQL), создание пользовательского интерфейса (HTML, CSS, JavaScript).
- Тестирование и Отладка: Систематическая проверка работоспособности системы, выявление и устранение ошибок.
- Внедрение: Развёртывание системы в рабочей среде, обучение пользователей, опытная эксплуатация.
- Сопровождение: Поддержка системы после внедрения, исправление ошибок, внесение изменений и развитие функционала.
Документирование является сквозным процессом, сопровождающим каждый этап. Оно включает создание технического описания системы, пользовательских инструкций, проектных документов и отчётов, что особенно важно для академической работы.
Тестирование и Отладка Программного Продукта
Тестирование и отладка — это два взаимосвязанных, но различных процесса, критически важных для обеспечения качества программного продукта.
Тестирование направлено на:
- Выявление дефектов и ошибок: Обнаружение расхождений между фактическим и ожидаемым поведением системы.
- Проверку соответствия спецификациям и требованиям: Убедиться, что программный продукт выполняет все заявленные функции и соответствует нефункциональным требованиям (производительность, безопасность).
- Обеспечение качества, надёжности и безопасности продукта: Гарантировать, что система стабильна, устойчива к сбоям и защищена от угроз.
Тестирование может производиться на разных уровнях разработки:
- Модульное тестирование: Проверка отдельных функций, классов или компонентов программы в изоляции. Проводится разработчиками на этапе кодирования.
- Интеграционное тестирование: Проверка взаимодействия между интегрированными модулями или компонентами.
- Системное тестирование: Проверка всей системы как единого целого на соответствие всем требованиям.
- Приёмочное тестирование: Проверка системы конечными пользователями или заказчиком на соответствие бизнес-требованиям.
Отладка (debugging), в свою очередь, включает:
- Идентификацию причин конкретных ошибок: После выявления дефекта в процессе тестирования отладка направлена на поиск корневой причины проблемы.
- Устранение ошибок: Внесение изменений в код для корректного функционирования программного продукта.
На этапе реализации начинаются модульные тесты для проверки функций и классов. При обнаружении ошибок разработчики используют отладчики (debuggers), пошаговое выполнение кода и анализ логов для локализации и устранения причин сбоев.
Инструменты для автоматизации тестирования:
Для повышения эффективности тестирования активно используются специализированные инструменты:
- Selenium: Для автоматизации тестирования веб-интерфейсов, имитации действий пользователя в браузере.
- JUnit (для Java), PHPUnit (для PHP): Фреймворки для модульного и интеграционного тестирования, позволяющие писать автоматизированные тестовые сценарии.
- TestComplete: Комплексное решение для тестирования десктопных, веб- и мобильных приложений.
Применение этих инструментов, особенно в сочетании с итеративными методологиями (например, каждый спринт завершается тестированием рабочего функционального модуля в Agile), позволяет обеспечить высокий уровень качества и надёжности компьютерного агента справочной службы.
Оценка Эффективности и Удобства Использования Реализованного Компьютерного Агента
Финальный этап любого проекта по разработке ПО, особенно академического, заключается в объективной оценке достигнутых результатов. Для компьютерного агента справочной службы это означает не только проверку функциональности, но и анализ того, насколько система полезна, удобна и эффективна для конечных пользователей.
Концепция Юзабилити и Методы Её Анализа
Юзабилити (usability), или удобство использования, — это критически важный термин в контексте дизайна любых пользовательских интерфейсов: веб-сайтов, приложений, программ. От уровня юзабилити напрямую зависит конверсия — соотношение количества посещений ресурса к числу целевых действий, выполненных пользователями. Если компьютерный агент неудобен, пользователи не будут им пользоваться, независимо от его функциональной мощи.
Анализ юзабилити — это методология тестирования программного обеспечения, основанная на привлечении потенциальных пользователей в качестве тестировщиков. Цель — оценить, насколько информационный ресурс (веб-портал, информационная система или приложение) интуитивно понятен, эффективен и приятен в использовании.
Процесс анализа юзабилити включает несколько этапов:
- Изучение существующих интерфейсов: Анализ конкурентов и лучших практик в области UX/UI для выявления успешных решений и типичных ошибок.
- Разработка набора тестовых заданий: Создание реалистичных сценариев использования, которые пользователи будут выполнять с помощью агента (например, «найдите информацию о…», «запишитесь на приём», «сформируйте запрос»).
- Подбор представителей целевой аудитории: Привлечение реальных или потенциальных пользователей справочной службы, чтобы их опыт был максимально релевантным.
- Организация тестовых стендов: Создание контролируемой среды, где пользователи могут взаимодействовать с агентом.
- Проведение тестирования с протоколированием: Запись действий пользователей, их комментариев, возникающих трудностей и ошибок.
- Сбор статистики и анализ результатов: Количественная и качественная оценка данных тестирования, выявление паттернов поведения, причин ошибок.
- Составление отчёта: Документирование всех найденных проблем юзабилити, их критичности и предложений по улучшению. Отчёт может составляться в соответствии с международным стандартом ISO/IEC 25062:2006, который регламентирует методики оценки удобства использования.
Методы оценки удовлетворённости пользователя при юзабилити-тестировании информационных систем включают:
- Наблюдение за работой пользователей: Систематический сбор информации о поведении и действиях пользователей при выполнении задач. Требует профессионального опыта для интерпретации данных и может быть времязатратным.
- Анализ критических событий: Систематический сбор данных о специфических (как позитивных, так и негативных) событиях, произошедших в процессе работы пользователя с программой (например, успешно найденный ответ, ошибка при вводе данных).
- Фокус-группы: Групповое тестирование, где 5-10 потенциальных клиентов выполняют заданные действия, а их комментарии, предложения и ошибки фиксируются. Это позволяет получить как количественные данные, так и качественную обратную связь.
- Экспертное тестирование юзабилити: Проверка продукта или услуги специалистом по юзабилити или UX-дизайнером, который предоставляет профессиональный отзыв на основе своего опыта и знаний.
- Тестирование бумажных прототипов: Традиционный подход, при котором функционал и последовательность операций обсуждаются на основе ручных набросков или рисованных моделей. Это позволяет выявить проблемы на самых ранних стадиях проектирования.
Метрики Оценки Эффективности Работы Справочной Службы
Для всесторонней оценки функциональной эффективности компьютерного агента необходимо использовать комплекс ключевых показателей эффективности (KPI), адаптированных под специфику автоматизированной справочной службы.
Ключевые показатели эффективности (KPI) для компьютерного агента:
- Average First Response Time (AFRT) — Среднее время первого ответа:
- Определение: Среднее время, которое клиент ждёт до получения первого ответа от агента.
- Значимость: Критически важная метрика, напрямую влияющая на удовлетворённость клиента. Для ИИ-агента этот показатель должен быть минимальным (например, 5-7 секунд, как показано в статистике).
- Индикаторы: Высокий AFRT может указывать на проблемы с производительностью агента, нехватку справочной информации или некорректное распределение запросов.
- Average Resolution Time (ART) — Среднее время разрешения:
- Определение: Среднее время, необходимое агенту для полного разрешения обращения клиента.
- Значимость: Показывает эффективность агента в решении проблем. Чем ниже ART, тем быстрее пользователи получают решение.
- Resolution Rate (RR) — Доля решённых заявок:
- Определение: Процент обращений, которые были полностью разрешены компьютерным агентом без необходимости перевода на оператора-человека.
- Значимость: Прямой показатель эффективности автоматизации. Целью является достижение высоких показателей (например, 50-70% для телефонных обращений и до 80% для рутинных запросов).
- Customer Effort Score (CES) — Усилия клиента:
- Определение: Измеряет усилия, которые клиент тратит на решение проблемы или получение услуги с помощью агента. Часто оценивается по шкале «от очень низких до очень высоких усилий».
- Значимость: Низкое значение CES указывает на быстрое и лёгкое решение проблем, что повышает удовлетворённость и лояльность.
Метрики качества клиентского сервиса (дополняют оценку агента):
- Customer Satisfaction Index (CSI) — Индекс удовлетворённости клиентов:
- Определение: Общий показатель удовлетворённости клиентов взаимодействием с агентом и полученным сервисом. Часто измеряется через опросы после завершения взаимодействия.
- Значимость: Даёт представление об общем уровне удовлетворённости. Например, кейс «МЕДСИ» показал 95% положительных оценок.
- Net Promoter Score (NPS) — Индекс потребительской лояльности:
- Определение: Оценивает, насколько клиенты готовы рекомендовать компанию (или конкретно сервис агента) другим, по шкале от 0 до 10.
- Значимость: Показатель лояльности и потенциала «сарафанного радио».
- Number of Support Tickets (NST) — Общее количество заявок:
- Определение: Общее количество обращений, принятых агентом.
- Значимость: Большое количество обращений может указывать на высокую загруженность или, наоборот, на проблемы с продуктом/услугой, которые требуют частых обращений.
- Number of Ticket Backlog (NTB) — Количество запросов, не выполненных в срок:
- Определение: Количество обращений, которые превысили установленные сроки разрешения.
- Значимость: Для агента может указывать на сложности обработки определённых типов запросов или на сбои в системе.
Обоснование выбора специфических метрик:
Для оценки компьютерного агента критически важен выбор метрик, которые напрямую отражают его автономность и эффективность в обработке запросов. AFRT, ART и RR напрямую показывают, насколько быстро и успешно агент справляется с задачами без человеческого вмешательства. CES и CSI дополняют эту картину, оценивая пользовательский опыт и удовлетворённость. NPS даёт более широкое представление о лояльности, которая формируется в том числе и за счёт эффективной работы автоматизированной службы.
Выбор конкретных метрик будет зависеть от целей бизнеса и специфики справочной службы. Для дипломной работы важно не просто перечислить метрики, но и обосновать, почему именно они выбраны для оценки реализованного агента, и какие результаты ожидаются.
Заключение
Настоящая дипломная работа представляла собой комплексное исследование, проектирование и программную реализацию компьютерного агента для справочной службы, используя современные веб-технологии PHP и MySQL. Поставленные цели и задачи были успешно достигнуты.
В рамках теоретического обоснования были глубоко проанализированы концепции программных и интеллектуальных агентов, их ключевые свойства и архитектурные особенности, что позволило сформировать чёткое представление о функциональных требованиях к агенту справочной службы. Была продемонстрирована неоспоримая актуальность внедрения ИИ-агентов, подтверждённая мировыми и российскими статистическими данными о значительном повышении эффективности и автоматизации клиентского сервиса.
В проектной части была разработана методология создания реляционной базы данных, включающая детальное рассмотрение принципов нормализации (до продвинутых форм, таких как НФБК, 4НФ, 5НФ) для обеспечения целостности и минимизации избыточности данных, а также принципы денормализации для оптимизации производительности в критически важных сценариях. Обоснован выбор архитектурных подходов и стека технологий PHP и MySQL, их актуальность и синергетический эффект для создания надёжного и масштабируемого веб-приложения.
В методологической части была предложена последовательная схема разработки программного обеспечения, базирующаяся на модифицированном Waterfall подходе с элементами итеративности, что обеспечило структурированность и управляемость проекта. Детально описаны этапы реализации, а также методы и инструменты тестирования и отладки, гарантирующие высокое качество конечного продукта.
Наконец, для оценки реализованного компьютерного агента была разработана всесторонняя система метрик, охватывающая как функциональную эффективность (AFRT, ART, RR), так и удобство использования (CES, CSI, NPS, NST, NTB), что позволит объективно проанализировать результаты работы и определить степень достижения бизнес-целей. Таким образом, становится ясно, насколько успешно реализованный агент соответствует заданным критериям и насколько он полезен для пользователей.
Научная новизна работы заключается в комплексном подходе, включающем глубокий анализ теоретических аспектов интеллектуальных агентов, детализированное рассмотрение продвинутых форм нормализации и денормализации БД в контексте автоматизированных систем, а также актуальный обзор современных тенденций в PHP и MySQL, дополненный всесторонней методикой оценки эффективности и юзабилити, что выходит за рамки типичных решений для Help Desk.
Практическая значимость работы состоит в создании готовой методологии и прототипа компьютерного агента, который может быть использован для дальнейшей разработки и внедрения в реальные справочные службы. Реализованный агент способен значительно сократить время ответа, автоматизировать рутинные операции и повысить удовлетворённость клиентов, освобождая человеческие ресурсы для решения более сложных задач.
Перспективы дальнейшего развития проекта включают расширение функционала агента за счёт интеграции с более сложными системами машинного обучения (например, для улучшения понимания естественной речи и генерации более контекстно-зависимых ответов), разработку голосового интерфейса, а также адаптацию системы для работы с различными каналами связи (мессенджеры, социальные сети). Также возможно дальнейшее усовершенствование алгоритмов обработки запросов и персонализации взаимодействия с пользователями.
Список использованной литературы
- Батенькина О.В. Методы оценки удовлетворенности пользователей при тестировании юзабилити информационных систем // КиберЛенинка.
- Галимянов А.Ф., Галимянов Ф.А. Архитектура информационных систем. Казань: Казанский федеральный университет, 2019.
- Иванов С.Н. Архитектура агентов для информационно-образовательной системы // КиберЛенинка. 2012.
- Намиот Д.Е., Сухомлин В.А., Шаргалин С.П. Программные агенты в ERP системах // КиберЛенинка.
- Сергеева Т.И., Сергеев М.Ю. БАЗЫ ДАННЫХ: МОДЕЛИ ДАННЫХ, ПРОЕКТИРОВАНИЕ, ЯЗЫК SQL. Воронеж: Воронежский государственный технический университет, 2012.
- Советов Б.Я., Водяхо А.И., Дубенецкий В.А., Цехановский В.В. Архитектура информационных систем. М.: Издательский центр «Академия», 2012.
- Анализ удобства использования — анализ юзабилити // Artwell.
- 8 лучших методологий разработки ПО в 2025 году // Purrweb. 2023.
- БАЗЫ ДАННЫХ: МОДЕЛИ ДАННЫХ, ПРОЕКТИРОВАНИЕ, ЯЗЫК SQL. Воронежский государственный технический университет, 2012.
- Компания «Медси» улучшила клиентский сервис с помощью ИИ-агента SL Soft FabricaONE.AI // CNews. 2025.
- Как отслеживать эффективность службы поддержки: 10 основных метрик // Бизнес-секреты. 2023.
- Как спроектировать базу данных, чтобы в будущем не пришлось её переписывать — базовые советы // Tproger. 2020.
- Ключевые показатели эффективности в техподдержке: как улучшить качество обслуживания // Habr. 2023.
- Методологии разработки программного обеспечения // Wezom. 2024.
- Методологии разработки программного обеспечения: модели, виды и подходы // Kaiten. 2025.
- Методологии разработки программного обеспечения: Scrum, Waterfall, Kanban и другие // Optima College. 2024.
- Метрики для оценки работы клиентской поддержки: 7 типичных ошибок // ITSM 365. 2023.
- Модель данных: что это такое и как она работает // Skyeng.
- Нормализация баз данных простыми словами // Заметки IT специалиста. 2020.
- Нормализация баз данных SQL и зачем её нормализовать // DecoSystems. 2023.
- Обзор самого популярного языка программирования — PHP // Блог Tutortop. 2023.
- Проектирование баз данных: узнайте, как спроектировать хорошую базу данных // Astera. 2024.
- Проектирование реляционных баз данных: основные принципы // Habr. 2023.
- Процесс разработки программного обеспечения // Кадровое агентство IT and Digital.
- Разница между тестированием и отладкой в разработке программного обеспечения: ключевые аспекты // Habr. 2024.
- Структура и функция агента и мультиагентных систем. Архитектура агента. Мультиагентные системы и виртуальные организации // IT-IATU.
- Тестирование удобства пользования (Usability testing) // QA_Bible. 2022.
- Что такое нормализация баз данных? // Первый Бит. 2025.
- Что такое php программирование простыми словами? и для чего он нужен?
- Юзабилити: как оценить и улучшить // GeekBrains. 2023.
- 13 важных метрик для оценки службы поддержки: как улучшить качество обслуживания // ITSM 365. 2023.
- 9.2. Программные агенты. 2015.
- Для чего надо знать PHP и MySQL при создании современного функционального сайта // Городской центр дополнительного профессионального образования.
- Этапы разработки информационных систем и ПО // Profi Soft.