ВВЕДЕНИЕ

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

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

Разработанная программа написана на языке программирования C#. C# (произносится си шарп) — объектно-ориентированный язык программирования. Разработан в 1998-2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.# относится к семье языков с 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. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

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

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

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

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

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

config.Routes.MapHttpRoute(: «DefaultApi»,: «api/{controller}/{id}»,: new { id = RouteParameter.Optional }

);

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

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

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

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

stringresp = null;(activity.Text)

{«Привет»:= «Я бот и я приветствую тебя!»;;»Как дела?»:= «Хорошо, а твои как?!»;

break;»Пока»:= «Возвращайся!»;;

default:= «Ооох, не знаю, что и ответить…»;;

}

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

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

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

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

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

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

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

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

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

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

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

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

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

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

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

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

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

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

3.3 Анализ ПО

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

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

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

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

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

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

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

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

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

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

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

 

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

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

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

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

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

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

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

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

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

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

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

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

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

1.Свободная энциклопедия [Электронный ресурс]. — Режим доступа: #»justify»>ПРИЛОЖЕНИЕ А. ДИАГРАММА ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ

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

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

using System.Net;.Net.Http;.Threading.Tasks;.Web.Http;.Bot.Builder.Dialogs;.Bot.Connector;System;

Bot_Application1

{

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

[BotAuthentication]class MessagesController : ApiController

{

///

/// POST: api/Messages

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

///

Task Post([FromBody]Activity activity)

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

{(activity.Type == ActivityTypes.Message)

{connector = new ConnectorClient(new Uri(activity.ServiceUrl));= null;(activity.Text)

{«Привет»:= «Я бот и я приветствую тебя!»;;»Как дела?»:= «Хорошо, а твои как?!»;

break;»Пока»:= «Возвращайся!»;;

default:= «Ооох, не знаю, что и ответить…»;

break;

}

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

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

}

{(activity);

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

}

Activity HandleSystemMessage(Activity message)

{(message.Type == ActivityTypes.DeleteUserData)

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Цена курсовой

{

// Implement user deletion here

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

}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

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

{

// Handle add/remove from contact lists

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

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

{

// Handle knowing tha the user is typing

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

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

{

}

null;

}

}

}.Json;.Json.Serialization;System;.Collections.Generic;.Linq;.Web.Http;

Bot_Application1

{static class WebApiConfig

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Подробнее

{static void Register(HttpConfigurationconfig)

{

// Json settings.Formatters.JsonFormatter.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();.Formatters.JsonFormatter.SerializerSettings.Formatting = Formatting.Indented;.DefaultSettings = () => new JsonSerializerSettings()

{= new CamelCasePropertyNamesContractResolver(),= Newtonsoft.Json.Formatting.Indented,= NullValueHandling.Ignore,

};

// Web API configuration and services

// Web API routes.MapHttpAttributeRoutes();

.Routes.MapHttpRoute(: «DefaultApi»,: «api/{controller}/{id}»,: new { id = RouteParameter.Optional }

);

}

Нужна помощь в написании курсовой?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Правки вносим бесплатно.

Заказать курсовую

}

}