Дипломна работа

УЕБ-БАЗИРАНА СИСТЕМА ЗА ПЕРСОНАЛИЗИРАНИ ТУРИСТИЧЕСКИ МАРШРУТИ | Защитена на: 01/01/1900

Дипломната работа е в областта на софтуерните системи за електронен туризъм.

Целта на дипломната работа е да се проектира, разработи и тества експериментална софтуерна онлайн система за персонализирани туристически маршрути. Системата предоставя възможност за създаване, преглед и запазване на персонализирани туристически маршрути, както и необходимото за целта управление на потребителския профил на туриста, на таксономия от туристически обекти от различни видове и на управление на информацията за самите обекти. Съобразен с предпочитанията, които потребителят е маркирал в своя профил като интереси, и допълнителни параметри като брой отбивки, брой места за отсядане, максимална отдалеченост на отбивките, които могат да се конфигурират за всяко едно търсене, системата избира и генерира подходящ маршрут. При желание на потребителя текущото търсене може да бъде запазено и в последствие избрано, може също така навигационните данни да бъдат свалени.

Задачите, които произтичат от целта са следните :

  1. Преглед на съществуващите системи за електронен туризъм, вкл. и за предлагане на информация за туристически обекти.
  2. Преглед на използвани софтуерни технологии и платформи за разработка на Уеб-базирани приложения.
  3. Разработване на експериментална софтуерна онлайн система за персонализирани туристически маршрути, което включва:
    • анализ на изискванията и описание на бизнес процесите
    • проектиране на системата
    • имплементация на системата
    • тестване и експериментално внедряване
  4. Практически експеримент с разработената онлайн система за персонализирани туристически маршрути, последван от анкетиране на потребителите относно използваемостта на системата.
  5. Анализ на резултатите от експеримента и валидиране на разработенaтa онлайн система за управление на персонализирани туристически маршрути.

За да бъдат изпълнени целите, реализацията се разделя на следните стъпки:

Разглежда се предметната област, дават се дефиниции на ключови за темата термини. Разглеждат се проблемите в областта на електронния туризъм и как се постъпва при съответния проблем, какви подходи съществуват за решаването му. Проучват се и се анализират съществуващи вече приложения, като се описват и се сравняват техните характеристики спрямо различни критерии.

След преглед и обстоен анализ на съществуващите решения става ясно, че те са фокусирани върху конкретни фази от планирането на пътуване (намиране на хотел, намиране на атракции и забележителности, картографски решения). Може да се заключи, че въпреки наличието на много популярни и добре утвърдени приложения, остава нуждата от приложение, което да обедини отделните функционалности и да предостави цялостно решение, което да бъде генерирано съобразено с желанията и изискванията на потребителя, без да се налага всеки път да се филтрират резултатите от търсенията му.

Следва да се разгледат необходимите технологии и средства за реализиране на приложението за персонализирани туристически маршрути. Всяка технология/средство се проучва, анализира и описва детайлно, като в последствие се сравняват по категории. Спрямо нуждите на дипломната работа, са избрани най-добре съответстващите средства за реализирането й. Използвани са следните средства:

  • Среди за разработка

Eclipse – Среда за разработка, която е известна с добрата си Java интеграция, а и не само. Има различни варианти предназначени за C, C++, Javascript, Typescript, PHP програмиране. Предоставя богат набор от функционалности за писане на код, проследяване на код по време на изпълнение (debug). Предлага различни изгледи спрямо конкретната дейност на програмиста в момента.

Atom – Среда за разработка, която е изключително удобна за писане на потребителски интерфейси.

  • База данни

MySql - MySQL предлага изключителни възможности за бързо стартиране ( от изтеглянето на софтуера до завършването на инсталацията). Веднъж инсталирани функциите за самоуправление като автоматично разширяване на пространството, автоматично рестартиране и динамични промени в конфигурацията отнемат голяма част от тежестта на конфигурирането. MySQL също предоставя набор от графични инструменти за управление, които позволяват лесно управление, отстраняване на проблеми и контролиране на работата на MySQL сървъри.

MySQL Workbench - унифициран визуален инструмент за архитекти, разработчици на бази данни и администратори. MySQL Workbench дава възможност за моделиране на данни, изпълнение на заявки и цялостни административни инструменти за конфигуриране на сървъри, администрация на потребители, архивиране и много други. MySQL Workbench се предлага за Windows, Linux и Mac OS X.

  • Външна система за управление на файлове

Google Cloud Storage – една от най-гъвкавите възможности за интегриране към уеб приложение е тази на Google. Предоставяйки добра производителност, надеждност и сигурност чрез своите характеристики, Google Cloud Storage е много добър избор за целите на текущото приложение, а именно запазване на изображения.

 

  • Езици и технологични рамки за програмиране на сървърна част

Java - Java е един от най-добрите езици за разработване на уеб приложения. Разполага с отлични инструменти за програмиране и среда за разработка (IDE), свободно достъпни на пазара, за да се осигури по-висока производителност. Java е подходящ език за разработване на всякакъв вид корпоративни уеб приложения в почти всяка индустрия. Характеристики като сигурност, независимост от платформа, обектно-ориентираност, поддържане на многонишкова функционалност, правят езика изключително подходящ за целите на дипломната работа.

 Spring - Spring Framework предоставя цялостен модел за програмиране и конфигуриране за съвременни Java-базирани корпоративни приложения - на всякакъв вид платформи за внедряване. Сред основните му функционалности са : инжектиране на зависимости, събития, ресурси, i18n (интернационализация), валидиране, обвързване на данни, преобразуване на типове, транзакции, поддръжка на DAO (data access object – обект за достъп до данни), JDBC (java database connectivity – java свързаност с база данни), ORM(object relational mapping – обектно релационно картографиране), Marshalling XML/JSON (преобразуване на java обекти към XML/JSON формат).

  • Езици и технологични рамки за програмиране на клиентска част

Angular - много мощна JavaScript технологична рамка, проектирана и поддържана от Google. Тя е създадена специално за преодоляване на различните ограничения на съществуващите технологии в един пакет. Angular помага за изграждането на интерактивни и динамични приложения за една страница (SPA) с неговите функции, включително шаблони, двупосочно обвързване, модуларност.

Material - библиотека с компоненти за потребителски интерфейс предназначена за разработчици на Angular. Компонентите на Angular Material помагат за създаването на атрактивни, консистентни и функционални уеб страници и уеб приложения, като същевременно се придържат към съвременните принципи за уеб дизайн.

  • Картографски софтуер за внедряване

 Google Maps програмен интерфейс – интерфейс за внедряване на най-популярният и добре развит софтуер в момента. Предоставя богат набор от функционалности, различни метрики, възможност за интеграция на различни платформи. Документацията е изрядна, редовно обновявана и добре поддържана, което прави избора много лесен. След регистрация в конзолата на Google Cloud, всеки който желае, може да се сдобие с ключ за внедряване на Google Maps функционалност.

Прави се концептуален анализ, разглеждат се функционалните и нефункционалните (качествени) изисквания. Така още в ранен стадий от жизнения цикъл на продукта става явно какво точно се очаква. За успеха на продукта е важно да се уточнят всички изисквания и да се изясни цялостната концепция.

Разглежда се как се подсигуряват качествените изисквания – сигурност, изправност, изменяемост, изпитаемост, производителност.

 Потребителските изисквания описват абстрактно какво трябва да прави софтуера. Определят се кои са основните действащи лица и кои са действията, които те биха направили чрез система за генериране на персонализирани туристически маршрути.  Функционалностите, които системата трябва да предлага, са следните: регистриране на потребител, вход в системата, промяна на данните на потребителя, промяна на предпочитаните типове забележителности от потребителя, достъпване на списъка с обекти, регистрирани в системата, достъпване на списък с типове обекти, търсене на маршрут (в изгледа да може да се подава: начална точка, крайна точка, максимум брой отбивки, максимална отдалеченост на предложените отбивки, максимален брой на нощувки за пътуването, допълнителен избор на предпочитани типове обекти), сваляне на генериран маршрут, запазване на параметри от търсене на маршрут, повторно търсене чрез запазени вече параметри. 

Разглежда се архитектурата на приложението, анализират се нейните слоеве. Избран е “three-tier” (тристепенна архитектура) стил за представяне на архитектурата. Архитектурата на три нива е от тип клиент-сървър, при която бизнес логиката, съхранението на данни и потребителският интерфейс се разработват и поддържат като независими модули.

  • Презентационен слой – Това е потребителският интерфейс, чрез който крайните потребители ще взаимодействат с уеб приложението. За разработването на този слой е използван Angular. Връзката между него и бизнес логиката се осъществява чрез HTTP заявки. HTTP (Hypertext Transfer Protocol) представлява протокол за комуникация и пренос на данни. Част от приложния слой на OSI модела. След автентикация от страна на сървърната част, се пази генерираният “Java Web Token” в бисквитка в браузъра. Така по време на сесията всяка заявка, след тази за вход в системата, се автентицира с този тоукън.
  • Слой за бизнес логика – Този слой, наричан още среден слой, бива извикван от презентационния. Контролира основната функционалност на приложението, като извършва различни процеси. На това ниво са дефинирани интерфейси за обработване на различни „REST“ заявки. (Rest или Representational State Transfer е стандарт, който улеснява комуникацията на системите в мрежата).
  • Слой за данни – Този слой се грижи за данните. В общия случай представлява сървър с база данни. Така данните се съхраняват независимо. Използва се MySQL релационна база данни, като за връзка между нея и средния слой се използва JDBC (Java Database Connectivity). Данните се манипулират лесно от средния слой благодарение на JPA (Java Persistence API).

За запазване на изображения се ползва външна система за съхранение на данни – Google Cloud Storage. Използван е Java клиент, който е интегриран чрез maven зависимост. Изисква се ключ, който да се генерира предварително и да се конфигурира и използва в кода, за да може клиентът да се автентицира при извършване на операции. Нужно е да има наличен контейнер за данни (bucket), в който да се записват файловете. Интерфейсът на клиента дава удобен начин за манипулиране на изображенията.

Уточнява се модела на данните и по какъв начин ще бъдат представени. Анализира се по какъв начин ще бъде представена йерархичната структура на типовете забележителности (чрез поле в обекта „тип“, което служи за „запазване на пътя“ – path enumeration).

Въпреки неудобството при промяна в йерархията, това представяне дава възможност лесно и бързо да се достъпват типовете със всички техни наследници. За целта на дипломната работа това е по-важно и по-често използвано. Представят се диаграми, като от структурните е избрана клас диаграмата. Тя представя различните обекти, които служат за реализиране на приложението, както и връзките между тях. От диаграмите на поведението е представена диаграма на последователността. Разглежда се потребителския интерфейс. Анализират  се модулите на системата, не само вътрешни, но и външните помощни модули. Те в случая са два – Google Maps API и Google Cloud Storage. Aнализира се системната интеграция.

 Анализират се сценариите за тестване. Тесатват се както често срещаните и популярни сценарии, така и рядко срещани и по-специфични сценарии и се проверява, че има валидация на данните при изпълняване на заявки и още при самото попълване на формите в потребителския интерфейс. Отсяват се сценариите, които един потребител би изпълнявал и се тестват. Подсигурява се, че дори в случай, на грешка, има подходящо известяване. Обобщават се резултатите от тестването.

Описва се платформата за внедряване (“Google Cloud platform”) и необходимите стъпки за внедряване на системата. Тя е подходяща заради изключително добре написаната и детайлна документация, подробните и разнообразни примери, които дават стимул на неопитни хора да експериментират и навлязат лесно в спецификата.  Добри ценови предложения, както и добър стартов кредит (безплатно ползване в рамките на определен бюджет на всякакви облачни услуги).

След внедряване, се дава възможност на определен брой потребители, да използват системата. Резултатите от анкетата са анализирани. Като средно аритметично оценката на системата възлиза на 9.5. Стойност на стандартното отклонение е 0,86. Средната стойност на стандартната грешка е 0,18. Може да се заключи, че оценката, която потребителите са дали за използваемостта на приложението, е много висока (95% от възможния максимум). 

Приложението за персонализирани туристически маршрути дава нов поглед над организирането на екскурзии. То обединява няколко функции, а именно откриване на маршрут между подадена начална и крайна точка, намиране на отбивки, които са пряко свързани с личните интересни на всеки потребител, намиране на места за престой, ако това е желано, конфигуриране на отдалечеността на отбивките. Освен това забележителностите въведени от администратора на системата са обединени със забележителностите регистрирани в „Google Maps”, което дава изключително добра основа за намиране на интересни отбивки. Така всеки потребител ще получи най-доброто за него предложение за туризъм и би бил удовлетворен от спестеното време за изпълнение на всяка задача по отделно.

Scroll to Top