Solutie Informatica Utilizand Platforma Java Si O Baza de Date
Soluție informatică utilizând platforma Java și o bază de date
CUPRINS
INTRODUCERE
1. CRM
2. NOTIUNI TEORETICE
2. 1. Programare orientate obiect
2.2. Comparație Java versus C#
2.3. Comparație NetBeans versus Eclipse
2.4. Sisteme de Gestiune a Bazelor de Date
2.5. Comparatie MySql versus Oracle
2.6. Conectarea aplicatiei Java la baza de date MySql
3. ANALIZA ȘI PROIECTAREA APLICAȚIEI
3.1. Analiza aplicației
3.2. Proiectarea aplicației
4. DEZVOLTAREA ȘI IMPLEMENTAREA APLICAȚIEI
4.1. Dezvoltarea Aplicației
4.2. Implementarea Aplicației
5. DESCRIEREA APLICATIEI
CONCLUZII
INTRODUCERE
Scopul acestui proiect de licență este realizarea unei aplicații CRM care presupune gestionarea activitățtilor unei firme ce oferă servicii de internet, televiziune și telefonie fixă atât persoanelor fizice cât și persoanelor juridice. Aplicația presupune: gestionarea datelor, interogarea sistemului, emiterea de rapoarte, generarea de grafice, viualizarea situației plăților abonamentelor în orice moment, vizualizarea clienților fideli, vizualizarea clienților care au venit în ultima perioada sau care au plecat într-un anumit interval de timp, vizualizarea stocurilor de echipamente, adăugarea/modificarea/ștergerea abonamentelor, adăugarea noilor clienți, vânzarea echipamentelor (cablu, telefon fix, antenă, routere, switch, mufe, etc.), incheierea de contracte, prelungirea de contracte, căutarea unui client pentru plata facturii, generarea de oferte personalizate, vizualizarea serviciilor incluse intr-un anumit abonament, trimiterea facturilor clienților prin e-mail.
O firma cu un management performant constientizeaza importanta clientului care asteapta un tratament personalizat ce poate fi usor de realizat cu o strategie CRM.
Obiectivele acestui proiect sunt: realizarea unei solutii CRM; exemplificarea modului de lucru cu soket-uri și thread-uri; folosirea limbajului de programare Java pentru a crea o aplicație stabilă și ușor de folosit; cunoașterea tehnologiilor MySql; aplicarea cunoștințelor despre baze de date și sisteme de gestiune a bazelor de date; crearea conexiunii între NetBeans și MySql.
Structura lucrării:
Capitolul curent prezintă informații despre scopul acestui document, modul în care este realizat, cât și scopul proiectului în sine.
Primul capitol prezinta notiunile teoretice cu privire la solutiile CRM si beneficiile companiilor care utilizeaza acest sistem.
Capitolul al doilea cuprinde noțiunile teoretice aplicate în dezvoltarea soluției informatice, o scurtă prezentare a stadiului actual al cunoașterii prin referire cu precădere la limbajul de programare Java. Voi prezenta informații de bază despre Java, Baze de Date și cum se face legătura între acestea.
Capitolul al treilea prezintă cerințele software necesare sistemului pentru ca aplicația să poată rula, instalarea și rularea programelor ce vor fi folosite: NetBeans și MySql. Explicațiile vor fi însoțite de printscreen-uri. Tot aici, voi face analiza aplicației folosind diagrama cazurilor de utilizare, diagrama de clase și diagrama de stare.
Penultimul capitol conține descrierea soluției informatice, modul de implementare și dezvoltare al acesteia.
În ultima parte sunt descrise toate funcțile programului și modul de utilizare al acestora. Acest ultim capitol constituie un manual de utilizare pentru persoanele care folosesc aplicația.
CRM
"CRM (Managementul relatiei cu clientii) reprezintă un set de strategii, politici și tehnologii destinate atragerii, reținerii și fidelizării clienților. Într-un sens larg, CRM include activitățile aferente departamentelor de marketing, vânzări, financiar și suport tehnic relativ la clienți, potențiali clienți, furnizori și parteneri. Soluțiile de tip Customer Relationship Management (CRM) reduc costurile și cresc profitabilitatea prin organizarea și automatizarea proceselor de business, crescând satisfacția și loialitatea clienților pe parcursul întregului ciclu. Soluțiile CRM oferă o rată crescută de profitabilitate a investițiilor (ROI) prin automatizarea proceselor și echipelor de marketing, relații cu clienții și vânzări. “
Inainte de a avea o aplicatie CRM, o companie trebuie sa-si defineasca o politica de CRM, un mod propriu, daca nu se poate ideal, de a relationa cu clientii si pe care o aplicatie CRM sa-l automatizeze si eficientizeze.
Una dintre cele mai mari probleme ale unei companii este centralizarea întregii informații referitoare la un client, informație care există de obicei răspândită în echipele de marketing, vânzări sau suport tehnic. Dacă o companie are un sistem defectuos de centralizare a informațiilor, nu poate avea o idee despre stadiul în care se află cu execuția planului de afaceri, nu poate avea vizibilitate asupra activității echipei de vânzări sau a eficienței investițiilor echipei de marketing, nu poate cunoaște percepția clienților asupra produselor sau serviciilor oferite și nu va putea fi agilă într-o piață tot mai competitivă.
“Cheia succesului stă în abilitatea unei companii de a folosi “o singură voce” în comunicarea cu clienții. Pentru asta, este nevoie de o asigurare că informațiile despre clienți sunt accesibile tuturor angajaților și că sunt impregnate corect în fiecare angajat care interacționează cu clienții.”
Fiecare om din cadrul firmei trebuie să cunoască rolul și responsabilitatea lui în cadrul firmei, care sunt limitele de autoritate, cum interacționează cu alte echipe, ce procese să utilizeze în situații specifice, cum să acceseze datele despre clienți, cum să recunoască semnalele de alarmă privind un client nesatisfăcut și cum să acționeze proactiv pentru eliminarea insatisfacției unui client. Utilizând o solutie informatica de tip CRM, o companie va putea avea o previziune de vânzări clară, iar echipele și departamentele vor lucra împreună, pe același set de informații referitoare la fiecare client în parte.
In continuare voi prezenta principalele avantaje ale utilizarii unui CRM.
Primul avantaj il reprezinta eficientizarea activitatii de vanzare si distributie intrucat compania va avea o previziune de vânzări clară. Un alt avantaj este automatizarea proceselor inter-departamentale și organizaționale care afectează mai multe echipe, departamente sau divizii. Al treilea avantaj este imbunătătirea relației cu clienții și partenerii firmei prin definirea unei politici proprii de a relationa cu clientii.
Aplicatia CRM ofera o interfața de utilizare unică, familiară, ușor de folosit, instrumente vizuale, grafice, care pot fi ușor utilizate pentru a introduce noi reguli, procese sau practici specifice companiei.
Utilizand o astfel de aplicatie, clienții sunt foarte bine susținuți, au încredere în produsele și serviciile companiei și sunt satisfăcuți de profesionalismul serviciului cu clienții, ca urmare, crește loialitatea clientilor și partenerilor față de produsele și serviciile oferite. Angajații înțeleg așteptările clienților, care pot fi acoperite și anticipate datorită unei baze de date complete și la zi. Angajatii sunt scutiti de toate activitățile de management ineficiente, obositoare sau inutile legate de clienții potențiali și cei existenți, astfel încât ei lucrează eficient și cu plăcere.
Accesul la informații în timp real, ușurința în utilizare, bază de date istorică, ce permite raportări complexe, niveluri multiple de securizare, flexibilitate, posibilitatea de adaptare la cerintele clientului, optimizarea tuturor proceselor legate de relația cu clienții, creșterea vizibilitatii indicatorilor de performanță a echipelor de marketing, vânzări și suport tehnic sunt alte cateva avantaje ale utilizarii unei solutii de tip Customer Relationship Management.
Pentru managementul companiei, utilizarea unei astfel de solutii ofera analize detaliate și suport cheie în dezvoltarea afacerii, rapoarte complexe, structurate, de la nivel general până în cele mai mici detalii, informații de activitate referitoare la toate echipele, tablou de control complet, inclusiv alerte prin email pentru cei care nu accesează sistemul cu regularitate.
Un alt avantaj al folosirii acestui tip de soluție este creșterea profitabilitatii relatiei cu clienții și angajații satisfăcuți ce contribuie la o creștere maximă a companiei și la profit. Forta de vânzări își reduce ciclurile de vânzare și își măreste indicatorii principali de performanță (cifra de afaceri per comercial, mărimea comenzii, cifra de afaceri per client, etc). Cheltuielile de marketing scad, sunt generate oportunități și achiziționarea este îmbunătățită considerabil, răspunsurile la campaniile publicitare sunt multiplicate, ceea ce determină o creștere a întregii cifre de afaceri.
Echipa de suport clienți își îmbunătățește productivitatea și asigură retenția clienților, în același timp contribuind la reducerea costurilor și creșterea promptitudinii în procesul de rezolvare a cerințelor.
In concluzie, adoptarea unui proiect CRM este determinata de recunoasterea faptului ca relatiile personalizate cu clientii reprezinta unele dintre cele mai importante active ale firmelor, iar crearea unui sistem informatic care sa gestioneze aceste relatii individualizate determina un avantaj competitiv materializat în cresterea gradului de fidelizare si retentie a clientilor.
NOTIUNI TEORETICE
2. 1. Programare orientate obiect
Programarea Orientată Obiect (POO) este o metodă de proiectare și implementare în care programele sunt reprezentate sub forma unor colecții de obiecte care interacționează între ele prin intermediul mesajelor.
Un limbaj de programare este un sistem de convenții adoptate pentru realizarea unei comunicări între programator și calculator. Limbajele folosite pentru programarea unui calculator sunt extrem de asemănătoare limbajelor naturale. Ele sunt compuse din: cuvinte rezervate, punctuație, propoziții ,reguli sintactice, etc.
Caracteristicile limbajului de programare orientat pe obiecte: suportă obiecte (instanțe ale unor clase), clasele fiind tipuri definite de utilizator (numite și tipuri abstracte de date); tipurile (clasele) pot moșteni atribute de la alte clase, numite clase de bază. Astfet de limbaje de programare orientate obiect sunt: C++, C#, Java, etc.
Noțiuni generale ale programării orientate pe obiecte
Programul este o colecție de clase care modelează entitățile din problemă precum și relațiile și comportamentul acestora.
Clasele sunt organizate în ierarhii, iar obiectele comunică prin mesaje.
Starea unui obiect este definită de valorile atributelor sale.
Comportamentul unui obiect este reprezentat de metodele sale.
Abstractizarea permite stăpânirea complexității. Desparte comportamentul de implementare.
Încapsularea permite ascunderea implementării. Permite mai multe implementări pentru o interfață dată.
Modularitatea permite divizarea unor proiecte complexe și sprijină reutilizarea codului. Ierarhizarea permite exprimarea dependențelor și reutilizarea codului.
Moștenirea permite crearea unei clase noi prin extinderea unor clase existente. Poate fi simplă sau multiplă. Crează relații de tip subclasă-superclasă.
Polimorfismul permite folosirea unui obiect de un tip în locul altuia de alt tip dar având aceiași interfață.
Clasa – matriță pentru creat obiecte; conține membrii: atribute și metode; membrii publici formează interfața clasei.
Obiectele sunt de obicei reprezentări ale obiectelor din viața reală (domeniul problemei), astfel încât programele realizate prin această tehnică sunt mai ușor de înțeles, de depanat și de extins decât programele procedurale. Așadar, în cazul programării obiectuale, abstractizarea presupune definirea unor structuri de date complexe dotate cu un comportament exterior și cu o stare internă, care se suprapun peste obiectele din lumea reală.
Comparație Java versus C#
Ca și limbaj de programare orientat obiect, in realizarea aplicatiei informatice, am ales limbajul JAVA.
Java este un limbaj de programare de niveli), astfel încât programele realizate prin această tehnică sunt mai ușor de înțeles, de depanat și de extins decât programele procedurale. Așadar, în cazul programării obiectuale, abstractizarea presupune definirea unor structuri de date complexe dotate cu un comportament exterior și cu o stare internă, care se suprapun peste obiectele din lumea reală.
Comparație Java versus C#
Ca și limbaj de programare orientat obiect, in realizarea aplicatiei informatice, am ales limbajul JAVA.
Java este un limbaj de programare de nivel înalt, dezvoltat de JavaSoft, companie în cadrul firmei Sun Microsystems achiziționată de către Oracle în 2010.
C# este un limbaj de programare orientat pe obiecte, simplu, modern, ce deriva din C++ si Java.
Ambele limbaje prezinta urmatoare avantaje:
Simplitate – ambele limbaje elimină supraîncărcarea operatorilor, moștenirea multiplă și în general previne scrierea unui cod confuz fata de limbajele C, C++.
Robustețe – elimină sursele frecvente de erori ce apar în programare prin eliminarea pointerilor.
Complet orientat pe obiecte – Java si C# elimină complet stilul de programare procedural.
Ușurința în ceea ce privește programarea în rețea.
Asigură o performanță ridicată a codului de octeți.
Dinamicitate.
Permite crearea unor documente Web îmbunătățite cu animație și multimedia.
Principalele diferente care m-au determinat sa aleg limbajul de programare Java le voi prezenta in acest capitol.
In primul rând, Java este open-source, fata de C# pentru care trebuia sa platesc o licenta pentru a putea lucra si crea aplicatia informatica.
Un al doilea criteriu in alegerea facuta este dat de portabilitate. Java este un limbaj independent de platforma de lucru, aceeași aplicație rulând, fără nicio modificare, pe sisteme diferite cum ar fi Windows, UNIX sau Macintosh, lucru care aduce economii substanțiale firmelor care dezvoltă aplicații pentru Internet. C# ruleaza doar pe Windows.
Java este compilat și interpretat, spre deosebire de C# care este doar compilat.
Un alt criteriu este securitatea. Java este cel mai sigur limbaj de programare disponibil în acest moment, asigurând mecanisme stricte de securitate a programelor concretizate prin: verificarea dinamică a codului pentru detectarea secvențelor periculoase, impunerea unor reguli stricte pentru rularea programelor lansate pe calculatoare aflate la distanță, etc. Java permite programarea cu fire de executie. Java a fost proiectat pentru a fi folosit în medii distribuite și sisteme deschise. Toate aceste criterii m-au determinat sa aleg limbajul de programare JAVA in realizarea aplicatiei informatice.
Comparație NetBeans versus Eclipse
Prinicpalele medii pentru dezvoltarea soft-ului pe platforma Java sunt in momentul actual Eclipe si NetBeans. Pentru a putea facea alegerea convenabila am prezentat mai jos avantajele si dezavantajele fiecarui editor in parte.
Avantaje Eclipse:
Cel mai important plus este integrarea usoara a celor mai diferite componente cum ar fi: Flex Builder, Blackberry SDK sau Android SDK sub forma unor plugin-uri.
Eclipse suporta si alte limbaje de programare in afara de Java, cum ar fi: C++ sau PHP.
Are o multime de pluggin-uri care sunt usor de instalat si folosit.
Minusuri Eclipse:
Are o tendinta de a se porni mai greu in comparatie cu NetBeans.
Pentru instalarea unor pluggin-uri e necesar de le cautat in "afara" si de adaugat repository in Eclipse in loc sa fie acest lucru posibil cu un instrument integrat in interiorul Eclipse.
Avantaje NetBeans:
Are un constructor GUI extrem de util in realizare aplicatiilor Java. Are un instrument de manipulare a plugin-urilor extrem de robust care permite o instalare usoara a acestor plugginuri.
Suporta si alte limbaje de programare, cum ar fi: C++, Ruby on Rails, PHP, etc.
Minusuri NetBeans:
Mai putine pluggin-uri fata de Eclipse.
Lipseste integrarea usoara cu componente cum ar fi Google Android.
In concluzie, am ales ca si editor in dezvoltarea aplicatiei informatice, mediul de dezvoltare NetBeans datorita interfetei cu utilizatorul foarte intuitiva si usor de folosit si datorita pluggin-ului deja integrat, Swing care permite crearea aplicatiilor grafice foarte rapid si usor.
Sisteme de Gestiune a Bazelor de Date
“O bază de date este o mulțime structurată de elemente de date și de legături logice dintre ele ce descriu un univers real sau conceptual (o întreprindere, o organizație, o societate de asigurări, eveniment etc.), ce pot fi accesate simultan de mai mulți utilizatori.
Un sistem de gestiune al unei baze de date este un software utilizat pentru crearea, întreținerea si exploatarea unei baze de date și care dă posibilitatea mai multor utilizatori să aibă acces simultan la datele care o compun.”
Pentru realizarea unei baze de date este necesară identificarea următoarelor elemente specifice:entități, attribute, relații.
O entitate este un obiect distinct inclus în baza de date (persoane, locuri, firme, documente, concepte etc.).
Un atribut este o proprietate care descrie un anumit aspect al unei entități.
“O relație reprezintă o asociație între mai multe entități. Modelul clasic de bază de date este cel relațional, în care datele sunt memorate în tabele. Pe lângă tabele, o bază de date mai poate conține: proceduri și funcții; utilizatori și grupuri de utilizatori; tipuri de date; obiecte, etc. “
Comparatie MySql versus Oracle
MySQL este un sistem de gestiune a bazelor de date relaționale, produs de compania suedeză MySQL AB, ulterior preluat de Oracle.
ORACLE reprezinta cel mai performant sistem de gestiune a bazelor de date disponibil la momentul actual. Pe lânga faptul ca poseda avantajele unui mediu de tip relational, ORACLE este gândit ca un sistem exhaustiv pentru rezolvarea problemelor de utilizare sau programare. Oracle este implementat pe majoritatea tipurilor de computere mari , ceea ce ofera portabilitatea aplicatiilor, dar mai ales posibilitatea conectarii la calculatoare puternice.
Ambele sisteme de gestiune a bazelor de date presupun urmatoarele avantaje: viteza de lucru foarte buna; exploatare interactiva la nivel SQL; limitari de lucru greu sau imposibil de atins(maxim 65535 caractere într-un câmp , numar nelimitat de câmpuri , de înregistrari ); exploatare eficienta a spatiului pe disc ( memorarea câmpurilor în format variabil).
Chiar daca cel mai performant S.G.B.D. la momentual actual este Oracle, eu am ales MySql deoarece acest sistem raspunde cel mai bine nevoilor mele pentru realizarea aplicatiei.
Am ales acest SGBD în realizarea proiectului pentru că: este gratis, este performant, există forumuri gratuite de support. Serverul de baze de date MySQL este foarte rapid, fiabil și ușor de utilizat.
Deși este folosit foarte des împreună cu limbajul de programare PHP, cu MySQL se pot construi aplicații în orice limbaj major. Există multe scheme API disponibile pentru MySQL ce permit scrierea aplicațiilor în numeroase limbaje de programare pentru accesarea bazelor de date MySQL, cum are fi: C, C++, C#, Java, Perl, PHP, Python, FreeBasic, etc., fiecare dintre acestea folosind un tip spefic API.
MySQL este componentă integrată a platformelor LAMP, WAMP și XAMP, platformă utilizată și în realizarea proiectului în cauză. Pentru a administra bazele de date MySQL se poate folosi modul linie de comandă sau, prin descărcarea de pe internet, a unei interfețe grafice: MySQL Administrator și MySQL Query Browser. Probabil cel mai util instrument de management al acestor baze de date este aplicația gratuită, scrisă în PHP, phpMyAdmin.
Conectarea aplicatiei Java la baza de date MySql
Unul dintre avantajele pe care le oferă Java este portabilitatea. Aceasta înseamnă că putem rula un program scris în Java pe orice platformă fără să fie nevoie ca programul să fie recompilat. Printre bibliotecile implementate pe platformele care rulează Java se află și cea care permite accesul la bazele de date din Java: JDBC (Java DataBase Connectivity).
Pentru a permite utilizarea bazelor de date firma Sun pune la dispoziția utilizatorilor pachetul java.sql. Folosirea limbajului Java în conjuncție cu JDBC oferă o soluție cu adevărat portabilă pentru scrierea aplicațiilor care lucrează cu baze de date.
Există mai multe tipuri de drivere pentru conectarea la o bază de date. Acestea sunt date în funcție de tipul de bază de date la care dorim să ne conectăm. Pot fi drivere JDBC:ODBC sau JDBC:MySQL. Driverul este cel care face legatura între aplicația creată de noi cu Java și serverul de bază de date. In funcție de serverul pe care îl folosim (tipul de tehnologie folosit) vom avea nevoie de un anumit driver. Conexiunea cu o bază de date MySQL este realizată cu ajutorul driverului JDBC:MySQL.
Crearea conexiunii cu serverul
Pasul 1: Incarcarea driverului JDBC;
Acest lucru se face folosind apelul metodei forName() din clasa Class. Metoda este statică prin urmare sintaxa este: Class.forName("com.mysql.jdbc.Driver");
Pasul 2: Se creează o baza de date;
Pasul 3: Se creează o conexiune;
Folosind metoda statică getConnection() din clasa DriverManager creăm conexiunea cu serverul MySQL.Sintaxa adresei este: jdbc:mysql://adresa_server/nume_baza_de_date.
Client-Server
“Aplicația server este acel tip de aplicație care oferă un anumit tip de serviciu. Serviciile sunt oferite aplicațiilor denumite aplicații client. Practic o aplicatie server primește o anumită informație de la unul sau mai multi clienți, o procesează apoi trimite un raspuns clientului”.
O aplicatie server întotdeauna așteaptă conectarea unui client. Clasa Socket este cea care descrie o instanță Socket – instanță ce reprezintă un capăt de conexiune. Pentru a crea o conexiune avem nevoie de două Socket-uri, unul ce reprezintă procesul serverului iar celălat ce reprezintă procesul clientului. Clasa ServerSocket este cea cu ajutorul căreia construim capătul conexiunii (Socket-ul) pentru server. Instanta ServerSocket are ca atribut principal portul pe care definim funcționalitatea serverului. Acest port trebuie sa aibă o valoare între 1023 și 65535, adică nu una dintre valorile unui port well-known. După crearea instanței de ServerSocket apelăm metoda accept() care întrerupe firul de execuție și asteaptă returnarea unui Socket la conexiunea cu un client. Returnarea Socket-ului este echivalentă cu crearea conductei de comunicare.
ANALIZA ȘI PROIECTAREA APLICAȚIEI
Analiza aplicației
În crearea unei aplicații informatice trebuie avute în vedere fazele de analiză și proiectare. Pentru acestea s-au creat limbajele de modelare, unul dintre acestea fiind limbajul de modelare unificat UML(The Unified Modeling Language). UML este un limbaj de modelare care oferă o exprimare grafică a structurii și comportamentului software.
“UML oferă o largă gamă de diagrame pentru modelarea diferitelor situații în cadrul unui proiect de dezvoltare software. Cu ajutorul limbajului de modelare UML, am realizat următoarele diagrame necesare în analiza aplicației informatice.”
“O diagramă a cazurilor de utilizare este formată dintr-un ansamblu de cazuri de utilizare și actori, fiind folosită, în general, pentru a indica sau caracteriza funcționalitățile și comportamentul întregii aplicații, sistemul interacționând cu unul sau mai mulți actori. Un actor este definit prin utilizatorul ce pot interacționa cu sistemul. Cazurile de utilizare sunt construite plecând de la nevoile pe care le au actorii. “
În urma definirii problemei și a prezentării funcționalității aplicației informatice, se deduc următoarele cazuri de utilizare: administrarea bazei de date, emiterea de rapoarte, generarea de grafice, vizualizarea situației plăților abonamentelor în orice moment, vizualizarea clienților fideli, vizualizarea clienților care au venit în ultima perioada sau care au plecat într-un anumit interval de timp, vizualizarea stocurilor de echipamente, adăugarea/modificarea/ștergerea abonamentelor, adăugarea noilor clienți, vânzarea echipamentelor (cablu, telefon fix, antenă, routere, switch, mufe, etc.), incheierea de contracte, prelungirea de contracte, căutarea unui client pentru plata facturii, generarea de oferte personalizate, vizualizarea serviciilor incluse intr-un anumit abonament.
Actorii care interacționează cu sistemul informatic sunt: administratorul sistemului care administrează baza de date a sistemului; angajatul firmei TRIGITAL care folosește aplicația pentru a-i ușura munca în activitățile cu clienții. Diagrama cazurilor de utilizare se poate vizualiza in Figura 3-1: Diagrama cazurilor de utilizare.
Diagrama folosită în modelarea obiect se numește diagrama de clase și ea oferă o imagine asupra reprezentării tabelelor și a relațiilor dintre ele. “Diagramele de clase descriu cazuri generale în modelarea sistemului. Diagrama claselor este cea mai importantă în cadrul analizei și proiectării orientate obiect, având ca scop structurarea naturii statice a claselor”.
Diagrama claselor a fost construită pe urmatoarele principii si se poate vizualiza in Figura 3-2: Diagrama de clase: un client poate avea mai multe abonamente; un abonament are mai multe servicii; un contract se poate încheia atât pentru un abonament personalizat cat si pentru o oferta; o comandă poate avea mai multe echipamente; clientii companiei TRIGITAL pot fi atat persoane fizice cat si persoane juridice; un angajat poate incheia mai multe contracte; un angajat poate incasa mai multe plati de facturi.
Figura 3-2: Diagrama de clase
“Diagrama de activități reprezintă o modalitate de modelare vizuală a fluxurilor.” Cu ajutorul acestei diagrame pot fi modelate foarte bine cazurile de utilizare. În cele ce urmează voi prezenta o diagrama de activități privind procesul de cumparare a unui serviciu(diagrama se poate vizualiza in Figura 3-3: Vanzare echipamente) si o diagrama privind incheierea contractului dintre parti(diagrama se poate vizualiza in Figura 3-4: Intocmirea unui contract).
Figura 3-3: Vanzare de echipamente
Figura 3-4:Intocmirea unui contract
Proiectarea aplicației
La baza unei strategii CRM se afla tehnologia client-server cu ajutorul careia se pot distribui rapid informatiile în format digital între membrii echipei ce participa la proiect. Ca suport IT sunt folosite soft-uri care permit facilitarea lucrului în echipa, precum si diferite aplicatii web. Departamentul de Vânzari beneficiaza de un instrument automatizat de vânzari cu ajutorul caruia se identifica potentialii clienti pe baza nevoilor acestora care nu sunt satisfacute sau sunt doar partial satisfacute.
Aplicația CRM trebuie să poată ajuta administratorul firmei să gestioneze serviciile oferite si sa ajute angajatul companiei in vizualizarea clientilor pe diferite criterii de cautare.
În acest subcapitol se realizează definitivarea diagramei de clase prezentată în subcapitolul anterior (completată cu atribute și metode), proiectarea bazei de date (schema conceptuală a bazei de date) precum și descrierea succintă a tabelelor și a legăturilor dintre acestea.
Diagrama de clase detaliată, vizualizata in figura de mai jos, rezultă prin rafinarea diagramei de clase din etapa de analiză, implementându-se anumite detalii precum specificarea atributelor și tipului acestora.
Normalizarea bazei de date
La proiectarea unei BD relaționale, principalul obiectiv în realizarea unui model logic este crearea unei reprezentări corecte a datelor, relațiilor dintre ele și a constrângerilor. Pentru atingerea acestui obiectiv, trebuie identificat un set adecvat de relații. Normalizarea reprezintă o tratare de jos în sus a proiectării bazelor de date, care începe prin examinarea relațiilor dintre atribute. Procesul de normalizare este o metodă formală, care identifică relațiile bazându-se pe cheile primare ale acestora și pe dependențele funcționale dintre atributele lor. Normalizarea ajută proiectanții de BD, prin prezentarea unei serii de teste care pot fi aplicate relațiilor individuale, pentru a preveni apariția anomaliilor de reactualizare.
Unul din principalele scopuri urmărite la proiectarea BD relaționale, este gruparea atributelor în relații în așa fel încât să se minimizeze redundanța datelor și prin aceasta să se reducă spațiul de stocare necesar relațiilor de bază implementate.
În tabela Contract există date redundante: detaliile referitoare la client(nume, prenume) sunt repetate pentru fiecare contract in parte. Relațiile care conțin date redundante pot crea probleme, denumite anomalii de reactualizare.
Prima formă normală (1NF) este o relație în care intersecția fiecărui rând cu fiecare coloană conține o singură valoare și numai una, adică toate atributele relației iau valori unice.
Pentru a transforma în prima formă normală (1NF), vom identifica și vom elimina grupurile repetitive din baza de date. Astfel, din tabela Contract vom elimina campurile nume si Prenume si vom insera o coloaana id_persoana care face referire la id-ul clientului. Schema bazei de date rezultata este prezentata in Figura 3-6: Diagrama de clase Nerafinata(FN2).
Normalizarea relațiilor 1NF la forma 2NF presupune eliminarea dependențelor parțiale. Asta se face prin eliminarea din relație a atributelor parțial dependente funcțional, și plasarea lor într-o nouă relație, împreună cu o copie a determinantului acestora.
Forma Normală Trei (3NF) Pentru a trece la forma normală trei, trebuie să eliminăm dependențele tranzitive. Eliminarea se realizează prin ștergerea câmpurilor dependente tranzitiv de cheia primară din relația inițială și crearea unei noi relații cu aceste atribute și determinantul lor.
Pentru a aduce baza de data la forma normala 3 este necesar adaugarea de noi tabele pentru a elimina relatiile multi-la-multi, eliminarea de campuri redundante, adaugarea de noi atribute utile.
Astefel, vom adauga tabela Persoana_Contract cu urmatoarele atribute: id(PK), tip_persoana(0->Persoana Fizica, 1->Persoana Juridica), id_persoana(in functie de tipul persoanei, se cauta in tabela de persoane respectiva), id_abonament, id_contract. Aceasta tabela este creata pentru a elimina legatura multi-la-multi dintre tabela Abonament si tabela Contract. Este necesara eliminarea atributului id_abonament din tabela Contract.
O alta imbunatatire a bazei de date este adaugarea tabelei Rand_Comenzi deoarece o comanda poate avea mai multe produse cu cantitati diferite. Atributele: id_rand(PK), id_produs, cantitate, nr_factura. Este necesara eliminarea atributelor id_echipament si cantitate din tabela comenzi_produse.
Pentru ca nu exista nicio tabela unde se tine evidenta platior, am adaugat tabela Istoric_Plati cu urmatoarele campuri: id(PK), tip_persoana, id_persoana, id_contract, data, plata.
Schema finala a bazei de date rezultata in urma aplicarii procedeului de normalizare si a rafinarii diagramei de clase cu atribute este prezentata in Figura 3-7: Schema bazei de date finala.
Descrierea succintă a tabelelor și a legaturilor dintre acestea.
Fiecare client, fie persoană fizică, fie persoană juridică are unul sau mai multe contracte de o anumită valoare, scadente la o anumită dată. Toți clienții pot plătii atât prin bancă cât și cash. Tabelele cele mai importante sunt: Persoane Fizice, Persoane Juridice, Abonamente, Contract, Echipamente și Plăți.
Tabela Persoane Fizice:
Atribute:id_persoana_fizica(cheie primara-identifica in mod unic inregistrarile din tabela), nume, prenume, adresa, data_nastere, locul_nasterii, cnp, telefon, email, nivel_venituri(date esentiale despre clientii-persoane fizice).
Tabela Persoane Juridice:
Atribute:id_persoana_juridica(cheie primara), denumire_firma, adresa, telefon, email, cui, nr_registru_comert, cont_bancar, capital_social(date esentiale despre clientii-persoane juridice).
Tabela Contract:
Atribute: id_contract(PK), data_inceput, data_sfarsit, data_scadenta(data la care se va achita factura), id_angajat (angajatul care intocmeste contractul).
Tabela Abonament: firma dispune de mai multe abonamente de internet cu cost diferit in functie de traficul de date, mai multe abonamente tv cu cost diferit in functie de numarul de canale si HD.
Atribute:id_abonament(PK), tip_abonament(Internet, TV, Telefonie Fixa, All-inclusive, etc.), denumire, pret.
Tabela Servicii: firma oferă servicii precum: televiziune digitala( iptv), servicii de internet, telefonie (VoIP), consultanță, proiectare, implementare și întreținere a sistemelor de telecomunicatii etc.
Atribute: id_serviciu(PK), tip_serviciu(internet rapid, internet ultra-rapid, televiziune HD, consultanta, etc.).
Tabela Echipamente Servicii: utilizata pentru a evita legatura multi-la-multi. Fiecare serviciu dispune de unul sau mai multe echipamente. Aceste echipamente sunt incluse in servicii, deci in abonamente, deci in contracte. In cazul in care, clientul doreste mai multe echipamente, care nu sunt incluse in abonament(adica sunt gratuite), acesta va trebui sa cumpere acele produse separat, inregistrandu-se o factura(cu ajutorul tabelei Comenzi_Produse).
Atribute: id(PK), id_echipament, cantitate, id_serviciu.
Tabela Servicii Abonament: utilizata pentru a evita legatura multi-la-multi. Fiecare abonament poate avea mai multe servicii.
Atribute: id(PK), id_serviciu, id_abonament.
Tabela Persoana Contract: utilizata pentru a evita legatura multi-la-multi. Fiecare contract poate avea mai multe abonamente si fiecare persoana fie fizica, fie juridica poate avea mai multe abonamente.
Atribute:id(PK), tip_persoana(0->Persoana Fizica, 1->Persoana Juridica), id_persoana(in functie de tipul persoanei, se cauta in tabela de persoane respectiva), id_abonament, id_contract.
Tabela Istoric Plati
Atribute: id(PK), tip_persoana, id_persoana, id_contract, data(data la care s-a effectual plata), plata(suma achitata de catre client).
Tabela Echipamente:
Atribute:id_produs(PK), denumire, stoc, pret.
Tabela Comenzi Produse: vanzarea de echipamente/produse.
Atribute:nr_factura(PK), data_achizitie , tip_persoana (0-fizica sau 1-juridica), id_persoana, id_angajat (persoana care intocmeste factura).
Tabela Rand Produse: utilizata pentru a evita legatura multi-la-multi. O comanda poate avea mai multe echipamente cu cantitati diferite.
Atribute:id_rand(PK), id_produs, cantitate, nr_factura.
Tabela Angajati: angajatii firmei TRIGITAL.
Atribute:id_angajat(PK), nume, prenume, cnp, functie.
Tabela Useri:înregistrează utilizatorii care au dreptul să acceseze aplicația.
Atribute:id_user(PK), username, parola, id_angajat.
Tabela Fidelizare Clienti: Aceasta tabela este utilizata pentru a fideliza clientii deja existenti ai firmei. Cu ajutorul acestei tabele, se tine evidenta clientilor care au fost sunati pentru a li se propune o prelungire a contractului, o noua oferta cat mai convenabila pentru ei.
Atribute:id(PK), id_persoana, tip_persoana, nr_apeluri(de cate ori a fost sunat clientul; de regula nu se poate suna un client mai mult de doua ori, daca acesta a refuzat de fiecare data oferta propusa), data_ultimului_apel, star_client(0 = activ/ 1 = inactiv), plati_restante( 0 = cliemtul a avut plati restante, 1= clientul nu a avut plati restante), comentarii(diverse comentarii obtinute in urma apelului).
Tabela Oferte: Aceasta tabela este utilizata pentru a adauga anumite oferte ce contin anumite produse si abonamente. Atunci cand clientul este sunat in scopul fidelizarii acestuia, i se propune o oferta din aceasta tabela.
Atribute: id(PK), id_abonament (id-ul abonamentului care este in oferta), id_produs (aceasta coloana poate sa fie completata sau nu, in functie de tipul ofertei. De exemplu, la o anumita oferta de internet mobil, se poate oferi un telefon mobil gratis), pret (pretul pe luna pe care clientul ar trebui sa il platesca), nivel_venituri_minimcapital_social_minim, vechime_minima, data_inceput(data la care oferta respectiva este valabila), data_sfarsit(data expirarii ofertei). O oferta esta valabila pentru un client doar daca trece pragul de venit minim sau capital social minim si de vechime.
Tabela Servicii Abonament: utilizata pentru a evita legatura multi-la-multi. Fiecare abonament poate avea mai multe servicii.
Atribute: id(PK), id_serviciu, id_abonament.
4. DEZVOLTAREA ȘI IMPLEMENTAREA APLICAȚIEI
4.1. Dezvoltarea Aplicației
Proiectul conține două aplicații care rulează separat: un server și un client, fiind realizată în acest mod deoarece pe calcalatorul pe care este rulat Serverul, nu e obligatoriu să fie rulat Clientul și invers.
Cel mai întâlnit model de programare a aplicațiilor de rețea poartă numele și de aplicații Client-Server. Conceptul este simplu:o mașină client face o cerere pentru o informație sau trimite o comandă la un server; ca răspuns, serverul trimite datele cerute sau rezultatul comenzii. De cele mai multe ori, serverul răspunde numai la clienți; nu inițiază comunicațiile.
Așadar, funcția serverului este de a asculta pentru o conexiune. Aceste lucru este realizat printr-un obiect server care a fost special creat. Funcția clientului este de a încerca să stabilească o conexiune cu serverul pentru care este creat un obiect client. Odată stabilită conexiunea, se poate observa că la cele două capete (server și client), conexiunea este transformată într-un obiect IO Stream și din acel moment aceasta poate fi tratată ca și cum s-ar scrie sau s-ar citi dintr-un fișier.
“La nivelul transport, internetul are două protocoale principale: User Datagram Protocol (UDP, neorientat – conexiune) si Transmission Control Protocol (TCP, orientat – conexiune).
UDP este un protocol simplu, care nu asigură verificarea erorilor sau controlul fluxului, astfel fiind necesar ca aplicația să efectueze aceste verificări; se folosește cu precădere la streaming multimedia. TCP este un protocol care asigură corectitudinea datelor, efectuând atât verificarea erorilor cât și controlul fluxului; este protocolul de bază pentru transmiterea informațiilor în rețea. “
Biblioteci necesare
In această aplicație am folosit mai multe biblioteci de funcții pentru a realiza diferite opțiuni. Pentru a putea genera rapoarte, am instalat în NetBeans jar-ul JasperReport apoi am adăugat în proiect librăriile necesare. Pentru a exporta date în Excel am descărcat și adăugat în proiect jar-ul jxm.jar. Pentru a lucra cu grafice, am adăugat jfreechart.jar. Toate aceste biblioteci de funcții le-am descărcat gratuit(unul din avantajele limbajului de programare java, este open-source) de pe site-ul www.oracle.com.
Tehnologii folosite:
Singleton Pattern – un design pattern care restricționează instanțierea unei clase la un obiect. In aplicația mea, se generează o singură conexiune cu baza de date.
RMI – ajută la crearea aplicațiilor distribuite în care metodele serverului pot fi invocate de alte mașinării Java (clienți), pe alte calculatoare.
JDBC – Java Database Connectivity este un api care asigură conexiune între o bază de date și o aplicație Java.
JPA Controller – Java Persistence API Controller este un framework cu ajutorul căruia se generează clase mapate din baza de date, cu metode precum create, edit, find, destroy, count. Adresa localhost/phpmyadmin este adresa unde am creat baza de date, TRIGITAL.
Aplicația Server este o aplicație realizată in Java având următoarele atribuții: creează un socket pentru a comunica cu clienții, primește date de la clienți si trimite date la clienți.
Aceasta aplicație este o aplicație multi-client, adică la un moment dat la server pot fi conectați mai mulți clienți. Aplicația Client trimite cereri serverului și așteaptă răspuns de la acesta. Structura aplicației este afișată în Figura 4-1:Schema Proiectului.
Figure 4-1: Schema proiectului
4.2. Implementarea Aplicației
Mai întâi am creat serverul. Am generat clasele mapate din baza de date locală, numită TRIGITAL, cu ajutorul tehnlogiei JDBC(în folderul server.db).
Am selectat pachetul server.db;
Click-dreapta->New->Other->Persistence->Entity Classes From Database;
Se crează o conexiune cu baza de date dorită (New Connection…);
Se introduc userul și parola(root);
Se selectează tabelele dorite din baza de date.
După ce am realizat conexiunea cu baza de date, cu ajutorul tehnologiei JPA Controller am generat clasele din folderol server.controllers ce conțin diferite metode.
Am selectat pachetul server.controllers;
Click-dreapta->New->Other->Persistence->JPA Controller Classes From Entity Classes;
Se selectează tabelele din baza de date cu care s-a generat conexiunea.
Am creat o interfață ce extinde clasa Remote. Am creat serverul ce implementează interfața creată, rezultă că Server trebuie să suprascrie toate metodele interfeței. Constructorul clasei Server, crează un registru care specifică portul la care clientul trebuie să se conecteze.
public Server() throws RemoteException{
registry = LocateRegistry.createRegistry(4321);
registry.rebind("server", this);
}
public static void main(String[] args) throws Exception{
new Server();
}
Clasa ClientController are un constructor privat deoarece se folosește tehnologia Singleton. In constructor, clientul se conectează la portul serverului 4321 cu ajutorul unui registru.
private ClientController(){
registry = LocateRegistry.getRegistry("localhost", 4321);
ir = (InterfataRemote) registry.lookup("server");
}
Clasa ClientController este singleton, prin urmare are și un constructor static care generează o singură instanță de client.
public static ClientController getInstance(){
if(singleton == null){
singleton = new ClientController();
}
return singleton;
}
După ce am realizat serverul și clientul, am creat ferestrele care se deschid la apăsarea unei opțiuni din aplicație. Folosind componentele și ferestrele Swing am realizat clasele necesare aplicației.
5. DESCRIEREA APLICATIEI
Acest capitol urmărește să descrie modul de funcționare al aplicației “TRIGITAL”,
partea de client. După ce serverul este pornit, se rulează clientul care deschide fereastra de
conectare (vezi Figura 5-1:Conectare). Fereastra principală a aplicației conține un meniu cu funcționalitățile aplicației. Deoarece sunt doua cazuri de utilizare, aplicatia dispune de doua tipuri de utilizatori: admin si angajat. Utilizatorul admin are in plus fata de un angajat obisnuit urmatoarele functionalitati: Adauga User, Adauga Angajat, Vizualizare Lista Useri, Vizualizare Lista Angajati.
Figura 5-1:Conectare
Figura 5-2: Fereastra Principala
Meniul aplicației cuprinde funcționalitățile necesare pentru gestionarea activităților companiei. Acest meniu este ușor de intuit și înțeles, în limba română și foarte simplu de utilizat. Nu necesită cunoștințe de programare și nu implică lucrul direct cu o bază de date. Prin urmare, această aplicație poate fi folosită de către orice utilizator.
5.1. Meniul Filă
1.Adaugă: a) Adauga User – se înregistrează un alt utilizator în baza de date cu username si password.
Figura 5-3:Adauga User
b) Adauga Angajat – se adaugă un angajat în baza de date de către un user cu drepturi de admin. Datele introduse sunt verificate astfel încât sa nu se poată adăuga un angajat existent (verificare dupa cnp), sa nu se poată adăuga un angajat făra nume, prenume sau cnp.
Figura 5-4:Adauga Angajat
2.Firma Trigital – Afișează informații cu privire la sediul firmei, numărul de telefon, capitalul social. Această funcție este utilă oricărui nou angajat pentru a afla diverse date despre firmă.
Figura 5-5:Firma Trigital
3.Profil – afișează profilul userul curent cu posibilitatea ca userul sa își poată schimba parola.
4.Ajutor – se deschide manualul de utilizare.
5.Exit – se închide aplicația și se deconectează totodată userul curent de la aplicație.
5.2. Meniul Clienți – cuprinde cele mai importante funcționalități.
1.Adaugă Client – Inserează un nou client in baza de date. Această funcționalitate adauga un client in baza de date. Mai întai se selectează tipul clientului (persoana fizică sau persoană juridica). In funcție de tipul ales, se introduc datele respective astfel: pentru persoana fizică: nume, prenume, cnp(13 cifre; prima cifra sa fie 1 sau 2), telefon, email, adresă, data nașterii(format zz/ll/aaaa), locul nașterii, nivel venituri; iar pentru persoana juridica: denumire firmă, cui, Nr. Reg. Comert, cont bancar, capital social, email, adresa, telefon. Dacă anumite informații nu au fost introduse, la apăsarea butonului “Next”, aplicație va avertiza utilizatorul și îl va obliga totodată să introducă datele obligatorii și corecte.
Validare date: cnp format din 13 cifre cu prima cifra 1 sau 2; emailul sa cuprinda semnul “@”, numarul de telefon sa fie format din 10 cifre, nivelul de venituri si capitalul social al companiei sa contina numai cifre.
Figura 5-6:Selecteaza Client
Figura 5-7:Adauga Client – Persoana Fizica
Figura 5-8:Adauga Client Persoana Juridica
2.Caută Client – se caută un client (persoană fizică sau juridică) după cnp sau cui.
3.Listă Clienți – se afișează toți clienții în funcție de tipul acestora. Pentru fiecare client(selectare client -> click dreapta) exista mai multe opțiuni:
Afisează Istoric Plăți – afiseaza istoricul platilor clientului respectiv.
Afișează Abonamente– afiseaza un tabel cu abonamentele clientului respectiv cu urmatoarele coloane: tip abonament, denumire, data inceput, data sfarsit, echipamente incluse in abonament, pret abonament.
Vizualizare Contract– afiseaza contractul/contractele clientului cu firma..
Modifică Date Client– se deschide o fereastra cu datele clientului cu posibilitatea de a modifica anumite atribute ale acestuia.
Figura 5-9:Lista Clienti Persoana Fizice
4.Grafice Clienți
5.3. Meniul Servicii
1.Adaugă Serviciu – se adauga un serviciu in baza de date introducand denumirea acestuia, selectand tipul(Internet sau TV) si selectand echipamentele incluse in serviciu.
Figura 5-10:Adauga Serviciu
2.Adaugă Abonament – se adauga un abonament cu urmatoarele date: denumire, pret, valabilitate(numar de luni), tipul abonamentului(Mega, Mini, Cadou, etc.) si serviciile care vor fi incluse in abonament(din lista cu servicii din baza de date, se selecteaza cel putin unul).
Figura 5-11:Adauga Abonament
3.Situație Abonamente – aceasta functionalitate afiseaza situatia abonamentelor companiei(numarul de abonamente incheiate pentru fiecare tip ).
Figura 5-12:Situatie Abonamente
5.4. Meniul Contract
1.Adaugă Contract – se adauga un contract urmand pasii de mai jos.
Primul pas:mai intai se face o cautare dupa cnpul/cuiul clientului. Daca persoana/compania este deja client al firmei se continua cu selectarea abonamentelor si previzualizarea contractului, iar daca acesta nu exista se apasa butonul Adauga Client.
Figura 5-13:Adauga Contract – Pas 1
Al doilea pas: Selectează abonamente se selectează abonamentul dorit de catre client. Exista optiunea de a selecta un singur abonament. Daca nu este selectat niciun abonament, nu se trece la pasul urmator.
Figura 5-14:Adauga Contract – Pas 2
Al treilea pas: Previzualizare Contract: se vizualizează datele introduse și se calculează automat data de început a contractului(data curentă), data de sfârșit(data de început plus perioada abonamentului(luni) și data scadentă(cu posibilitatea de alegere a datei scadente (default: plus 5 zile de la data de inceput) ).
Figura 5-15:Previzualizare Contract
2.Situație Contracte Incheiate – se vizualizeaza toate contractele incheiate cu urmatoarele date afisate pentru fiecare contract in parte: nume client, tip abonament, denumire abonament, valoare lunara, data de inceput, data scadenta si data de sfarsit, angajatul care a intocmit contractul.
Figura 5-16:Situatie Contracte Incheiate
5.5. Meniul Echipamente
1.Adaugă Echipament – se adauga un echipament(ex:antena, reciver, cablu, etc.) cu stocul initial si pretul de vanzare.
Figura 5-17:Adauga Echipament
2.Situație Stoc Echipamente – aceasta functionalitate afiseaza situatie stocului de echipamente. Coloana Stoc Initial arata stocul initial al echipamentului, iar coloana Stoc Curent arata care este stocul disponibil(din care se poate comanda) al echipamentului.
Figura 5-18:Situatie Stoc Echipamente
3.Comandă Echipamente – se adauga o comanda de echipamente.
Initial, fereastra care se deschide cuprinde toate echipamentele din baza de date cu stocul disponibil al acestora. Pentru a plasa o comanda se urmeaza pasii:
se alege clientul: click pe butonul Cauta Client, se selecteaza tipul clientului, se introduce cnp/cui, iar daca persoana a fost gasita se adauga in comanda.
Se adauga cantitati pentru produsele din tabel. Odata ce o cantitate a fost introdusa, valoare totala se calculeaza in mod automat.
Se apasa butonul Plaseaza Comanda. Daca datele sunt corecte, comanda este adagata, altfel aplicatia avertizeaza utilizatorul care date obligatorii nu au fost introduse sau sunt eronate.
Figura 5-19:Comanda Produse
5.6. Meniul Plata
5.7. Meniul Deconectare
Meniul Deconectare deconectează sau nu userul current de la aplicație. Dacă răspunsul este “Nu”, nu are loc nicio modificare, dacă răspunsul este da, atunci userul curent se deconectează și se afișează fereastra de conectare.
CONCLUZII
A fost creată o aplicație care răspunde cerințelor și obiectivelor propuse.
Aplicația generează rapoarte, grafice, situații necesare unei firme pentru a ține evidența serviciilor, echipamentelor și a clienților.
Solutia CRM ofera un acces mai facil la informatii, o modalitate simplificata de introducere a datelor, vizualizarea informatiilor despre clienti, mai multa flexibilitate pentru procesele de business, procese menite sa ghideze utilizatorul in activitatea sa.
Cheia succesului consta în diferentierea cât mai clara a portofoliului de clienti si întelegerea comportamentului lor în scopul de a le propune oferte personalizate. Metodele de gestiune ale bazelor de date si de analiza de marketing faciliteaza transformarea datelor referitoare la consumatori – "materia prima" obtinuta din contractele cu acestia – în cunostinte despre clienti, care reprezinta informatii ce pot fi exploatate din punct de vedere comercial.
In concluzie, utilizarea unei aplicatii CRM mareste cifra de afaceri a companiei prin fidelizarea clientilor existenti si prin atragerea potentialilor clienti. O astfel de aplicatie este utila oricarei companii.
ANEXE
Figura 3-1:Diagrama Cazurilor de utilizare 18
Figura 3-2:Diagrama de clase 19
Figura 3-2:Vanzare de echipamente 20
Figura 3-4:Intocmirea unui Contract 21
Figura 3-5:Diagrama de clase Nerafinata (FN1) 22
Figura 3-6:Diagrama de clase Nerafinata (FN2) 24
Figura 3-7:Schema bazei de date finala 28
Figura 4-1:Schema Proiectului 33
Figura 5-1:Conectare 33
Figura 5-2: Fereastra Principala 33
Figura 5-3:Adauga User 34
Figura 5-4:Adauga Angajat 34
Figura 5-5:Firma Trigital 35
Figura 5-6:Selecteaza Client 36
Figura 5-7:Adauga Client – Persoana Fizica 36
Figura 5-8:Adauga Client Persoana Juridica 37
Figura 5-9:Lista Clienti Persoana Fizice 38
Figura 5-10:Adauga Serviciu 38
Figura 5-11:Adauga Abonament 39
Figura 5-12:Situatie Abonamente 39
Figura 5-13:Adauga Contract – Pas 1 40
Figura 5-14:Adauga Contract – Pas 2 40
Figura 5-15:Previzualizare Contract 41
Figura 5-16:Situatie Contracte Incheiate 41
Figura 5-17:Adauga Echipament 42
Figura 5-18:Situatie Stoc Echipamente 42
Figura 5-19:Comanda Produse 43
REFERINȚE BIBLIOGRAFICE
1. Spilcă, Laurențiu. Curs practic Java. Telacad. [Online] http://telacad.ro/.
2. SGBD. [Online] http://www.biblioteca-digitala.ase.ro/biblioteca/pagina2.asp?id=cap1.
3. MySql. [Online] http://en.wikipedia.org/wiki/MySQL.
4. Olaru Cristian, Andrei Stefan. Java de la 0 la expert. 2001.
5. Java. Programare in limbajul Java. [Online] http://en.wikipedia.org/wiki/Java.
6. UML. [Online] http://www.uml.org/.
7. UML. Wikipedia. [Online] http://ro.wikipedia.org/wiki/Unified_Modeling_Language.
8. NetBeans. [Online] http://java.sun.com.
9. Xampp. [Online] http://www.apachefriends.org/download.html.
10. CRM – http://ro.wikipedia.org/wiki/CRM
11. CRM – http://www.webopedia.com/TERM/C/CRM.html
12. JAVA – http://www.25hoursaday.com/CsharpVsJava.html
13. JAVA vs C# – http://en.wikipedia.org/wiki/Comparison_of_Java_and_C%2B%2B
REFERINȚE BIBLIOGRAFICE
1. Spilcă, Laurențiu. Curs practic Java. Telacad. [Online] http://telacad.ro/.
2. SGBD. [Online] http://www.biblioteca-digitala.ase.ro/biblioteca/pagina2.asp?id=cap1.
3. MySql. [Online] http://en.wikipedia.org/wiki/MySQL.
4. Olaru Cristian, Andrei Stefan. Java de la 0 la expert. 2001.
5. Java. Programare in limbajul Java. [Online] http://en.wikipedia.org/wiki/Java.
6. UML. [Online] http://www.uml.org/.
7. UML. Wikipedia. [Online] http://ro.wikipedia.org/wiki/Unified_Modeling_Language.
8. NetBeans. [Online] http://java.sun.com.
9. Xampp. [Online] http://www.apachefriends.org/download.html.
10. CRM – http://ro.wikipedia.org/wiki/CRM
11. CRM – http://www.webopedia.com/TERM/C/CRM.html
12. JAVA – http://www.25hoursaday.com/CsharpVsJava.html
13. JAVA vs C# – http://en.wikipedia.org/wiki/Comparison_of_Java_and_C%2B%2B
ANEXE
Figura 3-1:Diagrama Cazurilor de utilizare 18
Figura 3-2:Diagrama de clase 19
Figura 3-2:Vanzare de echipamente 20
Figura 3-4:Intocmirea unui Contract 21
Figura 3-5:Diagrama de clase Nerafinata (FN1) 22
Figura 3-6:Diagrama de clase Nerafinata (FN2) 24
Figura 3-7:Schema bazei de date finala 28
Figura 4-1:Schema Proiectului 33
Figura 5-1:Conectare 33
Figura 5-2: Fereastra Principala 33
Figura 5-3:Adauga User 34
Figura 5-4:Adauga Angajat 34
Figura 5-5:Firma Trigital 35
Figura 5-6:Selecteaza Client 36
Figura 5-7:Adauga Client – Persoana Fizica 36
Figura 5-8:Adauga Client Persoana Juridica 37
Figura 5-9:Lista Clienti Persoana Fizice 38
Figura 5-10:Adauga Serviciu 38
Figura 5-11:Adauga Abonament 39
Figura 5-12:Situatie Abonamente 39
Figura 5-13:Adauga Contract – Pas 1 40
Figura 5-14:Adauga Contract – Pas 2 40
Figura 5-15:Previzualizare Contract 41
Figura 5-16:Situatie Contracte Incheiate 41
Figura 5-17:Adauga Echipament 42
Figura 5-18:Situatie Stoc Echipamente 42
Figura 5-19:Comanda Produse 43
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Solutie Informatica Utilizand Platforma Java Si O Baza de Date (ID: 150625)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
