Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
ELABORARE PROGRAME
Dupa incheierea etapei de proiectare urmeaza realizarea propriuzisa a progrmelor si crearea efectiva a bazelor de date.
Criterii care stau la baza alegerii SGBD-ului:
Facilitati si performante
Costuri de achizitionare
Costuri de exploatare
Nivel de pregatire necesar
Securitate
Portabilitate
Pe baza proiectului tehnic de detaliu, programatorul va trece la scrirea efectiva a programelor, adica codificarea in limbaj de programare a algoritmilor stabiliti. Acesta etapa are un caracter tehnic, parte din operatiile care initial erau facute de programator pot fi automatizate si realizate cu ajutorul generatoarelor (programarea vizuala).Tot programatorul va realiza si algoritmii specifici limbajului, care nu sunt prevazuti la proiectarea tehnica, lasandu-se alegerea lor pe seama programatorului care cunoaste cel mai bine posibilitatile limbajului.
Organizarea spatiului de depozitare si gestiunea fisierelor:
Fisierele utilizate se pastreaza in directoare separate (date, liste, program, meniuri, ecrane, vederi, rapoarte, etichete)
Gestiunea fisierelor se realizeaza cu ajutorul proiectelor
Organizarea echipei de programare :
Repartizarea uniforma a modulelor, pentru a se evita supraincarcarea unor programatori
Abordarea realizarii modulelor de jos in sus, pentru a putea fi testate la fiecare nivel (se va incepe cu realiza procedurilor de prelucrare elementare, apoi cele mai complexe, care vor fi asamblate la randul lor in module mai mari, pana se obtin programele)
TESTAREA
SI fiind compuse din multe programe, insumand zeci de mii de linii de cod, scrise de catre mai multi programatori, in mod normal contin erori, care sunt inlaturate la testare pe masura ce sunt puse in evidenta. Chiar si dupa testari indelungate, pot sa ramana erori ascunse, care pot sa apara pe parcursul exploatarii.
La realizarea aplicatiei, testarea dureaza mai mult decat scrierea ei, fiiind facuta pe niveluri: intai procedurile simple, apoi inglobate in module mai mari, apoi pe grupuri de module (pentru a testa corectitudinea comunicarii intre module), pana la testarea intregului sistem.
Datele de test trebuie sa fie cat mai aproape de realitate si sa acopere cat mai multe situatii posibile si mai ales situatiile extreme previzibile.
Exemplul final de testare se face de catre seful de proiect impreuna cu utilizatorul, specificandu-se in scris atat datele de intrare cat si situatiile finale care vor fi obtinute pe baza intrarilor.
Metodele de testare depind de tipul erorilor care se cauta si de nivelul la care se aplica.
Tipuri de erori :
Erori de sintaxa - sunt detectate in faza de compilare si sunt datorate constructiei gresite a unei instructiuni (nume de instructiune sau clauza scrise gresit, lipsa unei paranteze pereche intr-o expresie), compilatorul furnizeaza un mesaj de eroare in care se indica natura si uneori cauza erorii si linia din fisierul sursa in care apare. Uneori mesajele sunt derutante, mai ales cand sunt mai multe greseli.
Erori de executie - sunt detectate la rularea programului si se datoreaza imbinarii incorecte a instructiunilor, chair daca acestea sunt scrise corect dpdv sintactic
Ex. folosirea numelor de variabila in expresii daca acestea nu au fost initializate sau nu desemneaza campuri dintr-un fisier deschis in zona de lucru curenta
Erori de algoritm - rezultatele nu sunt cele asteptate (algoritm incorect gandit su codificat)
Ex. Afisare facturi din anul 1998 - LIST FOR YEAR(dataf)=1998 (daca inaintea listarii exista setarea SET YEAR TO 4, facturile din 1998 vor fi afisate, altfel nu pentru ca 98#1998)
Erori de utilizare - sistemul functioneaza corect, dar utilizatorul il foloseste gresit. Pentru a se evita SI informatic trebuie sa fie cat mai bine protejat prin :
o Sa se foloseasca proceduri de validare pentru a nu permite utilizatorului sa introduca date gresite
o Sa se puna la dispozitia utilizatorului numai acele actiuni care au sens la un moment dat, celelalte sa fie dezactivate
o Sa avertizeze utilizatorul in cazul detectarii intentiei de executie a unor operatii suspecte a fi gresite
o Sa ofere cat mai multe informatii de ajutor prin intermediul unui subsistem de ajutor performant
o Sa aiba o documentatie cat mai clara, explicita, completa, la nivelul celui mai slab pregatit utilizator
Nivelul la care apar erorile :
La nivelul sistemului de operare - se datoreaza configurarii gresite a SO sau a incompatibilitatii dintre configurarea SO si a SGBD-ului.
Ex. « Prea multe fisiere deschise simultan » (in CONFIG.SYS, FILES=<n>, n prea mic)
In interiorul modulelor sau programelor independente - erori de compilare, rulare, algoritm
La nivelul sistemului in ansamblu - erori ce tin de legatura dintre module (chiar daca acestea testate independentfunctioneaza corect)
Erori sau neajunsuri de proiectare - erori ce tin de conceptia de ansamblu a sistemului
Cu cat nivelul la care apare eroarea este mai ridicat, cu atat efortul de inlaturare este mai mare.
Tehnici de testare si depanare a programelor SI
Includerea in program a unor instructiuni speciale pentru depanare (afisarea diferitelor variabile)
Memorarea urmei executuiei programelor (fiecare operatie inceputa si terminata cu succes sa fie memorata intr-un fisier, ca sa se vada unde programul nu actioneaza cum ne asteptam)
Memorarea automata a starii curente a sistemului in cazul aparitiei unei erori (ON ERROR)
Tehnici speciale
o rularea pas cu pas
o rularea rapida pana la un punct mentionat in care controlul revine programatorului
o rularea cu viteza prestabilita
o afisarea valorilor unor variabile)
IMPLEMENTAREA SI
Programele de introducere a datelor- au rolul de a prelua datele de la utilizator si de a le incarca in bazele de date.
Operatii asigurate de programele de introducere a datelor :
-adaugarea de date noi
-modificarea unor date existente in baza de date
-stergerea datelor
-consultarea pe ecran a continutului bazei de date
-tiparirea la imprimanta
-aplicarea unor filtre pe datele din bazele de date, operatie prin care o parte din date, care nu respecta o anumita conditie sunt ascunse utilizatorului, ramanand disponibile numai cele care respecta conditia
-calculul unor indicatori statistici privind datele din baza.
Modul de lucru cu programele de introducere a datelor.
Scenariu 1.
Dpdv al UTILIZATORULUI, lucrul cu un astfel de program poate decurge astfel :
-din meniul afisat utilizatorul isi alege operatia dorita
-urmeaza apoi un scenariu specific operatiei:
Adaugare: se intra intr-o procedura de citire a datelorde la utilizator (si validarea lor) si dupa ce utilizatorul confirma datele se salveaza in baza.
Modificare : se incepe cu selectarea inregistrarii de modificat, se incarca datele din baza in memoria interna, pe care se face editarea si dupa confirmarea utilizatorului se salveaza datele pe disc in baza.
Stergerea : se incepe cu selectarea inregistrarii de sters (se identifica prin cheie), se afiseaza inteaga inregistrare, se cere o noua confirmare din partea utilizatorului, dupa care se trece la stergerea propriuzisa
Consultarea pe ecran sau tiparirea consta in selectarea inregistrarii sau grupului de inregistrari si afisarea/tiparirea datelor.
-dupa executarea operatiei se revine in meniul de selectie si se alege din nou o operatie.
Scenariu 2
-initial se intra intr-o lista de selectie a unei inregistrari
-cu ajutorul unor combinatii de taste se indica actiunea dorita asupra selectiei
Acest scenariu are avantajul ca ofera o privire de ansamblu asupra continutului tabelului, dar are dezavantajul ca tabelul nu seamana cu documentul primar
PROCEDURE prog_date1
Initializare
Deschidere tabele
Definire meniu
Afisare ecran initial
Raspuns1='D'
Raspuns2='D'
Iesire=.F.
DO WHILE Iesire=.F.
DO CASE
CASE optiune='Adaugare'
DO proc_ad
CASE optiune='Modificare'
DO proc_mod
CASE optiune='Stergere'
DO proc_st
CASE optiune='Consultare'
DO proc_cons
CASE optiune='Tipatire'
DO proc_tip
CASE optiune='Iesire'
Iesire=.T.
ENDCASE
ENDDO
*in final
dezactivare meniu
inchidere tabele
RETURN
PROCEDURE proc_ad
Initializare
Definire si afisare fereastra de adaugare
Definire obiecte de control
Continuare=.T.
DO WHILE Continuare=.T.
citire date in variabile de memorie
afisare
@ l,c SAY 'Salvati ? [D/N]' GET raspuns1 PICT '!'
READ
IF Raspuns1='D'
DO salvare
ENDIF
@ l+1,c SAY 'continuati ? [D/N]' GET raspuns2 PICT '!'
READ
IF raspuns2='N'
Continuare=.F.
ENDIF
ENDDO
Eliminare obiecte de control
Eliminare fereastra de adaugare
RETURN
PROCEDURE proc_mod
Initializare
Definire si afisare fereastra de modificare
Definire obiecte de control
Continuare=.T.
DO WHILE Continuare=.T.
Selectare inregistrare de modificat
incarcare date din inreg. de modificat in variabile de memorie
afisare
editare date din variabile de memorie
@ l,c SAY 'Salvati ? [D/N]' GET raspuns1 PICT '!'
READ
IF Raspuns1='D'
DO salvare
ENDIF
@ l+1,c SAY 'Continuati ? [D/N]' GET raspuns2 PICT '!'
READ
IF raspuns2='N'
Continuare=.F.
ENDIF
ENDDO
Eliminare obiecte de control
Eliminare fereastra de modificare
RETURN
PROCEDURE proc_st
Initializare
Definire si afisare fereastra de stergere
Continuare=.T.
DO WHILE Continuare=.T.
Selectare inregistrare de sters
Afisare date in inreg selectata
@ l,c SAY 'Doriti stergerea acestei inregistrari ? [D/N]' GET raspuns1 PICT '!'
READ
IF Raspuns1='D'
DO sterg
ENDIF
@ l+1,c SAY 'Continuati ? [D/N]' GET raspuns2 PICT '!'
READ
IF raspuns2='N'
Continuare=.F.
ENDIF
ENDDO
Eliminare fereastra de stergere
RETURN
PROCEDURE proc_cons
Initializare
Definire si afisare fereastra de consultare
Definire obiecte de control
Continuare=.T.
DO WHILE Continuare=.T.
Selectare inregistrare de afisat/tiparit
incarcare date din inreg. selectata in variabile de memorie
afisare/tiparire
@ l+1,c SAY 'Continuati ? [D/N]' GET raspuns2 PICT '!'
READ
IF raspuns2='N'
Continuare=.F.
ENDIF
ENDDO
Eliminare obiecte de control
Eliminare fereastra de consultare
RETURN
-directa- datele primare introduse intra in actualizare in momentul salvarii
-in transe- datele primare sunt memorate in fisiere echivalente documentului de pe care s-au preluat, urmand sa se actualizeze baza de date dupa o prelucrare a lor (poate fi necesara o corelare a datelor anterior culese in diverse fisiere), la cererea expresa a utilizatorului.
Variante:
1.Inregistrarile sunt parcurse in ordinea logica (data de indexul activ)
SCAN
Prelucrare inregistrare curenta
ENDSCAN
Sau
GOTO TOP
DO WHILE NOT EOF()
Prelucrare inregistrare curenta
SKIP
ENDDO
2.Inregistrarile sunt parcurse in ordinea fizica (cum au fost create)
FOR i=1 TO RECCOUNT()
GOTO i
Prelucrare pentru a inregistrare cu nr. de inreg. i
ENDFOR
3. Pentru bazele de date multitabelare
activare tabele parinte
SCAN
Prelucrare inregistrare_parinte curenta si inregistrare_copil curanta (1-1) sau toate cele
legate de parinte (1-n)
ENDSCAN
In cazul unei legaturi de tipul 1-n nu se va folosi varianta cu GOTO deoarece ar fi prelucrata numai o singura inregistrare dimn tabela_copil.
-introducere parametri de lucru (definire domeniu de inregistrari, optiuni de imprimare)
-activare procedura de extragere a datelor
-activare procedura de afisare/tiparire
Initializare
Deschidere tabele
DO creare_rap WITH lista_parametri
IF loc_afis='Ecran'
DO afis_rap
ELSE
DO tipar_rap
ENDIF
*in final
dezactivare ferestre si meniu
inchidere tabele
Obs. Daca raportul are dimensiune mai mare poate fi vizualizat pe ecran :
-pagina cu pagina
-creat intr-un fisier de listare care se deschide intr-o fereastra si poate fi derulat in toate directiile
MODIFY FILE raport.txt NOEDIT
-iesirea raportului direct la imprimanta
REPORT FORM raport.frx TO PRINTER
-tiparirea fisierului text creat anterior (cu REPORT FORM raport.frx TO FILE raport.txt)
TYPE raport.txt TO PRINTER
Meniul principal al sistemului - reprezinta grupari de optiuni la a caror alegere sunt declansate anumite prelucrari.
Pot fi de tip text, grafice sau combinate.
Dpdv al asezarii pe ecran cele grafice pot fi : orizontale, verticale, neregulate.
Cele mai des intalnite sunt cele cu un meniu orizontal, fiecarui punct de meniu fiindu-i atasat un meniu vertical (fiecarui punct din meniul vertical i se poate atasa un alt meniu vertical-maximum trei nivele).
Aspecte legate de construirea meniurilor :
-Textul afisat ca punct de meniu sa fie sugestiv, concis, sa respecte o serie de reguli standardizate (evidentiere cailor si tstelor directe de apelare, mesaj explicativ pe ultima linie a ecranului, nu mai lung decat ~15 caractere).
-Sa se evidentieze prin simboluri sugestive ce urmeaza dupa activare unui punct de meniu :
-in general se activeaza o procedura specifica
-se deschise un alt meniu (u
-urmeaza o fereastra de completare optiuni (.)
-Sa fie active numai optiunile care au sens sa fie selectate la un moment dat.
Sistemul de asistenta si ajutor (HELP)
Dpdv al utilizatorului, ajutorul oferit consta in informatii care sa-l ajute in momentul unui impas.
De obicei pe ultima linie a ecranului sau intr-o fereastra de atentionare se afisaza mesajele prevazute de programator legate de actiunea in curs de derulare.
Informatiile de ajutor furnizate la cererea expresa utilizatorului prin selectare din meniu sau cu ajutorul tastei F1 pot sa fie :
-dependent de context
-insensibile la context, cand utilizatorul isi alege singur informatia din cele puse la dispozitia lui.
Dpdv al programatorului poate oferi ajutorul solicitat :
-printr-un program propriu, codificand un scenariu
-sau folosind modelul de ajutor din FoxPro, organizandu-si informatiile de ajutor intr-o tabela cu aceiasi structura ca cea folosita din FoxPro (foxhelp.dbf).
Numele tabelei de Help poate fi modificat in CONFIG.FP (HELP=nume_tabh) sau din programul utilizatorului prin comanda SET HELP TO nume_tabh.
Structura tabelului FOXHELP.DBF
CAMP |
TIP |
LUNGIME |
SCOP |
TOPIC |
CHARACTER |
Titlul subiectului ce apare in fereastra de ajutor principala |
|
DETAILS |
MEMO |
Textul informatiei |
|
CLASS |
CHARACTER |
Codul clasei de ajutor |
-Protectia impotriva defectiunilor hardware
-salvari periodice pe suporturi externe
-surse neintreruptibile de alimentare
-Protectia prin parole - stabileste dreptul fiecarui utilizator de a avea acces la aplicatie si ii stabileste actiunile pe care poate sa le efectueze
Copyright © 2024 - Toate drepturile rezervate