44448

Реализация клиент-серверного приложения (игры Собери двойку)

Курсовая

Информатика, кибернетика и программирование

Информационное обеспечение Диаграмма прецедентов Это диаграмма на которой отражены отношения существующие между актерами и прецедентами. Диаграмма представлена в приложении А. Диаграмма классов Это статическая структурная диаграмма описывающая структуру системы она демонстрирует классы системы. Диаграмма представлена в приложении B.

Русский

2013-11-12

1.44 MB

33 чел.

Содержание

[1] ВВЕДЕНИЕ

[2] 1 АНАЛИЗ ИСХОДНЫХ ДАННЫХ

[3] Характеристика требований на разработку

[4] Анализ предметной области

[5] Специальное и общесистемное программное обеспечение

[6] ПРОЕКТИРОВАНИЕ ПРОГРАММЫ

[7] 2.1 Информационное обеспечение

[8] Математическое описание

[9] Функциональная структура

[10] Алгоритмическое обеспечение

[11] Программная реализация

[12] Детальная реализация функциональных частей программного обеспечения

[13] Реализация программного обеспечения

[14] 3.1.2 Разработка пользовательского интерфейса

[15] Разработка руководства пользователя

[16] Программа и методика испытаний

[17] Тестирование программного обеспечения

[18] ЗАКЛЮЧЕНИЕ

[19] ЛИТЕРАТУРА

[20] Приложение A.

[21] Приложение Б.

[22] Приложение В.

[23] Приложение Г.

[24] Приложение Д.

[25] Приложение Е.

[26] Приложение G.

[27] Приложение H.


ВВЕДЕНИЕ

В данном курсовом проекте было предложено реализовать клиент-серверное приложение (игру). Приложение будет представлять собой серверную часть (а именно службу) и клиентские модули. Количество клиентов не ограничено. Любой из клиентов может выступать создателем игры (реализована одна игра, однако относительно просто можно расширить список игр на клиентских модулях). Другие клиенты могут подключаться к любой из созданных игр. У каждого клиента имеется информация о текущих играх и о подключенных к той либо иной игре клиентов.

 Данную игру предложено реализовать на языке программирования С++ и в среде MS Visual Studio 2008. Microsoft Visual Studio — линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Visual Studio - интегрированная среда, упрощающая создание, отладку и развертывание приложений. Интегрированная поддержка разработки через тестирование и новые инструменты отладки позволяют быстро и без труда находить и устранять ошибки, обеспечивая высокое качество решений.

1 АНАЛИЗ ИСХОДНЫХ ДАННЫХ

  1.  Характеристика требований на разработку

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

  1.  Анализ предметной области

Приложение должно функционировать согласно правилам, которые предусматривает выбранный вариант игры. Единственной,  на данный момент, реализованной игрой является “Собери двойку”. Побеждает тот игрок, кто первый откроет всё поле. Поле представляет собой 16 ячеек. Соответственно всего 8 пар одинаковых символов.

  1.  Специальное и общесистемное программное обеспечение

Согласно исходным данным средой разработки проекта будет являться MS VS 2008. Данная среда программирования была выбрана из ряда других согласно указанному техническому заданию. Visual Studio, в первую очередь, считается универсальной и многофункциональной средой программирования. Согласно техническому заданию разработка должна вестись на языке программирования C++, а также с использованием функций работы с сокетами.

Как вариант, данный курсовой проект можно было предложить реализовать в среде Adobe Flash, используя язык программирования Action Script 2.0/3.0, однако данный язык в некоторой степени является более высокоуровневым, и в меньшей мере способствует развитию навыков на начальном этапе в работе с сокетами.


  1.  ПРОЕКТИРОВАНИЕ ПРОГРАММЫ

2.1 Информационное обеспечение

Диаграмма прецедентов

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

Диаграмма классов

Это  статическая структурная диаграмма, описывающая структуру системы, она демонстрирует классы системы. Диаграмма представлена в приложении B.

Диаграмма компонентов

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

Диаграмма композитной/составной структуры

Диаграмма композитной/составной структуры - статическая структурная диаграмма, демонстрирует внутреннюю структуру классов и, по возможности, взаимодействие элементов (частей) внутренней структуры класса.  Диаграмма представлена в приложении D

Диаграмма развёртывания

Служит для моделирования работающих узлов. В данном случае используется сервер и 3 клиента. Диаграмма представлена в приложении Е.

Диаграмма объектов

Демонстрирует полный или частичный снимок моделируемой системы в заданный момент времени. На диаграмме объектов отображаются экземпляры классов (объекты) системы с указанием текущих значений, их атрибутов и связей между объектами. Диаграмма представлена в приложении F.

Диаграмма деятельности

Диаграмма, на которой показано разложение некоторой деятельности на её составные части. Диаграмма представлена в приложении G.

Диаграмма коммуникации и последовательности

Выражает взаимодействие между тремя клиентами и сервером. Диаграмма представлена в приложении H.

Диаграмма обзора взаимодействия

Разновидность диаграммы деятельности, включающая фрагменты диаграммы последовательности и конструкции потока управления. Диаграмма представлена в приложении I.

Диаграмма синхронизации

Альтернативное представление диаграммы последовательности, явным образом показывающее изменения состояния на линии жизни с заданной шкалой времени. Может быть полезна в приложениях реального времени. Диаграмма представлена в приложении J.

  1.  Математическое описание
    1.  Функциональная структура

Приложение должно предоставлять гостю выбор, к какому серверу подключиться, какое имя будет у сервера/клиента, когда начнётся игра. Алгоритм работы следующий:

1.Старт работы сервера

2.Старт работы клиента(-ов)

3.Выбор подключения к игре либо создание своей.

4.Выбор имени.

5.Ожидание игроков и старт игры

  1.  Алгоритмическое обеспечение

Описание алгоритма работы программы выглядит следующим образом. При запуске приложения (а именно клиента) можно будет выбрать, кем будет являться таковой: создающим игру либо подключающимся. Создатель игры указывает своё имя (имя игры) и оно отображается на сервере. Затем у него же появляется диалоговое окно со списком клиентов, в котором отображаются имена клиентов, подключившихся к этой игре. Создатель игры может начать игру в любой момент по нажатию кнопки “Start”, либо отменить игру и отключить всех подключившихся именно к этой игре пользователей по нажатию кнопки “Cancel”. После нажатия кнопки “Start” диалоговое окно со списком пользователей будет автоматически закрыто и появится игровое поле.

На стороне клиентов ситуация следующая. При входе клиент указывает своё имя. Затем он может выбрать список игр, которые ожидают старта, после чего появится диалоговое окно с именем игры и кнопкой “Cancel”, нажатие на которую отменит ожидание и вход в игру. Как только на клиенте, который создал игру,  будет нажата кнопка “Start” данное окно автоматически закроется и появится игровое поле. Тот, кто первый откроет поле получит сообщение о победе. Остальные клиенты получат сообщение о проигрыше в игре, а также имя победителя.


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

Реализация шла на языке программирования C++ в среде Microsoft Visual Studio 2010. Использовались только стандартные функции и библиотеки. Структура классов находится в приложении Г.

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

Таблица 1.Описание классов.

Элемент массива игр.

ref class game

{

public:

game(System::String^ name);

System::String^ host;

System::String^ winner;

 bool visible;

 bool hostReady;

 array<System::String^>^ Users;

 void Add(System::String^ name);

 void Delete(System::String^ name);

 int Count;

};

Массив игр. Удаление, элементов,их количество.

ref class GameList

{

public:

GameList(int k);

 void Add(System::String^ name);

 void Delete(System::String^ name);

 array<game^>^ Items;

 int Count;

};

Элемент массива пользователей.

ref class Record

{

public:

Record(void);

Record(System::String^ username, System::String^ name);

System::String^ username;

System::String^ name;};

Продолжение таблицы 1.

Класс описания пользователя. Используется для обращения к конкретному пользователю. Элемент массива пользователей

ref class User

{

public:

User(System::String^ nam, SOCKET sok);

System::String^ name;

SOCKET sock;

};

Массив пользователей

ref class UserList

{

public:

UserList(int k);

 void Add(System::String^ name, SOCKET sok);

 void Delete(System::String^ name);

SOCKET GetSock(System::String^ name);

 array<User^>^ Items;

 int Count;

};

3.1.2 Разработка пользовательского интерфейса

При запуске клиента в первую очередь будет отображено окно, изображенное на рисунке 1.

Рисунок 1. Клиентский модуль

Далее, можно создать игру либо зайти в существующую игру, которая ожидает игроков. Если пользователь решит создать свою игру, то он должен выбрать игру и затем ввести своё имя в окне, изображенном на рисунке 2.

Рисунок 2. Авторизация/регистрация пользователя.

После авторизации игра считается созданной. Если другой клиент подключится к этой игре, например, с именем “Two”, то это будет видно в списке пользователей в данном окне.

Рисунок 3. Авторизация пользователя, который подключается  к игре.

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

Рисунок 4. Список игр, отображающийся у пользователя-клиента.

Как видно из рисунка 4, была создана игра “Game1” пользователем с именем “Player”. Выбрав эту игру, пользователь перейдет непосредственно к ожиданию старта. При этом появится окно с именем игрока, создавшего данную игру, и кнопкой “Отмена”, по нажатию на которую пользователь отключится от игры. Данное окно изображено на рисунке 5.

Рисунок 5. Настройки сервера

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

Рисунок 6. Пользователь сервер. Список подключившихся к игре.

Далее по нажатию кнопки “Start” пользователем-сервером, автоматически зарываются окна ожидания на всех клиентах, и появляется игровое поле, изображенное на рисунке 7.

Рисунок 7. Игровое поле.

Тот, кто первым откроет все ячейки, получит уведомление, изображённое на рисунке 8.

Рисунок 8. Сообщение о победе.

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

Рисунок 9. Сообщение о проигрыше.

Также имеется возможность выбрать порт и IP-адрес. Окно настроек изображено на рисунке 10.

Рисунок 10. Окно настроек.

  1.  Разработка руководства пользователя

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

  1.  Программа и методика испытаний

Методика испытаний включает в себя проверку на работоспособность приложения. Например, тестировалась корректная работа с 5-ю клиентами. Протокол тестирования приведён в приложении Б.

  1.  Тестирование программного обеспечения

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


ЗАКЛЮЧЕНИЕ

В результате выполнения курсового проекта была реализована сетевая игра “Собери двойку”. Интерфейс программы удобен и понятен для широкого круга пользователей.

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

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


ЛИТЕРАТУРА

  1.  Макс Шлее - Профессиональное программирование на C++ (2010)
  2.  http://www.opennet.ru/base/sec/openssl.txt.html http://ru.wikipedia.org
  3.  http://en.wikipedia/sockets
  4.  http://coder.by
  5.  http://ru.wikipedia.org/wiki/VS


Приложение A.

Техническое задание

Техническое задание

Название разрабатываемого программного обеспечения –  «Сетевая игра-головоломка “Собери двойку”».

Разрабатываемая игра рассчитана на возможность функционировать по сети и иметь неограниченное количество игроков.

А.1 Основания для разработки

Задание к курсовой работе по дисциплине СПО.

А.2 Назначение разработки

А 2.1 Функциональное назначение разработки

Функциональное назначение данной разработки заключается в разработке сетевого приложения-головоломки для игры пользователей по сети.

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

А.2.2 Эксплуатационное назначение разработки

Данная разработка является курсовой работой в УО ПГУ.

А.3 Требования к программе или программному изделию

А.3.1 Требования к функциональным характеристикам

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

1.Создания игры любым пользователем

2.Подключение к любой созданной игре

3.Отображение списков пользователей в игре

4.Отображение победителя у всех пользователей в игре

5.Корректная работа с большим количеством пользователей

6.Реализация сервера в виде службы 

А.3.2 Требования к надежности

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

А.3.3 Условия эксплуатации

Условия эксплуатации программного обеспечения определяются требованиями к помещениям для эксплуатации ПЭВМ.

При эксплуатации необходимо соблюдать правила охраны труда при работе с видеодисплейными устройствами.

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

А.3.4 Требования к составу и параметрам технических средств

Программные: Windows XP/7/vista 

Системные:

Оперативная память : 512Мб (требуемая системой)

Места на диске: 200 Кб

А.4 Требования к программной документации

Программная документация данной разработки должна быть представлена в следующем составе:

  •  техническое задание;
  •  пояснительная записка.

Программная документация должна быть оформлена в соответствии со следующими нормативными документами:

  •  ГОСТ 19.201-78 ЕСПД. Техническое задание. Требования к содержанию и оформлению – М.: Изд-во стандартов, 1982;
  •  ГОСТ 19.402-2000 ЕСПД. Описание программы. – М.: Изд-во стандартов, 2001;
  •  ГОСТ 19.505-79 ЕСПД. Руководство оператора. – М.: Изд-во стандартов, 1982;
  •  ГОСТ 19.301-200 ЕСПД. Программа и методика испытаний. – М.: Изд-во стандартов, 2001.


Приложение Б.

Протокол тестирования.

Протокол тестирования

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

Б.1 Структура протокола

1)Тестирование работоспособности на разных версиях и сборках операционной системы Microsoft Windows.

2)Тестирование работы программы на локальном компьютере.

3)Тестирование работы программы при работе по сети.

4)Выявление ошибок при использовании нетипичного хода действий пользователя

Б.2 Тестирование

Таблица 2.Тестирование

Описание теста

Выполняемые

действия

Реакция

программы

Вывод

Запуск клиента

Запустили программу-клиент

Открылась главная форма программы

Тест пройден

Авторизация при

отключенном сервере

Использовали пункт меню Games-Join

На экране появилось окно с надписью «Connect error»

Тест пройден

Запуск сервера

(запуск службы)

Запуск службы используя «Управление компьютером»

Статус службы сменился на «Работает»

Тест пройден

Регистрация нового пользователя

Использовали пункт менюGames-Join и Games-Pairs. В открывшейся форме регистрации ввели данные

Пользователь отобразился в окне у сервера.

Тест пройден

Создание игры

Использовали пункт меню Games-Pair

Открылась формасо списком подключённых к игре клиентов

Тест пройден

Старт игры

Использовали Start

Немедленный старт всех клиентов и сервера, закрытие формы,появление поля игры.

Тест пройден

Конец игры

Победа участника

Отображение сообщения о победе.

Тест пройден

Остановка серверной службы во время

работы клиента

Используя «Управление компьютером» остановили серверную службу

При выполнении действия отправки/получения почты и подключения на экране появляется окно с сообщением «Connecterror»

Тест пройден

Б.3 Результаты тестирования

По окончанию тестирования были выявлены ошибки (таблица 2) при отображении списков пользователей, а также корректный выход из ожидающей старта игры. Эти ошибки были корректно исправлены.


Приложение В.

Руководство пользователя.

Руководство пользователя

Руководство пользователя призвано помочь пользователю в работе с приложением.

В.1 Минимальные требования

Для запуска приложения потребуется система Microsoft Windows XP/7/Vista,около 200kb места на жестком диске, клавиатура, мышь.

В.2 Запуск службы сервера

Для запуска приложения потребуется установка службы-сервера на одном из сетевых компьютеров. Для этого потребуется запустить файл Z_service.exe из командной строки с функцией “-install”. Установка службы изображена на рисунке ниже:

Рисунок 11.Установка сервиса.

После чего потребуется запустить службу (по умолчанию она остановлена). Для этого потребуется зайти в Пуск->Панель управления->Администрирование->Службы и запустить службу Z_ServService.

В.3 Запуск клиентов

Для работы клиентов требуется запустить файл Z_Client.exe.

После чего можно перейти к окну настроек (Server->Settings), изображенное на рисунке 11.

Рисунок 11.Окно настроек.

В окне настроек разрешается сменить порт и IP-адрес подключения. Каждый клиент может, как создать свою собственную игру (Games->Pairs) так и подключится к уже созданной игре(Games-> Join), как это изображено на рисунке 12.

Рисунок 12.Вход в игру.

В обоих случаях предварительно потребуется ввести имя, как это изображено на рисунке 13.

Рисунок 13.Указание игроком имени “Two

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

Рисунок 14.Ожидание старта игры

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

Рисунок 15.Список игр, ожидающих пользователей.

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


Приложение Г.

Диаграмма классов.



Приложение Д.

Диаграмма прецедентов.


Приложение Е.

Диаграмма компонентов



Приложение G.

     Диаграмма развёртывания



Приложение H.

Диаграмма коммуникации и последовательности.




Изм.

ист

№ докум.

Подпись

Дата

Лист

3

ШСВ 0810239.015.ПЗ

Разраб.

Шевцов С.В.

Провер.

Травкин О.Н.

Реценз.

Н. Контр.

Утверд.

Сетевая игра

Лит.

Листов

ПГУ гр. 08-ВС


 

А также другие работы, которые могут Вас заинтересовать

244. Привод к операционному токарному станку 8.91 MB
  Разработка рационального и технологичного привода к операционному токарному станку. Чья конструкция имела бы наибольшую экономическую эффективность и максимально соответствовала заданным техническим параметрам.
245. Напрямки модифікації несиметричних ацилоїнів 1.05 MB
  Вивчення термічного ацилоїнового перегрупування продуктів взаємодії арилгліоксалів з сільваном. Проведення селективної взаємодії арилгліоксалів з активованими ароматичними системами. Встановлення структури утворених продуктів.
246. Построение внутренней памяти процессорной системы 179.5 KB
  Компьютерная память, ее виды и классификации, в практической части – осуществлено построение внутренней памяти процессорной системы. Память подразделяют на внутреннюю (оперативную, сверхоперативную и постоянную) и внешнюю (различные накопители).
247. Разработка информационного обеспечения автоматизированной системы Муниципальный заказ г. Сургут 427 KB
  Проектирование базы данных ER-методом. Генерация SQL-скрипта для создания базы данных. Обеспечение взаимодействия структурных подразделений Администрации города при размещении и контроле исполнения муниципальных заказов на поставку товаров.
248. Блоки питания персональных компьютеров 473.5 KB
  Форма и основная физическая компоновка того или иного компонента ПК. Устройства для тестирования блоков питания компьютера. 20-контактный разъём блока питания стандарта ATX. Стандартный блок питания форм-фактора SFX/SFX12V, оснащённый внутренним вентилятором 60 мм.
249. Разработка приложения для создания информационно-поискового комплекса библиотеки техникума всех учебников всех специальностей 1.6 MB
  Основными инструментами для подготовки и показа презентаций в мировой практике являются программы PowerPoint компании Microsoft, CorelPresentations фирмы Corel и пакет StarOfllaj компании SterDivision GMBH.
250. Реалізація логістичних функцій складів в процесі товарного перевезення 597.5 KB
  Підйомно-транспортне обладнання: конвеєри, підйомні столи та платформи, крани, шківи, вантажозахватні пристрої. Управління багатономенклатурними постачаннями (ABC-XYZ). Розрахунок оптимальної партії постачання (EOQ).
251. Практика графического программирования 309 KB
  Написать программу, составляющую из фрагментов целую фотографию. Рисование дорожного знака с элементами анимации. Создание часов с круглым циферблатом и движущимися стрелками. Вывод в графическом окне заданный ребус и проверка его расшифровки.
252. Організація самостійної роботи студентів при виконанні контрольних робіт та індивідуальних завдань по курсу Організація баз даних 515 KB
  У методичному посібнику надані структура завдання до контрольної та індивідуальної робіт та приклад виконання завдання для придбання теоретичних та практичних навичок побудови баз даних в системі керування базами даних Visual FoxPro 6.