Автор работы: Пользователь скрыл имя, 18 Мая 2013 в 23:27, курсовая работа
Развитие туристической индустрии привело к появлению на рынке программного обеспечения огромного количества решений для автоматизации турфирм, турагентств и туроператоров. Большое количество туристических услуг предлагает глобальная сеть Интернет, в которой информация о туроператорах представлена достаточно наглядно и подробно.
Но, не смотря на такое разнообразие ПО, создаются все новые приложения и системы для туризма. В данном курсовом проекте необходимо разработать систему поиска туроператора для заданного туристического маршрута. в качестве заказчика ПО выступает ООО «Бюро туристических маршрутов».
Введение 3
Основная часть 4
1. Цель работы 4
2. Декомпозиция и распределение ролей в проекте 4
3. Выполнение предписанных задач 5
3.1. Теоретическая часть 5
3.2. Практическая часть 8
Заключение 13
Список литературы 14
Министерство высшего
Кафедра Информационных технологий
Курсовая работа
по технологии разработки программного обеспечения
Тема: "Коллективная разработка программного продукта, направленного на усовершенствование поиска туристической информации"
Выполнила:
Проверил:
Протвино - 2008
Высокие темпы роста отечественной и зарубежной туриндустрии привели к огромному количеству туроператоров, представляющие зачастую одинаковые туры по различным условиям. В связи с этим, выбор подходящего туроператора занимает много времени и усилий. Одно из возможных решений этой проблемы: облегчение поиска подходящего туроператора за счет систематизирования информации по определенным турам.
Развитие туристической индустрии привело к появлению на рынке программного обеспечения огромного количества решений для автоматизации турфирм, турагентств и туроператоров. Большое количество туристических услуг предлагает глобальная сеть Интернет, в которой информация о туроператорах представлена достаточно наглядно и подробно.
Но, не смотря на такое разнообразие ПО, создаются все новые приложения и системы для туризма. В данном курсовом проекте необходимо разработать систему поиска туроператора для заданного туристического маршрута. в качестве заказчика ПО выступает ООО «Бюро туристических маршрутов».
Цели курсового проекта носят как практический, так и организационный характер.
Практической целью курсового проекта является создание системы поиска туроператора по выбранному туристическому маршруту. Система, получившая название «Гуру - тур» должна разрабатываться по требованиям заказчика, описанным в приложении №1 к договору №-2404/8. В качестве обрабатываемой информации выступает информация обо всех туроператорах Центрального ФО РФ.
Организационная цель проекта заключается в создании группы разработчиков, распределения ролей в проекте и согласованности в работе.
В качестве модели разработки ПО была выбрана каскадная модель, основной характеристикой которой является разбиение всей разработки проекта на этапы:
Разработка системы - это процесс преобразования исходных требований в конечный программный продукт. Стандарт оговаривает, что этот процесс должен проводиться в строго определенном порядке, что позволит предотвратить появление ошибок. Требования строгой дисциплины процесса разработки послужат гарантией того, что программный продукт будет создаваться в соответствии с заданными требованиями.
Для реализации проекта была произведена декомпозиция – разделение основной задачи проекта на подзадачи для каждого из участников. Каждый из участников для осуществления данного проекта выполнял определенные этапы разработки ПО.
Проектирование и анализ выполнялись одновременно всей группой проектировщиков. Так как эти этапы являются основополагающими проекта, то к ним требовался общий подход.
Декомпозиция разрабатываемого проекта:
В соответствии с декомпозицией были распределены роли всех членов группы. Лидером команды была выбрана Мандрик Е. Её задачами в рамках проекта были: анализ требований, составление план-графика, разработка модуля работы с БД и формирования запросов, тестирование, написание пользовательской документации. Среди остальных участников группы роли распределились следующим образом:
ODBC
ODBC (Open DataBase Connectivity) — это программный интерфейс (API) доступа к базам данных.
ODBC является одной из самых старых технологий для работы с базами данных, которые выпустила фирма Microsoft. Одной из основных причин разработки ODBC была необходимость предоставления программистам простого способа доступа к содержимому баз данных с минимальной ориентацией на какой-либо конкретный язык. Среди платформ программирования, на которые фирма Microsoft изначально ориентировала на работу с ODBC, находится и Visual C++.
Чтобы получить доступ к базе данных с использованием ODBC, необходимо создать источник данных.
Классы для работы с ODBC
Среда Visual Studio.NET предоставляет различные подходы для реализации работы с базами данных:
Библиотека MFC реализует поддержку доступа к базам данных, основанную на двух механизмах:
Приложения, использующие доступ к базам данных с применением ODBC-драйверов, в обязательном порядке используют класс CDatabase для создания объекта "база данных" и класс CRecordset для создания объекта "результирующий набор".
CDatabase
CDatabase – класс, инкапсулирующий соединение с источником данных.
Объекты этого класса используются для соединения с базами данных, посредством которого можно манипулировать источником данных (рис.1). Список категорий, на которые можно условно разделить все компоненты и методы данного класса:
Рис. 1. Место класса CDatabase в иерархии библиотеки MFC
CRecordset
CRecordset – класс, инкапсулирующий работу с результирующим набором, включая переход между записями, добавление, удаление и изменение записей, задание фильтров и выполнение параметризированных запросов.
Все компоненты и методы этого класса можно разбить на семь категорий:
Класс CRecordset реализует операции над результирующим набором, получаемым из источника данных при выполнении SQL-оператора SELECT.
SQL
SQL – это язык программирования и запросов к базам данных, он применяется для осуществления доступа к данным, для запросов к реляционным СУБД, для управления базами данных и их обновления. Стандарт SQL утвержден как Американским Национальным Институтом Стандартов (ANSI), так и Международной организацией по стандартизации (ISO).
Создание план-графика работ
В процессе составления графика весь массив работ, необходимых для реализации проекта, разбивался на отдельные этапы и оценивалось время, требующееся для выполнения каждого этапа. В результате был создан план-график (см. Приложение 1), в котором отражена длительность всех этапов разработки с учетом проблем и задержек.
Модуль соединения с базой данных (БД).
Для своей курсовой работы в качестве метода доступа к базе данных я использовала ODBC, т.к. считаю его самым практичным. Все СУБД имеют драйвера ODBC.
Для имеющейся базы данных TravellTour (структуру БД см. Приложение 2) был создан объект класса CDatabase.
Само соединение приложения с источником данных записывается в таком виде:
// ----------------- Connect with database
DataDSN.Format(_T("DSN=
// -----------------
“Trusted_Connection=yes” говорит о том , что соединение с базой данных не зависит от типа авторизации SQL Server (SQL Server Authentication или Windows Authentication).
Модуль формирования запросов к БД.
Для работы с записями базы данных были созданы классы, наследованные от CRecordset, причем эти классы создавались не как MFC Class, а как MFC ODBC Consumer. Это значительно облегчило работу, потому что создается системный DSN ODBC, прототипы функций соединения с базой данных, функции SQL-запроса к таблице, идентифицирует поля таблицы.
Классы, отражающие структуру таблиц базы данных, реализованы таким образом, что можно формировать любой запрос к этой таблице из других классов, создав лишь объект класса-таблицы. Рассмотрим это на примере одного класса, например, к запрос к таблице TourOperator.
// ----------------- Запрашивает туроператора по идентификационноу номеру
BOOL CTourDlg::RequestTourOperator( long IdOperator)
{
CTourOperator* pRecordOperator = new CTourOperator( &TravellTourDB );
if( pRecordOperator == NULL )
{
AfxMessageBox(_T("Не удается создать объект TourOperator!"));
return FALSE;
}
CString RequestStr;
RequestStr.Format(_T("select * from [TourOperator] WHERE idTourOperator=%d"), (int) IdOperator);
pRecordOperator->
try
{
pRecordOperator->Open();
}
catch( CDBException* DataExcept )
{
CString TmpStr;
TmpStr.Format(_T("Ошибка открытия Таблицы [%s], Запрос: <%s> "), DataExcept->m_strError, RequestStr );
DataExcept->Delete();
AfxMessageBox( TmpStr, IDOK );
}
catch( CMemoryException* MemExcept )
{
CString TmpStr;
TmpStr.Format(_T("Ошибка памяти при открытии Таблицы, Запрос: <%s> "), RequestStr );
MemExcept->Delete();
AfxMessageBox( TmpStr, IDOK );
}
catch( ... )
{
CString TmpStr;
TmpStr.Format(_T("Ошибка Y-917 при открытии Таблицы, Запрос: <%s> "), RequestStr );
AfxMessageBox( TmpStr, IDOK );
}
if( !pRecordOperator->IsOpen() )
{
delete pRecordOperator;
return FALSE;
}
if( pRecordOperator->
{
pRecordOperator->Close();
delete pRecordOperator;
return TRUE;
}
int RecordCounter = 0;
pRecordOperator->MoveFirst();
while( !pRecordOperator->IsEOF() )
{
pRecordOperator->Normalise();
SelectTourOperator.m_
SelectTourOperator.m_Phone = pRecordOperator->m_Phone;
SelectTourOperator.m_email = pRecordOperator->m_email;
SelectTourOperator.m_Adress = pRecordOperator->m_Adress;
SelectTourOperator.m_Site = pRecordOperator->m_Site;
RecordCounter++;
pRecordOperator->MoveNext();
};