q4c20cd
Cuprins
1.Foaie de capat
2.Cuprins
3.Introducere
3.1 Utilizarea aplicatiei
3.2 Definirea termenilor utilizati in aplicatie
3.3 Specificarea cerintelor
4.Memoriu tehnic
4.1 Caracteristicile aplicatiilor centrate pe baze de date
4.2 Metoda de abordare a procesului de dezvoltare a proiectului
5.Memoriu justificativ
-5.1 Contributii personale
6.Manual de operare
7.Concluzii
8.Bibliografie
9.Anexe
3. Introducere
Aplicatia denumita “Info-soft” incorporeaza practic trei domenii
de activitate diferite aparent, insa foarte strans legate din punctul de vedere
al tehnologiei informatiei.Aceste trei domenii sunt : domeniul afacerilor mai
precis numele si domeniul de activitate a firmelor care isi desfasoara activitatea
in tara, domeniul informatiilor publice care contine date despre detinatorii
telefoanelor fixe din Romania si nu in ultimul rand o agenda personala care
este utila oricarei persoane care doreste sa-si noteze anumite informatii de
contact despre persoanele pe care le cunoaste.
3.1 Utilizarea aplicatiei
Acesta aplicatie ofera unui utilizator o varianta mai complexa si mai completa
a unor aplicatii care pana acuma erau considerate aplicatii separate si care
nu aveau nici o legatura vizibila intre ei. Fiecare dintre aceste aplicatii
independente ofera o anumita funtionalitate bine definita. Aceste functionalitati
principale ar fi Cartea de Telefoane, Cartea de Afaceri si o Agenda personala.
Asadar avand definite aceste functionalitati principale am incercat sa dezvolt
o interfata din care un utilizator sa poata efectua oricare dintre functiile
principale mai sus mentionate. Pentru implementarea practica al acestui concept
am decis ca programul sa fie unul in stil clasic, adica Desktop.Aplicatia in
sine se adreseza unei game largi de utilizatori ,de la persoane fizice pana
la persoane juridice.Obiectivul direct al aplicatiei este de a realiza o promovare
indirecta a unor produse sau nume de firme,aceasta metode oferind un mod prin
care se pot acoperi anumite costuri care erau implicate in realizarea aplicatiei.Produsul
final “Info -;Soft”,va fi oferit in mod gratuit utilizatorilor
,promovarea fiind scopul declarat al acesteia.
Utilitatea programului pentru persoanele fizice adica majoritatea utilizatorilor
de calculatoare, este capacitatea aplicatiei de oferi informatii publice despre
alte persoane cu domiciliul in Romania si anumite informatii despre firmele
din tara .Informatiile despre persoanele juridice constau in precizarea numelui
,a domeniului de activitate precum si a locului unde isi desfasoara activitatea.Doresc
sa mentionez ca prin persoana juridica se intelege orice persoana care are posibilitatea
de a utiliza un calculator,iar prin termenul de persoana juridica se intelege,
o firma care isi desfasoara activitatea in Romania.In continuare voi folosi
acesti doi termeni in scopul de a explica anumite aspecte care privesc proiectul.
Ca o utilitate mai speciala este agenda personala ,care ofera posibilitatea
utilizatorului de a inregistra anumite informatii despre cunostintele personale
ale utilizatorului si de le regasi .Prin termenul de agenda personala inteleg
acea functionalitate care permite pastrarea de informatii despre persoane nu
si stabilirea unor intalniri cu aceste persoane sau alte facilitati .
Utilitatea pentru persoanele juridice consta in faptul ca programul pune la
dispozitia lor o cantitate destul de mare de informatie despre abonatii firmelor
de telefonie fixa din Romania.Prin acest lucru aceste persoane juridice detin
in mod automat informatii utile despre actuali sau potentiali clienti. Prin
detinerea acestor informatii acesti clienti pot fi gasiti cu usurinta fara a
mai fi necesar efectuarea unor cautari sau investigatii suplimentare.In mod
special are o utilitate destul de mare si agenda personala din program,care
poate fi folosita ca un mijloc de retinere a unor informatii despre clientii
firmei.Merita insa precizat ca o perfomanta buna se poate obtine la firmele
care au un numar de clienti mai mic,deci este de firmele mici ,chiar afaceri
personale.
Utilitatea principala sau mai bine zis scopul principal al programului este
acela de a usura activitatea de cautare a persoanelor si a firmelor din anumite
domenii de activitate..Se doreste pe cat posibil ca munca manuala sa fie redusa
la minim si datele sa fie pe cat posibil memorate in format digital.Acesta fiind
si un scop al informaticii.Prin realizarea acestei aplicatii ,care poate fi
utilizat in mod gratuit de catre oricine , se doreste incurajarea acestui lucru,
adica sa se utilizeze cat mai mult in activitatea de zi cu zi calculatorul ,atat
acasa cat si in cadrul firmelor.
Stilul programului s-a ales a fi unul desktop din motive practice .Este destinat
acelor utilizatori care marea majoritate detin un singur calculator .Chiar si
in randul firmelor se poate spune ca multi nu utilizeaza serviciile internet
sau facilitatile lucrului in retea.Conider ca proprietatile acestui program
satisfac cerintele acestor utilizatori nefiind necesara complicarea specificatiilor
prin introducerea unei arhitecturi client-server.
Totusi la finalul specificarii aspectelor care tin de utilizarea aplicatiei
in practica si de specificare a potentialilor utilizatori, as dori sa mentionez
ca desi programul va fi oferit in mod gratuit si fara obligatia de a achizitiona
o licenta de catre un utilizator, exista cateva lucruri care fac din aplicatie
un program cu posibil success, care sa merite crearea si versiunii 2.0 . In
primul rand prin faptul ca este gratuit se presupune ca va fi utilizat sau cel
putin incercat de mai multi utilizatori .Prin acest lucru se poate alege incorporarea
in program a unor actiuni de promovare a unor imagini de firme ,adica reclama,
sau de ce nu de promovare a unor calitati de programator al unei singure persoane,cum
ar fi autorul proiectului.
Ca o concluzie acest program poate fi folosit ca orice aplicatie desktop ,de
catre persoane individuale sau firme cu o anumita activitate ,in mod gratuit
fara pretentii de drepturi de licenta .Este considerata ca fiind o aplicatie
simpla care doreste sa realizeze una din cele mai des utilizate operatii nu
numai in informatica , cea de cautare de infomatii.
3.2 Definirea termenilor folositi in aplicatie
“Info-soft” este numele aplicatiei si se intelege un ansamblu
de functionalitati care sunt puse la dispozitia utilizatorului ,prin intermediul
unui singure interfete utilizator.Utilizatorul in acest mod va putea utiliza
toate functionalitatile definite in partea de specificare a cerintelor ,parte
care va fi explicata mai jos.
Cele trei functii principale puse la dispozitia utilizatorului sunt Cartea de
telefoane,Cartea de afaceri si Agenda personala.Aceste trei functii sunt independente
unul de celalalt ,scopul fiind acela de a oferi utilizatorului o aplicatie complexa
dar in acelasi timp si simpla care indeplineste cerintele din specificare.Prin
notiunea de functie sau functionalitate pe care am amintit-o mai sus ,intelegem
acele carateristici prin care utilizatorul prin accesarea anumitor comenzi poate
sa efectueze operatii de manipluare a datelor existente in baza de date,mai
precis ceea ce face programul .
Prin termenul de Carte de telefoane, intelegem in primul rand o baza de date
care contine datele (nume ,prenume,numarul de telefon fix,adresa cat mai completa
) ale utilizatorilor serviciilor de telefonie fixa din Romania.Acest concept
s-a creat pe baza unei analogii cu cartea de telefoane clasica care exista sub
forma unei carti.Am asociat acestui concept si operatiile pe care le-ar dori
sa efectueze un utilizator al acestei carti.Operatiile care se executa sunt
in general cele de regasire a unor informatii pe baza altor informatii furnizate
de data aceasta de utilizatorul programului. Aceste operatii de cautare sunt
impartite pe mai multe criterii ,aceste criterii fiind explicate mai pe larg
in partea de specificare a cerintelor.
Termenul de Cartea de afaceri ,poate fi considerat un concept mai nou introdus
prin intermediul altor aplicatii realizate de firme diferite,dar cu scop si
functionalitate asemanatoare.Acesta insa nu este este chiar atat de mult utilizat
de marea majoritatea a utilizatorilor,fiind un termen mai putin cunoscut.Aceasta
notiune este foarte similara cartii de telefoane ,insa informatiile continute
nu sunt despre persoane abonate la serviciile anumitor operatori de telefonie
fixa,ci despre firme care efectueaza o anumita activitate comerciala intr-un
domeniu oarecare..Principalele informatii care ar fi cautate de un utilizator
sunt legate de numele firmei,de domeniul in care isi desfasoara activitatea,
precum si adresa unde poate fi gasita firma respectiva.Operatiile principale
care pot fi facute sunt tot cele de cautare ,care pot fi efectuate dupa mai
multe criterii(nume firma,domeniu de activitate ,adresa),aceste criterii vor
explicate in partea de specificare a cerintelor.
Prin termenul de Agenda personala ,intelegem un ansamblu de caracterisitci care
permit utilizatorului sa retina si sa memoreze in aplicatie ,unele date despre
persoanele pe care le cunoaste.Informatiile care vor fi memorate aici se considera
personale,deoarece sunt completate de utilizator, el avand mult mai multe optiuni
decat in cazul cartilor de telefoane sau de afaceri.Validitatea si corectitudinea
informatiilor este responsabilitatea utilizatorului care le-a completat,aplicatia
furnizand doar un set limitat de mecanisme prin care se pot evita crearea unor
inconsistente de date.Prin personalizarea informatiilor continute de aceasta
parte din aplicatie operatiile care se pot efectua nu sunt numai cele de cautare
,ci toate operatiile care se pot efectua in general asupra unor date.Aceste
operatii in principiu sunt :adauga ,cauta modifica si sterge.Acestea nu erau
disponibile pana acum deoarece ar fi compromis integritatea datelor ,care aveau
un anumit grad de corectitudine si validitate.Fiecare dintre aceste operatii
considerate principale sau mai bine zis generale,sunt impartite in anumite subcriterii
,fiecare dintre aceste subcriterii efectuand o operatie asupra datelor dupa
un anumit atribut.Agenda personala este organizata ca si agenda clasica ,insa
datele sunt in format electronic iar operatiile sunt mai mult automatizate ,astfel
utilizatorul obtinand un castig de timp si productivitate, operatiile putand
fi efectuate cu o relativa usurinta si siguranta formularele oferind un anumit
grad de corectitudine asupra datelor.
3.3 Specificarea cerintelor
In aceasta parte doresc sa specific acele cerinte ale sistemului ,care odata
implementate vor da o anumita valoare aplicatiei. Scopul acestei aplicatii este
acela de a oferi utilizatorilor o varianta extinsa a programelor care deja exista
si sunt utilizate.Aceasta aplicatie nu este facuta pentru o anumita firma la
comanda,sau sa fie folosita doar in interiorul acestora, ci este destinat majoritatii
utilizatorilor de calculatoare, de aceea o cerinta aproape obligatorie este,
ca programul sa poate fi folosit in mod gratuit,lucru care i-ar asigura o oarecare
utilizare mai raspandita.Cerintele reale , mai precis cele functionale care
dau valoare aplicatiei sunt precizate mai jos.
In primul rand datorita posibilitatilor existente si a scopului acestui program
am decis ca aplicatia sa fie de tip desktop,interconectarea de tip client server
ne fiind necesara.Utilizarea unei asemenea arhitecturi de program ar complica
prea mult utilizarea, si ar influenta in mod direct costurile de intretinere
care pana acuma erau considerate minime.
Ca cerinta functionala poate fi considerata asigurarea unor interfete pentru
untilizator care sa-i permita efectuarea operatiilor cu usurinta si care pot
fi realizate intr-un timp destul de scurt si intr-un mod intuitiv.In cazul cartilor
de afaceri si de telefoane operatia asupra datelor care va trebui asigurata
este cea de cautare,un utilizator sa poata afla oricare dintre informatiile
existente in baza de date cu usurinta ,dupa un criteriu ales de el.Ca o specificatie
si mai putin o cerinta este ca utilizatorul nu poate sa efectueze operatii care
ar putea afecta integritatea datelor .Se limiteaza doar la cautare.
In cazul agendei personale cerintele functioanale se inmultesc ,utilizatorul
avand mult mai multe optiuni de manipulare asupra datelor decat in cazul celor
doua carti.Un utilizator trebuie sa fie capabil sa poata adauga detalii despre
o persoana din agenda.Aceste date la nevoie pot fi si modificate de utilizator
dupa ce a selectat atributul pe care il doreste sa modifice.Nu in ultimul rand
iarasi o operatie foarte importanta poate fi considerata cautarea,care asigura
regasirea in integime a tuturor datelor care au fost adaugate . Operatiile de
cautare sunt impartite in mai multe subcriterii posibile,deoarece la un moment
dat un utilizator poate sa stie doar un fragment din detaliile despre acea persoana
si doreste sa le cunoasca si pe celelate.O alta operatie care completeaza cerintele
agendei este cea de stergere a tuturor detaliilor despre toate persoanele din
agenda.Dupa un timp validitatea datelor poate fi considrata expirata si in aceste
cazuri este necesar o metoda prin care persoanele sa fie sterse facand loc pentru
noi detalii despre alte persoane .
O alta cerinta este crearea unei documentatii pentru utilizator(numit si HELP)
cara sa poate sa fie apelata la nevoie chiar din interiorul aplicatiei, pentru
a explica functionalitatea fiecarui formular din meniu,astfel oferindu-i un
sprijin in utilizarea programului.
4. MEMORIU TEHNIC
Aceasta aplicatie este considerata ca o aplicatie centrata pe baze de date,
acest lucru fiind justificat de faptul ca utilizeaza tehnologia dezvoltata pentru
bazele de date si se efectueza operatii asupra datelor cu ajutorul unui limbaj
de manipulare a datelor.
4.1 Caracteristicile aplicatiilor centrate pe baze de date
Principala caracteristica a unei aplicatii de baze de date este faptul ca accentul
se pune pe operatiile de salvare si de regasire a datelor .Alaturi de aceste
operatii fundamentale apar si cele de stergerea a datelor devenite inutile sau
cele de actualizare.Intr-o aplicatie centrata pe baze de date, caracteristicile
de mai sus sunt utilizatate din punct de vedere practic.
Notiunea de baze de date, poate fi definita ca o colectie de fisiere in care
sunt memorate anumite date, iar aceste date la nevoie pot fi regasite cu usurinta
cu ajutorul unor limbaje de manipulare a datelor.Prin manipularea acestor date
se pot oferi informatii utile si valoroase pentru un anumit utilizator.Aceste
date sunt gestionate de anumite sisteme, numite SGBD (sisteme de gestiune a
bazelor de date ),care usureaza foarte mult intretinerea si manipularea acestor
date.
O alta caracteristica foarte importanta a aplicatiilor orientate pe baze de
date este faptul ca, pot sa memoreze un volum foarte mare de date, odata memorate
sunt si organizate dupa anumite criterii definite de programator,iar apoi fara
efort prea mare pot fi regasite cu usurinta. Multe din problemele din practica
necesita stocarea unui volum mare de date si de aceea aplicatiile de baze sunt
destul de des utilizate.
Toate aceste caracteristici specifice aplicatiilor de baze de date au fost suficiente,
pentru a alege o astfel de solutie in scopul rezolvarii problemei proiectului.In
principiu problema proiectului cere lucrul cu un volum destul de mare de date,
care trebuie sa fie gestionata intr-un anumit mod, cu acestea va trebui sa realizam
anumite operatii de manipulare mai mult sau mai putin complexe.Va trebui sa
fim capabili ca prin acest sistem sa putem introduce,modifica sau sterge oricare
dintre aceste date existente.
Produsul in care se vor implementa cerintele specificate este Visual Fox Pro,
care poseda calitatile necesare cu ajutorul carora sa pot realiza o aplicatie
atractiva din punctul de vedere al utilizarii .Acest produs permite crearea
unor interfete utilizator destul de accesibile ca utilizare, destul de des utilizate
si in alte aplicatii, lucru care usureaza foarte mult instruirea unui potential
utilizator.Nu in ultimul rand poseda un limbaj de manipulare a datelor puternic,
prin care pot sa realizez operatiile necesare asigurarii functionalitatii proiectului.
Se stie ca in ultima perioada problemele legate de securizarea datelor este
o problema de mare actualitate.Multe dintre aplicatiile de baze de date poseda
asemenea mecanisme de protectie a datelor, lucru care ofera confidentialitate
unui utilizator si permite monitorizarea sau limitarea accesului la anumite
date.Crearea unor asemenea mecanisme depinde si de valoarea datelor pe care
le pastram in baza noastra de date.Cu cat importanta si valoarea datelor este
mai mare, cu atat aceste sisteme de securizare sunt mai sofisticate.
In cazul nostru am considerat ca nu este necesar realizarea unui astfel de sistem
de protectie a datelor, pentru ca in principiu se lucreaza cu date publice.Aceste
date sunt accesibile aproape oricui nu numai in format electronic ci si clasic,
sunt oferite chiar de persoanale sau firmele despre care sunt aceste date.Singurele
date care ar necesita un anumit grad de securizare sunt datele din agenda personala
,dar consider ca mijloacele de protectie furnizate de sistemele de operare si
de hardware sunt suficiente,pentru a nu compromite integritatea acestor date,
si sa nu fie folosite in alte scopuri de persoane neautorizate.Aceste drepuri
de acces vor fi stabilite de administratorul sistemului,ramane in responsabilitatea
acestuia determinarea nivelul de siguranta optim .
Consider ca produsul Visual Fox este suficient pentru realizarea acestui proiect
si a functionalitatii acesteia. Daca cu ajutorul acesteia nu realizam o aplicatie
de baza de date cu mecanisme de protectie a datelor, totusi putem considera
ca aplicatia indeplineste cerintele functionale pentru un anumit utilizator.
4.2 Metoda de abordare a procesului de dezvoltare a proiectului
In scopul obtinerii unui proces de dezvoltare a sistemlui cat mai optim, este
bine ca sa utilizam o metoda de dezvoltare a sistemelor existenta si utilizata
pe scara larga cu performante bune.Cu acest scop am ales metoda de abordare
CASE(Computer Aided System Engineering) care contine urmatoarele nivele de care
va trebui sa tinem cont:
In continuare pentru realizarea dezvoltarii sistemului propus voi parcurge
etapele mai sus amintite.
STRATEGIE
In aceasta etapa se definesc proprietatile generale ale aplicatiei, se stabilsec
in mod clar directiile de evolutie.
Cerinta sistemului este, sa realizez o aplicatie care sa contina trei functii
principale:Cartea de telefoane,Cartea de afaceri si Agenda Personala.Acesti
termeni fiind explicate in detaliu in capitolul “Introducere”.
Obiectivul acestei aplicatii este furnizarea catre un utilizator a unui produs
prin care ii ofera informatii despre persoane fizice si diferite firme , precum
si o optiune prin care insusi utilizatorul sa poata sa inregisteze diferite
informatii despre alte persoane cunoscute lui.Aceasta aplicatie nu are ca obiectiv
principal castigarea unor foloase materiale prin intermediul unei licente,ci
mai mult de a efectua anumite actiuni de promovare pentru alte firme sau persoane
.
Prioritatea principala este realizarea unei baze de date care sa satisfaca cerintele
functionale,sa permita toate operatiile stabilite si sa furnizeze o interfata
utilizator prietenoasa.Poate fi considerat ca o prioaritate principala realizarea
unui produs optimizat din toate punctele de vedere, care sa-i asigure o utilizare
cat mai usoara.
Ca o constrangere , aplicatia poate fii folosita doar in mediul sistemului de
operare Windows.Factorul principal care ar trebui sa asigure aplicatiei un succes
este gratuitatea ei, deci avem ca obiectiv reducerea la minim atat a costurilor
de creare a produsului cat si a costurilor de intretinere si folosinta.
Pentru un posibil model al bazei de date va trebui sa luam in considerare ca
vom lucra cu urmatoarele grupuri de entitati care sunt numite:Cartea de telefoane
,Cartea de afaceri si Agenda personala .Acestea incorporeaza mai multe entitati
care ajuta la realizarea schemei bazei de date .
Din punctul de vedere al functionalitatii se stabilesc urmatoarele functii principale
pe care se bazeaza intreaga aplicatie: Adauga,Cauta,Modifica si Sterge.Aceste
functii generale vor fi utilizate in diversele situatii care sunt stabilite
de natura problemei.
Din punctul de vedere al tehnologiei utilizate ,vom folosi produsul Visual Fox
Pro , impreuna cu utilitarele de proiectere si implementare furnizate de acesta.
Ca arhitectura pentru sistem, am stabilit sa utilizam tehnologia “DESKTOP”
,care este sufienta pentru realizarea obiectivelor propuse pana acum.
Aplicatia care se va implementa nu necesita precizarea unor resurse speciale,
un sistem de operare din familia Windows este suficient pentru alocarea resurelor
necesare executiei.
ANALIZA
In acest stadiu dorim sa cream deja o imagine despre sistem care sa fie cat
mai aproape de realitate.In mod foarte general cerintele proiectului au fost
definite la nivelul stategie, iar in acesta etapa dorim sa definim intr-un mod
cat mai detaliat entitatile cu care vom lucra precum si functionalitatea sistemului.In
continuare pe baza specificarii utilitatii si functionalitatii sistemului se
vor defini entitatile de date care vor asigura baza aplicatiei.Stabilirea acestor
entitati s-a facut dupa situtia existenta ,cu scopul de a furniza o imagine
cat mai fidela a realitatii si relatiilor posibile dinte acestea.
In tabelul 1 se descriu numele entitatilor folosite precum si caracteristicile
acestora in cadrul aplicatiei :
Nume entitate Descriere
Persoana fizica Contine toate persoanele din Romania care au telefon fix
Persoana juridica Contine informatii despre firmele care isi desfasoara activitatea
si in Romania
Judet Cupinde toate judetele din Romania
Localitate Numele localitatilor din fiecare judet
Tip localitate Tipul localitatilor care sunt memoate in “Localitate”
Strada Contine numele strazilor din fiecare localitate
Tip strada Indica tipul strazilor memorate in entitatea “Strada”
Imobil Contine informatii de identificare despre fiecare imobil situate pe o
anumita strada
Domenii Indica domeniul de activitate a firmelor memorate in entitatea “Persoana
juridica”
Agenda Contine informatii de identificare despre o persoana din agenda personala
Adresa Contine detalii despre adresa fiecarei persoane definite in agenda
Telefon_ag Contine detaliile despre numerele de telefon ale persoanelor definite
in agenda
Telefon_f Contine numarul de telefon fix al fiecarei persoane
Pref_op_f Indica prefixul opertorului de telefonie fixa
Op_tel_fix Contine numele operatorului de telefonie fixa
Tabel 1
In continuare dupa definirea fiecarui concept de data care va fi utilizat
in sistem , ar fi util ca sa definim si atributele acestor entitati .Aceste
atribute in principiu vor determina informatiile care vor fi definite in baza
de date fizica care va fi implementata mai tarziu.
Tabelul 2 contine aceste atribute impreuna cu entitatea de care apartin acestea:
Tabel 2
Atribute Entitati de care apartin
-id_p
-nume
-prenume Persoana fizica
-id_pj
-nume Persoana juridica
-id_judet
-nume_judet
-prefix Judet
-id_loc
-nume_loc Localitate
-id_tloc
-tip_loc Tip localitate
-id_strada
-nume_strada Strada
-id_tstr
-tip_str Tip strada
-id_imobil
-nr_imobil
-scara
-nr_ap Imobil
-id_dom
-domeniu Domenii
-id_p
-nume
-prenume
-email
-descriere Agenda
-id_adr
-strada
-nr_strada
-oras Adresa
-id_tel
-tel_fix
-tel_mobil
-webpage Telefon_ag
-id_tel
-telefon Telefon_f
-id_pref
-prefix_f Pref_op_f
-id_op
-nume_op Op_tel_fix
In continuare vom stabili caracteristicile functionale,adica operatiile pe care
un utilizator poate sa le efectueze.Aceste caracteristici erau definite intr-un
mod mai general in capitolele precedente ,iar in acest capitol vom stabili acele
aspecte care vor fi prezente si in aplicatie cand va fi finalizat.
Am stabilit ca aplicatia din punct de vedere logic si functioanal va fi impartita
in trei parti principale: -Cartea de telefoane
-Carte de afaceri
-Agenda personala
In continuare voi explica functiile si operatiile care se pot executa in cadrul
fiecarei parti.
Tabelul 3 explica si descrie functiile din Cartea de telefoane
Cartea de telefoane
Operatie utilizator Functia care se executa Descrierea functiei
Cauta un abonat dupa nume si prenume Cautare dupa nume si prenume Trebuie selectat
judetul si localitatea de unde este persoana si se executa o cautare dupa criteriul
nume si prenume
Cauta un abonat dupa numarul de telefon Cautare dupa numarul de telefon Selectam
judetul si localitatea si dupa precizarea numarului de telefon se executa o
cautare pe baza acesteia
Cauta un abonat dupa adresa Cautare dupa adresa persoanei Selectam judetul si
localitatea corespunzatoare, precizam strada si se executa o cautare dupa acest
criteriu.
Cauta un abonat dupa localitate Cautare dupa numele localitatii Se precizeaza
judetul si selectam localitatea, si se executa o cautare dupa acest criteriu
Tabel 3
Tabelul 4 numeste si descrie functiile si operatiile din Cartea de afaceri
Cartea de afaceri
Operatie utilizator Functia care se executa Descrierea functiei
Cauta informatii despre firma dupa nume Cautare dupa numele firmei Se specifica
judetul si localitatea in care isi desfasoara activitatea firma si se executa
o cautare dupa numele firmei
Cauta firmele dupa domeniul de activitate Cautare dupa domeniul de activitate
Se selecteaza dintr-o lista un nume de domeniu dintr-o lista si se face o cautare
pe baza acesteia
Cauta firmele situate pe o anumita strada din localitate Cautare dupa adresa
Selectam judetul si localitatea corespunzatoare si precizam strada , si pe baza
acesteia facem o cautare.
Tabel 4
Tabelul 5 descrie si stabileste functiile si operatiile din agenda personala
Agenda personala
Operatie utilizator Functia care se executa Descrierea functiei
Adauga detalii despre o persoana in agenda Adauga detalii persoana in agenda
Precizam detaliile despre persoana, adresa si telefon si validam inregistrarea
lor.
Cauta dupa urmatoarele criterii:nume si prenume ,telefon fix sau mobil si adresa
Cauta detalii despre o persoana din agenda dupa criteriile precizate de utilizator
Alegem o cautare dupa un anumit criteriu ,precizam valoarea criteriului si executam
operatia.
Modifica un atribut existent. Atributele care se pot modifica sunt:nume,prenume,
telefon fix si mobil,adresa si pagina web personala Modifica atributul precizat
de utilizator Alegem care atribut dorim sa-l modificam ,precizam noua valoare
si executam operatia.
Stergere totala Strege toate inregistrarile din agenda Alegand aceasta optiune
sunt sterse toate informatiile din agenda
Tabel 5
In continuare utilizand tehnica grilajului prin urmatorul tabel putem vizualiza
tipul legaturilor intre entitati si cardinalitatea acestora.Prin intermediul
acestui model vizual se va putea trece la analiza logica a bazei de date si
la realizarea schemei bazei de date.
TIPUL LEGATURILOR INTRE ENTITATI IN CARTEA DE TELEFOANE SI CARTEA DE AFACERI
ENTITATE Persoana fizica
Pesoana fizica
________________________________________ Persoana juridica
Persoana juridica
________________________________________
________________________________________ Judet
Judet ________________________________________ ________________________________________
________________________________________ Localitate
Localitate ________________________________________
N:1 ________________________________________ Tip localitate
Tip
Localitate ________________________________________ ________________________________________
________________________________________ 1:N ________________________________________
Strada
Strada ________________________________________ ________________________________________
________________________________________ N:1 ________________________________________
________________________________________ Tip strada
Tip
Strada ________________________________________ ________________________________________
________________________________________ ________________________________________
________________________________________ 1:N ________________________________________
Imobil
Imobil 1:N 1:N ________________________________________ ________________________________________
________________________________________ N:1 ________________________________________
________________________________________
Asa cum se vede din tabelul de mai sus fiecare dintre entitati este legat
printr-un anumit mod la o alta entitate inrudita din punct de vedere logic.Scopul
pentru care au fost create mai multe entitati a fost reducerea la minim a redundantelor
intre date , pentru a optimiza lucrul cu acestea.Asocierea dintre date se face
prin intermediul legaturilor dintre entitatile de date ,care se materializeaza
in practica prin joinuri pe anumite atribute.Observand tabelul se pot vedea
tipurile de legaturi care pot exista intre entitatile de date ,si anume tipul
1:N,N:1 si eventual 1:1 ,care nu este folosit in acest tabel.Aceste tipuri de
legaturi sunt folosite pentru a elimina tipurile de legaturi M:N , care sunt
nepractice.Tabelul de mai sus ilustreaza legaturile dintre entitatile care fac
parte din conceptul logic de Carte de telefoane si Carte de afaceri ,si care
folosesc anumite entitati de date in comun.
In urmatorul tabel ,tabelul 7 ,vizualizam tipurile de legaturi intre entitatile
care fac parte din Agenda personala .Entitatile componente nu au legaturi cu
entiatile din celelalte doua modele de date ,poate fi considerata o schema total
separata de restul.
TIPUL LEGATURILOR INTRE ENTITATI AGENDA PERSONALA
ENTITATE Agenda
Agenda ________________________________________ Adresa
Adresa N:1 ________________________________________ Telefon_ag
Telefon_ag N:1 ________________________________________ ________________________________________
Tabel 7
In tabelul de mai sus se descriu legaturile dintre entitatile de date din
Agenda personala,care dupa cum se observa sunt de tipul N:1 .
In contiunare ar fi util pentru a oferi o imagine mai realista despre baza de
date care se va implementa si utiliza ,sa realizam Diagrama ENTITATE -;RELATIE
(pe scrurt diagrama E-R ),care este un model vizual al bazei de date proiectate.
Elementele vizuale care au o semnificatie in cadrul bazei de date fizice si
sunt prezente pe aceasta diagrama sunt urmatoarele:
-Entitatile de date sunt simbolizate cu ajutorul unor dreptunghiuri
-Linia continua indica obligativitatea relatiei,iar linia intrerupta optionalitatea
unei relatii.
-Optionalitatea unui atribut este indicat prin simbolul cerculet ‘o’,iar
obligativitatea este descrisa de simbolul ‘*’ (asterisc).
- Faptul ca un atribut este identificat in mod unic este redat cu ajutorul simbolului
‘#’.
In continuare vom realiza diagrama E-R:
DIAGRAMA E-R (FIG. 1)
continuarea pagina urmatoare
continuare diagrama E-R
Figura 1
Pentru o mai buna intelegere a modului in care un ultizator va putea executa
niste operatii,deci a modului in care va functioana programul, am creat Diagrama
functionala care exprima modul in care sistemul reactioneaza la aparitia unui
eveniment.Pentru o modelare mai simpla am utilizat tehnica ierarhica,prin care
functionalitatea sistemului si reactia la diferite evenimente este redata printr-o
ierarhie de functii.Dupa cum stim in aceasta aplicatie se pot executa patru
operatii principale:adauga ,cauta ,sterge si modifica.Aceste posibile evenimete
pentru sistem sunt detaliate prin intermediul urmatoarelor ierarhii de functii:
Figura 2 descrie pasii pe care le face un utilizator cand doreste sa adauge
o persoana in agenda.
Figura 3 descrie pasii pe care ii executa un utlizator in vedera modificarii
valorii unui atribut din baza de date existenta:
MODIFICA
Figura 4 descrie operatiile utilizatorului la evenimentul de stergere totala.
STERGERE
In Figura 5 descriem ierarhia de functii care se foloseste in cazul cautarii
unor valori din baza de date.Desi cautarile se executa dupa mai multe criterii
pe care trebuie sa-i precizeze utilizatorul ,algoritmul de cautare in sine este
acelasi ,doar valorile se schimba.
In continuare voi indica structura generala a acestei functii principale a aplicatiei.
CAUTA
In urma analizei facute am decis ca aplicatia sa fie realizata conform urmatorelor
etape:
-proiecatarea logica a bazei de date
-proiectarea functiilor care se vor executa
-proiectarea interfetei utilizator
-implementarea conceptelor proiectate
-testare functionaliate cu ajutorul datelor reale
PROIECTARE
In acest stadiu in urma analizei am definit entatile de date care vor face
parte din sistem ,precum am definit functiile pe care un utilizator il poate
executa din aplicatie.Prin proiectarea aplicatiei urmeaza sa definesc modelul
logic al aplicatiei care pe urma va putea fi implementat cu ajutorul unui produs
SGBD ,in cazul nostru Visual Fox Pro.Doresc sa mentionez ca si aceasta etapa
ca si analiza este independenta de vreo metoda de implementare.Prin proiectare
cerintele de la stadiul analiza sunt preluate si expandate in asa fel incat
sa ofere un model care sa permita realizarea unei aplicatii bine optimizate
si competitive.
Pentru a intelege mai bine diagrama E-R definita in stadiul ‘analiza’
si pentru a justifica intr-un fel, de ce a fost necesara realizarea modelului
actual, voi prezenta si citirea diagramei E-R. Pentru a intelege cateva dintre
expresiile folosite in citirea diagramei, voi explica in ce context se folosesc
anumiti termeni.
Termenul ‘poate’ este folosit pentru a indica ca relatia de legatura
nu este obligatorie.Termenul ‘trebuie’ este folosit pentru a exprima
faptul ca relatia de legatura este obligatorie.
Cand folosim termenul ‘fiecare’ , trebuie sa stim ca la capatul
relatiei este doar unu,mai precis e capatul ‘ONE’ al relatiei, iar
cand folosim termenul ‘unul sau mai multe‘ stim ca este vorba de
capatul ‘MANY’ al relatiei.
In continuare se citeste diagrama E-R:
Fiecare JUDET poate fi alocat pentru unul sau mai multe LOCALITATI si fiecare
dintre ele trebuie sa fie intr-un JUDET si numai unul.
Fiecare LOCALITATE trebuie sa aiba un TIP DE LOCALITE si numai unul,si un TIP
DE LOCALITATE poate fi atribuit pentru unul sau mai multe LOCALITATI.
Fiecare LOCALITATE trebuie sa aiba unul sau mai multe STRAZI , si fiecare STRADA
trebuie sa fie intr-o localitate si numai una.
In fiecare LOCALITATE trebuie sa fie unul sau mai multe PERSOANE FIZICE,si fiecare
PERSOANA FIZICA trebuie se se afle intr-o LOCALITATE si numai una.
In fiecare LOCALITATE trebuie sa se afle una sau mai multe PERSOANE JURIDICE
si fiecare PERSOANA JURIDICA trebuie sa fie intr-o LOCALITATE si numai una.
Fiecare STRADA trebuie sa aiba un TIP DE STRADA si numai unul,si fiecare TIP
DE STRADA poate fi atribuit pentru una sau mai multe STRAZI.
Pe fiecare STRADA trebuie sa se afle unul sau mai multe IMOBILE,si fiecare IMOBIL
trebuie sa fie pe o STRADA si numai una.
Fiecare PERSOANA FIZICA poate sa aiba unul sau mai multe numere de TELEFON FIX,si
fiecare numar de TELEFON FIX trebuie sa fie alocat pentru o PERSOANA FIZICA
si numai una.
Fiecarui numar de TELEFON FIX trebuie sa-i fie atribuit un PREFIX al vreunui
operator si numai unul,si fiecare PREFIX poate fi alocat pentru unul sau mai
multe numere de TELEFOANE FIXE.
Fiecare PREFIX al vreunui operator de telefonie trebuie sa aiba un nume de OPERATOR
DE TELEFONIE FIXA si numai unul, si fiecare dintre acestea pot fi alocate pentru
unul sau mai multe PREFIXE.
Fiecare PERSOANA JURIDICA trebuie sa aiba alocata un DOMENIU de activitate,si
fiecare DOMENIU poate fi alocat pentru unul sau mai multe PERSOANE JURIDICE.
Pentru o persoana din AGENDA pot fi alocate unul sau mai multe ADRESE, si fiecare
ADRESA trebuie sa fie pentru o persoana din AGENDA si numai una.
O persoana din AGENDA poate sa aiba unul sau mai multe TELEFOANE ,si un numar
de TELEFON trebuie sa fie pentru o persoana din AGENDA si numai una.
Citirea diaramei E-R da o imagine mult mai clara asupra modului in care este
realizata proiectarea logica a acesteia.Realizand acest lucru urmatorul pas
ar fi sa determinam caracteristicile fiecarui atribut care fac parte din entitatile
de date care compun diagrama.Aceste proprietati vor fi folosite mai tarziu la
implementarea fizica a bazei de date, determinand chiar caracteristicile datelor
care vor fi introduse in aceasta structura.
In tabelul care urmeaza vom defini proprietatile necesare:
TABELA ATRIBUT TIP ATRIBUT LUNGIME TIP
JUDET id_judet numeric 3 nume_judet char 30 prefix char 5
LOCALITATE id_loc numeric 6 nume_loc char 30
TIP_LOCALITATE id_tloc numeric 2 tip_loc char 10
STRADA id_strada numeric 10 nume_strada char 30
TIP_STRADA id_tstr numeric 2 tip_str char 20
IMOBIL id_imobil numeric 20 nr_imobil char 10 scara char 10 nr_ap char 10
PERSOANA_FIZ id_p numeric 10 nume char 20 prenume char 50
PERSOANA_JUR id_pj numeric 10 nume char 40
DOMENII id_dom numeric 7 domeniu char 30
TELEFON_F Id_tel numeric 10 nr_telefon char 15
PREF_OP_F id_pref numeric 3
Prefix_f char 10
OP_TEL_FIX id_op numeric 10 nume_op char 20
AGENDA id_p numeric 6 nume char 25 prenume char 35 email char 40 descriere memo
TELEFON_AG tel_fix numeric 6 tel_fix char 20 tel_mobil char 20
webpage char 36
ADRESA id_adr numeric 6 strada char 40 nr_strada char 5 oras char 40 tara char 25
Tabel 8
Avand definite numele fiecarui atribut ,ca si tipul si lungimea care fac din
entitatile de date,ar fi cazul sa definim si cheile care fac parte din aceste
entitati.
Cheile conform definitiilor stim ca pot fi ‘cheie primara’ , ‘candidat’
,’unici’ si ‘normali’ .Tipurile de chei care apar in
aceasta schema sunt de tipul cheie primara,candidat si normal(regular).In continuare
voi defini fiecare cheie care face parte din entitati,si pe baza carora se fac
operatiile de join.Astfel voi mentiona si cheile considerate chei straine.
JUDET-cheia primara ii id_judet,prefix si nume_judet sunt considerate chei de
tip candidate.Nu exista chei straine definite.
LOCALITATE-cheia primara ii id_loc,nume_loc,id_tloc si id_judet sunt considerate
chei normale .Cheile straine sunt id_judet si id_loc.
TIP_LOCALITATE-cheia primara ii id_tloc,tip_loc este considerata cheie candidata.Nu
exista chei straine definite.
STRADA-cheia primara ii id_strada,nume_strada,id_loc si id_tstr sunt considerate
chei normale.Cheile straine sunt id_loc si id_tstr.
TIP_STRADA-cheia primara ii id_tstr,tip_str este considerata cheie candidata
.Nu sunt definite chei straine.
IMOBIL-cheia primara ii id_imobil,id_strada,nr_imobil,scara si nr_ap sunt considerati
de tip regular.Cheia straina este id_strada.
PERSOANA FIZICA-cheia primara este id_p,nume,prenume,id_loc,id_judet sunt considerate
de tip regular.Cheile straine sunt id_judet,si id_loc.
TELEFON_F-cheia primara este id_tel,nr_telefon,id_p,id_judet si id_pref sunt
considerate de tip regular.Cheile straine sunt id_judet,id_p,id_tel.
PREF_OP_F-cheia primara este id_pref,prefix_f este de tip candidat iar id_pref
este de tip regular.Cheia straina este id_op.
OP_TEL_FIX-cheia primara este id_op,nume_op este de tip candidat.Nu exista nici
o cheie straina definita.
PERSOANA JURIDICA-cheia primara este id_pj,nume este considerat de tip candidat,iar
id_loc si id_dom sunt de tip regular .Cheile straine sunt id_loc si id_dom.
DOMENII-cheia primara este considerata id_dom,iar domeniu este considerat de
tip candidat.Nu exista chei straine definite.
AGENDA-cheia primara este considerata id_p,email este considerat candidat ,nume
si prenume de tip regular. Nu exista chei straine definite.
TELEFON_AG-cheia primara este considerata id_tel,id_p,webpage,tel_mobil si tel_fix
sunt de tip regular.Cheia straine este id_p.
ADRESA-cheia primara este id_adr,strada,nr_strada,id_p,oras ,tara sunt considerate
de tip regular.Cheia straina este id_p.
Arhitectura sistemului asa cum era specificat in strategie va fi o arhitectura
de tip desktop,considerand ca acesta va fi de ajuns in vederea atingerii functionalitatii
propuse.Utilizand aceasta arhitectura se stie ca atat baza de date cat si aplicatia
sunt pe acelasi sistem de calcul .
Voi prezenta pe scurt caracteristicile acestei arhitecturi pentru documentare.Acest
rezumat este descris cu ajutorul figurii 6
ARHITECTURA DESKTOP
Figura 6
Privind aspectele functionale cat si eventualele dezvoltari sau extensii ale
programului am hotarat ca stilul codului din aplicatie sa fie orientata obiectual.Asta
din cauza multiplelor avantaje pe care le ofera acest stil din punctul de vedere
al organizarii codului.Un alt avantaj ar fi ca si Visual Fox are utilitare care
favorizeaza scrierea programelor in acest stil.Visual Fox nu numai ca este orientat
obiectual,dar ofera si clase predefinite din care putem sa cream obiecte, astfel
apeland metodele dorite si care sunt implementate in aceste clase.Cu ajutorul
acestor clase putem, sa construim interfata utilizator,la aceste interfete putem
sa atasam diferite evenimente care se declanseaza in anumite situatii definite
de programator.
In continuare voi prezenta diagrama de clase care ofera o viziune mai reala
asupra modului in care este organizat codul.
Figura 7 descrie diagrama de clase proiectata:
Figura 7
Pentru a explica aceasta organizare voi intrepreta diagrama de clase:
-Clasa PERSOANA contine toate metodele care opereaza cu entitatile de date care
fac referire la o persoana.
-Clasa ADRESA contine acele metode care care manipuleaza datele care au legatura
cu adresa unei persoane.
-Clasa ABONAT este o extensie a clasei PERSOANA si contine acele metode care
manipuleaza datele care au legatura cu propritatea de abonat.
-Clasa TELEFON contine metodele care manipuleaza datele despre numerele de telefon
a unei persoane.
Intre aceste clase pot exista diferite legaturi.Intre clasa PERSOANA si ABONAT
este relatia de mostenire .Intre clasa PERSOANA si clasele ADRESA SI TELEFON
exista relatia de asociere ,in sensul ca o persoana poate avea unul sau mai
multe adrese sau numere de telefon.
In continuare pentru a oferi informatii despre componentele fiecarei clase,
voi descrie metodele si proprietatile care sunt implementate in clasele existente
si care pot fi apelate cu ajutorul instantelor claselor respective.Ca o precizare
am utilizat notatia UML(Unified Modellig Language) pentru a respecta anumite
standarde create pentru proiectarea claselor.
Fiecare clasa dupa cum se vede pe diagrama,contine un singur atribut,numit “identificator”
care este privat ,avand semnul “-” inainte (vezi UML).Acest atribut
este creat special pentru a gestiona identificarea inregistrarilor in cadrul
tabelelor.Am realizat acest lucru utilizand urmatorul algoritm prin care, cu
ajutorul atributului ‘identificator’, pot asigura identificarea
unica a fiecarei inregistrari:
Utilizand algorimul de mai sus ,fiecare inregistrare va avea un numar de identificare
unic.Fiecare clasa din diagrama are mai multe metode ,care manipuleaza datele
din baza de date.Datele de intrare pentru aceste metode sunt transmise prin
intermediul unor parametrii,care sunt furnizati in momentul in care se apeleaza
cu ajutorul unui obiect.Restul de cod este scris in limbajul SQL,acesta permitand
efectuarea operatiilor de manipulare a datelor.
Fiecare clasa care face parta din aplicatie este grupata intr-o biblioteca de
clase,in cazul nostru avand numele de bib_clase.Prin intermediul acestei biblioateci
se pot face referire la clase si metode in cazul implementarii aplicatiei.
Construire
In cadrul acestui stadiu care caracterizeaza dezvoltarea aplicatiei,voi codifica
conceptele proiectate pana acuma cu ajutorul unor unelte specifice.In cazul
acestei aplicatii am ales ca implementarea sa fie facuta in Visual Fox Pro,acest
produs furnizand toate elementele necesare realizarii cerintelor aplicatiei.
Visual Fox contine un set de utilitare cu ajutorul carora se pot acoperi toate
etapele care tin de realizarea unei aplicatii de baza de date. Cu ajutorul utilitarului
numit “Database Designer “, se poate realiza implementarea fizica
a schemei bazei de date conform specificatiilor din stadiul Proiectare.In urma
crearii entitatilor de date acestea pot fi grupate intr-un fisier cu extensia
*.dbc care permite vizualizarea tuturor entitatilor impreuna.O alta caracteristica
este optiunea prin care intre entitatile de date se pot crea legaturi pe baza
unor atribute .Legaturile pot fi de tipul 1:1 sau N:1.Tot in cadrul acestui
utilitar se pot crea vederile necesare aplicatiei ,aceste pot fi regasite tot
in cadrul fisierului cu extensia *.dbc.
Un alt utilitar foarte important este proiectantul de formulare ,cu ajutorul
careia se poate realiza interfata utilizator.Acesta contine toate elementele
necesare care pot oferi aplicatiei o utlizare usoara si intuitiva.Rolul de a
organiza formularele create,o are proiectantul de meniuri,cu ajutorul careia
aplicatia primeste o imagine mai profesionista si mai usor de folosit.Un rol
foarte important este dat in acesta etapa ,realizarii din partea programatorului
a unei interfete utilizator ,bine definite si usor de utilizat.
Deoarece programul este realizat in mod obiectual ,se utilizeaza proiectantul
de clase vizual,cu ajutorul careia definim clasele “Custom”: definite
de programator.Aceste clase vor fi accesibile prin intermediul unei biblioteci
de clase la care se va face referire.
Utilizand toate aceste unelte de programare se realizeaza implementarea aplicatiei
pe baza modelului conceptual definit in stadiul proiectare.
Testare
Pe parcursul dezvoltarii aplicatiei tot timplul se verifca corectitudinea proiectarii
si a codului aplicatiei.Fiecare modul de aplicatie este testata prima data in
mod unitar apoi , toate modulele sunt testate pentru a vedea daca functioneaza
sau nu conform specificatiilor.Sunt utilizate date reale pentru a testa corectitudinea
si functionarea conform specificatiilor.Se mai poate utiliza si metoda de verificare
incrucisata care permite verificarea mai completa a corectitudinii.In scopul
de a evita orice inconsistenta care poate sa apara pe parcursul rularii aplicatiei,
am introdus un set de conditii de intrare asupra datelor ,care in cazul in care
detecteaza nereguli pentru care au fost realizate ,genereaza un mesaj de eroare,avertizand
utilizatorul si blocand efectuearea operatiei,obligand utlizatorul sa corecteze
anomalia produsa de el.
Pentru a oferi un exemplu real ,prin care demostrez testarea efectuata ,voi
descrie pasii pe care i-am efectuat in vedrea testarii unei singure componete.Luam
ca exemplu optiunea ‘cauta ‘ din cartea de telefoane ,dupa criteriul
nume si prenume.Deci in meniul principal ordinea optiunilor este :Cartea de
telefoane->Cauta->Nume si prenume;
Apare formularul corespunzator optiunii,cu mai multe liste din care va trebui
sa selectam valoarea corecta.Verificam cu acesta ocazie daca valorile aparute
sunt corecte si identice cu cele din baza de date din care se face selectia.Daca
sunt cele corecte precizam o valoare prestabilita pentru nume si prenume conform
celei din baza de date si efectuam cautarea.In final trebuie sa apara rezultatul
asteptat pe care am stabilit-o inainte de a efectua cautarea.Totusi pentru o
mai buna intelegere a pasilor si a operatiilor pe care i-am efectuat ,in capitolul
ANEXE sunt prezente si imaginile sub numele figura 4,5,6,7;
In acest mod se testeaza fiecare componenta din aplicatie ,si se evalueaza rezultatele
obtinute cu cele asteptate.
Documentatie utilizator
In scopul de a realiza o aplicatie care sa poata oferi utilizatorilor sai
informatii de ajutor in cel mai scurt timp si cel mai usor mod ,am creat in
HTML help workshop ,o documentatie utilizator care se poate apela chiar din
aplicatie .Pe bara de meniuri exista aceaste optiune prin care un utilizator
poate sa afle informatii utile despre modul in care functioneaza aplicatia si
despre modul in care se pot efectua diferite operatii.Motivul pentru care am
ales acest produs (HTML help workshop) este ca permite obtinerea de ajutor pentru
utilizator chiar din interiorul aplicatiei ,care este implementata in Visual
Fox.Astfel am putut realiza o documentie cu interfata cunoscuta pentru un utilizator,
deoarece multe dintre aplicatiile existente utilizeaza acest stil si produs
pentru asa numitul “Help”.
In capitolul ANEXE sunt disponibile imaginile prin care exemplific modul in
care se pot efectua diferite operatii de catre utilizator.
5. MEMORIU JUSTIFICATIV
Pentru implementarea fizica am utilizat produsul Visual Fox, care este capabil
sa creeze aplicatii de baze de date,ofera o unelta cu ajutorul carora se poate
realiza functionalitatea ceruta .Poseda un limbaj de maniplure a datelor bine
dezvoltat si permite programarea obiectuala.
Toate elementele proiectului au fost implementate conform specificatiilor din
stadiul analiza si proiectare.Elementele realizate au fost grupate intr-un ‘Project
manager’,o alta facilitate oferita de Visual Fox ,acest lucru fiind precizat
cu ajutorul Figurii 1.
Figura 1
In acest proiect au asamblate toate componentele si la sfarsit cu ajutorul optiunii
Build au fost compilate ca o singura aplicatie.
Modul in care a fost implementata baza de date precum si imaginea fizica al
acesteia este redata prin Figura 2,care ne ofera informatii atat despre structura
bazei de date cat si despre tipurile de legaturi care au fost identificate intre
ele.
STRUCTURA IMPLEMENTATA A BAZEI DE DATE
Figura 2
3.1 Contributii personale
Pentru a realiza aplicatia propusa, in primul rand am realizat partea de date
deoarece intreaga aplicatie se bazeaza pe acest aspect .Avand schema de date
implementata dupa modelul proiectat,am putut avea o imagine mai clara despre
aplicatie si in cazul in care a fost nevoie, sa efectuez ultimele adaptari si
reglari pentru a realiza toate operatiile intr-un mod optim.Tinand cont de modelul
de date implementat, am realizat si partea procedurala, adica partea care efectueza
manipularea efectiva a datelor.Aceasta parte fiind realizata conform paradigmei
obiectuale,respectand conventiile stabilite.
Una din cele mai importante parti din procesul de realizare a unei aplicatii,
este realizarea interfetei utilizator,care din punctul de vedere al unui utilizator
obisnuit este hotarator intr-un procent destul de mare daca va utiliza frecvent
aplicatia sau nu.Se poate considera ca acest aspect da o valoare suplimentara
unei aplicatii oarecare,usurand in mod evident realizarea unor operatii.
Odata ce aplicatia este executata, apare meniul principal .Pe bara de meniuri
exista mai multe optiuni ,dintre care utilizatorul poate sa selecteze ceva in
functie de ceea ce doreste sa faca.Structura acestui meniu este data de Figura
3.
Figura 3
In continuare voi explica fiecare optiune din acest meniu:
-<Carte de telefoane> se refera la un grup de formulare in care sunt implementate
diferite optiuni de cautare ,permitand aflarea unor informatii despre un abonat
.
-<Cartea de afaceri> contine informatii despre firmele care isi desfasoara
activitatea in Romania,optiunea este cea de cautare dupa diferite criterii
-<Agenda personala>contine un grup de optiuni mai complexe ,care permit
efectuarea urmatorelor operatii:adauga ,cauta, modifica si sterge.
-<Ajutor>permite apelarea de catre un utilizator a unui “help”
in cadrul aplicatiei ,care ii permite sa afle informatii despre utilizarea aplicatiei.
-<Iesire>prin intermediul acestei optiuni se poate parasi aplicatia.
In cadrul ficarei optiuni din meniu se apeleza cate un formular care efectueza
cate o operatie care este definita in cerintele aplicatiei.
Urmatorul tabel(Tabel 1) ofera o imagine mai clara privind optiunea de care
apartin sau de modul in care sunt organizate.
OPTIUNE MENIU NUME FORMULAR OPERATIA EFECTUATA
Cartea de telefoane Caut_abon_num CAUTARE
Cartea de telefoane Caut_abon_telefon CAUTARE
Cartea de telefoane Caut_abon_adr CAUTARE
Cartea de telefoane Caut_bon_localitate CAUTARE
Cartea de afaceri Caut_pj_nume CAUTARE
Cartea de afaceri Caut_pj_domeniu CAUTATRE
Cartea de afaceri Caut_pj_adr CAUTARE
Agenda personala Agenda ADAUGA
Agenda personala Caut_ag_num_pren CAUTARE
Agenda personala Caut_ag_tel_f CAUTARE
Agenda personala Caut_ag_tel_m CAUTARE
Agenda personala Mod_ag_num MODIFICA
Agenda personala Mod_ag_prenume MODIFICA
Agenda personala Mod_ag_nr_fix MODIFICA
Agenda personala Mod_ag_nr_mobil MODIFICA
Agenda personala Mod_ag_str MODIFICA
Agenda personala Mod_ag_oras MODIFICA
Agenda personala Mod_ag_tara MODIFICA
Agenda personala Mod_ag_pagina_w MODIFICA
Agenda personala Sterg_inf_contact STERGERE
Tabel 1
Caracteristicile vizuale ale fiecarui formular sunt prezentate in capitolul
ANEXE .In continuare voi prezenta pe scurt cateva din proprietatile formularelor
,pe care le-am grupat dupa operatiile pe care le efectueaza.
-CAUTARE:formularele care fac parte din acest grup sunt definite conform Tabelului
1 . In principiu fiecare dintre aceste formulare efectueza operatia de cautare
dupa urmatorul algoritm:selectam judetul ,tipul localitatii si localitatea din
care face parte atributul pe care il cautam si pe urma efectuam cautarea,aplicatia
oferind rezultatele cautarii .Fac exceptie de la acest lucru formularele la
care nu este nevoie sa selectam anumite proprietati, ci precizam pur si simplu
valoarea atributului pe care il dorim sa cautam .
-ADAUGA: este un singur formular care permite acest lucru ,dar este unul mai
complex,care este impartit in mai multe pagini ,cu ajutorul carora putem sa
adaugam informatii grupate pe anumite criterii.In cazul in care gresim vreo
informatie putem sa anulam operatia,ca pe urma sa reluam furnizand detaliile
corecte.In urma completarii campurilor care sunt obligatorii trebuie sa validam
datele furnizate ,aplicatia urmand sa o introduca in baza de date.
-MODIFICA : formularele care permit acest lucru functioneaza dupa urmatorul
principiu generalizat:trebuie sa selectam numele ,prenumele si adresa de e-mail
a unei persoane ,si in functie de tipul modificarii pe care ne permite formularul
,precizam noua valoare a unui camp existent in baza de date.In urma acesteia
trebuie sa validam operatia de modificare.
-STERGE:la aceasta optiune exista un singur formular care intreaba utilizatorul
daca este de acord cu adevarat cu stergerea totala a inregistrarilor din baza
de date, si daca primeste un raspuns pozitiv efectueaza operatia.
Dupa cum se stie din capitolul proiectare ,am ales ca paradigma de programare,cea
orientata obiectual.Am realizat o diagrama de clase cu relatiile dintre clase
,acesta fiind un model pe baza careia am realizat implementarea din punctul
de vedere al codului.Pentru a realiza aceasta implementare am utilizat proiectantul
de clase ,utilitar oferit de “proiect manager”.Cu ajutorul acesteia
am putut defini clasele propuse , impreuna cu metodele si proprietatile aferente
acestora.
Aceste clase sunt grupate intr-o biblioateca de clase ,pentru a utiliza clasa
in cadrul unei alte clase de exemplu dintr-un formular ,se face referire la
aceasta biblioteca.In cazul nostru biblioteca de clase se numeste bib_clase
si contine clasele abonat ,adresa ,telefon si persoana.
Figura 4
Figura 4 ofera o imagine mai clara referitor la acest proiectant de clase impreuna
cu biblioteca de clase si clasele din acesta.La aceste clase sunt adaugate in
mod interactiv metodele si proprietatile necesare ca apoi la nevoie sa se poate
crea instante ale claselor si sa apeleze metodele dorite.Fiecare metoda din
clasa este implementata si acesta implementare este disponibila,prin intermediul
proprietatilor clasei in mod interactiv.Codul din unele metode este disponibil
in capitolul ANEXE,impreuna cu alte elemente care sunt in legatura directa cu
aceste clase.
In cadrul aplicatiei se utilizeaza nu numai clase definite de programator(Custom),
ci si clase predefinite in cadrul produsului Visual Fox.Metodele acestor clase
sunt utilizate in cadrul formularelor,deci pentru realizarea interfetei utilizator.
Pentru realizarea diferitelor operatii cu date, mai ales cele de cautare ,dar
nu nunai,am decis ca sa realizez asa numite ‘vederi ‘,cu ajutorul
carora pot efectua aceste operatii intr-un mod mai simplu.Se stie din diagrama
E-R, ca pentru a reduce redundanta datelor se creaza mai multe entitati cu legaturi
intre ele.Aceste legaturi sunt pe anumite criterii(atribute definite), sunt
asa numitele ‘joinuri’.Rolul vederilor este de a realiza aceste
legaturi ,astfel avand la dispozitie datele in format complet fara a fi nevoie
de a efectua manual aceste legaturi.
Operatiile de cautare sunt efectuate prin intermediul acestor vederi ca si cele
de modificare de atribute.Pentru a avea la dispozitie datel in format complet
este nevoie sa cream mai multe vederi cu ajutorul carora sa ajungem la o vedere
care sa contina toate datele necesare.
Visual Fox pune la dispozitie un utilitar cu ajutorul careia se pot crea vederi
intr-un mod interactiv.Acestea odata create pot fi adaugate in fisierul cu extensia
*.dbc, in care sunt adaugate si tabelele,in cazul nostru fisierul avand numele
de “date”.Figura 5 contine aceste vederi, care sunt implemenate
in “Database Designer”.
STRUCTURA IMPLEMENTATA A VEDERILOR
Figura 5
Dupa cum se vede exista mai multe vederi cu ajutorul carora se realizeaza
vedera finala.In continuare voi explica fiecare vedere de mai sus ,entitatile
de date sau celelalte vederi cu ajutorul carora este realizata.
Tabelul 2 contine denumirea vederilor ,entitatile de date care participa si
atributele existente.
NUME VEDERE ENTITATI COMPONENTE ATRIBUTUL DE JOIN
V1 TIP STRADA+STRADA id_tstr
V2 V1+IMOBIL id_strada
V3 TIP_LOCALITATE+LOCALITATE id_tloc
V4 V2+V3 id_loc
V5 JUDET+V4 id_judet
V7 OP_TEL_FIX+PREF_OP_F id_op
V8 TELEFON_F+V7 id_pref
V9 PERSOANA_FIZ+V8 id_p
V10_P_FIZ V5+V9 id_imobil
V11 DOMENII+PERSOANA_JUR id_dom
V12_P_JUR V5+V11 id_imobil
V_AG_TEL AGENDA+TELEFON_AG id_p
V_AGENDA ADRESA+V_AG_TEL id_p
Tabel 2
Din tabelul 2 putem afla informatii denerale despre fiecare dintre aceste vederi.Pentru
a justifica aceasta structura a vederilor ar fi util ca sa precizez si atributele
care fac parte din acestea, deoarece chiar asta este si scopul vederilor create,si
anume sa obtinem o entitate care sa contina anumite atribute intr-un singur
loc.
In continuare voi preciza atributele din fiecare vedere:
-V1 contine atributele:id_strada,nume_strada,id_loc,tip_str;
-V2 contine atributele:id_loc,nume_strada,tip_str,nr_imobil,scare,nr_ap;
-V3 contine atributele:id_loc,id_judet,nume_loc,tip_loc,id_tloc;
-V4 contine atributele: id_judet, tip_loc, nume_loc, tip_str, nume_strada nr_imobil,
scara, nr_ap, id_loc,id_tloc;
-V5 contine atributele: id_judet, nume_judet, prefix, tip_loc, nume_loc, tip_str,
nume_strada, nr_imobil, scara, nr_ap, id_loc,id_tloc;
-V7 contine atributele: id_pref, prefix_f, nume_op;
-V8 contine atributele:id_judet,id_p,nr_telefon,prefix_f,nume_op;
-V9 contine atributele:nume, prenume, id_judet, nr_telefon,prefix_f, nume_op;
-V10_p_fiz contine atributele: nume, prenume, nr_telefon,nume_op, nume_judet,
tip_loc, nume_loc, tip_str,nume_strada,nr_imobil, scara,nr_ap, prefix,id_judet,
id_loc,id_tloc;
-V11 contine: nume,domeniu,id_dom,id_pj,id_loc;
-V10_p_jur contine:nume,domeniu,nume_judet,tip_loc,nume_loc, tip_str, nume_
strada , nr_imobil, scara,nr_ap, id_judet, id_loc,id_tloc,id_dom,id_imobil;
-V_ag_tel contine:nume,prenume,email,tel_fix,tel_mobil,webpage,descriere,id_p;
-V_agenda contine: :nume,prenume, tel_fix,tel_mobil,email,webpage, strada ,nr_strada,
oras ,tara,id_p,descriere;
Pentru a oferi aplicatiei o utilitate mai completa, am decis sa creez o documentatie
disponibila pentru un utilizator chiar din cadrul aplicatiei.Aceasta optiune
prin care a se poate realiza acesta este optinunea ajutor prezenta in meniul
principal al aplicatiei.
Documentia utiliator este realizat in programul Html help workshop,deoarece
permite realizarea unei documentatii uso