Sunteți pe pagina 1din 11

Managementul activitilor

din cadrul unei companii aeriene


1. Obiectiv
Sistemul permite evidena principalelor procese derulate n cadrul companiei aeriene
EasyFlight ce i desfoar activitatea ntr-un aeroport. Sistemul gestioneaz fluxul
informaional dintre principalele divizii existente: dispecerat, pasageri, cargo.

Fig. 1 Diagrama de componente


Aplicaia vizeaz implementarea fluxurilor de date i a proceselor aferente pentru
urmtoarele activiti:
Operaii Dispecerat
o Gestiune flot aeronave
o Management zboruri
o Rapoarte statistice
Operaii Pasageri
o Rezervare zbor
o Check-in zbor
o Anulare rezervare
Operaii Cargo
o ncrcare marf
o Anulare transport
o Modificare detalii cargo

2. Descriere general
Aplicaia ruleaz n mod consol i ateapt introducerea unei comenzi din cele
disponibile cu/fr parametri asociai, conform sintaxei de definire a comenzii prezentat
n subcapitolele urmtoare.
Aplicaia include module de lucru n cadrul crora se execut operaii la nivel de linie de
comand. Modulele aplicaiei sunt:

flota companie, FAV modulul gestioneaz operaiile realizate la nivelul flotei de


aeronave ale companiei EasyFlight permind adugarea, tergerea i modificarea
unor aparate de zbor;
rute zboruri, RUZ modulul permite efectuarea operaiilor de adugare, tergere
i modificare a rutelor de zbor gestionate de companie;
pasageri, REP modulul asigur evidena pasagerilor care cltoresc pe rutele
gestionate de compania aerian, permind adugarea, modificarea sau tergerea
acestora;
cargo, CAR este permis efectuarea de operaii de transport de mrfuri prin
intermediul aeronavelor specializate; modulul permite adugarea, modificarea sau
tergerea acestor operaii.

Fig. 2 Interactiunea dintre module


Aplicaia preia lista de parametri din linia de comand, identific modulul cruia
comanda se adreseaz (FAV, RUZ, REP, CAR) i proceseaz datele aferente comenzii
conform funcionalitii definite n subcapitolele urmtoare.
Modulele aferente flotei de aeronave i rutelor de zbor sunt gestionate n cadrul diviziei
dispecerat conform diagramei din figura 3.

Fig. 3 Diagrama cazurilor de utilizare la nivel de dispecerat


Alturi de introducerea secvenial a comenzilor, sistemul accept i precizarea unui
fiier batch (list de comenzi) ca input pentru realizarea de operaii aferente unuia din
cele patru module.

Parametrii comenzilor introduse n linia de comand a aplicaiei sunt gestionai intern


prin structur de date de tip FIFO, fiind prelucrai secvenial. Comanda este procesata
prin intermediul unei structuri de tip FIFO. Dup parsarea comenzii i stocarea
acesteia n structura FIFO, aceasta se valideaz conform sintaxei de definire. Comanda
validat se execut conform specificaiei de funcionalitate definit n subcapitolele
urmtoare.
De asemenea, aplicaia gestioneaz un fiier de log-uri cu privire la comenzile introduse
n linia de comand sau cele stocate n fiiere batch. Log-urile sunt salvate ntr-un
fiier pe baza de timestamp. Fiecare log are n dreptul lui timestampul aferent
momentului n care comanda a fost executat.

3. Modulele de lucru ale sistemului


3.1 Modulul FAV flota aeronave
Modulul permite gestiunea flotei de aeronave a unei companii aeriene ce opereaz n
cadrul aeroportului. Structura de date intern utilizat n acest sens este una liniar de tip
lista dublu nlnuit circular. Structura se populeaz cu date la momentul lansrii
aplicaiei folosind fiierul flaero.txt ca surs de date. Identificarea unei aeronave se
realizeaz pe baza identificatorului unic idAeronava.
Compania EasyFlight gestioneaz dou tipuri de aeronave, aeronave de pasageri si
aeronave destinate transportului de mrfuri. Funcie de tipul aeronavei se pot realiza
operaii specifice asupra acestora.
La momentul comenzii exit, fiierul se actualizeaz cu coninutul structurii de date
liniare, modificat pe parcursul execuiei.
Un element din cadrul structurii de tip lista dublu nlnuit circular conine urmtoarele
cmpuri:
idAeronava(char*), tipAero(PAS,CAR), nrLocuri(short int), greutateMaxima(double).
Datorit faptului c o aeronav nu poate deservi ambele funcii, cea de transport
persoane i cea de transport mrfuri, se dorete optimizarea acestei structuri din punct
de vedere al memoriei ocupate.
Operaiile de gestiune a flotei de aeronave vizeaz cutarea, adugarea, modificarea i
tergerea acestora n cadrul structurii liniare. De asemenea, structura reprezint surs de
date n implementarea de comenzi de natur statistic, potrivit funcionalitilor
prezentate n subcapitolele urmtoare.

3.2 Modulul RUZ rute de zbor


Modulul RUZ gestioneaz zborurile realizate de compania aeriana EasyFlight. Datele
aferente fiecrui zbor pe care compania l opereaz sunt stocate ntr-un fiier text
(program.txt), fiecare linie coninnd detaliile unui zbor. La pornirea aplicaiei,
programul de zboruri este ncrcat ntr-o structur de date intern de tip tabel de
dispersie, avnd cheia de cutare id-ul alfanumeric al zborului. Fiecare zbor are
asociat o aeronav valid a companiei aeriene identificat dup idAeronava.

Asupra tabelei de dispersie sunt efectuate operaii de cutare, adugare, modificare i


tergere de zboruri, conform funcionalitilor pentru comenzile definite n subcapitolele
urmtoare.
Tabela de dispersie este salvat n fiierul program.txt n momentul finalizrii
execuiei aplicaiei prin introducerea comenzii exit n linia de comand. Fiierul
program.txt conine lista de zboruri din tabela de dispersie la momentul ultimei
comenzi exit.
Not: Dimensiunea tabelei de dispersie se determina pe baza dimensiunii flotei de
aeronave precum si pe baza numarul maxim de zboruri pe care o aeronava le poate
efectua pe parcursul unei saptamani, acesta fiind de 20 zboruri.
Not: Tabela de dispersie are implementat un mecanism de evitare a coliziunilor adecvat.
Fiecare rut conine un cmp denumit costuriTotaleRuta utilizat ulterior n determinarea
profitului sau pierderii pentru acea rut.
Tabela de dispersie reprezint surs de date n implementarea de comenzi de natur
statistic, potrivit funcionalitilor prezentate n subcapitolele urmtoare.

3.3 Modulul REP rezervri pasageri


Modulul permite efectuarea operaiunilor de rezervare loc zbor, anulare bilet, check-in
pasager n cadrul sistemului de gestiune a pasagerilor, figura 4. Structura de date intern
utilizat pentru efectuarea operaiunilor de rezervare/anulare/check-in la nivelul unui
anumit zbor este o list de liste. Datele pentru ncrcarea acestei structuri se preiau din
fiierul pasageri.txt. Fiecare linie din fiier cuprinde o nregistrare aferent unei
rezervri a unui loc pentru o anumit rut de zbor, identificat prin identificatorul unic
idZbor. Lista principal este organizat dup zborurile unice existente n tabela de
dispersie (condiie de validare a rezervrii).

Fig. 4 Diagrama cazurilor de utilizare din modulul REP


Structura se creeaz pentru toate operaiunile efectuate zilnic n aeroport, urmnd ca la
sfritul zilei, dup comanda exit datele s fie actualizate n fiierul pasageri.txt.
Fiecare rezervare conine obligatoriu cmpul denumit costBilet pe baza cruia se va
determina daca acea ruta a ieit pe profit sau n pierdere ca urmare a efecturii zborului.
Structura lista de liste suport operaii de cutare, adugare, modificare i tergere de
operaiuni de tip rezervare, cheia de cutare fiind idRezervare. De asemenea, structura

reprezint surs de date n implementarea de comenzi de natur statistic, potrivit


funcionalitilor prezentate n subcapitolele urmtoare.

3.4 Modulul CAR gestiune cargo


Modulul REP permite gestiunea operaiilor de transport de mrfuri realizate de flota de
aeronave ale companiei EasyFlight. Structura utilizata este un arbore AVL organizat dup
identificatorul unic idRezervare. Structura este ncrcat cu date preluate din fiierul
marfuri.txt.
Modulul ofer posibilitatea de a adaug o ncrctur pentru o anumit rut de zbor dac
i numai dac ruta a fost validat ca fiind o rut destinat transportului de mrfuri.
Modulul calculeaz automat costul total al transportului plecnd de la un tarif unitar, TU
= 7$ / 1KgVol, la care se adaug nivelul de risc. Formula pentru costul total este:
=
Structura unei linii din fiierul de input conine urmtoarele cmpuri:
idRezervare, idZbor, greutateMarfa, nivelRisc.
Operaiile de gestiune a mrfurilor vizeaz cutarea, adugarea, modificarea i tergerea
acestora n cadrul structurii de tip AVL.

Fig. 5 Diagrama cazurilor de utilizare din modulul CAR

4. Funcionalitile sistemului
4.1 Comenzi implementate
4.1.1 Comanda add
Comanda are urmtoare sintax definit:
add <modul> <date>

unde:
modul identificator modul de aplicaie una din valorile: FAV, RUZ, REP,
CAR;
date flux de date aferent comenzii add, avnd structura conform modulului
precizat; datele din flux se identific pe baza separatorilor.
Comanda implementeaz urmtoarele funcionaliti:
Adaug n structura de date intern aferent modulului precizat, un set de date n
concordan cu structura definit;
Afieaz n linia de comand succesul sau eecul efecturii operaiei;
Validarea fluxului de date de intrare:
- Permisiune adugare set de date prin respectarea restriciilor de implementare ale
structurii de date;
- Pentru modulul RUZ se verifica prezena aeronavei n flota companiei si se
valideaz intervalul de minim 2 ore ntre zborurile efectuate de aceeasi aeronava
in scopul pregatirii acesteia;
- Pentru modulul REP se valideaz existenta zborului efectuat de companie si daca
mai sunt locuri libere pentru acel zbor;
- Pentru modulul CAR se valideaz dac nu a fost atins capacitatea maxima de
ncrcare a aeronavei destinat transportului de mrfuri.
4.1.2 Comanda update
Comanda are urmtoare sintax definit:
update <modul> <id> <date>
unde:
modul identificator modul de aplicaie una din valorile: FAV, RUZ, REP,
CAR;
id identificator set de date modificat;
date flux de date aferent comenzii update, avnd structura conform modulului
precizat, mai puin id set de date; datele din flux se identific pe baza separatorilor.
Comanda implementeaz urmtoarele funcionaliti:
Modific in structura de date intern aferent modulului precizat un set de date
identificate pe baza de id, n concordan cu structura definit;
Afieaz n linia de comand succesul sau eecul efecturii operaiei;
Validarea fluxului de date de intrare:
- Permisiune modificare set de date prin respectarea restriciilor de implementare
ale structurii de date;
- Pentru modulul RUZ se verifica prezena aeronavei n flota companiei si se
valideaz intervalul de minim 2 ore ntre zborurile efectuate de aceeasi aeronava
in scopul pregatirii acesteia;
- Pentru modulul REP se valideaz existenta zborului efectuat de companie si daca
mai sunt locuri libere pentru acel zbor;

Pentru modulul CAR se valideaza daca nu a fost atinsa capacitatea maxima de


incarcare a aeronavei destinata transportului de marfuri.

4.1.3 Comanda find


Comanda are urmtoare sintax definit:
find <modul> <id>
unde:
modul identificator modul de aplicaie una din valorile: FAV, RUZ, REP,
CAR;
id identificator set de date cutat;
Comanda implementeaz urmtoarele funcionaliti:
Afieaz n linia de comand setul de date identificat sau eecul efecturii operaiei.
4.1.4 Comanda delete
Comanda are urmtoare sintax definit:
delete <modul> <id>
unde:
modul identificator modul de aplicaie una din valorile: FAV, RUZ, REP,
CAR;
id identificator set de date modificat;
Comanda implementeaz urmtoarele funcionaliti:
terge setul de date identificat pe baza de id din structura de date corespunztoare
aferent modulului precizat;
Afieaz n linia de comand succesul sau eecul efecturii operaiei;
4.1.5 Comanda check
Comanda are urmtoare sintax definit:
check <modul> <id>
unde:
modul identificator modul de aplicaie una din valorile: REP, CAR;
id identificator set de date modificat;
Comanda implementeaz urmtoarele funcionaliti:
Modulul REP: verific numrul de locuri disponibile precum i dac toi pasagerii
care i-au rezervat bilet au realizat sau nu procedura de check-in; verificarea se
realizeaz pentru zborul identificat pe baza de id din structura de date
corespunztoare aferent modulului precizat;
Modulul CAR: verific dac capacitatea maxim admis de aeronava asociat
zborului identificat pe baza de id a fost atins ca urmare a nregistrrii operaiilor de
transport marf;
Afieaz n linia de comand detalii cu privire la verificrile efectuate;
7

4.1.6 Comanda costs


Comanda are urmtoare sintax definit:
costs <modul> <id>
unde:
modul identificator modul de aplicaie una din valorile: REP, CAR;
id identificator set de date modificat;
Comanda implementeaz urmtoarele funcionaliti:
Calculeaz ncasrile realizate pentru un anumit zbor identificat pe baza de id i
determin profitul obinut sau pierderea rezultat n urma efecturii acelui zbor; dac
zborul este de tip pasageri atunci se vor lua n considerare costurile biletelor iar dac
zborul este de tip cargo se vor lua n considerare costurile operaiunilor de transport
marf calculate conform formulei prezentate n modulul CAR;
Afieaz n linia de comand valorile rezultate;
4.1.7 Comanda exit
Comanda are urmtoare sintax definit:
exit
Comanda determin oprirea execuiei aplicaiei.

4.2 Fluxuri si procese


4.2.1 Interpretarea unei comenzi
Comanda este executata de operator la nivel consola fiind apoi procesata de un modul
specializat care permite parsarea comenzii si identificarea fiecarei componente specifice
celor 4 module de lucru. Dupa parsarea comenzii sunt executate operatiile identificate
asupra structurilor de date aferente modulelor specificate.

Fig. 6 Diagrama de secventa a executiei unei comenzi


4.2.2 Activitatea de adaugare a unei rute de zbor
Activitatea de adaugare a unei rute de zbor presupune inserarea unei noi inregistrari in
tabela de dispersie care memoreaza zborurile pe care le gestioneaza compania aeriana
8

EasyFlight. Inserarea unei noi rute este conditionata de existenta si disponibilitatea unei
aeronave conform flotei de aeronave si programului de zbor.

Fig. 7 Diagrama activitatii de adaugare a unei rute de zbor


4.2.2 Activitatea de adaugare a unei rezervari pasageri/cargo

Fig. 8 Diagrama activitatii de adaugare a unei rezervari in modulul REP/CAR

5. Fiiere utilizate la nivel de aplicaie


1. Fisierul care contine datele despre flota de aeronave a companiei EasyFlight;
fiecare linie a fisierului text (flaero.txt) contine atributele specifice unei
aeronave; fisier incarcat intr-o structura de tip lista dublu inlantuita circulara;
2. Fisierul cu rutele de zbor realizate de compania aeriana EasyFlight; datele
aferente fiecarui zbor pe care compania il opereaza sunt stocate ntr-un fiier text
(program.txt); fisier incarcat intr-o structura de tip tabela de dispersie;
3. Fisierul ce contine date aferente tuturor rezervarilor efectuate de clienti pentru o
anumita ruta operata de compania EasyFlight; fiecare linie a fisierului text
(pasageri.txt)contine elementele unei rezervari efectuate pentru o anumita
ruta de zbor; fisier incarcat intr-o structura de tip lista de liste;
4. Fisierul text cu datele despre fiecare operatie de transport de marfuri este
(marfuri.txt); fisier incarcat intr-o structura de tip arbore AVL;
5. Fiierul de log-uri (logs.txt).

6. Fiierul de log-uri
Fiierul de log-uri (logs.txt) este un fiier text care stocheaz pe fiecare linie
urmtoarele date:
Timestamp aferent momentului in care comanda a fost executata ;
Comanda introdus mpreun cu parametrii afereni;
Rezultatul procesului (comentarii returnate de funcii ca urmare a execuiei).
Fiecare comand introdus este salvat la sfritul fiierului de log-uri, astfel nct acesta
s prezinte un istoric al operaiilor efectuate prin prezenta aplicaie.

10

Fig. 9 Diagrama operatiilor la nivelul modulelor


De asemenea, n cazul utilizrii unui fiier batch, lista de comenzi coninut de acesta va
fi salvat n fiierul de log-uri cu datele aferente lansrii fiierului pentru toate comenzile
coninute de acesta.

7. Observaii generale
1. Toate fiierele program furnizate la intrare se presupun a fi corecte;
2. Toate fiierele temporare utilizate de ctre program vor fi create n directorul
curent;
3. Programele vor fi compuse dintr-un singur fiier surs C++. Pentru
implementarea i utilizarea structurilor de date, nu este permis utilizarea altor
biblioteci (ex. STL) n afara celor specificate n standardul ANSI.
4. Funcia HASH folosit pentru implementarea tabelei de dispersie este diferit de
formele prezentate la curs;
5. Formulele funciilor HASH i modalitatea de stocare a datelor din fiier nu se fac
publice ntre echipe;

11

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