Текстовый автоответчик для Skype

Разработка текстового автоответчика для программы Skype, который будет выдавать определенные данные на основе отправляемых пользователем сообщений. Особенности программного обеспечения для чатов. Схема взаимодействия пользователя и интерфейса чата.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 08.06.2017
Размер файла 1,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

ВВЕДЕНИЕ

На сегодняшний день существует большое количество сервисов и систем, которые выполняют функцию автоответчиков. Зачастую их используют коммерческие компании, которым не имеет смысла иметь целое подразделение, отвечающее н входящие текстовые сообщения от потенциальных клиентов. Как это часто бывает, люди звонят по вопросам цен или другой информации, которая является справочной. С целью сократить расходы на ведение консультаций клиентов такие компании приходят к решению создать своего автоответчика для мессенджеров, задачей которого будет предоставление необходимой информации клиентам. Поскольку сделать универсальный единый автоответчик слишком затратно и вовсе бессмысленно, каждая компания разрабатывает их индивидуально. Именно в этом и состоит актуальность темы курсовой работы - автоответчики для интернет-сервисов такого рода как 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.

Рисунок 2.1 - Схема взаимодействия пользователя с системой

Иерархия компонентов программы представлена на рисунке 2.2 и имеет древовидную структуру.

Рисунок 2.2 - Иерархия компонентов программы

Основная обработка данных происходит в контроллере MessagesController, наследнике ApiController. Здесь находятся также модули программы.

Главный модуль программы - модуль Task, который выполняется асинхронно, за счет чего достигается мультизадачность программы - одновременно несколько пользователей смогу воспользоваться сервисом. На вход модулю подается сообщение пользователя, которое он обрабатывает и на основании анализа дает ответ. Примерный диалог пользователя с системой представлен на рисунке 2.3.

Рисунок 2.3 - Пример диалога пользователя с системой

Для того, чтобы протестировать разработанный сервис, используется эмулятор ботов «BotEmulator». С его помощью можно выполнять отладку соединения с ботом. Интерфейс программы представлен на рисунке 2.4.

Рисунок 2.4 - Интерфейс эмулятора бота

После того, как автоответчик будет отлажен при помощи эмулятора, он может быть опубликован и интегрирован в любую систему обмена сообщениями: Skype, WhatsApp, Viberи т.д.

3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

3.1 Детальная реализация функциональных частей ПО

Программа состоит из контроллера, файла конфигурации и класса маршрутизации.

Класс маршрутизации задает путь к контроллеру, который выполняет обработку данных. Модификатор доступа у класса маршрутизации установлен public, что означает доступность его вызова из любой точки программы. Класс является статическим, поскольку создание его экземпляра не имеет практического обоснования. СигнатураметодаRegister классамаршрутизации:public static void Register(HttpConfigurationconfig).

На основе предоставленных конфигураций файл маршрутизации строит маршрут к контроллеру следующим образом:

config.Routes.MapHttpRoute(

name: "DefaultApi",

routeTemplate: "api/{controller}/{id}",

defaults: new { id = RouteParameter.Optional }

);

Поскольку стандартным контроллером системы является контроллер MessagesController, перенаправление происходит именно на него, а именно на его метод Post.

Метод Postконтроллера MessagesController представляет собой метод анализа введенных пользователем данных и формирования ответа автоответчика со следующей сигнатурой: publicasyncTask<HttpResponseMessage>Post([FromBody]Activityactivity).

Модификатор доступа у метода Post установлен public, что означает доступность его вызова из любой точки программы. Модификатор asyncпозволяет методу выполняться в асинхронном режиме, что дает возможность использования сервиса несколькими людьми одновременно.

Обработка введенных пользователем данных производится при помощи блока switch-case. Предусмотрено 3 сообщения, на которые приложение реагирует специализированно, а отличные от этих трех сообщений попадают в четвертую группу - неопределенные. При получении сообщения 4 группы программа напишет, что не знает, что же ответить пользователю.Блокswitch-case имеетследующийвид:

stringresp = 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>

3.2 Сопроводительная документация

В комплекте с программным продуктом необходимо также иметь техническое задание, руководство программиста, руководство пользователя, методику испытаний, лицензию от разработчика. Без вышеизложенного комплекта документации эксплуатация программы является нелицензированной, вследствие чего такие действия нарушают авторские права, а также эксплуатация программного обеспечения без технической документации является небезопасной.

Также в список сопроводительной документации входят:

­ Проектная документация,

­ Техническая документация,

­ Пользовательская документация,

­ Маркетинговая документация.

Проектная документация включает в себя необходимый комплект документов по сопровождению программного обеспечения, срочного исправления сбоев и инструкции по внедрению нового функционала.

Техническая документация имеет сильно выраженный технический характер и в основном используется для определения и описания API, структур данных и алгоритмов.

Пользовательская документация представляет собой руководство пользователя, которое описывает каждую функцию программы, а также шаги, которые нужно выполнить для использования этой функции.

Маркетинговая форма документации имеет целью:

­ подогреть интерес к продукту у потенциальных пользователей

­ информировать их о том, что именно делает продукт, с тем чтобы их ожидания совпадали с тем, что они получат

­ объяснить положение продукта по сравнению с конкурирующими решениями

3.3 Анализ ПО

Разработанное программное обеспечение относится к классу прикладного программного обеспечения, поскольку разработанная программа используется для решения задач определённого класса конкретной предметной области и работает только при наличии системного программного обеспечения.

Разработанное в рамках курсовой работы приложение предназначено для развлечения пользователей, ведения автоматических диалогов и повышения уровня освоения компьютера и мессенджеров для людей, не умеющих ими пользоваться или не владеющие такими навыками в достаточной степени для комфортного использования более сложного ПО такого рода.

К недостаткам этого приложения стоит отнести маленькое разнообразие фраз, на которые реагирует приложение, по сравнению с конкурирующими аналогичными приложениями, отсутствие обработки изображений и аудиофайлов. Однако эти проблемы решаются добавлением дополнительных модулей для расширения функциональности программы.

К достоинствам этого приложения стоит отнести легкость и простоту в использовании, быстродействие, малую затратность ресурсов на поддержание работоспособности системы, возможность публикации на любой из доступных сервисов обмена сообщениями в сети Интернет.

3.4 Тестирование ПО

Для того, чтобы протестировать поведение программы на неожиданные действия, предположим, что пользователь вместо предполагаемого текстового формата данных отправил автоответчику в чат картинку (рис. 3.1).

Рисунок 3.1 - Пользователь отправил в чат вместо текстовых данных графические

Предполагается, что программа устойчива к некорректным действиям пользователя и не должна аварийно завершать свою работу в случае их совершения. В результате получения графических данных вместо текстовых, программа должна отнести полученные данные к неопознанным и сформировать ответ для этой группы сообщений.

Реальный результат работы программы с графическими данными проиллюстрирован на рисунке 3.2.

Рисунок 3.2 - Фактический результат работы программы с графическими данными

Как видно из рисунка 3.2, программа корректно среагировала не неверные данные, выдав сообщение для неопознанных сообщений.

Также программа предположительно может сбоить при вводе пустых сообщений, однако ни один из сервисов, где разработанное программное обеспечение можно использовать, не разрешает отправку пустых сообщений.

ЗАКЛЮЧЕНИЕ

автоответчик skype программный

В результате выполнения курсовой работы, был разработан текстовый автоответчик для мессенджера Skype. Для взаимодействия программы с пользователем необходимо дополнительное прикладное программное обеспечение - мессенджер.

Для написания любой программы на ЭВМ необходимо подобрать или разработать подходящий алгоритм обработки данных, что и было сделано в процессе выполнения курсовой работы. Также необходимо чтобы разработанная программа имела пользовательский интерфейс, который был бы максимально понятным или легким в освоении. Поскольку своего интерфейса у разработанной программы нет, он базируется на интерфейсе того прикладного программного обеспечения, с которого будет вестись связь с автоответчиком.

Также в процессе выполнения курсовой работы были получены обширные знания и навыки системного программирования, а также закреплены на практике фундаментальные знания, полученные при изучении предмета "Операционные системы и системное программирование".

Было проведено тестирование, в результате которого программа показала себя как стабильное приложение, устойчивое к некорректному вводу данных.

Программа не имеет специфическую направленность, поэтому использовать её сможет широкий круг людей.

В процессе выполнения курсовой работы получен опыт разработки программы, которая была бы удобна в использования для других людей. Сделаны соответствующие выводы о необходимости внедрения информационных технологий в различные сферы жизнедеятельности, о том, как это действительно упрощает работу с информацией.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Свободная энциклопедия [Электронный ресурс]. - Режим доступа: http://ru.wikipedia.org - Дата доступа: 18.05.2017.

2. Создание бота для Skype и его публикация[Электронный ресурс]. - Режим доступа: http://flash2048.com/post/create-bot-for-skype. - Дата доступа: 18.05.2017.

3. Бот фреймворк эмулятор [Электронный ресурс]. - Режим доступа: https://github.com/Microsoft/BotFramework-Emulator. - Дата доступа: 18.05.2017.

4. Hello, Bot! Чат-боты - следующее поколение приложений?[Электронный ресурс]. - Режим доступа: https://habrahabr.ru/company/microsoft/blog/281459. - Дата доступа:18.05.2017.

5. Как создать своего бота для Skype. Что не написано в документации[Электронный ресурс]. - Режим доступа: https://habrahabr.ru/post/281296. - Дата доступа: 18.05.2017.

6. Создаем бота для Skype. Шаг за шагом, через REST API и на Python[Электронный ресурс]. - Режим доступа: https://habrahabr.ru/post/325456. - Дата доступа: 18.05.2017.

7. Боты скайп[Электронный ресурс]. - Режим доступа: https://dev.skype.com/bots. - Дата доступа: 18.05.2017.

ПРИЛОЖЕНИЕ А. ДИАГРАММА ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ

Рисунок 3.3 - Диаграмма вариантов использования

ПРИЛОЖЕНИЕ Б. ПРОГРАММНЫЙ КОД

using System.Net;

usingSystem.Net.Http;

usingSystem.Threading.Tasks;

usingSystem.Web.Http;

usingMicrosoft.Bot.Builder.Dialogs;

usingMicrosoft.Bot.Connector;

using System;

namespace Bot_Application1

{

[BotAuthentication]

public class MessagesController : ApiController

{

/// <summary>

/// POST: api/Messages

/// Receive a message from a user and reply to it

/// </summary>

publicasync Task<HttpResponseMessage> Post([FromBody]Activity activity)

{

if (activity.Type == ActivityTypes.Message)

{

ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));

stringresp = null;

switch (activity.Text)

{

case "Привет":

resp = "Я бот и я приветствую тебя!";

break;

case "Как дела?":

resp = "Хорошо, а твои как?!";

break;

case "Пока":

resp = "Возвращайся!";

break;

default:

resp = "Ооох, не знаю, что и ответить...";

break;

}

Activity reply = activity.CreateReply($"Ботговорит: {resp}");

awaitconnector.Conversations.ReplyToActivityAsync(reply);

}

else

{

HandleSystemMessage(activity);

}

var response = Request.CreateResponse(HttpStatusCode.OK);

returnresponse;

}

private Activity HandleSystemMessage(Activity message)

{

if (message.Type == ActivityTypes.DeleteUserData)

{

// Implement user deletion here

// If we handle user deletion, return a real message

}

else if (message.Type == ActivityTypes.ConversationUpdate)

{

// Handle conversation state changes, like members being added and removed

// Use Activity.MembersAdded and Activity.MembersRemoved and Activity.Action for info

// Not available in all channels

}

else if (message.Type == ActivityTypes.ContactRelationUpdate)

{

// Handle add/remove from contact lists

// Activity.From + Activity.Action represent what happened

}

else if (message.Type == ActivityTypes.Typing)

{

// Handle knowing tha the user is typing

}

else if (message.Type == ActivityTypes.Ping)

{

}

return null;

}

}

}

usingNewtonsoft.Json;

usingNewtonsoft.Json.Serialization;

using System;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Web.Http;

namespace Bot_Application1

{

public static class WebApiConfig

{

public static void Register(HttpConfigurationconfig)

{

// Json settings

config.Formatters.JsonFormatter.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;

config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

config.Formatters.JsonFormatter.SerializerSettings.Formatting = Formatting.Indented;

JsonConvert.DefaultSettings = () => new JsonSerializerSettings()

{

ContractResolver = new CamelCasePropertyNamesContractResolver(),

Formatting = Newtonsoft.Json.Formatting.Indented,

NullValueHandling = NullValueHandling.Ignore,

};

// Web API configuration and services

// Web API routes

config.MapHttpAttributeRoutes();

config.Routes.MapHttpRoute(

name: "DefaultApi",

routeTemplate: "api/{controller}/{id}",

defaults: new { id = RouteParameter.Optional }

);

}

}

}

Размещено на Allbest.ru


Подобные документы

  • Анализ программного обеспечения Skype: оценка возможностей, сферы применения. Проектирование компонента: средства разработки, формирование пользовательского интерфейса и концептуальной модели данных. Реализация модулей. Диаграммы компонентов и классов.

    курсовая работа [1,4 M], добавлен 27.04.2012

  • Skype как бесплатное проприетарное программное обеспечение с закрытым кодом. История компании, основные версии программы. Технология, чат, трафик skype. Услуги программ: бесплатные, платные, для бизнеса, гаджеты. Skype и операторы сотовой связи.

    реферат [22,9 K], добавлен 05.03.2012

  • Проблема передачи речевого сигнала через Интернет и создание ISDN. Этапы развития технологии VoIP. Создатели программы Skype, принцип ее работы (Р2Р-архитектура) и преимущества перед другими программами. Развитие компании и спектр предоставляемых услуг.

    презентация [1,7 M], добавлен 15.12.2011

  • Программы для общения через Интернет. Основные возможности программы Skype. Настройки: поиск друзей, звонки на телефон. Трансляция экранов преподавательского (или любого студенческого) компьютера одновременно на все компьютеры класса (NetOp School).

    лабораторная работа [3,3 M], добавлен 18.08.2009

  • История возникновения чата. Виды программной реализации чатов. Описание приложения TCP/IP, построенного на клиент-серверной архитектуре. Особенности создания многопользовательского чата (Multy-user on-line). Листинг программного продукта онлайн общения.

    курсовая работа [657,0 K], добавлен 01.03.2010

  • Требования, предъявленные к полноценному локальному чату. Протокол передачи данных TCP. Описание программы сервера. Этапы разработки программного продукта. Функция приема сообщений от сервера. Принятие и отправка сообщений всем пользователям чата.

    курсовая работа [447,0 K], добавлен 21.01.2016

  • Определение IP-телефонии как комплекта протоколов коммуникации, которые обеспечивают набор номера, дозвон и двустороннее голосовое общение. Характерные особенности и история социальных сетей. Эволюция Skype, ICQ, IRC. Понятие облачных хранилищ данных.

    реферат [488,3 K], добавлен 30.11.2015

  • Совокупность программных и аппаратных средств, обеспечивающих взаимодействие пользователя с компьютером. Классификация интерфейсов, текстовый режим работы видеоадаптера. Функции текстового режима. Реализация пользовательского интерфейса в BORLAND C++.

    лабораторная работа [405,1 K], добавлен 06.07.2009

  • Применение программного обеспечения для разработки игры "Быки и коровы". Описание алгоритма и интерфейса пользователя программы. Назначение и область применения и описание возможностей программы. Рассмотрение списка сообщений об ошибках программы.

    курсовая работа [799,2 K], добавлен 26.04.2021

  • Программный комплекс автоматизации телефонных соединений. Разработка графического интерфейса пользователя, технологической инструкции для пользователя программы, контроля и аттестации программ. Расчет затрат при автоматизации телефонных соединений.

    дипломная работа [4,7 M], добавлен 15.10.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.