Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Enunt
Sa se proiecteze un magazin virtual de vanzare de carte care sa raspunda cerintelor potentialilor clienti, cu ajutorul unui site dinamic, carateristicile esentiale ale acestuia fiind dinamismul si interactivitatea.
In prezent aproape jumatate de miliard din populatia globului are acces la Internet. Lumea pare sa se micsoreze iar vietile noastre devin tot mai direct afectate de evenimentele zilnice intr-o continua transformare. Site-urile care ofera produse si servicii sunt intr-o continua crestere. Utilizatorii tind sa prefere cumparaturile online datorita comoditatii de a comanda un produs fara efort sau deplasare. Un studiu al Cyberatlas releva ca vanzarile online au cel mai mare potential de dezvoltare din intreg sectorul economic. Un astfel de site nu este doar informativ ci ofera utilizatorului posibilitatea de a interactiona, de a-si personaliza experienta online. Un site dinamic are ca principal avantaj, asupra unui static, usurinta in administrare. Adaugarea sau modificarea continutului este foarte simplu de realizat, continutul fiind stocat in baza de date sau in fisiere text.
Actualul site se refera la vanzare de carte, dar poate fi usor schimbat pentru oricare fel de produse.
Sistemul este solicitat de Editura "Cartea - prietena mea", sectia Cartea prin posta, Bucuresti pentru a fi utilizat la vanzarea produselor oferite de aceasta. Sistemul trebuie sa permita:
6. Administrare. Pe langa acestea este nevoie si de o sectiune de administrare cu ajutorul careia sa adaugam sau sa scoatem carti din "rafturile" magazinului virtual, sa definim domenii si sa revizuim comentariile vizitatorilor. Tot aici se va vedea o pagina unde exista ultimele cereri si sa bifam tranzactiile efectuate dupa primirea banilor si trimiterea cartilor cerute.
Site-ul trebuie sa fie compatibil cu toate versiunile majore de browsere, in special Microsoft Internet Explorer si Netscape Navigator. Probleme apar in special la afisarea fonturilor in diferite browsere. Fonturile Arial si Verdana sunt afisate in ambele browsere, fiind cel mai des folosite. Nu este recomandat utilizarea unor fonturi mai putin folosite
Sistemul va permite:
accesarea de catre utilizator a unei baze de date;
afisarea domeniilor, titlurilor si imaginea copertelor cartilor (formatul *.bmp , *.jpg sau *.gif);
afisarea comentariilor utilizatorilor si posibilitatea adaugarii unui nou comentariu;
utizarea unei functii de cautare;
procesarea textului trimis de utilizatori si adaugarea acestuia in baza de date;
afisarea formularului de introducere a datelor pentru expediere si plata, prelucrarea acestor date;
trimiterea unui email de notificare;
accesarea unei zone de administrare a site-ului protejata prin parola;
afisarea unui formular de login;
verificarea informatiilor din formular si autorizarea sau nu a accesului mai departe;
adaugarea, modificarea sau stergerea de pe site de carti, domenii sau autori;
afisarea comentariilor utilizatorilor si posibilitatea de a le sterge sau modifica pe cele nepotrivite;
Date de intrare - iesire pentru sistem
interfata site-ului este conceputa sa ruleze optim pe o placa grafica ce suporta minim o rezolutie de 800 × 600 si o adancime a culorii de 16 biti si folosirea optiunii Small Fonts ;
interfata poate fi rulata atat sub Windows 95/98/Me/NT/2000/XP cat si sub sistemele Linux
Date memorate in sistem
fiecarui element sa i se poata asocia urmatoarele date:
o carti: identificatori (id_carte, id_autor, id_domeniu), titlu, descriere;
o autori: id_autor, nume_autor;
o domenii: id_domeniu, nume_domeniu;
o comentarii: id_comentariu, id_carte, nume_utilizator, adresa_email, comentariu;
o tranzactii: id_tranzactie, data_tranzactie, nume_cumparator, adresa_cumparator, comanda onorata;
o vanzari: id_tranzactie, id_carte, nr_buc;
Date accesate din retea
Baza de date referitoare la cartile aflate in magazinul virtual va fi accesata prin reteaua Internet, aceasta baza de date este actualizata in permanenta si contine urmatoarele campuri:
Costul programului va trebui sa fie de cel putin 10 ori mai mic decat produsele VOGEL CHIP, etc.
Termen de livrare : 25.09.2004 ver.1.0
echipament hardware : calculator Pentium 233Mhz, card grafic 2D cu min. 8Mb video RAM.
memorie interna : 64 Mb RAM
memorie externa : 100 Mb liberi pe hard disk, CD-ROM
sistem de operare : Windows 95/98/NT/ME/2000/XP
limita timp de raspuns : 5 sec. pentru incarcarea unei pagini a site-ului (la 8 Mb video RAM), 10 sec. pentru afisarea unei interogari ale bazelor de date (existente pe acelasi hard disk).
Programul va fi dezvoltat in mediul APACHE + PHP; bazele de date accesate vor trebui sa fie de tip MySQL.
baza de date va trebui sa poata contine date despre 20.000 carti.
fiabilitatea solicitarilor: sistemul nu trebuie sa se blocheze mai des de 6 luni.
modul de operare al intregului sistem trebuie sa fie la nivelul unui utilizator PC cu pregatire medie
Implementarea sistemului trebuie sa se realizeze cu usurinta daca se foloseste ca server Apache 1.3.27. Alte versiuni sunt in stadiu experimental si momentan nu sunt recomandate.
Timpul de raspuns al sistemului la cererile sosite de la tastatura trebuie sa fie minimizat.
Utilizarea memoriei interne trebuie sa fie cat mai redusa.
Aceasta etapa porneste de la specificatiile problemei de rezolvat. Scopul acestei etape consta intr-o intelegere profunda a domeniului aplicatiei, precum si a cerintelor concrete ale aplicatiei. O analiza corecta capteaza aspectele esentiale, evitandu-se pierderea generalitatii prin introducerea de aspecte nesemnificative legate de implementare. Rezultatul va fi modelul aplicatiei format din cele trei submodele:
- modelul obiectual;
- modelul dinamic;
- modelul functional.
Un model corect trebuie sa fie usor de inteles de specialistii din domeniul aplicatiei, fara cunostinte de programare.
Dupa cum s-au prezentat cerintele de catre utilizator se pot evidentia cateva aspecte principale despre cum va trebui sa arate aplicatia si anume:
programul va trebui sa aiba un suport grafic care nu va trebui sa necesite resurse deosebite hardware sau memorie foarte multa, asigurand deasemeni o stabilitate suficienta in exploatare
programul va trebui sa acceseze o baza de date MySQL care va contine informatii despre carti;
va trebui creata o legatura dintre paginile web si baza de date
programul trebuie sa fie usor de perfectionat prin adaugarea de alte cerinte privind baza de date care se afla intr-o permanenta modificare
Modulul de interfata utilizator
Modulul de interfata administrare
Modulul de asociere a elementelor paginilor web cu inregistrarile din baza de date
Modulul de interfata utilizator, tip pagina web cuprinde de fapt o combinatie de mai multe pagini. Unele elemente sunt prezentate pe toate paginile din acest site: titlul paginii, logo-ul, setul de caractere, meniul cu domeniile de carte, notita de copyright precum si caseta de cautare.
Modulul de interfata administrare, in care toate paginile din aceasta zona vor fi protejate prin parola; contine formularul de login precum si formulare de adaugare, stergere sau modificare titluri de carti, domenii, autori; moderare opinii cititori, onorare comenzi.
Modulul de asociere a elementelor paginilor web cu inregistrarile din baza de date cuprinde de fapt partea de interactiune cu utilizatorul. Acest modul trebuie sa dea raspuns la anumite categorii de interogari cum sunt:
'Ce este la?' Cauta sa determine ce elemente (carti) exista intr-un anumit loc (domeniu).
'Unde este ?' Acest tip de intrebare este inversul primului tip
- Se evidentiaza clasele care fac parte din sistem;
- Se modeleaza relatiile dintre ele si se stabilesc asocierile.
- Se deseneaza diagrama de obiecte
Fig. Diagrama de obiecte
Descrie acele aspecte ale sistemului care se schimba in timp
Specifica si implementeaza partea de control a sistemului
Descrie cand se modifica sistemul
Este reprezentat cu ajutorul diagramelor de stare
Modelul dinamic reflecta schimbarile produse in baza de date, respectiv influenteaza in mod direct rezultatele unei interogari.
Pagibile WEB dinamice inlatura neajunsurile paginilor WEB statice. O pagina WEB odata generata, nu mai are nevoie decat de eventuale ajustari cel mai des in sensul design-ului paginii
Fig. Diagrama de stare pentru clasa X
Este reprezentat cu ajutorul diagramelor de flux de date (graf ale carui noduri sunt procesele si ale carui arce sunt fluxurile de date)
Fig. Diagrama fluxului de date
Dupa analiza modulelor realizata anterior am stabilit trei module generale ale aplicatiei care se prezinta ca:
interfata utilizator
interfata administrare
asocierea elementelor paginilor web cu inregistrarile din baza de date
Pentru sistemul aplicatiei distingem urmatoarele subsisteme:
fereastra principala de interfata utilizare
ferastra principala de interfata administrare
selectare si prelucrare date
baza de date
Pachetul Aplicatiei |
||||
Control dialog introducere date |
Control dialog afisare date |
Grafica fereastra |
Prelucrare date |
BD |
Grafica ecran |
||||
Grafica element |
||||
Grafica pixel |
||||
Sistem operare |
||||
Hardware |
2.4. Modelul conceptual al datelor
Schema unei relatii este formata din numele relatiei, atributele acesteia si restrictiile de integritate.
Schemele tabelelor bazei de date:
admin (admin_nume, admin_parola)
autori (id_autor, nume_autor)
Restrictii de integritate
R11: id_autor, constituie cheia primara
carti (id_carte, id_autor, id_domeniu, titlu, descriere, pret, data)
Restrictii de integritate
R11: id_carte + id_domeniu, cheia primara
comentarii (id_comentariu, id_carte, nume_utilizator, adresa_email, comentariu)
Restrictii de integritate
R11: id_comentariu + id_carte, cheia primara
domenii (id_domeniu, nume_domeniu)
tranzactii (id_tranzactie, data_tranzactie, nume_cumparator, adresa_cumparator, comanda_onorata)
Restrictii de integritate
R11: id_tranzactie, cheia primara
vanzari (id_tranzactie, id_carte, nr_buc)
Restrictii de integritate
R11: id_tranzactie + id_carte, cheia primara
Restrictii de integritate inter-tabele
R1R1: id_carte din comentarii refera id_carte din carti
R1R2: id_carte din vanzari refera id_carte din carti
R1R3: id_autor din carti refera id_autor din autori
R1R4: id_domeniu din carti refera id_domeniu din domenii
R1R5: id_tranzactie din vanzari refera id_tranzactie din tranzactii
Dictionar:
Nr.crt. |
Atribut |
Descrierea atributului |
admin_nume |
Numele administratorului |
|
admin_parola |
Numele parolei criptate |
|
id_autor |
Identificator nume autor |
|
nume_autor |
Numele autorului cartii |
|
id_carte |
Identificator nume carte |
|
id_domeniu |
Identificator nume domeniu |
|
titlu |
Titlul cartii |
|
descriere |
O scurta descriere a cartii |
|
pret |
Pretul cartii |
|
data |
Data cumpararii |
|
id_comentariu |
Identificatorul comentariului |
|
nume_utilizator |
Numele utilizatorului |
|
adresa_email |
Adresa de email a utilizatorului |
|
comentariu |
Comentariul utilizatorilor |
|
nume_domeniu |
Numele domeniului de carte |
|
id_tranzactie |
Identificatorul numelui tranzactiei |
|
data_tranzactie |
Data efectuarii tranzactiei |
|
nume_cumparator |
Numele cumparatorului |
|
comanda_onorata |
Ia valorile 1 sau 0 daca comanda a fost onorata sau nu |
|
nr_buc |
Numarul de bucati de carte cerute |
Tabelele bazei de date vor fi de tip *.frm, *.MYD, *.MYI iar paginile web for fi comstruite cu fisiere *.php. PHP ofera o multime de functii predefinite pentru lucrul cu baze de date. Din cadrul PHP se pot executa toate operatiile efectuate cu MySQL. De exemplu mysql_conect ne conectam la baza de date specificand hostul la care acesta se afla (localhost), numele de utilizator (root) si parola (daca la inceput e goala folosim un string gol: " "). Functia mysql_select_db ("librarie") este echivalenta cu USE librarie.
Structura site
Zona utilizatori
index.php - prima pagina
domeniu.php - pagina domeniilor de carte (Poezie, Roman, SF etc.) in care sunt afisate cartile din domeniul respectiv;
carte.php - pagina in care se vor vedea detalii despre carte, coperta, comentariile cititorilor;
adauga_comentariu.php - va procesa textul trimis de utilizatori si il va adauga in baza de date;
cos.php - pagina unde vizitatorul poate vedea si edita continutul cosului de cumparaturi;
casa.php - cuprinde formularul de introducere a datelor pentru expediere si plata
prelucrare.php - pagina care va prelucra datele trimise prin formularul din casa.php: le introduce in baza de date, va trimite un email de notificare si apoi afiseaza un mesaj de multumire.
Zona administrare
Toate paginile din aceasta zona vor fi protejate de parola si se vor afla intr-un director administrare
index.php - afiseaza un formular de login;
login.php - verifica informatiile din formular si autorizeaza sau nu accesul mai departe, la pagina urmatoare;
comenzi.php - cu ajutorul acestei pagini se vor face cele mai dese actiuni. Ea va contine comenzile inca neonorate si va da posibilitatea de a le marca;
adaugare.php - pentru adaugare sau stergere de carti si domenii;
modificare_stergere.php - pagina cu ajutorul careia vom putea modifica sau sterge date de pe site: carti, autori, domenii;
opinii.php - afiseaza comentariile utilizatorilor neverificate inca si ofera posibilitatea stergerii sau modificarii acestora.
Crearea bazei de date
Baza de date este solutia cea mai flexibila pentru realizarea cerintelor.
MySQL este un sistem de management pentru baze de date relationale. Datele sunt stocate in mai multe tabele separate, astfel inbunatatindu-se viteza si flexibilitatea. Tabelele sunt legate prin relatii bine definite, fiind astfel posibil sa combinam datele din mai multe tabele.
SQL (Structured Query Language) este limbajul standard pentru comunicarea cu bazele de date. Comenzile sunt folosite pentru a interactiona cu baza de date (sa adauge, sa modifice sau sa stearga datele).
Modelul relational de reprezentare a bazelor de date
Relatiile se reprezinta intr-o forma simpla prin tabele, supuse urmatoarelor restrictii:
in fiecare coloana toate valorile sunt de acelasi fel;
fiecare valoare este un numar sau un sir de caractere;
ordinea in tabel nu este predefinita si nu sunt admise duplicate;
coloanele sunt identificate prin nume distincte care reprezinta atributele relatiei;
Tuplurile(inregistrarile) unei relatii se pot identifica in mod unic prin intermediul valorilor unuia sau mai multor atribute care joaca rol de cheie primara a relatiei respective. Valorile cheii primare nu trebuie sa admita valori nule, altfel cheia primara nu mai este un identificator.
Comenzile SQL care au cele mai utilizate la crearea bazei de date:
CREATE TABLE - pentru definirea structurii relatiilor bazei de date, crearea tabelelor;
INSERT - pentru inserarea de inregistrari intr-o tabela;
SELECT - permite interogarea bazei de date, selectarea realizandu-se la nivelul uneia sau mai multor tabele;
UPDATE - pentru modificarea continutului unei inregistrari;
Normalizarea.
Normalizarea are drept scop obtinerea unei "bune" scheme relationale si ofera un cadru riguros pentru definitia schemei relationale.
Structurarea tabelelor bazei de date in asa fel incat datele sa ocupe cat mai putin spatiu pe disc sa realizat prin crearea id - urilor. S-au creat id-uri numerice in loc de nume si schimbarea tipului campului id din TEXT in SMALLINT
Initializari:
1. Fereastra principala va fi initializata la o dimensiune optima atat pentru utilizarea programului, cat si a altor ferestre deschise de sistemul de operare (vom opta la 9/10 din screen).
2. Se vor inregistra tipurile de documente utilizate
Terminari:
1. Dupa interogari sau modificari se vor elibera bazele de date.
Rapiditatea de obtinere a datelor
Prelucrarea bazei de date ce cuprinde informatiile despre carti
Implementarea sistemului s-a realizat cu Apache + PHP+ MySQL
Dupa crearea bazei de date proiectul a fost pregatit pentru introducerea codului sursa necesar implementarii functiilor impuse de specificatii.
Pentru testarea paginilor este nevoie de un browser. Am utilizat Internet Explorer, Netscape Navigator, Opera si Mozila.
S-au verificat interogarile referitoare la cartile existente in baza de date Sistemul a functionat fara erori, iar timpul de raspuns a fost sub 2 secunde pentru cautarea unei inregistrari existente in baza de date.
Aplicatia a fost prezentata personalului Editurii "Cartea, prietena mea" din diverse compartimente unde aceasta isi gaseste utilitatea. A fost conceput urmatorul chestionar la care s-au primit raspunsurile precizate:
Cat de utila vi se pare aplicatia pentru activitatea dvs.
a. Foarte utila 95% b. Utila 5% c. Inutila / Nu cunosc 0%
Considerati ca informatiile pe care la poate da sistemul corespund solicitarilor dvs. ?
a. Corespund pe deplin 80% b. Sunt suficiente 20% c. Sunt insuficiente 0%
Interfata de utilizator este suficient de atractiva ?
a. Atractiva 70% b. Corespunzatoare 30% c. Prea complicata 0%
Considerati ca viteza de raspuns a sistemului este adecvata solicitarilor dumneavoastra ?
a. Foarte buna 85% c. Suficienta 10% d. Trebuie imbunatatita 5%
Posibilitatile de modificare a informatiilor sunt suficiente?
a. Da 95% b. Nu 0% c. Nu stiu 5%
Sunt suficiente tipurile de fisiere cu care poate lucra aplicatia ?
a. Da 90% b. Nu 0% c. Nu stiu 5%
Consideram din opiniile personalului intervievat ca aplicatia corespunde specificatiilor prezentate in cap. II .
Conform schemei de clasificare introduse de E. Yourdan aplicatia de fata se incadreaza in categoria programelor simple deoarece:
- au mai putin de 1.000 linii sursa;
- sunt scrise de un singur programator in cel mult 6 luni;
- nu au interactiuni cu alte programe sau sisteme;
Dupa un alt sistem de clasificare intalnit in literatura de specialitate bazat pe faptul ca orice program este un alt model al unui model teoretic pentru o abstractizare a unei portiuni din lumea reala, aplicatia se incadreaza in categoria programelor S, deoarece functia programului este definita complet prin specificatie.
Functionalitatea este asigurata de respectarea cerintelor impuse de beneficiar si de indrumatorul de proiect. De asemeni, mediul de programare nu a inregistrat avertismente la scrierea codului sursa. In faza de testare a programului nu s-au inregistrat blocaje sau pierderi de date.
Eficienta este asigurata de timpul de raspuns la interogari precum si de posibilitatile asigurate de interactiunea cu sistemul.
Pentru evaluarea fiabilitatii s-au calculat urmatoarele marimi:
P1 = numarul total de module din program = 13
P2 = numarul de module dependente de intrari / iesiri = 2
P3 = numarul de module dependente de o procesare anterioara = 1
P4 = numarul de elemente din bazele de date = 5
P5 = numarul de elemente neunice din baza de date = 0
P6 = numarul de segmente din baza de date = 0
P7 = numarul de module cu mai mult de o intrare si o iesire = 2
Cu aceste marimi se evalueaza sase marimi derivate D1 - D6 care exprima simplitatea structurii programului:
D1 = caracterizeaza tipul proiectarii (ascendent sau descendent) = 1
D2 = caracterizeaza dependenta la nivelul modulelor P2 / P1 = 0,15
D3 = caracterizeaza dependenta de o procesare anterioara P3 / P1 = 0,07
D4 = caracterizeaza marimea bazei de date P5 / P4 = 0
D5 = caracterizeaza compartimentarea bazei de date P6 / P4 = 0
D6 = caracterizeaza marimea interactiunii cu exteriorul P7 / P1 = 0,15
Indicele de structurare a proiectului DSM = Σ wi Di unde ponderile de importanta a caracteristicilor au valorile:
w1 = 20%
w2 = 10%
w3 = 30%
w4 = 10%
w5 = 10%
w6 = 20%
DSM = 0,266
Copyright © 2024 - Toate drepturile rezervate