ВВЕДЕНИЕ 5
1 АНАЛИЗ РАЗРАБАТЫВАЕМОЙ СИСТЕМЫ 7
1.1 Описание объекта исследования 7
1.2 Анализ существующих решений 8
1.3 Анализ требований для разработки приложения 9
1.3.1 Функциональные требования 9
1.3.2 Нефункциональные требования 10
1.4 Разработка диаграммы прецедентов 10
1.5 Спецификации прецедентов 12
1.6 Анализ согласованности требований и спецификаций прецедентов .... 16
1.7 Вывод по главе анализ разрабатываемой системы 16
2 ПРОЕКТИРОВАНИЕ ОСНОВНЫХ КОМПОНЕНТОВ СИСТЕМЫ 17
2.1 Диаграмма модулей 17
2.2 Диаграмма классов анализа 18
2.2.1 Диаграмма сервера 18
2.2.2 Диаграмма клиента 19
2.2.3 Диаграмма протокола 20
2.3 Диаграммы деятельности 21
2.4 Вывод по главе проектирование основных компонентов системы 30
3 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ 31
3.1 Используемые технологии 31
3.2 Структура пакетов 32
3.3 Диаграммы классов FXClient 35
3.3.1 Класс MainApp 35
3.3.2 Класс SipFSM 36
3.3.3 Перечисление States 36
3.3.4 Класс SipRequestSender 37
3.3.5 Класс MyAccount 38
3.3.6 Класс MyCall 38
3.3.7 Класс Client 39
3.4.1 Класс RoomManager 40
3.4.2 Класс Room 41
3.4.3 Класс Asteriskconnection 41
3.4.4 Класс Client 42
3.4.5 Класс ClientInfo 43
3.4.6 Класс TaskHandler 43
3.5 Классы Protocol 44
3.5.1 Класс ComandParser 44
3.5.2 Перечисление CommandTypes 44
3.5.3 Класс ChatJSON 46
3.6 Структура базы данных 46
3.7 Пользовательский интерфейс 47
3.8 Вывод по главе программная реализация 54
ЗАКЛЮЧЕНИЕ 55
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 56
ПРИЛОЖЕНИЕ А
Компьютеры заняли весомое место в жизни современного человека. Это связано с большим количеством возможностей, которые он может предоставить. Одной из таких возможностей является звонки по сети интернет, которые осуществляются посредством Voice over Internet Protocol технологии, сокращенно VoIP. С помощью данной технологии совершаются разные виды коммуникации, такие как обычный двусторонний звонок, голосовая конференция, видео звонок и видео конференция, возможны также допущения, что разные пользователи будут использовать разные виды звонка. Звонки с использованием данной технологии выгоднее, чем через ее аналог телефонную сеть, что делает ее более привлекательной для реализации голосовых коммуникаций. В рамках данной выпускной работы разрабатывается проект Simple Phone, который будет предоставлять пользователям возможности VoIP телефонии, такие как голосовой звонок и голосовая конференция. Основными частями проекта будут клиент и сервер. Клиент необходим для предоставления пользователю всех возможностей системы, а сервер для обработки действий клиентов и для связи клиентов друг с другом.
Для того чтобы пользователи могли свободно пользоваться всеми возможностями проекта, он должен реализовать ряд основных возможностей таких как: идентификация каждого пользователя, авторизация его в системе и присвоения ему номера необходимого для коммуникации; предоставление клиенту возможности совершать и принимать звонки, присоединяться к голосовой конференции. Оставшиеся возможности будут описаны позже.
Целью данной работы является улучшение и ускорение процесса общения посредством использования VoIP технологией за счет разработки приложения "Simple Phone".
Для достижения поставленной цели требуется:
- Провести анализ основных процессов;
- Разработать функциональную модель системы;
- Разработать требования к автоматизации процессов системы;
- Разработать архитектуру системы;
- Разработать алгоритмы системы;
- Реализовать систему посредством языка Java
Проект разрабатывался с целью повышения эффективности коммуникации между работниками предприятия за счет создания приложения «Simple Phone».
В первой главе был проведен анализ разрабатываемой системы. В результате анализа определились основные прецеденты системы, построена BPMN диаграмма, проанализировано альтернативное решение и выведены основные требования к системе.
Во второй главе были определены основные компоненты системы, описаны диаграммы классов анализа, а также были описаны диаграммы деятельности на основе прецедентов из первой главы.
В третьей главе были затронуты технологии, использованные для реализации проекта. Описаны структура приложения, основные классы приложения, структура базы данных приложения и пользовательский интерфейс.
В результате было получено приложение, которое удовлетворяет требованиям, поставленным перед ним. Пользователь может создать место для проведения голосовой коммуникации, так называемая комната, может присоединиться к голосовой конференции комнаты для общения с ее участниками, а конечные результаты мероприятия будут сохранены в базе данных.
При выполнении дипломной работы было перепробовано несколько технологий для работы со VoIP телефонией, для улучшения качества звука и производительности, проанализированы множество технологий асинхронного выполнения действий, чтобы повысить скорость обработки данных, рассмотрены несколько хранилищ данных, для более удобного доступа к данным.
1. Нотация BPMN (Business Process Model and Notation - модель бизнес- процессов и нотация) [Электронный ресурс] - Режим доступа: http://www.businessstudio.ru/wiki/docs/v4/doku.php/ru/csdesign/bpmodeling/bpmn_notation
2. Официальный сайт Skype [Электронный ресурс] - Режим доступа: https: //www.skype.com/ru/
3. Крэг Ларман. Применение UML 2.0 и шаблонов проектирования 3-е изд.— М.: Вильямс, 2006. — 736 с.
4. Официальный сайт postgreSQL [Электронный ресурс] - Режим доступа: https: //www.postgresql. org
5. Полное практическое руководство по Docker: с нуля до кластера на
AWS [Электронный ресурс] - Режим доступа:
https://habr.com/post/310460/
6. Официальный сайт netty [Электронный ресурс] - Режим доступа:
http://netty.io
7. Официальный сайт Akka [Электронный ресурс] - Режим доступа:
https://akka.io
8. Учебник по JavaFX 8 [Электронный ресурс] - Режим доступа:
http: //code.makery.ch/library/j avafx-8-tutorial/ru/part 1 /