Sunteți pe pagina 1din 50

F 271.13/Ed.

3 Fișier SMQ/Formulare
2
F 272.13/Ed.2 Fișier SMQ/Formulare
3
F 272.13/Ed.2 Fișier SMQ/Formulare
Cuprins

Introducere .................................................................................................................................. 6

I. Sisteme de rezervare ale companiilor aeriene ..................................................................... 7

I. 1. Definiții și noțiuni-cheie ................................................................................................ 7

I. 2. Istoric și evoluție ........................................................................................................... 9

I. 3. Sisteme majore ........................................................................................................... 11

ACCELaero ....................................................................................................................... 11

Radixx International ......................................................................................................... 11

ameliaRES ......................................................................................................................... 12

Crane PAX ........................................................................................................................ 12

Travel Technology Interactive Solutions........................................................................... 12

Navitaire New Skies Integrated Customer Centric Passenger Service System ................. 13

SabreSonic Customer Sales & Service .............................................................................. 13

SITA Horizon Passenger Management & Distribution .................................................... 13

Altea Res ............................................................................................................................ 14

KIU .................................................................................................................................... 14

RESIBER ........................................................................................................................... 15

Videocom VRS ................................................................................................................... 15

I. 4. Avantaje și dezavantaje ale sistemelor ......................................................................... 16

II. Diagrame UML ................................................................................................................. 17

II. 1. Diagrama cazurilor de utilizare ................................................................................. 18

II. 2. Diagrama de activități .............................................................................................. 19

II. 3. Diagrama de stări ...................................................................................................... 20

II. 4. Diagrama de clase ..................................................................................................... 21

II. 5. Diagrama de secvențe................................................................................................... 22

III. Studiu de caz.................................................................................................................. 23


4
III. 1. Visual Studio............................................................................................................. 23

III. 2. Baze de date SQL ..................................................................................................... 23

III. 3. Aplicația ..................................................................................................................... 24

III. 3. 1. Baza informațională ........................................................................................... 24

III. 3. 2. Aplicația Web ...................................................................................................... 31

Concluzii................................................................................................................................... 48

Bibliografie ............................................................................................................................... 49

5
Introducere
Sistemele de rezervare online sunt actualmente văzute ca furnizori de servicii într-un
mod lejer, comod, la îndemăna oricui. Facilitățile pe care le aduc persoanelor care nu vor să
stea la coadă sau să alerge de la agenție la agenție pentru a se informa de prețurile cele mai
convenabile sau amploarea pachetului de servicii oferite de către o companie anume.

În societea în care trăim o altfel de situație ar fi absurdă. De aceea, subiectul lucrării este
realizarea unui sistem de rezervare a biletelor de avion online. Desigur că amploarea acestui
sistem nu va fi acoperită pe deplin în cadrul lucrării de față, dar aceasta va urma să fie extinsă
pentru rezultate cât mai bune.

Un prim capitol desigur că va descrie acest sistem de la baza lui și până la cele mai
importante componente și servicii de care dispune. De asemenea, va cuprinde atât aspecte
majore din istoria apariției acestora, cât și sistemele de succes cotidiene.

Cel de-al doilea capitol acoperă partea tehnică a sistemului, și anume, partea de analiză
cu ajutorul diagramelor uml pentru a putea stabili dimensiunile, capacitățile, comportamentul
și activitățile acestuia.

Ultimul capitol cuprinde aplicația propriu-zisă și descrierea etapelor de creare și punere


în funcțiune a acesteia. Funcțiile sistemului și baza informațională sunt elementele
fundamentale și indispensabile.

Cuvinte- cheie: sistem, rezervare, tranzacții, servicii

6
I. Sisteme de rezervare ale companiilor aeriene
Un sistem de rezervare al companiilor aeriene, varianta engleză a acestei noțiuni este
Airline Reservation System (ARS), reprezintă o parte componentă a așa-numitei secțiuni de
sisteme de servicii dedicate pasagerilor, alături de sistemul de inventariere și cel de plecări.
ARS poate fi definit ca un ansamblu de aplicații care susține contactul direct cu pasagerii
(Wikipedia, 2016).

I. 1. Definiții și noțiuni-cheie

Mai întâi de toate, pentru a putea fi înțeleasă pe deplin noțiunea de sistem de rezervare
aerian, trebuie să fie explicate cuvintele-cheie ale acestuia:

- aeronavă – un vehicul capabil de transport aerian, cum ar fi un avion, un elicopter, etc.

Tipurile de aeronave frecvent întâlnite în cadrul companiilor aeriene românești sunt: Airbus,
ATR, Boeing, Bombardier, etc.

- companie aeriană – o întreprindere care furnizează servicii de transport aerian pentru


pasageri sau marfă detinând o licență de la o autoritate publică

a. Low-cost – după cum sugerează și numele, prețul biletelor este unul foarte mic datorită
excluderii din activitatea tradițională unele servicii

b. De linie – care activează după un program stabil, cu aceleași ore în aceleași zile, pe durata
întregului an. Aceste companii au introduse și clase tarifare (prețuri flexibile în comformitate
cu serviciile oferite).

- linie aeriană planificată/programată – o linie care operează conform unui orar fixat,
prestabilit

- cabină – o clasă de servicii de obicei identificată printr-un set unic de servicii oferite
(Economic, Business, Întâi etc.)1.

1. Clasa economic este cea mai convenabilă soluție din punct de vedere al prețului, deținând un
set restrâns de servicii.

2. Clasa business este varianta optimă pentru pasagerii ce călătoresc în scop de serviciu, iar
prețul călătoriilor includ un număr mai mare de servicii și, desigur, un grad mai înalt de comfort.

3. Clasa întâi cuprinde cel mai mare tarife dintre cele trei prezetate, datorită exclusivității
serviciilor și comfortului înalt din timpul zborurilor.

- zbor – călătorie efectuată de către o aeronavă dintre două locații geografice

1
***, 2016, https://www.esky.ro/ghid-de-calatorie/bilete-de-avion/tipuri-de-zboruri/clase-tarifare
[accesat la 1 septembrie 2016]
7
i. directe – călătorie realizată cu aceeași aeronavă, cu opriri pentru alimentare cu combustibil
sau fără opriri

ii. cu escală – călătorie realizate cu aeronave diferite pe segmente diferite, între care se face
una/ mai multe opriri pentru debarcare dintr-un avion și îmbarcarea în altul

- itinerariu – cursă determinată sau propusă de interesele călătorilor

- bilet – act care denotă dreptul deținătorului de a folosi serviciile pentru unul sau mai
multe zboruri

# tradiționale – imprimate pe hârtie, conținân informațiile personale despre pasager și zborul la


care urmează să fie participant

# online (e-ticket) – nu necesită să fie imprimante, pot fi prezentate prin intermediul aplicațiilor
mobile specializate

- agenție turistică – afaceri răspunzătoare de interesele/ necesitățile unui individ sau a


unui grup de indivizi în materie de voiaj

După cele prezentate mai sus, vom trata mai multe definiții ale ARS, conform mai
multor surse pentru a putea fi atinse toate aspectele privitoare la acest sistem.

O rezervare a companiei aeriene este un contract legal prin care o companie aeriană se
angajează, în schimbul unei sume de bani, pentru a oferi un loc unui anumit pasager cu avionul
pe un anumit zbor de la un aeroport la altul. Avionul este programat, dar nu este garantat să
plece într-o anumită perioadă de timp și ajunge, la destinație, la un anumit moment. Rezervarea
companiei aeriene poate fi ulterior modificată, acest lucru variind de la bilet la bilet (de obicei,
un companiile low-cost sunt mai puțin flexibile în această privință).

Sistemul computerizat de rezervare aeriană (CRS – computer reservation systems) este


o aplicație software destinată pentru a ajuta o companie aeriană cu operațiunile legate de
efectuarea rezervărilor de bilete, care include să blocheze, să rezerve, să anuleze și să modifice
bilete. Acest sistem este succesorul ARS, toată activitatea sa fiind însoțită de computer.

Potrivit Dicționarului Central CRS este un sistem prin care biletele de avio sau camere
de hotel pot fi rezervate de la terminalul din biroul agentului de voiaj sau de la un terminal
direct de la computerul central de rezervare.

O altă definiție – conform condului de conduită privind regulamentul și funcționarea


sistemelor informatizate de rezervare a Organizației Internaționale Civile de Aviație (ICAO –
International Civil Aviation Organization) – acest sistem se identifică prin două elemente
esențiale, și anume, capacitatea de a: în primul rând, de a furniza dispay-uri ale orarelor,
disponibilitatea și tarifele transportatorilor aerieni; și în al doilea rând, să rezerve cu privire la
serviciile de transport aerian.

8
Sistemele moderne oferă o varietate mare de de facilități corelate cu marketingul și
vânzările de transporturi aeriene, cum ar fi accesul la sistemele de transport individuale și
emiterea de bilete.

Altă variantă este propusă de Dicționarul Industriei de Turism, care susține că CRS
poate fi numit oricare dintre sistemele informatice brevetate care permit accesul în timp real la
tarifele de transport ale unei companii aeriene, și orarele și disponibilitatea locurilor și care
oferă capacitatea de rezervare, precum și generarea de bilete. Acum, tot mai des noțiunea este
înlocuită cu cea de sistem global de distribuție (GDS – Global Distribution Systems).

Așadar, GDS nu este altceva decât o rețea mondială de rezervare computerizată folosită
ca un singur punct de acces pentru locuri de avion, camere de hotel, închirieri de mașini, precum
și alte elemente legate de călătorie de către agenții de voiaj, rezervări online, site-uri și corporații
mari.

I. 2. Istoric și evoluție
Sistemele de rezervare ale companiilor aeriene au fost introduse pentru prima dată la
sfârșitul anilor 1950 ca sisteme de sine stătătoare relativ simple pentru a controla inventarul de
zbor, să mențină orarele de zbor, misiuni de încărcare a aeronavelor și de ocupare a scaunelor.
Istoria sistemelor de rezervari al unei companii aeriene a început la sfârșitul anilor 1950,
când American Airlines a avut nevoie un sistem care să permită accesul în timp real la detaliile
de zbor în toate birourile sale, precum și integrarea și automatizarea proceselor sale de rezervare
și de emitere a biletelor.
Ca rezultat a fost dezvoltat un mediu semi-automat de cercetare a business-ului și a fost
lansat în 1964 – Electromechanical Reservisor (Fig. 1) și reala descoperire a fost capacitatea
sa de a păstra inventarul corect în timp real, accesibil agenților din întreaga lume. Înainte de
aceasta, sistemele manuale necesitau centre de rezervare centralizate, grupuri de persoane într-
o cameră cu cardurile fizice care reprezentau inventarul, în acest caz, numărul de locuri din
avioane (Ross, 2013).

Fig. 1. Reserviser introdus în anii ‘50


9
Liberalizarea industriei companiei aeriene, în Airline Deregulation Act (act cu privire
la liberalizarea companiilor aeriene), a însemnat că liniile aeriene, care au operat anterior în
conformitate cu tarifele stabilite guvernamental sunt nevoite de a-și îmbunătăți eficiența pentru
a concura într-o piață liberă. În acest mediu liberalizat sistemul de rezervare aeriană și
descendenții săi au devenit vitale pentru industria de turism.
Sistemul de rezervare al companiilor aeriene moderne reprezintă o suita completă de
produse pentru a oferi un sistem care ajută cu o varietate de sarcini de management a companiei
aeriene și cu nevoile clienților de servicii din momentul rezervării inițiale prin finalizarea
zborului.
Eventual Ars a evoluat, transformându-se în CRS – computer reservation system, adică
varianta computerizată a celei dintâi. Acest sistem este utilizat pentru rezervările unei singure
companii și permite folosirea unor interfețe ale unui sistem distribuit global (GDS – global
distributed system). Cel din urmă susține agențiile turistice și alte canale de distribuție pentru
efectuarea rezervărilor pentru companii majore în cadrul unui singur sistem (Fig.1).

Fig. 1. Sistemul global de distribuție


Companiile aeriene au constatat utilitatea sistemelor de rezervare computerizate,
influențând recomandările agenților de turism. Dezvoltarea și operarea acestor sisteme este
destul de costisitoare, de aceea doar cei mai mari transportatori au fost în măsură să le
achiziționeze.

10
I. 3. Sisteme majore

Cele mai importante și de succes sisteme din domeniu:

ACCELaero2

Este un portfoliu complex de tehnologii de înaltă performanță, puternice și soluții


integrate. Conține 3 subdiviziuni:

1. aeroMART – sistem de servicii de bază pentru pasageri și comerț online care susține
vânzările cu amănuntul și retenția consumatorilor;

2. aeroPORT(Fig. 1) – asigură controlul plecărilor, managementul clienților, al greutății și


al echilibrului;

3. aeroLINE – suită care conduce spre productivitate înaltă gestionând optim business-ul.

Fig. 1. Sistemul aeroPORT FLY

Radixx International 3

Este un sistem de servicii destinate pasagerilor, cu sistem integrat de vânzări – online,


call center, în aeroport; și care suportă toate nivele de distribuție globală. Produsul actual oferit
este Radixx Galaxy(Fig. 2).

2
Site-ul oficial - http://accelaero.com, [accesat la 1 septembrie 2016]
3
Site-ul oficial - https://www.radixx.com , [accesat la 1 septembrie 2016]
11
Fig. 2. Sistemul Radixx Galaxy

ameliaRES4

Este un sistem robust de servicii pentru pasageri complet: rezervare, bilete de avion,
tarif, gestionarea inventarului; precum și agent de turism, rezervări publice și check-in online,
și portaluri call center de rezervare cu un sistem complet de control al plecărilor pentru aeroport.
Acest produs este utilizat în prezent de către companiile aeriene low-cost, regionale și ale
corporațiilor din întreaga lume.

Crane PAX 5

Este un sistem bazat pe web de rezervări de avion și sistem de ticketing. Se ocupă de


controlul inventarului, tarifele de stabilire a prețurilor și de emitere a biletelor, rezervare în
avans, motor de rezervare în internet, selectarea scaunului și funcțiile de distribuție ale
vânzărilor, gestionează întregul ciclu de operațiuni aeriene până la punctul de plecare.

Travel Technology Interactive Solutions6

Oferă o tehnologie de călătorie eficientă din punct de vedere a costurilor și soluții ale
companiilor de maximizare a profitabilității și a satisfacției clienților.

TTS este o divizie a Travel Incorporated, înființată în anul 1979; cea mai mare firmă din
Atlanta de management de turism cu capital independent și printre cele mai mari la nivel
național. TTS este specializată în furnizarea de tehnologie de gestiune a serviciilor care oferă
flexibilitate și scalabilitate la nevoile dinamice ale întreprinderilor, inclusiv executare, venituri

4
Site-ul oficial - http://www.intelisysaviation.com/index.php/products, [accesat la 1 septembrie 2016]
5
Site-ul oficial - http://www.hititcs.com, [accesat la 1 septembrie 2016]
6
Site-ul oficial - http://www.traveltechsolutions.com, [accesat la 1 septembrie 2016]
12
din contabilitate și depozitarea datelor globale cu servicii analitice și de raportare folosind
propriile platforme proprietare.

Navitaire New Skies Integrated Customer Centric Passenger Service System7

Este numită noua lume a comenzilor pentru companiile aeriene. Formula de succes e
asigurată de eficientizarea operațiunilor, creșterea rezultatelor, selectarea unor noi surse de
venituri și posibilitatea de concurare contra companiilor low-cost.

New Skies este următoarea generație de sisteme centrate pe client, care integrează
rezervarea online, rezervări call center, conectivitate GDS între companii și alianțe dintre
itinerarii, raportare în timp real, generarea de venituri auxiliare și capacități de control al
plecărilor.

SabreSonic Customer Sales & Service8

Este o soluție fără sudură din industrie care stabilește puncte puternice de servicii și
vânzări – la nivel de web, de mobil, de chioșc și de agent. Vânzările și serviciile flexibile
îndreptate către client sunt unice, generatoare de venituri și capacități centrate pe client la
costuri mici.

În centrul său se regăsesc rezervările, cel mai popular sistem de control al plecărilor și
principalul motor de rezervare pe internet, susținute de stabilirea prețurilor, shopping, inventar,
bilete, cazare.

SabreSonic CSS permite:

 Generarea veniturilor la un cost mai mic

 Creșterea loialității clienților

 Controlul canalului de distribuție directă

 Utilizarea unui model de livrare verificat și a unei expertize de nivel

 Operarea în toate regiunile, alianțele și între modele de afaceri

SITA Horizon Passenger Management & Distribution9

Acesta oferă cea mai cuprinzătoare gamă de servicii de administrare disponibile pentru
pasageri. Infrastructura sa este construită pe o platformă flexibilă a sistemelor de bază cerute

7
Site-ul oficial - http://www.navitaire.com/p_new_skies.aspx, [accesat la 1 septembrie 2016]
8
Site-ul oficial - http://www.sabreairlinesolutions.com/home/software_solutions/customer_sales_service/,
[accesat la 1 septembrie 2016]
9
Site-ul oficial - http://www.sita.aero/solutions-and-services/solutions/horizon-passenger-management-and-
distribution, [accesat la 1 septembrie 2016]
13
de fiecare companie aeriană, inclusiv rezervări, bilete, inventar, check-in, un control de plecare
și de greutate și echilibru.

Acest sistem presupune: companie aeriană controlată, vânzare flexibilă, serviciu


receptiv și design agil. Această combinație unică de calități permite companiilor aeriene să fie
mai creative, mai precise, în modul în care acestea personalizează pachetul, ținta și livra ofertele
lor - prin canale multiple, chiar la bord.

Soluția dată este cu funcții bogate este scalabilă, rentabilă și suficient de adaptabilă
pentru a furniza blocuri de construcție pentru creștere transportatorilor, precum și lărgirea pieței
pentru cele ajunge scopurile bine stabilite.

Altea Res10

Este un sistem complet de servicii pentru pasageri, care oferă rezervare completă,
capacități de control al plecărilor și al inventarului, oferind o soluție unică, integrată. Sistemele
de servicii ale companiei aeriene pentru pasageri (SSP) sunt critice pentru misiune și reprezintă
niște platforme extrem de complexe. Pentru a migra în mod eficient și a opera astfel de sisteme
necesită un nivel deosebit de ridicat de expertiză tehnică.

KIU11

Acesta oferă fiecărei companii aeriene o suită de soluții integrate care contribuie la
optimizarea marketingului și a strategiei de management, garantând succesul funcționării,
adaptării cu flexibilitate la nevoile diferitor profiluri ale companiei.

KIU este cea mai bună valoare pentru bani, deoarece:

- acesta este aliniat la toate criteriile de standardele industriale ale companiei aeriene care
garanteaza dinamica de execuție,

- rezistență, viteză, securitate;

- dezvoltate și certificate în conformitate cu standardele IATA care garantează clienților noștri


o pătrundere rapidă și simplă de piață prin intermediul sistemelor noastre de stocuri
multihosting, rezervarea și 100% aspectele legate de e-bilet de avion,

- distribuție la nivel mondial la agențiile de turism și corporații, motor de rezervare (B2C –


business-to-customer) pentru pasageri, vânzările finale prin intermediul paginii web al
companiei aeriene, contabilitatea veniturilor.

10
Site-ul oficial - http://www.amadeus.com, [accesat la 1 septembrie 2016]
11
Site-ul oficial - http://www.kiusys.com, [accesat la 1 septembrie 2016]
14
RESIBER12

Este un sistem de servicii dedicate pasagerilor (Fig. 3.)

Fig. 3. Sistemul RESIBER

Videocom VRS13

Furnizează ca sistem integrat un control al plecărilor cu interfață ușor de utilizat pentru


pasageri pentru check-in rapid și acces în timp real la rezervări (Fig. 4).

Fig. 4. Sistemul Videocom

12
Site-ul oficial - https://sistemas.iberia.es/portal/site/WebSistemas/, [accesat la 1 septembrie 2016]
13
Site-ul oficial - [accesat la 1 septembrie 2016]
15
I. 4. Avantaje și dezavantaje ale sistemelor

Sistemele de rezervare online aduc turismul și activitatea proprietarilor în secolul 21.


Iar atunci când tehnologia este asociată clienților de modă veche, afacerea obține un avantaj
interesant pentru vânzarea serviciilor și pentru activități de completare. Dar, înainte de a alege
un furnizor, este o idee bună să se ia în considerare avantajele și dezavantajele utilizării unui
sistem de rezervare online pentru a determina software-ul potrivit.

Avantaje:

 Disponibilitatea continuă – rezervările pot fi efectuate 24/24 ore, 7 zile pe săptămână

 Maximizarea rezervărilor – în cazul în care cineva vrea să renunțe la bilet, acest lucru
se realizează simplu online, oferindu-i posibilitatea altui client sa-l rezerveze

 Lipsa necesității telefonului – nu este nevoie ca personalul să fie prezent lângă telefon
în permanență pentru realizarea rezervărilor

 Managementul simplu – poate fi verificată în orice moment situația rezervărilor și


disponibilitatea biletelor cu ajutorul oricărei aplicații mobile

Dezavantaje:

 Indispensabilitatea accesului la internet – rezervările se efectuează online, de aici și


succede necesitatea conexiunii la internet maxim posibil

 Prețul biletelor – majoritatea sistemelor fac publicitate biletelor ieftine, însă acestea vor
fi acoperite de taxe care le vor face să devină scumpe

 Lipsa consilierii online – în situația în care utilizatorii au îngrijorări sau întrebări


referitoare la rezervări sau alte zone de interes, aceștia nu pot avea parte de consiliere
din partea unui personal specializat

 Neîndeplinirea nevoilor speciale – pasagerii cu nevoi speciale (de exemplu un scaun cu


rotile) nu pot avea confirmarea online că aceste necesități pot fi îndeplinite

I. 5. Operațiuni

Arhitectura

Funcții

16
II. Diagrame UML

Limbajul de modelare unificat (UML) reprezintă un limbaj standard de modelare vizuală


care este destinat să fie folosit pentru:

 Modelare a business-ului și a proceselor similare


 Analiză, design și implementarea sistemelor bazate pe software

UML este un limbaj comun pentru analiștii de business, arhitecților și dezvoltatorilor de


software folosit să descrie, să specifice, să proiecteze și să arhiveze procese de business,
structura și comportamentul artefactelor pentru sistemelor software.

UML poate fi folosit în diferite domenii de aplicații: sisteme bancare, de finanțe,


internet, industria aerospațială, asistență medicală, etc. Acesta poate fi folosit cu toate metodele
de de dezvoltare de software și variate platforme de implementare: J2EE, .NET.
Limbajul dat este intenționat procesat independent și poate fi aplicat în contextul unor
procese diferite. Oricum, este cel mai potrivit pentru cazurile de utilizare, dezvoltarea iterativă
și progresivă a proceselor. Un exemplu de astfel de proces este Procesul Unificat Rațional
(RUP).

UML nu este absolut complet și nu este complet vizual. Oferindu-se câteva exemple de
diagrame, nu este suficient pentru a înțelege comportamentul sistemului doar din diagramele
aparte. Unele informații pot fi omise intenționat, altele pot avea sensuri sau interpretări multiple,
unele concepte de UML nu au reprezentare grafică deloc.

Conform Tehnopedia, arhitectura UML este bazată pe facilitatea meta obiectelor, care
definesc fundamnetul creării limbajului de modelare. Acestea sunt suficient de exacte pentru a
genera o întregaă aplicație. Un limbaj complet executabil poate fi lansat pe diferite platforme
utilizând diferite tehnologii și poate fi folosit cu toate procesele pe tot parcursul ciclului de
dezvoltare de software.

UML este proiectat să permită utilizatorilor să dezvolte un limbaj de modelare vizual


expresiv și ușor de vizualizat. În plus, acesta sprijină concepte de dezvoltare de nivel înalt ca
framework, modele (patterns), colaborări. UML include o colecție de elemente cum ar fi:

 Declarații ale limbajului de programare


 Actori: specifică rolul jucat de un utilizator or de un alt sistem în interacțiune cu
subiectul
 Activități: acestea sunt sarcini, care trebuie să aibă loc pentru a se executa un contract
de funcționare
 Procese: includ o colecție de sarcini care produc un serviciu specific pentru clienți și
este vizualizat sub forma une scheme logice ca o succesiune de activități
 Componente software logice și reutilizabile

17
II. 1. Diagrama cazurilor de utilizare

Fig. 5. Diagrama cazurilor de utilizare


În figura de mai sus este prezentată una dintre diagramele de comportament, și anume, diagrama
cazurilor de utilizare. Aceasta conține următoarele componente:

- actor care interacționeză cu sistemul, în cazul de față, utilizatorul și administratorul

- caz de utilizare care definește cerințele sistemului, de exemplu selectarea unui


zbor va conduce către alte cazuri de utilizare – crearea unui bilet de călătorie care poate fi
achiziționat sau refuzat

- definește legătura generală dintre actori și cazurile de utilizare

- un caz de utilizare implică folosirea altui caz de utilizare

- un caz de utilizare este o situație specifică a celui pe care îl extinde

18
II. 2. Diagrama de activități

Fig. 6. Diagrama de activitate

Figura 6 demonstrează următorul tip de diagramă de comportament – diagrama de


activități. Acestea sunt asemănătoare schemelor logice, dar acceptă și situații paralele.
Diagrama conține următoarele elemente:

- punctul de inițiere al activităților din cadrul sistemului

- activitatea se referă la procesele desfășurate (ex: caută zboruri, etc.)

- punct de decizie în care există mai multe opțiuni de activități (ex. logare cu facebook,
cu google sau locală)

- punct de final la care orice activitatea a sistemului a fost încheiată


19
II. 3. Diagrama de stări

Fig. 7. Diagrama de stare

O diagramă de stare este un tip de diagramă utilizate în informatică și domenii conexe


pentru a descrie comportamentul sistemelor. Diagrame de stare impune ca sistemul descris este
compus dintr-un număr finit de stări. Uneori, acest lucru este într-adevăr cazul, în timp ce în
alte momente aceasta este o abstracție rezonabilă. Multe forme de diagrame de stare există, care
diferă ușor și au diferite semantica.

În figura 7 de mai sus este un exemplu de diagramă de stare cu număr finit de stări,
numărul acestora depinzând de alegerile utilizatorului aplicației. Componentele acestei
diagrame sunt:

- punctul de inițiere al sistemului care este urmat de stările caracteristice

- starea care descrie comportamentul sistemului, fiind analizat și reprezentat ca o


serie de evenimente ce pot apărea în una sau mai multe stări:

1. accesare – a paginilor
5. înregistrare – pentru crearea unui cont
2. căutare – a zborurilor
6. rezervare – a biletelor pentru un zbor
3. selectare – a zborurilor
7. plată - a valorii biletului
4. logare – pentru a putea rezerva

- punctul de alegere dintre o stare și alta (de ex. între plată și căutare alt zbor)

- punctul de încheiere al comportamentului sistemului

20
II. 4. Diagrama de clase

Fig. 8. Diagrama de clase

Diagrama de clasă (Fig. 8.) reprezintă o diagramă de structură care descrie componența
sistemului, arătând clasele acestuia, atributele , metodele și relațiile dintre acestea. Legenda
diagramei ar fi următoarea:

- asttfel este prezentată structura unei clase, unde se specifică


atributele și tipurile de date ale acetora, metodele cu lista de
argumente și valoare returnată, numele clasei care urmează să fie
descrisă

- clasele între ele sunt conectate prin linii ce redau tipul de legătura
stabilită: unu la unu, unu la mulți sau mulți la mulți (în figură sunt
doar legături unu la mulți)

Semnul + înseamnă că atributul sau metoda este publică, semnul – presupune că metoda
e privată, semnul # - că este protejată.

Semnul / prevede o clasă derivată, pe când semnul ~ face apel la un întreg pachet.

21
II. 5. Diagrama de secvențe

Fig. 9. Diagrama de secvență


Diagrama de secvență este utilizată pentru a defini secțiuni de evenimente între diferite
obiecte pentru a obțiine un anumit rezultat. De asemenea, mai este numită și diagramă de timp,
diagramă de evenimente sau scenariu de evenimente. Fig. 9 cuprinde următoarele elemente
caracteristice:
- linia de viață a unui obiect se referă la durata de interacțiune dintre aceștia
- activarea reprezintă perceperea prin răspunderea la
acestea cu

22
III. Studiu de caz

În cadrul studiului de caz este prezentată aplicația de vânzare și rezervare a biletelor de


avion online. Această aplicație este realizată cu ajutorul mediului integrat Visual Studio
Community 2015 făcând legătura cu o bază de date SQL.

III. 1. Visual Studio

Visual Studio .NET este un mediu de programare vizuală deținut de Microsoft pentru
crearea serviciilor web bazat pe utilizarea limbajul de marcare extensibil – XML. Suita
produsului furnizează o interfață vizuală pentru identificarea unui program ca serviciu web,
formulare pentru construirea unei interfețe pentru utilizator (inclusiv sprijin pentru interfețele
dispozitivelor mobile), proprietăți pentru integrarea unei aplicații existente și pentru depanare.

Visual Studio .NET vine împreună cu .NET Framework, inclusiv Common Language
Runtime și include câteva limbaje de programare precum Visual Basic, C++ și Visual
C#.Acesta este pentru toate trei nivele de capacitate și preț: Profesional, Enterprise Developer
(care include SQL Server de la Microsoft) și Enterprise Arhitect (care include produse Visio
pentru modelarea programului unei aplicații). Visual Studio .NET este, în general, comparabil
cu J2EE Sun Microsystems.

III. 2. Baze de date SQL

SQL (Structured Query Language) este un limbaj de programare standardizat folosit


pentru gestionarea bazelor de date relaționale și efectuarea diverselor operații asupra datelor
din ele. Inițial creat în anii 1970, SQL este utilizat în mod regulat de către administratorii de
baze de date, precum și de către dezvoltatorii de script-uri de scriere de integrare a datelor și a
analiștilor de date în căutarea de a configura și rula interogări analitice.

Utilizările SQL include modificarea structurilor tabelei bazei de date și a indecșilor;


adăugarea, actualizarea și ștergerea rândurilor de date; regăsirea unor subseturi de informații
din cadrul unei baze de date pentru procesarea tranzacțiilor și analiza aplicațiilor. Interogări și
alte operații ale limbajului SQL iau forma de comenzi scrise ca declarații - instrucțiuni SQL
utilizate în mod obișnuit. Acestea includ selectarea (SELECT), adăugarea (ADD), inserarea
(INSERT), actualizarea (UPDATE), ștergerea (DELETE), crearea (CREATE), modificarea
(ALTER) și trunchierea (TRUNCATE).

SQL a devenit, de facto, limbaj de programare standard pentru bazele de date relaționale,
după ce au apărut la sfârșitul anilor 1970, începutul anilor 1980. De asemenea, cunoscut sub
numele de baze de date SQL, sistemele relaționale cuprind un set de tabele care conțin date în
rânduri și coloane.

Un SQL standard oficial a fost adoptat de către Institutul Național de Standarde ANSI
(American), în 1986 și apoi de către Organizația Internațională de Standardizare, cunoscut sub
numele de ISO, în 1987. Mai mult de o jumătate de duzină de actualizări comune ale
standardului au fost eliberate de către cei doi standarde de organisme de dezvoltare atunci; ca
din acest scris, cea mai recentă versiune este SQL: 2011, aprobat în acel an.
23
III. 3. Aplicația
Studiul de caz reprezintă o aplicație web menită să simuleze procesul de rezervare și
vânzare a biletelor de avion pentru diferite itinerarii. Aceasta este denumită simbolic Plan Your
Trip, făcând referire la faptul că planificarea vacanțelor începe cu achiziționarea biletelor în
direcția în care necesitățile, dar în special dorințele vor fi satisfăcute.

III. 3. 1. Baza informațională


Pentru gestiunea bazei de date în cadrul studiului am utilizat instrumentul de lucru
Microsoft SQL Server Management Studio 2016. Acesta oferă o suită complexă de activități și
operațiuni ce pot efectuate în conformitate cu limbajul SQL.

Primul pas către realizarea bazei de date este stabilirea conexiunii cu serverul, care poate
fi efectuat prin selectarea tabului View ->Registered Servers (Fig. 10)

Fig. 10. Accesul către serverele înregistrate


O altă posibilitate de acces este apăsarea tastelor fierbinți Ctrl+Alt+G care va conduce către
aceeași pagină prezentată în fig. 11.

Fig. 11. Servere înregistrate

24
La desfășurarea Database Engine->Local Server Groups se va afișa numele serverului
necesar pentru acțiunile ulterioare. Apoi pentru a pute începe activitate de creare propriu-zisă
nu rămâne decât conectarea la aceste server, ferestră de dialog afișată în figura 12.

Fig. 12. Conectare la server

Conexiunea la server se stabilește prin specificarea a trei parametri: tipul serverului


(opțiuni fiind – Database Engine, Analysis Services, Reporting Services, Integration Services),
numele serverului – cel specificat în serverele înregistrate, autentificare (alternative fiind –
Windows Authentification, SQL Server Authentification, Active Directory Password
Authentification, Active Directory Integrated Authentification).

După stabilirea conexiunii, în fereastra Object Explorer se poate găsi secțiunea


Databases. Făcând clic dreapta pe aceasta va apărea opțiunea New Database care permite
crearea unei baze de date noi. Selectând aceasta opțiune va apărea o fereastră de dialog conform
Fig. 13.

Fig. 13. Crearea bazei de date


Stabilind numele bazei de date – Plan Your Trip, trebuie stabilit proprietarul bazei de
date, mărimea inițială și celelalte caracteristici care definesc baza de date. Apoi în cadrul
acesteia se pot crea tabelele după același principiu: clic dreapta și New table (Fig. 14).

25
Fig. 14. Crearea unui nou tabel

Aceasta este cea mai simplă metodă de creare a tabelului, fiind necesar să se specifice
numele coloanelor, tipurile de date, dacă acceptă valori nule sau nu, cheile primare, externe,
unice, etc.
Tabelul FLIGHTS

Primul tabel este denumit generic – FLIGHTS – care este destinat să descrie un zbor
standard de avion. Coloanele descriptive sunt:
- flight_id = numarul de identificare a zborului, cheie primară a tabelului, de tip întreg
- from_location = locația de origine a zborului, de tip caracter
- to_location = locația finală a zborului, de tip caracter
- depature_date = data de plecare a avionului, de tip dată
- departure_time = timpul/ora de decolare a avionului, de tip timp
- arrival_time = timpul/ora de aterizare a avionului, de tip timp
- price = prețul unei călătorii într-o direcție, de tip valută
- available_seats = numărul de locuri disponibile pentru un itinerar, de tip întreg

26
Tabelul TICKET_INFO

Al doilea tabel se referă la biletele rezervate/ achiziționare de către utilizatori. Numele


este unul corespunzător – TICKET_INFO – adică informațiile biletului. Coloanele definite
pentru acest tabel sunt:
- ticket_id = numărul de identificare al biletului, cheie primară, de tip întreg
- pass_guid = numărul de identificare al utilizatorului, cheie externă, de tip caracter
- flight_id = numărul de identificare al zborului, cheie externă, de tip întreg
- ticket_date = data de facturare a biletului, de tip dată
- status = statutul biletului – rezervat/ nu, de tip bit

Tabelul PASSENGER_PROFILE

27
Următorul tabel este destinat informațiilor personale despre utilizatori și/sau potențialii
pasageri. Numele tabelului – PASSENGER_INFO – denotă faptul că va conține informații
despre pasageri. Coloanele acestuia sunt:
- profile_id = numărul de identificare al unui pasager, cheie primară, de tip întreg
- first_name = prenumele pasagerului, de tip caracter
- last_name = numele pasagerului, de tip caracter
- address = adresa pasagerului, de tip întreg
- tel_no = numărul de telefon al pasagerului, de tip întreg
- email = adresa electronică, de tip întreg

- guid = numărul de identificare al utilizatoruilui creat automat de către sistemul de lucru,


de tip caracter

Tabelul CREDIT_CARD_DETAILS

Ultimul tabel este – CREDIT_CARD_DETAILS – care descrie detaliile necesare pentru


a putea fi efectuate plăți (ex. plata pentru bilete). Coloanele tabelului sunt:
- card_id = numărul de identificare al cardului, cheie primară, de tip întreg
- card_number = numărul bancar al cardului de credit, de tip întreg lung
- card_type = tipul cardului de cred (ex. VISA), de tip caracter
- expiration_date = data de expirare a cardului, de tip dată
- profile_id = numărul de identificare al pasagerului, cheie externă

28
Pentru stabilirea legăturilor dintre tabele necesită a fi creată o diagramă de relații în
Database Diagrams, făcând clic dreapta și selectând New Database Diagram. Se deschide o
ferestră de dialog care permite alegerea tabelelor ce urmează a fi interconectate (Fig. 15)

Fig. 15. Adăugarea tabelelor pentru crearea diagramei

Apoi între tabelele între care trebuie să fie o legătură se aleg câmpurile corespunzătoare
(de obicei, cu același nume) – Fig. 16

Fig. 16. Stabilirea legăturilor dintre tabele

29
și se definesc criteriile legăturii conform Figurii 17.

Fig. 17. Cheie externă


În ultimă instanță, după ce toate relațiile au fost stabilite și definite, diagrama relațională
este competă și trebuie să fie de forma dată de Fig. 18

Fig. 18. Diagrama relațională


30
III. 3. 2. Aplicația Web
Instrumentul de lucru folosit pentru realizarea aplicației propriu-zise este Visual Studio
Community 2015, în limbajul de programare C#(sharp).
Pentru crearea unei aplicații web primul pas este crearea unui proiect: File -> New
Project -> (Fig. 19)

Fig. 19. Crearea unui nou proiect

După cum se observă din imagine, se selectează Installed -> Templates -> Visual C# -
> Web pentru a crea o aplicație ASP.NET Web Application (.NET Framework).

În acceași fereastră se stabilește și numele aplicației, în cazul dat fiind varianta ințială,
nu un nume specific. După care este necesar de a fi stabilit șablonul aplicației (Fig. 20)

Fig. 20. Stabilirea șablonului aplicației

31
După stabilirea criteriilor descrise anterior aplicația nou creată va avea o forma și o
structura prestabilită, demonstrată în Fig. 21.

Fig. 21. Forma inițială a proiectului

Acesta va fi modificat în conformitate cu necesitățile sistemului de rezervare. O primă


modificare este inserarea unor două posilități rapide de logare în cadrul aplicației. Datorită
faptului că proiectul deja este structurat, acesta permite acest lucru (Fig. 22).

Fig. 22. Alte servicii pentru logare

Acest serviciu poate fi adăugat datorită fișierului Startup.Auth.cs, aflat în mapa


App_Start. Sunt conținute metode de autentificare soficticate, iar spre finalul fișierului sunt
liniile de cod destinate logării printr-un cont extern.
Codul sursă:

32
Primul serviciul care va fi implementat este logarea cu Facebook. Pentru a crea
conexiunea cu aplicația, rândurile de mai sus vor fi decomentate și vor trebuie dobândite appId
și appSecret ale aplicației conectoare cu Facebook. Pentru a obține aceste informații trebuie
creată o aplicație specifică pe portalul de Facebook: developers.facebook.com.

În meniul My Apps este opțiunea Add a New App. În fereastra de dialog deschise se
selectează setări avansate, ajungând la fereastra de dialog prezentată în figura 23.

Fig. 23. Aplicație pentru logare cu facebook

În display name se stabilește numele aplicației – My Name – în cazul de față. Pentru


namespace am lăsat spațiu gol, iar pentru categorie – Education și am selectat create App ID.
În următoarea ferestră de dialog este afișată aplicația cu id-ul și ”cheia” secretă a acesteia, care
trebuie copiate și postate în codul arătat mai sus.

Înainte de rula aplicația mai este nevoie de stabilit url pe care va rula aceasta. Așadar,
se navighează către Properties->Web și se selectează Project URL (Fig. 24).

Fig. 24. URL-ul proiectului


33
După care, înapoi către facebook, în secțiunea de setări, tabul Advanced, pentru Valid
Oauth redirect URIs se introduce adresa proiectului: http://localhost:51635/signin-facebook.

Momentan, aplicația este accesibilă doar pentru dezvoltator, nu și pentru public, adică
aplicația nu este activă. În setările aplicației se introduce o adresă de email pentru contact. Iar
în status & review – make app public (Fig. 25)

Fig. 25. Aplicație publică

Aceleași informații sunt necesare și pentru aplicația de logare cu google. Acestea pot fi
obținute creând o aplicație pe console.developers.google.com. Se creează un nou proiect – My
App. Odată ce proiectul a fost creat, se slectează APIs & auth -> consent screen (Fig. 26).

Fig. 26. Crearea aplicației pentru conectare cu google

Este necesară completarea formularului cu informații de bază: adresă de email, numele


proiectului, etc. Apoi, în tabul APIs trebuie verificat dacă acestea sunt active, în caz contrar ele
trebuie să fie activate manual.

Următorul pas este navigarea către Credentials->Create Client ID, în care opțiunea
selectată este cea de Web Application și URIs: http://localhost:51635/signin-google. ID-ul și
”secretul ” obținut trebuie introduc în codul specificat anterior.

După crearea acestor aplicații utilizatorii sistemului de rezervare vor avea o facilitate în
plus de logare, pentru a îmbunătăți serviciile oferite.
Mai intâi de toate, însă, pentru a putea furniza oricare servicii avem nevoie de stabili
conexiunea cu baza de date creată anterior. Pentru ca acest lucru să fie posibil trebuie instalat
pachetul corespunzător cu ajutorul Manage NutGet packages (Fig. 27)

34
Fig. 27. Gestiunea pachetelor

Se deschide tab-ul Online -> nutget.org, unde trebuie să fie bifat cu verde pachetul
EntityFramework – adică e instalat (în cazul de față e instalată versiunea 6.1.3).

Acum urmează să fie adăugat obiectul propriu-zis de tip Entity Framework. Cu un clic
dreapta pe proiect, se selectează Add->Add New Item->ADO.NET Entity Data Model(Fig. 28)

Fig. 28. ADO.Net Entity Data Model


După care se selectează conținutul modelelor create pe baza de date (Fig. 29)

35
Fig. 29. EF Designer from database

Se stabilește conexiunea cu baza de date cu New Connection, unde se specifică numele


serverului, precum și numele bazei de date (Fig. 30)

Fig. 30. Crearea conexiunii cu baza de date

Apoi din drop down list se alege conexiunea nou creată, generându-se automat o conexiune de
tip string a aplicației cu baza de date(Fig. 31).

Fig. 31. Stabilirea conexiunii cu baza de date

36
Următorul pas presupune alegerea obiectelor și setărilor care vor fi incluse în model,
precum și cheile externe (Fig. 32)

Fig. 32. Obiecte incluse în model

La finisarea procesului vor fi create mai multe clase, corespunzătoare tabelelor din
cadrul bazei de date (Fig. 33)

Fig. 33. Lista claselor create


Codul sursă pentru FLIGHTS.cs
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace WebApplication
{
using System;
37
using System.Collections.Generic;

public partial class FLIGHTS


{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2214:DoNotCallOverridableMethodsInConstructors")]
public FLIGHTS()
{
this.TICKET_INFO = new HashSet<TICKET_INFO>();
}

public int flight_id { get; set; }


public string from_location { get; set; }
public string to_location { get; set; }
public System.DateTime departure_date { get; set; }
public System.TimeSpan departure_time { get; set; }
public System.TimeSpan arrival_time { get; set; }
public decimal price { get; set; }
public int available_seats { get; set; }

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage",
"CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<TICKET_INFO> TICKET_INFO { get; set; }
}
}

Asemenea acestei clase sunt auto-generate și celelalte trei clase. Toate acestea sunt
incluse într-un model, denumit generic model.edmx (Fig. 34)

Fig. 33. Modelul auto-generat

În cadrul acestuia sunt specificate și legăturile specificate între tabele în diagrama


relațională, cu excepția legăturii dintre ticket_info și passenger_profile, care este omisă pentru
că nu este conectată cu o cheie primară, ci doar cu o cheie unică.
Am creat la pasul următor în fișierul Models, modele specifice fiecărei entități:
- FLIGHTSModel – codul sursă
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WebApplication.Models
{

38
public class FLIGHTSModel
{
public String InsertFlight(FLIGHTS flight)
{
try
{
PlanYourTripEntities db = new PlanYourTripEntities();
db.FLIGHTS.Add(flight);
db.SaveChanges();

return "Flight was successfully inserted";


}
catch (Exception e)
{
return "Error:" + e;
}
}
public String UpdateFlight(int id, FLIGHTS flight)
{
try
{
PlanYourTripEntities db = new PlanYourTripEntities();
//fetch object from db
FLIGHTS f = db.FLIGHTS.Find(id);
f.from_location = flight.from_location;
f.to_location = flight.to_location;
f.departure_date = flight.departure_date;
f.departure_time = flight.departure_time;
f.arrival_time = flight.arrival_time;
f.price = flight.price;
f.available_seats = flight.available_seats;

db.SaveChanges();

return "Flight was successfully updated";

}
catch (Exception e)
{
return "Error:" + e;
}
}
public String DeleteFlight(int id)
{
try
{
PlanYourTripEntities db = new PlanYourTripEntities();

FLIGHTS flight = db.FLIGHTS.Find(id);


db.FLIGHTS.Attach(flight);
db.FLIGHTS.Remove(flight);
db.SaveChanges();

return "Flight was successfully deleted";

}
catch (Exception e)
{
return "Error:" + e;
}
}

39
- TICKET_INFOModel – metodele modelului
public String InsertTicketInfo(TICKET_INFO ticket)

public String UpdateTicketInfo(int id, TICKET_INFO ticket)

public String DeleteTicketInfo(int id)

- PASSENGER_PROFILEModel – metodele modelului


public String InsertPassengerProfile(PASSENGER_PROFILE profile)

public String UpdatePassengerProfile(int id, PASSENGER_PROFILE profile)

public String DeletePassengerProfile(int id)

- CREDIT_CARD_DETAILSModel – metodele modelului


public String InsertCreditCardDetails(CREDIT_CARD_DETAILS card)

public String UpdateCreditCardDetails(int id, CREDIT_CARD_DETAILS card)

public String DeleteCreditCardDetails(int id)

Aceste metode permit inserarea, modificarea și ștergerea înregistrărilor din cadrul


tabelelor bazei de date. Ulterior la aceste vor mai fi adăugate și alte metode în conformitate cu
acțiunile necesare.

Următoarea pagină creată este cea de management a zborurilor pentru a putea adăuga
curse în baza de date (Fig. 34)

Fig. 34. Pagina Manage Flights

40
Această pagină are următoarele componente:
 Etichete pentru fiecare text afișat
 TextBox-uri pentru informația ce urmează a fi introdusă
 ImageButton pentr afișarea calendarului
 Calendar pentru alegerea facilă a datei
 Button pentru efectuarea transmiterii datelor
Codul sursă:
using System;
using System.Web.UI;
using WebApplication.Models;

namespace WebApplication.Management
{
public partial class ManageFLIGHTS : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
txtDate.Text = DateTime.Today.ToString("yyyy/MM/dd");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
FLIGHTSModel model = new FLIGHTSModel();
FLIGHTS f = createFlight();
lblResult.Text = model.InsertFlight(f);
txtFrom.Text = "";
txtTo.Text = "";
txtDepTime.Text = "";
txtArrTime.Text = "";
txtPrice.Text = "";
txtSeats.Text = "";
}
private FLIGHTS createFlight()
{
FLIGHTS f = new FLIGHTS();
f.from_location = txtFrom.Text;
f.to_location = txtTo.Text;
f.departure_date = Convert.ToDateTime(txtDate.Text);
f.departure_time = TimeSpan.Parse(txtDepTime.Text);
f.arrival_time = TimeSpan.Parse(txtArrTime.Text);
f.price = Convert.ToDecimal(txtPrice.Text);
f.available_seats = Convert.ToInt32(txtSeats.Text);
return f;
}
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
Calendar1.Visible = true;
}
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
txtDate.Text = Calendar1.SelectedDate.ToShortDateString();
Calendar1.Visible = false;
}
}
41
Acestă pagină populează tabelul FLIGHTS, dapt ce se poate verifica prin următorii
comandă SQL:
/****** Script for SelectTopNRows command from SSMS ******/
SELECT TOP 1000 [flight_id]
,[from_location]
,[to_location]
,[departure_date]
,[departure_time]
,[arrival_time]
,[price]
,[available_seats]
FROM [PlanYourTrip].[dbo].[FLIGHTS]

Rezultatul comenzii este reprezentat de primele 1000 de zboruri înregistrate în tabel,


adică toate înregistrările deținute la moment (Fig. 35)

Fig. 35. Înregistrările tabelului FLIGHTS

Doar introducerea datelor în tabel este insuficient pentru gestionarea facilă a datelor, de
aceea am mai creat o pagină de gestiune numită Manage Destinations.aspx (Fig. 36)

Fig. 36. Pagina Manage Destinations


Această pagină oferă administratorului posibilitatea de a:
1. Adăuga noi zboruri
2. Edita zborurile existente
3. Șterge zboruri care nu sunt actuale

42
Pagina conține un gridview care permite afișarea datelor conținute de baza de date
datorită stabilirii conexiunii. Se selectează sursa de date (Fig. 37)

Fig. 37. Data source configuration wizard

Mai apoi se stabilesc câmpurile care vor fi afișate în grid view prin configurarea selecției
(Fig. 38)

Fig. 38. Selectarea câmpurilor din tabel

Apăsând pentru opțiunile avansate trebuie de bifat varianta de generare a comenzilor


înserării, modificării și ștergerii (Fig. 39)

Fig. 39. Advanced SQL Generation Options

43
Alte specificații pentru grid view ar fi paginarea, sortarea, editarea și ștergerea, toate
fiind incluse direct în tabelul afișat (Fig. 40).

Fig. 40. GridView Tasks


Evident că aceste modificări nu pot fi la îndemâna oricui, de aceea aceste două pagini
sunt securizate, adică accesul este permis unui singur utilizator – și anume, administratorul.
Acest lucru se realizează modificând configurările aplicației în felul următor:
Codul sursă:
<location path="Management">
<system.web>
<authorization>
<allow users="valip1992@gmail.com" />
<deny users="*" />
</authorization>
</system.web>
</location>

Rolul sistemului este abia început în a fi implementat în pagina Book_tickets.aspx(Fig.


41) care permite căutarea zborurilor necesare și rezervarea acestora pentru utilizatorii logați

Fig. 41. Pagina Book Tickets


44
Aceasta conține trei criterii de căutare a zborurilor în baza de date cu ajutorul cărora
filtrează datele care urmează să fie afișate (Fig. 42)

Fig. 42. Filtrarea datelor

Acest lucru a fost obțiunut prin crearea unui filtru pentru datele din baza de date din trei
criterii diferite.
Codul sursă:
protected void btnSearch_Click(object sender, EventArgs e)
{
string Filter = "";

if(txtFrom.Text != "") { Filter = Filter + "from_location like '%" +


txtFrom.Text + "%' and "; }
if(txtTo.Text!= "") { Filter = Filter + "to_location like '%" + txtTo.Text
+ "%' and "; }
if (txtDepDate.Text != "") { Filter = Filter + "departure_date = '" +
txtDepDate.Text + "' and "; }

if (Filter.Length > 0)
{
string FinalFilter = Filter.Remove(Filter.Length - 4, 3);
SqlDataSource1.FilterExpression = FinalFilter;
}
else
{
GridView1.DataBind();
}
}

După vizualizarea posibilităților de zbor, utilizatorul poate rezerva un zbor numai dacă
acesta este logat, fapt impus prin următoarele linii de cod.
Codul sursă:
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
//if (!string.IsNullOrWhiteSpace(Request.QueryString["id"]))
//{

45
string profileId = Context.User.Identity.GetUserId();
int id = 0;
Int32.TryParse(GridView1.SelectedRow.Cells[0].Text, out id);

if (profileId != null)
{
TICKET_INFO ticket = new TICKET_INFO
{
pass_guid = profileId,
flight_id = id,
ticket_date = DateTime.Now,
status = true
};

TICKETINFOModel model = new TICKETINFOModel();


lblResult.Text = model.InsertTicketInfo(ticket);
//}
}
else
{
lblResult.Text = "Please log in to book flights";
}

Dacă utilizatorul deja are cont pentru a rezerva un zbor, datele acestuia se vor trimite
catre baza de date, iar pe următoarea pagină (Fig. 43) vor fi afișate costul acestuia, tva și costul
final, precum și posibilitatea de a renunța la bilet sau totți de a-l achiziționa.

Fig. 43. Pagina Tickets


La alegerea opțiunii de a plăti biletele rezervate, utilizatorii vor fi redirecționați către
pagina de plată (Fig. 44)

Fig. 44. Pagina Payment


46
Odată cu achitarea prețului pentru bilete acestea vor fi șterse din lista de bilete rezervate
cu ajutorul metodei MarkFlightsAsPaid.
Codul sursă:
public void MarkFlightsAsPaid(List<TICKET_INFO> tickets)
{
PlanYourTripEntities db = new PlanYourTripEntities();

if(tickets != null)
{
foreach(TICKET_INFO ticket in tickets)
{
TICKET_INFO oldticket = db.TICKET_INFO.Find(ticket.ticket_id);
oldticket.ticket_date = DateTime.Now;
oldticket.status = false;
}
db.SaveChanges();
}
}

Stilizarea paginilor și a tuturor componentelor se realizează desigur cu Cascade Style


Sheet. Spre exemplu: butoanele
Codul sursă:
.button {
padding: 10px;
margin: 10px;
color: #ffffff;
border: 0;
border-radius:4px;
-moz-border-radius:4px;
-webkit-border-radius:4px;
clear: both;
background:linear-gradient(to bottom, darkred, red);
}

47
Concluzii
În ritmul alert al societății în care trăim, multe servicii sunt furnizate online sau sunt cu
livrare la domiciliu. Nimeni nu mai știe să aștepte și să aibă răbdare pentru că nimeni nu are
timp. De aceea, sistemele online care pot fi accesate oricând și de oriunde sunt la îndemâna
oricui pentru a satisface necesități și nevoi.
Un astfel de exemplu sunt și sistemele de rezervare online care facilitatea procedura,
astfel încât toate aspectele să poate fi prevăzute din timp și rezolvate în timp real. Apariția unor
astfel de sisteme a condus la prosperitatea companiilor aeriene, datorită avalanșei de noi
pasageri.
Dezavantajele acestor sisteme sunt adesea insesizabile, de aceea populația preferă
această posibilitatea în defavoarea celei tradiționale, într-o agenție stând de vorbă cu un agent.
De partea cealaltă a baricadei, ca muncitor în domeniul turistic, aceste entități oferă
posibilități și variante infinite de combinații pentru a putea gestiona în modul cel mai potrivit
acest business.
Sistemele de rezervare online sunt complexe și complete pentru a putea, pe de o parte,
furniza suficiente informații pentru planificarea și alegerea unei călătorii, iar, pe de altă parte,
de a stabili tendințe, necesități, etc. care prevalează pentru a ajuta afacerea să se dezvolte și să
prospere.

48
Bibliografie
 Barlow, J. F., Valdivieso, T. A. M., Risal, A. G., Shah, V. R., Parmekar, S. G., Perumal,
R. V., ... & Peterson, J. A. (1997). U.S. Patent No. 5,652,867. Washington, DC: U.S.
Patent and Trademark Office.

 Berardi, D., Calvanese, D., & De Giacomo, G. (2005). Reasoning on UML class
diagrams. Artificial Intelligence, 168(1), 70-118.

 Blair, P., Hansen, K. L., & Seifert, D. (2006). U.S. Patent No. 7,117,183. Washington,
DC: U.S. Patent and Trademark Office.

 Boies, S., Dinkin, S., Moskowitz, P., & Yu, P. (2000). U.S. Patent Application No.
09/747,815.

 Cochrane, R., Pirahesh, H., & Mattos, N. (1996, September). Integrating triggers and
declarative constraints in SQL database systems. In VLDB (Vol. 96, pp. 3-6).

 Dobing, B., & Parsons, J. (2006). How UML is used. Communications of the
ACM, 49(5), 109-113.

 Eklund, J. (1994). The Reservisor automated airline reservation system: Combining


communications and computing. IEEE Annals of the History of Computing, 16(1), 62-
69.

 Evans, A., France, R., Lano, K., & Rumpe, B. (1998, June). The UML as a formal
modeling notation. In International Conference on the Unified Modeling Language (pp.
336-348). Springer Berlin Heidelberg.

 Gogolla, M., & Presicce, F. P. (1998). State diagrams in uml: A formal semantics using
graph transformations-or diagrams are nice, but graphs are worth their price.
In University of Munich.

 Goheen, J. R. (2000). U.S. Patent No. 6,094,640. Washington, DC: U.S. Patent and
Trademark Office.

 Greg Ross, (2013), Airline Reservation System History.

 Grimes, R. (2002). Developing applications with Visual studio. NET. Addison-Wesley


Longman Publishing Co., Inc..

 Guckenheimer, S., & Perez, J. J. (2006). Software Engineering with Microsoft Visual
Studio Team System (Microsoft. NET Development Series). Addison-Wesley
Professional.

 http://www.uml-diagrams.org

 https://creately.com/app/?tempID=h165rwt81&login_type=demo#
49
 https://en.wikipedia.org/wiki/Airline_reservations_system

 Johnson, B., Skibo, C., & Young, M. (2003). Inside Visual Studio. NET. Microsoft
Press.

 Keller, B., Melland, S., Isaac, M., LaRoy, G., & Krueger, M. (2001). U.S. Patent No.
6,304,850. Washington, DC: U.S. Patent and Trademark Office.

 Kießling, W., & Köstler, G. (2002, August). Preference sql: design, implementation,
experiences. In Proceedings of the 28th international conference on Very Large Data
Bases (pp. 990-1001). VLDB Endowment.

 KUPPA, K. (2008). AIRLINE RESERVATION SYSTEM (Doctoral dissertation,


KANSAS STATE UNIVERSITY).

 Mehovic, F. (2000). U.S. Patent No. 6,122,642. Washington, DC: U.S. Patent and
Trademark Office.

 Ohst, D., Welle, M., & Kelter, U. (2003, September). Differences between versions of
UML diagrams. In ACM SIGSOFT Software Engineering Notes(Vol. 28, No. 5, pp. 227-
236). ACM.

 Richter, J. (2002). Applied Microsoft. NET framework programming (Vol. 1).


Redmond: Microsoft Press.

 Rumbaugh, J., Jacobson, I., & Booch, G. (2004). Unified Modeling Language Reference
Manual, The. Pearson Higher Education.

 Tuttle, J. R. (1999). U.S. Patent No. 5,914,671. Washington, DC: U.S. Patent and
Trademark Office.

50

S-ar putea să vă placă și