ВВЕДЕНИЕ
На сегодняшний день существует большое количество сервисов и систем, которые выполняют функцию автоответчиков. Зачастую их используют коммерческие компании, которым не имеет смысла иметь целое подразделение, отвечающее н входящие текстовые сообщения от потенциальных клиентов. Как это часто бывает, люди звонят по вопросам цен или другой информации, которая является справочной. С целью сократить расходы на ведение консультаций клиентов такие компании приходят к решению создать своего автоответчика для мессенджеров, задачей которого будет предоставление необходимой информации клиентам. Поскольку сделать универсальный единый автоответчик слишком затратно и вовсе бессмысленно, каждая компания разрабатывает их индивидуально. Именно в этом и состоит актуальность темы курсовой работы – автоответчики для интернет-сервисов такого рода как Skype являются инструментом ведения бизнеса 21 века.
В рамках данной курсовой работы необходимо разработать текстовый автоответчик для программы Skype, который будет выдавать определенные данные на основе отправляемых пользователем сообщений.
Разработанная программа написана на языке программирования C#. C# (произносится си шарп) — объектно-ориентированный язык программирования. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.
C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.
Переняв многое от своих предшественников — языков C++, Pascal, Модула, Smalltalk и, в особенности, Java — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем, например, C# в отличие от C++ не поддерживает множественное наследование классов (между тем допускается множественное наследование интерфейсов).
1 АНАЛИЗ ИСХОДНЫХ ДАННЫХ
Целью разработки текстового автоответчика для программы Skype является закрепление знаний и умений в разработке программного обеспечения для чатов, закрепление знаний в области информационных технологий.
Входные данные разработанной системы должны иметь текстовый тип. Допускаются числовые значения, однако фотографии, видеоролики и аудио информация в качестве входных данных рассматриваемой системы использоваться не могут. Длина текстового сообщения, вводимого пользователем в чат с автоответчиком, ограничена лишь сервисом, в котором происходит действие. Как правило, это значения варьируется от 300 до 500 символов.
В качестве выходных данных выступает текстовое сообщение, сформированное автоответчиком на соответствующий запрос пользователя. Автоответчик не может в качестве выходных данных предоставить никакой другой тип данных, кроме текстового. Формат выходных данных: «Бот говорит: <сообщение автоответчика>».
Для использования программного обеспечения требуются минимальные навыки работы с чатами и мессенджерами.
2 ПРОГРАММНОЕ ПРОЕКТИРОВАНИЕ
Программа должна работать столько, сколько пользователь будет активен в чате. Взаимодействие с программой происходит посредством интерфейса чата сервиса (Skype, WhatsApp и др.). Схема взаимодействия пользователя и системы представлена на рисунке 2.1.
Основная обработка данных происходит в контроллере MessagesController, наследнике ApiController. Здесь находятся также модули программы.
Главный модуль программы – модуль Task, который выполняется асинхронно, за счет чего достигается мультизадачность программы – одновременно несколько пользователей смогу воспользоваться сервисом. На вход модулю подается сообщение пользователя, которое он обрабатывает и на основании анализа дает ответ. Примерный диалог пользователя с системой представлен на рисунке 2.3.
3 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ
3.1 Детальная реализация функциональных частей ПО
Программа состоит из контроллера, файла конфигурации и класса маршрутизации.
Класс маршрутизации задает путь к контроллеру, который выполняет обработку данных. Модификатор доступа у класса маршрутизации установлен public, что означает доступность его вызова из любой точки программы. Класс является статическим, поскольку создание его экземпляра не имеет практического обоснования. Сигнатура метода Register класса маршрутизации: public static void Register(HttpConfiguration config).
На основе предоставленных конфигураций файл маршрутизации строит маршрут к контроллеру следующим образом:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Поскольку стандартным контроллером системы является контроллер MessagesController, перенаправление происходит именно на него, а именно на его метод Post.
Метод Post контроллера MessagesController представляет собой метод анализа введенных пользователем данных и формирования ответа автоответчика со следующей сигнатурой: public async Task<HttpResponseMessage> Post([FromBody]Activity activity).
Модификатор доступа у метода Post установлен public, что означает доступность его вызова из любой точки программы. Модификатор async позволяет методу выполняться в асинхронном режиме, что дает возможность использования сервиса несколькими людьми одновременно.
Обработка введенных пользователем данных производится при помощи блока switch-case. Предусмотрено 3 сообщения, на которые приложение реагирует специализированно, а отличные от этих трех сообщений попадают в четвертую группу – неопределенные. При получении сообщения 4 группы программа напишет, что не знает, что же ответить пользователю. Блок switch-case имеет следующий вид:
string resp = null;
switch (activity.Text)
{
case "Привет":
resp = "Я бот и я приветствую тебя!";
break;
case "Как дела?":
resp = "Хорошо, а твои как?!";
break;
case "Пока":
resp = "Возвращайся!";
break;
default:
resp = "Ооох, не знаю, что и ответить...";
break;
}
Файл конфигурации служит для конфигурирования приложения. В нем, к примеру, хранятся такие данные как идентификатор приложения, его ключ регистрации и пароль:
<appSettings>
<add key="BotId" value="YourBotId" />
<add key="MicrosoftAppId" value="" />
<add key="MicrosoftAppPassword" value="" />
</appSettings>
СКРИНШОТЫ ИЗ РАБОТЫ



ЗАКЛЮЧЕНИЕ
В результате выполнения курсовой работы, был разработан текстовый автоответчик для мессенджера Skype. Для взаимодействия программы с пользователем необходимо дополнительное прикладное программное обеспечение – мессенджер.
Для написания любой программы на ЭВМ необходимо подобрать или разработать подходящий алгоритм обработки данных, что и было сделано в процессе выполнения курсовой работы. Также необходимо чтобы разработанная программа имела пользовательский интерфейс, который был бы максимально понятным или легким в освоении. Поскольку своего интерфейса у разработанной программы нет, он базируется на интерфейсе того прикладного программного обеспечения, с которого будет вестись связь с автоответчиком.
Также в процессе выполнения курсовой работы были получены обширные знания и навыки системного программирования, а также закреплены на практике фундаментальные знания, полученные при изучении предмета "Операционные системы и системное программирование".
Было проведено тестирование, в результате которого программа показала себя как стабильное приложение, устойчивое к некорректному вводу данных.
Программа не имеет специфическую направленность, поэтому использовать её сможет широкий круг людей.
В процессе выполнения курсовой работы получен опыт разработки программы, которая была бы удобна в использования для других людей. Сделаны соответствующие выводы о необходимости внедрения информационных технологий в различные сферы жизнедеятельности, о том, как это действительно упрощает работу с информацией.