Imbunătătirea Activitătii Parcului de Vehicule Si Utilaje, Prin Realizarea Unei Aplicatii Software

INTRODUCERE

Am ales această temă de licență deoarece activitatea de transport joacă un rol esențial în dezvoltarea economică și socială a unei societăți.

Problema propusă spre rezolvare se încadrează în domeniul de transport și are ca scop îmbunătățirea activității Parcului de Vehicule și Utilaje, prin realizarea unei aplicații software.

În cadrul Parcului de Vehicule și Utilaje există ateliere mecanice care oferă reparații vehiculelor și utilajelor. Prin realizarea aplicației informatice se urmărește eficientizarea procedurilor de cost, dar și a modului de informare a utilizatorului. Va fi astfel necesar să se poată oferi în orice moment rapoarte după diferite criterii.

Implementarea aplicației software va permite obținerea de răspunsuri rapide și relevante la chestiunile esențiale ce derivă din activitatea curentă, de exemplu: controlul intern al resurselor, controlul cheltuielilor, rapoarte de activitate pe autovehicul și pe șofer, etc.

Prin conținutul său și prin ceea ce oferă, aplicația se dorește a fi un real ajutor pentru administratorul societății, conștienți fiind că trebuie să ia cele mai bune decizii în actul de administrare.

Aplicația a fost dezvoltată utilizând tehnologia Java, MySQL.

Lucrarea este structurata pe trei capitole. Primul capitol contine notiuni teoretice despre netbeans, java, xampp si mysql.

Al doilea capitol contine crearea aplicatiei „FleetLogistics”. Sunt prezentate: realizarea aplicatiei din partea vizuala cat si din partea de cod.

Al treilea capitol prezinta etapele instalarii si ghidul de utilizare a aplicatiei „FleetLogistics”.

CAPITOLUL I: NOTIUNI TEORETICE

NetBeans

NetBeans este un proiect sursa-deschisa, cu o bază de utilizatori imensa, o comunitate în dezvoltare și sute de asociati din intreaga lumea. Sun Microsystems a creat proiectul sursa-deschisa NetBeans în iunie 2000 și continuă să fie principalul sponsor al proiectului.

Astăzi există două produse: NetBeans IDE și platforma NetBeans.

NetBeans IDE este un mediu de dezvoltare, o unealta pentru programatori, pentru scrierea, compilarea, testarea, depanarea, proiectarea și instalarea programelor. Este scris în Java, dar poate accepta orice limbaj de programare. De asemenea, există un număr foarte mare de module pentru extinderea NetBeans IDE.

De asemenea, este disponibilă Platforma NetBeans; o bază modulară și extensibilă, utilizată drept conector software pentru crearea aplicațiilor desktop puternice. Partenerii ISV oferă conectori cu valoare adăugată, care se integrează ușor în platformă și care pot fi utilizate, de asemenea, la dezvoltarea propriilor instrumente și soluții.

Ambele produse sunt sursa-deschisa și gratuite pentru uz comercial și necomercial. Codul sursă este disponibil pentru reutilizare, conform Common Development and Distribution License (CDDL – Licența de distribuție și dezvoltare comună).

Xampp

Este un pachet de programe free software, open source si cross-platform web server, care consta in Apache HTTP Server, MySQL Database si interpretoare pentru scripturile scrise in limbajele de programare PHP si Perl.

Java

Mysql

CAPITOLUL II: REALIZAREA APLICATIEI

Cuvinte cheie

Acestea sunt :

Parc

Vehicule

Utilaje

Organizare

Gestiune

Soluția tehnică

Pentru realizarea unei aplicații care accesează un server de baze de date JDBC definește o serie de clase, cele mai utilizate fiind Connection, Statement, preparedStatement și ResultSet.

Clasa Connection – clasa principală a aplicației care va fi realizată, va conține un obiect din clasa Connection. Crearea sa, va fi sistematic realizată folosind secvența de cod următoare:

try{

Class.forName("com.mysql.jdbc.Driver");

cn=DriverManager.getConnection("jdbc:mysql://localhost:3306/fleetlogistics","admin","a4logitech");

st=cn.createStatement();

JOptionPane.showMessageDialog(null, "Conectat !");

}catch(Exception e) {

JOptionPane.showMessageDialog(null, "Nu este conectat !");

}

Clasa Statement – pentru a trimite comenzi SQL individuale server-ului de baze de date este necesară crearea unui obiect din clasa Statement. Crearea obiectului se realizează prin apelul metodei createStatement() a clasei Connection.

st=cn.createStatement();

După crearea unui obiect din clasa Statement acesta va putea fi folosită pentru a apela metoda executeQuery(); (pentru a trimite server-ului comenzi SELECT) sau metoda executeUpdate(); (pentru a trimite server-ului comenzi CREATE, UPDATE, INSERT sau DELETE). Metoda executeQuery(); returnează o mulțime de selecții în timp ce metoda executeUpdate(); returnează un număr întreg reprezentând numărul înregistrărilor afectate de comanda SQL dată.

După încheierea folosirii sale, obiectul Statement trebuie suprimat prin apelul metodei close(); .

Clasa ResultSet – un obiect din clasa ResultSet conține o mulțime de selecție furnizată de server-ul de date, ca urmare a exercitării unei comenzi de interogare – SELECT.

Pentru parcurgerea liniilor mulțimii de selecție, un ResultSet integrează un cursor care indică linia curentă a mulțimii. Inițial, după executarea interogării, cursorul este poziționat înaintea primei linii. Pentru a avansa pe o linie nouă se folosește metoda next(). Deoarece metoda next() returnează null la terminarea liniilor mulțimii de selecție, aceasta permite scrierea ușoară a unui ciclu de parcurgere a liniilor mulțimii de selecție.

try{

String sql = "select … from … where … ";

st=cn.prepareStatement(sql);

ResultSet rs = st.executeQuery(sql);

while(rs.next()){

}

}

catch(Exception e){

JOptionPane.showMessageDialog(null, e);

}

Diagrame

Diagrama cazurilor de utilizare, este:

-o reprezentare la nivel conceptual a unei interacțiuni dintre un actor și un sistem și activităților care se produc și pe care sistemul le face.

-este o secvență a tranzacțiilor realizate de sistem ca răspuns la evenimentele declanșate de un actor al sistemului.

-conține toate evenimentele care pot surveni în cadrul perechii actor-caz de utilizare, nu neapărat unul ce va apărea în orice scenariu particular.

-de asemenea descrie comportamentul unui set de obiecte, ca de exemplu o organizație.

O diagramă de utilizare este folosită în general, pentru a indica sau caracteriza funcționalitățile și comportamentul sistemului ce interacționează cu unul sau mai mulți actori. Un actor poate fi un utilizator sau orice sistem ce poate interacționa cu sistemul modelat.

Atât timp ce actorii reprezintă utilizatorii, ei ajută la construirea unei imagini clare a ceea ce se așteaptă a se întâmplă în sistem. Cazurile de utilizare sunt construite pe bază nevoilor pe care le au actorii (utilizatorii). Aceasta asigură faptul că sistemul va produce ceea ce s-a dorit.

Diagrama cazurilor de utilizare îl are ca actor pe utilizator. Utilizatorul pentru a avea acces la aplicația FleetLogistics, trebuie să se autentifice prin adăugarea unui nume de utilizator și o parolă. După ce s-a autentificat, acesta vizualizează meniul aplicației, unde are posibilitatea de a alege categoria dorită. Categoriile care se află în meniul aplicației, sunt următoarele: Parc Auto, Utilaje, Service, Rapoarte. Cu ajutorul acestor categorii, utilizatorul poate administra cu ușurință parcul auto. La finalul operațiunilor dorite, utilizatorul are opțiunea de delogare.

Diagrama de clasă

Diagramele de clase sunt folosite pentru a specifica structura statică a sistemului, adică ce clase există în sistem și care este legătură dintre ele.

În reprezentarea clasei, atributele și operațiile sunt declarate în compartimente speciale:

– Atributele: numele atributului: tipul atributului = valoare implicită;

– Operațiile: numele operației (parametri): tipul valorii returnate.

Aplicația FleetLogistics este structurată astfel: Autentificare, Mașini, Șoferi, Evenimente, Foaie de parcurs, Mecanici, Verifică reparații, Reparații, Utilaje. Legătura dintre aceste clase este una de dependența.

Crearea aplicatiei

baza de date a fost făcută în programul XAMPP(versiunea 5.6.20 pe 32biti) care constă în MYSQL database, în această bază de date au fost create 10 tabele, pentru a fi posibil gestiunea parcului de vehicule și utiliaje al organizației;

realizarea diagramei cazurilor de utilizare, a fost făcută în programul Visual Paradigm, ca să evidențiem rolul și metodă de folosire a aplicației, pentru a fi cât mai eficientă;

diagrama de clasă, a fost făcută în programul Visual Paradigm pentru a reprezenta atributele și operațiile care sunt declarate în compartimente speciale;

realizarea celor 18 interfețe ale aplicației (Autentificare , Meniu, Șofer, Mașină, Evenimente, Foaie de parcurs, Mecanici, Reparații,Service, Raport Evenimente, Raport Foi de Parcurs, Raport Mașină, Raport Mecanici, Raport Service, Raport Șoferi, Raport Utilaje, Atașare), au fost realizate în NetBeans;

kit-ului de instalare al programului FleetLogistics, a fost făcut cu programul Install Creator

Scurte exemplificări ale interfeței aplicației

Crearea interfețelor aplicației, va începe cu realizarea unei clase principale. În aplicația scrisă, în Java, aceasta poartă numele proiectului și conține metoda statică main().

Crearea interfețelor grafice SWING

JButton

Un buton simplu a cărui apăsare determină arucarea unui eveniment care trebuie tratat de programator. Prin apăsare, butonul își schimbă și vizualizarea, iar după eliberarea butonului mouse-ului se va reveni la formă inițială. Un buton poate reprezenta atât text, cât și imagini.

JComboBox

Componenta JComboBox combină un buton cu o listă expandabilă la cere din care utilizatorul poate să selecteze o singură opțiune la un moment dat.

JMenuBar

Reprezintă modalitatea standard folosită în interfețele grafice pentru a permite utilizatorului aplicației alegerea unei opțiuni care generează o acțiune, din mai multe posibile. Într-o aplicație, meniurile apar fie grupate într-o bară de meniu, fie ca meniuri pop-up, care se vizualizează doar în momentul apăsării unui buton al mouse-ului.

JTextComponent

Stă la baza tuturor componentelor text din Swing și este localizată în pachetul javax.swing.text și sunt enumerate în continuare: JTextField, JPasswordField, JTextArea, JEditorPane, JTextPane.JTextComponent – moștenește direct clasa JComponent.

JTable

JTable este componenta grafică care permite operarea cu tabelele. Clasa JTable din pachetul javax.swing extinde direct clasa JComponent, implementând interfețele TableModelListener, TableColumnModelListener, ListSelectonListener, CEllEditorListener și Scrollabe.

Etapele implementării, metodologii utilizate

Am creat baza de date în XAMPP, după care am realizat legătura între baza de date și programul NetBeans, program în care va fi realizată aplicația “FleetLogistics”.

Programul este alcătuit din 18 interfețe, și anume : Autentificare , Meniu, Șofer, Mașină, Evenimente, Foaie de parcurs, Mecanici, Reparații,Service, Utilaje, Raport Evenimente, Raport Foi de Parcurs, Raport Mașină, Raport Mecanici, Raport Service, Raport Șoferi, Raport Utilaje, Atașare. Pentru realizarea acestor interfețe am folosit:

containere de baza, de exemplu : JFrame;

containere intermediare, de exemplu: JPanel, JScrollPane;

componente atomice simple, de exemplu: JButton, JComboBox;

componente atomice complexe, de exemplu: JTable;

meniuri și bare bare de unelte, de exemplu JToolBar; dialoguri, de exemplu JOptionPane, JFileChooser;

Procesul obținerii de informații dintr-o bază de date JDBC implică în principiu cinci pași: Inregistrarea driverului JDBC, folosind gestionarul de drivere DriverManager;

Class.forName(“com.mysql.jdbc.Driver”);

Stabilirea unei conexiuni cu baza de date

Connection con = DriverManager.getConnection(“jdbc:mysql://localhost:3306/fleetlogistics”,"admin",”a4logitech”);

Execuția unei instrucțiuni SQL;

API-ul JDBC specifică trei interfețe pentru trimiterea de interogări către baza de date

Clasa Statement a fost creată prin metoda: Connection.createStatement() .

Clasa PreparedStatement a fost creată prin metoda : Connection.preparedStatement() .

Clasa CallableStattement a fost creată prin metoda : Connection.prepareCall() .

Putem aplica apoi una dintre metodele executeQuery() , executeUpdate().

Metoda executeQuery() este folosită în cazul interogărilor care returnează mulțimi-rezultat (instanțe ale clasei ResultSet), așa cum este cazul instrucțiunilor SELECT. Pentru operațiile de actualizare și ștergere, cum ar fi INSERT, UPDATE au DELTE, se folosește metoda executeUpdate() aplicată obiectului de tip Statement

Procesarea rezultatelor;

Pentru parcurgerea simplă a înregistrărilor unui obiect din clasa ResultSet folosind JDBC. Putem folosi metoda next().

Închiderea conexiunii cu baza de date.

Pentru aceasta se folosește medota close(), aplicată obiectului Connection.

Pe parcursul realizării aplicației, am folosit diverse drivere necesare.

Impactul estimat

Impactul estimat asupra parcului auto rezultă din beneficiile aduse de această aplicație, acestea fiind eficiența, creșterea profitului, o relație mai apropiată cu clienții și îmbunătățirea managementului.

Procesul de dezvoltare

Constă în parcurgerea următoarelor etape:

Colectarea de informații despre mașini și utilaje

Pentru a scădea costurile parcului auto și a crește volumul de vânzări.

CAPITOLUL III: INSTALAREA SI UTILIZAREA APLICATIEI

Etapele instalarii aplicatiei FleetLogistics

Instalarea sistemului de gestiune a bazelor de date și configurarea acestuia

Pentru aplicația FleetLogistics, SGBD-ul utilizat este MySQL. În particular, în timpul implementării, membrii echipei au utilizat versiunea de MySQL încorporată în stiva XAMPP. Poate fi utilizată o altă stivă AMP în locul acesteia sau chiar versiunea standalone a serverului MySQL, cu condiția executării operațiilor corespunzătoare de configurare.

Pentru instalarea și configurarea acesteia trebuie executate următoarele operații:

Se instalează stiva XAMPP (kitul de instalare poate fi obținut de pe pagina web https://www.apachefriends.org/ro/index.html)

Se inițializează aplicația XAMPP. Se verifică vizual faptul că serverul MySQL a pornit (culoarea verde de fundal a textului MySQL indică acest lucru

Pentru a importa baza de date in server se vor executa următoarele operații:

Clic pe “Admin”

Clic pe New

Create database – database name : “fleetlogistics” – Creează

Clic pe baza de date “fleetlogistics”

Clic pe opțiunea Import

Se caută și se selectează fișierul “fleetlogistics.sql” care conține baza de date exportată:

Se executa importul:

Crearea contului de acces pentru aplicație in phpMyAdmin

Aplicația FleetLogistics utilizează un cont MySQL dedicat pentru accesul la date de așa natură încât accesul să fie securizat. În versiunea curentă a aplicației contul respectiv trebuie creat manual. Urmați pașii următori pentru crearea contului:

Clic pe baza de date fleetlogistics

Clic pe Drepturi de acces

Clic pe “Add new account”

Informatii de autentificare

User name : admin

Host name : localhost

Parola : a4logitech

Re-Type : a4logitech

Database for user account

Grant all privilleges on database „fleetlogistics”. – trebuie sa fie bifat

Dupa toti acesti pasi, se apasa butonul „Executa”

Securizarea suplimentară a accesului la serverului MySQL

Pentru a crește suplimentar nivelul de securitate, se poate securiza suplimentar și interfața de administrare PhpMyAdmin executând următoarele operații:

Se deschide folderul în care a fost instalată stiva XAMPP:

Se deschide subfolderul phpMyAdmin (în acesta este instalată interfața de management):

Se caută în acest subfolder și se editează fișierul config.inc (recomandabil editarea se va face utilizând un editor specializat pentru cod precum Notepad++):

Se caută în fișierul de configurare zona următoare:

$cfg['Servers'][$i]['auth_type'] = 'config';

$cfg['Servers'][$i]['user'] = 'root';

$cfg['Servers'][$i]['password'] = '';

$cfg['Servers'][$i]['extension'] = 'mysqli';

$cfg['Servers'][$i]['AllowNoPassword'] = true;

(așa arată în Notepad++)

Și se înlocuiește cu:

$cfg['Servers'][$i]['auth_type'] = 'cookie';

$cfg['Servers'][$i]['user'] = 'admin';

$cfg['Servers'][$i]['password'] = 'a4logitech';

$cfg['Servers'][$i]['extension'] = 'mysqli';

$cfg['Servers'][$i]['AllowNoPassword'] = false;

(așa arată în Notepad++)

După efectuarea acestor pași, se va salvarea fișierul de configurare. La intrarea în interfața de administrare vor fi solicitate un nume de utilizator (admin) și o parolă (a4logitech). După efectuarea acestor pași, nivelul de securitate al bazei de date a crescut într-o oarecare măsură (a fost îngreunat accesul neautorizat direct la date).

Instalarea aplicației propriu-zise și a bibliotecilor necesare. Alte operații pregătitoare

Aplicația utilizează mediul Java SE Runtime Environment 7u79. Dacă acest mediu nu este instalat pe calculatorul pe care se va executa aplicația, el va trebui instalat. Java RE poate fi obținut de la adresa:

http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html

Se execută chitul de instalare al aplicației FleetLogistics Soft. (fișierul FleetLogistics Soft.exe)

Procesul de instalare creează atât un shortcut pe desktop cât și un grup cu denumire corespunzătoare în submeniul All Programs din meniul de start.

Accesul la aplicație este protejat așa încât la pornire trebuie furnizat un nume de utilizator și o parolă (Username: admin / Password: admin).

Generarea și afișarea rapoartelor incluse în aplicație este condiționată de existența folderelor corespunzătoare. Folderul și subfolderele corespunzătoare se găsesc arhivate în fișierul FleetLogistics RAPOARTE.rar. Acest fișier trebuie dezarhivat în rădăcina partiției D:.

Ghid scurt de utilizare a aplicatiei FleetLogistics

Informații introductive

Aplicația prezentată îndeplinește următoarele funcționalități de bază:

Înregistrarea șoferilor

Înregistrarea mecanicilor

Înregistrarea mașinilor

Înregistrarea utilajelor

Monitorizarea costurilor

Butoanele din aplicație utilizează simboluri grafice (icons) descriptive. Semnificația acestora se regăsește în tabelul următor:

Procedura de autentificare

Accesul la aplicație este protejat așa încât la pornire trebuie furnizat un nume de utilizator și o parolă (Username: admin / Password: admin).

Organizarea interfeței grafice. Lucrul cu date

Meniul principal este grupat în cinci categorii, și anume: Deconectare, Parc Auto, Utilaje, Service și Rapoarte.

Submeniul Parc Auto este format din grupurile ȘOFERI (cu opțiunile ADĂUGARE ȘOFER și EVENIMENTE) și MAȘINI (cu opțiunile ADĂUGARE MAȘINĂ, FOAIE DE PARCURS și REPARAȚII).

Formularul utilizat pentru ADĂUGARE ȘOFER este formată dintr-o bară de meniu și șase butoane. Toate celelalte formulare au același aspect pentru a asigura coerența vizuală a aplicației.

Pentru a adaugă un șofer nou trebuie să completați câmpurile existențe, după care apăsați pe butonul SALVARE.

Dacă ați salvat șoferul în bază de date și ați greșit un câmp sau mai multe, aveți opțiunea de a ACTUALIZA câmpul sau câmpurile respective.

De exemplu, dacă ați completat greșit adresa șoferului cu ID 2, urmați pașii:

– Selectați ID_ȘOFER numărul 2

– Selectați căsuța cu adresa respectivului șofer

– Ștergeți adresa veche și scrieți adresa nouă (de exemplu, BUCUREȘTI)

– Apăsați butonul ACTUALIZARE și o să apăra un mesaj care vă atenționează că adresa a fost actualizată.

– apăsați OK, iar adresa a fost actualizată

Pentru a ȘTERGE un șofer din baza de date, urmăriți pașii enumerați mai jos:

– selectați id-ul șoferului respectiv (de exemplu, șoferul cu id-ul numărul doi)

– apăsați butonul ȘTERGERE

după apăsarea butonului ȘTERGERE, apare un mesaj de dialog care va întreabă dacă doriți sunteți sigur să ștergeți acest fișier; apăsați YES;

După efectuarea aceste operații, apare un mesaj care vă atenționează ca a fost șters.

apăsați OK, după care apăsați pe oricare din șoferii prezenți în tabel pentru a vedea că a fost șters definitiv.

!!! Urmați aceeași pași de salvare, actualizare și ștergere pentru: ADĂUGARE MAȘINĂ, FOAIE DE PARCURS, REPARAȚII, UTILAJE, SERVICE și MECANICI

Pentru a calcula numărul de km parcurși sau prețul combustibilului alimentat, completați câmpurile respective cu valorile pe care le doriți.

Exemplu :

După care apăsați pe butonul CALCULARE:

Lucrul cu rapoarte

De exemplu, pentru a face raportul pentru un anumit șofer, selectați din tabel șoferul dorit, după care apăsați pe butonul RAPORT.

Pentru a ține evidența tuturor rapoartelor, avem opțiunea de ATAȘARE a documentelor.

Pentru a lucra cu raportul în folderul corespunzător (folderul în care acesta a fost generat servește și ca arhivă pentru rapoartele generate de-a lungul timpului), apăsați butonul ATAȘARE și căutați documentul în D:\FleetLogistics RAPOARTE\Rapoarte – Șoferi, După ce l-ați găsit, aveți posibilitatea să-l redenumiți.

Apăsați Open și raportul va fi salvat cu numele ales.

CONCLUZII

Companiile care dețin un parc auto și/sau utilaje sunt din ce în ce mai dependente de astfel de aplicații. Din acest punct de vedere am construit o aplicație, consider utilă și foarte ușor de folosit, care poate fi dezvoltată după cerințele fiecărei companii, indiferent de produsele sau serviciile oferite.

Complexitatea, rapiditatea și siguranță aplicației, elimină riscul de a greși din cauza factorului uman. Este un bun instrument pentru monitorizare și analiză astfel încât administratorul poate lua decizii și poate influența cursul evenimentelor în timp real. Rapoartele generate nu conțin erori si permit utilizatorului să vadă situatiile statistice asupra intregului parc auto.

Am ales să realizez aplicația în mediul de dezvoltare NetBeans pentru că acesta combină toți pașii necesari creării unui program (de exemplu: editarea codului sursă, compilarea, depanarea, testarea, etc.) într-un singur soft, care, oferă o interfață grafică cu utilizatorul, prietenoasă.

În concluzie, aplicația de gestiune FleetLogistics oferă posibilitatea utilizatorului de a avea la îndemână un instrument de gestionare eficient al parcului auto.

BIBLIOGRAFIE

https://netbeans.org/index_ro.html

Similar Posts