Коллективная разработка программного продукта, направленного на усовершенствование поиска туристической информации

Автор работы: Пользователь скрыл имя, 18 Мая 2013 в 23:27, курсовая работа

Краткое описание

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

Содержание

Введение 3
Основная часть 4
1. Цель работы 4
2. Декомпозиция и распределение ролей в проекте 4
3. Выполнение предписанных задач 5
3.1. Теоретическая часть 5
3.2. Практическая часть 8
Заключение 13
Список литературы 14

Прикрепленные файлы: 1 файл

Курсовая.doc

— 337.50 Кб (Скачать документ)

Министерство высшего образования  Российской Федерации

 

 

 

Кафедра Информационных технологий

 

Курсовая работа

 

по технологии разработки программного обеспечения

 

Тема: "Коллективная разработка программного продукта, направленного на усовершенствование поиска туристической информации"

 

 

 

 

 

 

 

Выполнила:

 

 

 

Проверил:

 

 

 

 

 

 

 

Протвино - 2008

 

Содержание

 

Введение

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

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

Но, не смотря на такое разнообразие ПО, создаются все новые приложения и системы для туризма. В данном курсовом проекте необходимо разработать систему поиска туроператора для заданного туристического маршрута. в качестве заказчика ПО выступает ООО «Бюро туристических маршрутов».

 

 

Основная часть

  1. Цель работы

Цели курсового проекта носят  как практический, так и организационный характер.

Практической целью курсового проекта является создание системы поиска туроператора по выбранному туристическому маршруту. Система, получившая название «Гуру - тур» должна разрабатываться по требованиям заказчика, описанным в приложении №1 к договору №-2404/8. В качестве обрабатываемой информации выступает информация обо всех туроператорах Центрального ФО РФ.

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

  1. Декомпозиция и распределение ролей в проекте

В качестве модели разработки ПО была выбрана каскадная модель, основной характеристикой которой является разбиение всей разработки проекта на этапы:

    • Анализ;
    • Проектирование;
    • Реализация;
    • Внедрение;
    • Сопровождение.

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

Для реализации проекта  была произведена декомпозиция –  разделение основной задачи проекта  на подзадачи для каждого из участников. Каждый из  участников  для осуществления данного проекта  выполнял определенные этапы разработки ПО. 

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

Декомпозиция разрабатываемого проекта:

    • Анализ требований;
    • Проектирование базы данных;
    • Разработка базы данных;
    • Проектирование пользовательских интерфейсов;
    • Разработка модуля работы с БД и формирования запросов;
    • Разработка пользовательского интерфейса для программного обеспечения;
    • Создание инсталлятора;
    • Тестирование;
    • Создание руководства пользователя.

В соответствии с декомпозицией  были распределены роли всех членов группы. Лидером команды была выбрана Мандрик Е. Её задачами в рамках проекта были: анализ требований, составление план-графика, разработка модуля работы с БД и формирования запросов, тестирование, написание пользовательской документации. Среди остальных участников группы роли распределились следующим образом:

        1. Ларкина Т. - анализ требований, проектирование и разработка пользовательских интерфейсов.
        2. Моисеева О. – анализ требований, проектирование и разработка пользовательских интерфейсов, создание инсталлятора системы.
        3. Хан О. – анализ требований, проектирование и разработка базы данных, тестирование.
  1. Выполнение предписанных задач

3.1. Теоретическая часть

 

ODBC

 

ODBC (Open DataBase Connectivity) — это программный интерфейс (API) доступа к базам данных.

ODBC является одной из самых  старых технологий для работы  с базами данных, которые выпустила  фирма Microsoft. Одной из основных  причин разработки ODBC была необходимость предоставления программистам простого способа доступа к содержимому баз данных с минимальной ориентацией на какой-либо конкретный язык. Среди платформ программирования, на которые фирма Microsoft изначально ориентировала на работу с ODBC, находится и Visual C++.

Чтобы получить доступ к базе данных с использованием ODBC, необходимо создать источник данных.

 

Классы для работы с ODBC

 

Среда Visual Studio.NET предоставляет различные  подходы для реализации работы с  базами данных:

  1. Применение библиотеки MFC (Microsoft Foundation Class Library).
  2. Применение ATL (Active Template Library).
  3. Использование библиотек Framework.

Библиотека MFC реализует поддержку  доступа к базам данных, основанную на двух механизмах:

  • через ODBC-драйверы;
  • с применением провайдеров данных OLE DB.

Приложения, использующие доступ к  базам данных с применением ODBC-драйверов, в обязательном порядке используют класс CDatabase для создания объекта "база данных" и класс CRecordset для создания объекта "результирующий набор".

 CDatabase

CDatabase – класс, инкапсулирующий соединение с источником данных.

Объекты этого класса используются для соединения с базами данных, посредством которого можно манипулировать источником данных (рис.1). Список категорий, на которые можно условно разделить все компоненты и методы данного класса:  

  • Данные. Эти компоненты класса CDatabase хранят информацию, используемую в том случае, когда вы хотите работать непосредственно с базой данных, к которой присоединен объект CDatabase. 
  • Создание соединения. В эту категорию входят конструктор и методы для открытия/закрытия базы данных.  
  • Атрибуты данных. Сюда относятся десять функций, используемых для получения информации о базе данных, к которой присоединен объект CDatabase. 
  • Операции — пять функций, позволяющих обрабатывать транзакции и непосредственно выполнять команды SQL. 
  • Переопределяемые методы. Один метод, позволяющий программисту более конкретно настроить функционирование объекта CDatabase.

Рис. 1. Место класса CDatabase в иерархии библиотеки MFC

CRecordset

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

Все компоненты и методы этого класса можно разбить на семь категорий:   

  • Компоненты данных. Служат для хранения информации, используемой для непосредственной работы с базой данных, к которой объект этого класса был присоединен. 
  • Конструирование. В эту категорию входят конструктор и методы для открытия/закрытия форм базы данных. 
  • Атрибуты результирующего набора. Функции, используемые для получения информации о результирующем наборе, к которому присоединен объект класса CRecordset. 
  • Операции обновления результирующего набора. Четыре операции, предназначенные для обработки транзакций. 
  • Операции перемещения по результирующему набору. Функции, позволяющие перемещаться по записям результирующего набора. 
  • Другие операции над результирующим набором. Восемь функций, предоставляющие дополнительные функциональные возможности.  
  • Переопределяемые методы. Пять переопределяемых функций, позволяющие программисту настроить функционирование объекта класса CRecordset.

Класс CRecordset реализует операции над результирующим набором, получаемым из источника данных при выполнении SQL-оператора SELECT.

SQL

SQL – это язык программирования и запросов к базам данных, он применяется для осуществления доступа к данным, для запросов к реляционным СУБД, для управления базами данных и их обновления. Стандарт SQL утвержден как Американским Национальным Институтом Стандартов (ANSI), так и Международной организацией по стандартизации (ISO).

 

    1. Практическая часть

 

Создание  план-графика работ

 

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

 

Модуль  соединения с базой данных (БД).

 

Для своей курсовой работы в качестве метода доступа к базе данных я  использовала ODBC, т.к. считаю его самым практичным. Все СУБД имеют драйвера ODBC.

Для имеющейся базы данных TravellTour (структуру БД см. Приложение 2) был создан объект класса CDatabase.

Само соединение приложения с источником данных записывается в таком виде:

// ----------------- Connect with database

DataDSN.Format(_T("DSN=TravellTour; Network=dbmssocn; Trusted_Connection=yes; APP=Microsoft\x00ae Visual Studio\x00ae 2005; Database=TravellTour; Uid=sa; Pwd=sql"));

// -----------------

“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->SetDefaultSQL( RequestStr );

 

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->GetRecordCount() < 1 )

{

pRecordOperator->Close();

delete pRecordOperator;

return TRUE;

}

 

int RecordCounter = 0;

pRecordOperator->MoveFirst();

while( !pRecordOperator->IsEOF() )

{

pRecordOperator->Normalise();

 

SelectTourOperator.m_idTourOperator = pRecordOperator->m_idTourOperator;

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();

};

 

Информация о работе Коллективная разработка программного продукта, направленного на усовершенствование поиска туристической информации