Реализация программного обеспечения серверной части
ВВЕДЕНИЕ
В данном курсовом проекте было предложено реализовать клиент-серверное приложение «Бронирование билетов он-лайн».
Клиент-сервер — это вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг (сервисов), называемыми серверами, и заказчиками услуг, называемыми клиентами. Нередко клиенты и серверы взаимодействуют через компьютерную сеть и могут быть как различными физическими устройствами, так и программным обеспечением.
Приложение будет представлять собой серверную часть (а именно службу) и клиентские модули. Количество клиентов не ограничено. Любой клиент может забронировать билет, выбрав при этом пункт отправления, пункт прибытия, дату отправления, количество мест и класс комфорта и обслуживания.
Данное приложение реализовано на языке программирования С++ и в среде MS Visual Studio 2008. Microsoft Visual Studio — линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Visual Studio - интегрированная среда, упрощающая создание, отладку и развертывание приложений. Интегрированная поддержка разработки через тестирование и новые инструменты отладки позволяют быстро и без труда находить и устранять ошибки, обеспечивая высокое качество решений.
АНАЛИЗ ИСХОДНЫХ ДАННЫХ
1.1 Характеристика требований на разработку
Целью данного курсового проекта является реализация программы, которая предоставляет возможность регистрации авиабилетов он-лайн. Для работы с приложением необходимо запустить сервер, а затем запустить клиентское приложение, после чего клиент может выполнить бронирование билетов.
Серверная часть приложения должна быть оформлена в виде службы. Клиентская часть будет создаваться как обычное фоновое приложение.
Так же в рамках курсового проекта должна быть разработана следующая документация:
1. техническое задание (представлено в приложении А);
2. протокол тестирования (представлен в приложении Б);
3. руководство пользователя (представлено в приложении В);
4. диаграмма прецедентов (представлена в приложении Г);
5. диаграмма классов (представлена в приложении Д);
6. диаграмма взаимодействий (представлена в приложении Е);
7. диаграмма компонентов (представлена в приложении Ж);
8. диаграмма развёртывания (представлена в приложении З).
Анализ предметной области
Приложение должно иметь доступ к имеющейся информации обо всех возможных рейсах, которая размещается на сервере. Имеющаяся информация хранится в базе данных MS Access.
Сервер должен быть выполнен в виде службы. Клиент, в свою очередь, должен иметь удобный и понятный для широкого круга пользователей интерфейс.
Специальное и общесистемное программное обеспечение
Средой разработки курсового проекта является Microsoft Visual Studio 2008. Язык программирования – C++ на платформе .NET Framework.
Visual Studio — линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом.
.NET Framework — программная платформа, выпущенная компанией Microsoft в 2002 году. Основой платформы является исполняющая среда Common Language Runtime (CLR), способная выполнять как обычные программы, так и серверные веб-приложения. NET Framework поддерживает создание программ, написанных на разных языках программирования.
По сравнению с классическим C++, .NET Framework имеет расширенный набор компонентов для работы со службами и базами данных и содержит большой набор компонентов для построения графического интерфейса. Главной причиной работы с .NET Framework в данном курсовом проекте является работа с базами данных.
ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО КОМПЛЕКСА
Информационное обеспечение
Диаграмма классов — статическая структурная диаграмма, описывающая структуру системы. Она демонстрирует классы системы, их атрибуты, методы и зависимости между классами. Диаграмма представлена в приложении Г.
Диаграмма прецедентов отображает поведение системы или ее части под тем углом, под каким её видит пользователь.Основная задача — представлять собой единое средство, дающее возможность заказчику, конечному пользователю и разработчику совместно обсуждать функциональность и поведение системы. На диаграмме отражены действия, которые может совершать пользователь. Диаграмма представлена в приложении Д.
Диаграмма компонентов - статическая структурная диаграмма, показывает разбиение программной системы на структурные компоненты и связи (зависимости) между компонентами. В качестве физических компонент могут выступать файлы, библиотеки, модули, исполняемые файлы, пакеты и т. п. Диаграмма представлена в приложении Е.
Диаграмма взаимодействия позволяет с разных точек зрения рассмотреть взаимодействие объектов в создаваемой системе Диаграмма представлена в приложении Ж.
Диаграмма развертывания служит для моделирования работающих узлов. Диаграмма представлена в приложении З.
Функциональная структура программы
Приложение разделено на две части – серверную и клиентскую. Серверная часть устанавливается на компьютер, который будет предоставлять всю необходимую информацию для бронирования билетов. Клиентская часть запускается на компьютере-клиенте. Серверная часть должна находится во включенном состоянии и ожидать подключения к ней клиента.
Сервер должен предоставлять клиенту всю необходимую информацию для бронирования билетов.
Клиент, в свою очередь, должен отправлять серверу либо условие выборки, либо данные о пассажирах.
Передача данных в приложении осуществляется поочерёдно. Причём эти данные представляют собой строку, в которой первый бит для сервера – это результат выполнения операции (положительный либо отрицательный), а для клиента – номер операции, которую необходимо выполнить серверу. Остальная часть строки – параметры.
Параметрами для сервера является информация, которую он предоставляет клиенту (например, список городов, рейсов).
Параметрами для клиента является в одном случае строка условия для постановки в запрос выборки (при получении списков рейсов), в другом – данные о пассажирах (при сохранении данных о пассажирах).
Алгоритмическое обеспечение
Интерфейс программного комплекса и реализованные в нем алгоритмы должны иметь следующий вид. Сначала запускается сервер. После запуска он должен ожидать подключения к нему клиента. Сервер не имеет никакого графического интерфейса и его работа должна быть абсолютно не заметной для пользователя компьютера.
После запуска клиентского приложения необходимо подключиться к серверу. Только после этого можно будет выполнить бронирование билетов. Для этого нужно пройти три шага.
Шаг 1. Выбор пункта отправления, пункта прибытия, даты вылета, количество мест и класс комфорта и обслуживания.
Шаг 2. Выбор наиболее подходящего рейса (время отправления и время прибытия, цена за общее количество билетов, компания, предоставляющая услуги авиаперевозок).
Шаг 3. Регистрация пассажиров (Фамилия, имя, отчество, паспортные данные, место жительства).
Для завершения сеанса необходимо отключиться от сервера.
РАЗРАБОТКА И ТЕСТИРОВАНИЕ ПРОГРАММНОГО КОМПЛЕКСА
Детальная реализация функциональных частей программного обеспечения
Реализация шла на языке программирования C++ на платформе .NET Framework в среде Microsoft Visual Studio 2008. Использовались стандартные функции и библиотеки для .NET Framework.
Реализация программного обеспечения серверной части
Основу серверного приложения составляют 2 класса:
− SocketServer (класс, реализующий логику сервера);
DataBase (класс для работы с базой данных).
Рассмотрим каждый из них подробно. Объявление класса SocketServer
выглядит следующим образом:
public ref class SocketServer
{
private:
Socket^ listener;
IPEndPoint^ ipPoint;
int port;
DataBase^ db;
void readConfig();
public:
SocketServer();
void ServerInitialize();
void Start();
void Stop();
};
Поясним каждое из полей класса:
1. Socket^ listener - Сокет для реализации сервера;
2. IPEndPoint^ ipPoint; - Порт для прослущивания;
3. int port – номер порта;
4. DataBase^ db - Класс, реализующий работу с базой данных;
5. SocketServer() - конструктор;
6. void ServerInitialize() - Метод инициализации сервера;
7. void Start() - Метод, реализующий старт сервера;
8. void Stop() - Метод, реализующий остановку сервера;
Объявление класса DataBase выглядит следующим образом:
ref class DataBase
{
private:
String^ connectionString;
OleDbConnection^ myOleDbConnection;
OleDbCommand^ myOleDbCommand;
public:
DataBase(void);
void InitConnection()
void SetConnectionString(String^ value)
String^ GetCities()
String^ GetFlights(String^ param)
}
Поясним каждое из полей класса:
1. String^ connectionString - Строка подключения к базе данных;
2. OleDbConnection^ myOleDbConnection - класс для связи с базой данных;
3. OleDbCommand^ myOleDbCommand - для выполнения команд;
4. void InitConnection() - Инициализация соединения;
5. void SetConnectionString(String^ value) - установления значения строки подключения;
6. String^ GetCities() - получение списка городов;
7. String^ GetFlights(String^ param) - получение списка маршрутов;
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|