Sunteți pe pagina 1din 10

5.6.

Proiectarea programelor şi a procedurilor


Proiectantul de soft are ca principală misiune definirea şi structurarea
componentelor care vor forma un tot unitar, astfel încât prin acestea să se obţină un
proiect soft operaţional. Proiectantul va grupa funcţiile ce trebuie să fie interconectate şi
va descrie modalităţile de realizare a legăturilor. După proiectanţii de soft vor interveni
programatorii, pentru transpunerea în realitate a proiectului. Ei vor controla intrările,
prelucrările şi ieşirile din sistem prin intermediul programelor.
Softul are două componente de bază instrucţiunile şi modulele. Instrucţiunile sunt
operaţiuni elementare executate de calculator prin gruparea şi selecţia controlată a
acestora pentru atingerea obiectivelor funcţiilor de prelucrare orientate pe probleme.

Instrucţiunile constituie cel mai jos nivel al operaţiunilor ce pot fi executate de către
un limbaj de programare. Blocurile de instrucţiuni sunt astfel grupate încât să constituie
anumite structuri executabile de calculator. De modul în care sunt grupate instrucţiunile
pentru a da naştere unor structuri standard ale programelor, de relaţiile dintre instrucţiuni,
de aranjamentul acestora depinde calitatea softului proiectat.
Modulul – este o colecţie sau o formă grupată de instrucţiuni de programe sursă.
Modulele se pot grupa pentru a forma programele.
Programul, în concepţia diverşilor autori, are semnificaţii diferite. El este definit
ca:
- un set de instrucţiuni cu ajutorul cărora se efectuează prelucrări specifice;
- o entitate ce poate fi executată pe calculator;
- un mijloc de comunicare cu calculatorul pentru rezolvarea unor probleme;
- o descriere a unui algoritm şi a datelor asociate în vederea execuţiei pe
calculator, deci o reprezentare a acestora (algoritmi şi date) ţinând cont de
restricţiile impuse de calculator;
- o realizare a unei funcţii f care, dată fiind o mulţime de date x, specifică
valoarea y=f(x);
Prin algoritm se înţelege o metodă de soluţionare a unei clase de probleme,
reprezentată de o succesiune finită de operaţii bine definite, numite instrucţiuni.
Prin prisma complexităţii lor programele se pot clasifica în [1]:
- programe simple (1000 de linii)
- programe de complexitate medie(10 000 de linii)
- programe complexe (peste 100 000 de linii) au numeroase module cu legături
complexe.
Pentru ca programele să fie caracterizate prin eficienţă, fiabilitate, flexibilitate,
inteligibilitate, în procesul elaborării lor trebuie să se respecte anumite principii [1]:
- principiul conformării, potrivit căruia programele trebuie să fie elaborate în
conformitate cu cerinţele utilizatorului;
- principiul completitudinii constă în realizarea descrierilor complete ale
obiectivelor programului pe toate nivelurile ierarhice de descompunere;
- principiul abstractizării se referă la elaborarea funcţiei programului, ţinând cont
de elementele esenţiale, făcându-se abstracţie de detaliile nesemnificative;
- principiul modularizării constă în descompunerea programelor în subdiviziuni
logice (module), care vor fi analizate în procesul de concepere şi elaborare a
programelor.
În timp s-au conturat mai multe metode sau tehnici de programare prezentate
sumar în cele ce urmează..
Metoda programării clasice are la bază construirea monolitică a logicii
programului, fără intenţii de structurare. Programul este privit în totalitatea lui şi analizat
direct la nivelul operaţiilor elementare pe care le implică executarea lucrării care se
elaborează .
Programarea modulară constă în descompunerea programului, chiar din faza de
proiectare, în module uşor de întrebuinţat. Fiecare modul este apoi analizat ca un program
distinct şi rezolvat ca atare [1].
Metoda programării structurate constă în faptul că oferă o rezolvare standardizată
şi structurată, în mod unitar, a programelor, reprezentând o ridicare a activităţii de
programare la nivelul activităţii industriale, fundamentată pe o metodologie ştiinţifică.
Programarea structurată este caracteristică dezvoltării sistemelor pe baza diagramelor
fluxului de date şi utilizează limbaje structurate. Ea presupune o separare între structurile
de date şi codul funcţiilor care le prelucrează.
Metoda programării orientate-obiect - constă în abordarea naturală a lumii reale,
folosind componente modularizate şi eliminând restricţiile impuse de mediul de
programare. Se definesc concepte noi de tip, clasă, moştenire, etc [Udrică M., 2000].
5.6.1. Atributele modulelor
La nivelul softului proiectat, componenta de bază este modulul. El este o colecţie
sau o formă grupată de instrucţiuni ale programului sursă. La rândul lor, modulele se pot
grupa pentru a forma programe.
Modulele programelor au următoarele caracteristici [1]:
A. Un modul este format dintr-un grup de instrucţiuni care sunt contigue din
punct de vedere fizic şi sunt executate ca o unitate distinctă;
B. Grupurile de instrucţiuni care formează un modul au începuturi şi
sfârşituri bine definite;
C. În majoritatea cazurilor, grupul de instrucţiuni are doar un punct de
intrare şi unul de ieşire;
D. Un modul poate fi un program sau un subprogram distinct compilat sau o
procedură internă a unui program.
Un modul are trei componente de bază: funcţia, logica şi interfeţele.
Funcţia unui modul constă în transformarea datelor prin procesul de execuţie a
acestuia. Funcţia este tratată în regimul cutiilor negre, ea fiind văzută la nivel de modul
doar prin ceea ce se percepe în exteriorul lui, nu privindu-i componentele interne sau,
altfel spus, rolul acestora. Interes prezintă doar intrările şi ieşirile modulului respectiv [1].
La nivelul softului, referirea la un modul este în acelaşi timp o referire la funcţia
lui. La nivelul cel mai de sus, modulele au funcţii orientate spre problema de rezolvat, în
timp ce modulele aflate pe nivelurile mai de jos au funcţii orientate spre prelucrările pe
care le realizează.
În diagrama de structură, folosită pentru reprezentarea grafică a proiectelor soft, un
modul este reprezentat printr-o casetă (dreptunghi) ce poartă denumirea funcţiei
îndeplinite.
La atribuirea numelui unui modul trebuie să se ţină cont de faptul că acesta trebuie
să surprindă atât funcţia proprie, cât şi pe cele ale subcomponentelor de ordin inferior. Se
recomandă [1] evitarea conjuncţiilor din structura numelor, deoarece ele ar sugera
necesitatea folosirii mai multor module.
Logica modulului descrie prelucrările care au loc în interiorul acestuia [1].
La nivelul programării, preocuparea este, în esenţă, legată de logica modulului,
algoritmii de prelucrare, redaţi sub diverse forme – scheme logice, pseudocod, tabele de
decizie, arbori de decizie sau combinaţii ale acestora – sunt concepuţi pentru prezentarea
modului de transformare a intrărilor în ieşiri . Paşii algoritmilor se vor transforma în
instrucţiuni ale limbajelor de programare.
Interfeţele sunt conexiuni sau cuplaje între module. Interfeţele modulelor sunt
utilizate pentru stabilirea căilor prin care să se transfere controlul de la un modul la altul
[1].
Conexiunile dintre module se înregistrează pe două planuri:
1. al transferării controlului de la un modul la altul;
2. al transmiterii datelor de la un modul la altul.
În concluzie, se poate spune că eficienţa proiectelor – soft depinde în mare măsură
de eficienţa cu care se transferă controlul între module, precum şi de metoda folosită
pentru transmiterea datelor între module.

5.6.2. Structurile de control ale programelor


Proiectul soft trebuie să fie văzut [1] din două puncte de vedere: logic şi fizic.
Din punct de vedere logic, modalitatea în care intră în funcţiune modulele este
redată prin structura ierarhică a lor.
Din punct de vedere fizic, după ce s-a stabilit structura logică, se va pune problema
adaptării prelucrării lor pe calculator, moment în care se va avea în vedere structura
execuţiei instrucţiunilor, adică a secvenţelor după care se declanşează operaţiunile din
interiorul modulelor.
Structurile de control al logicii cunoscute şi sub numele de structuri de control
fundamentale, reprezintă un set minim, dar şi necesar, de reguli prin care să se controleze
procesul de activare a componentelor de prelucrare dintr-un program sau între modulele
acestuia. Structurile sunt: secvenţa, selecţia, iteraţia sau repetiţia. Ele mai sunt cunoscute
şi sub numele de structură secvenţială, structură alternativă (simplă şi generalizată şi
structură repetitivă (condiţionată anterior sau la început şi condiţionată posterior sau la
sfârşit ).
Secvenţa asigură parcurgerea instrucţiunilor în ordinea în care apar. Selecţia
defineşte alegerea unui grup de instrucţiuni din două sau mai multe posibile. Iteraţia oferă
posibilitatea execuţiei repetate a unui grup de instrucţiuni.
În elaborarea programelor structurate este necesar să se respecte o serie de
restricţii, şi anume [1]:
- fiecare element (secvenţa, selecţia, iteraţia) are un punct de intrare;
- fiecare element are un punct de ieşire unic;
- elementul de iteraţie permite şi o execuţie cu factor de repetiţie zero, adică
excluderea elementului respectiv din execuţie.
Fiecare element din cele enunţate (secvenţa, selecţia, iteraţia) care respectă
restricţiile de mai sus defineşte un bloc standard şi sunt reprezentate în continuare [1].
Structura secvenţială (liniară) se prezintă astfel:

i1

i2

in

Figura 5.5. Structura secvenţială

Selecţia (structura de tip IF-THEN-ELSE) sau structura alternativă are următoarea


formă de prezentare:

NU DA
C

Bloc - 2 Bloc - 1

140
Figura 5.6. Structura alternativă
Dacă se îndeplineşte condiţia C, se execută operaţiile din Bloc-1, altfel se execută
operaţiile din Bloc-2. După execuţia blocului, se continuă cu instrucţiunea următoare.
Structura alternativă generalizată (de tip CASE-OF) este o generalizare a
selecţiei. Ea permite alegerea unei variante din mai multe posibile (figura 5.7).

Bloc - 1 Bloc -2 Bloc -n

Figura 5.7. Structura alternativă generalizată

Iteraţia sau structura repetitivă defineşte execuţia repetată a unei operaţii sau grup
de operaţii, funcţie de rezultatul evaluării unei condiţii. Evaluarea condiţiei se face fie
înainte, fie după executarea operaţiilor.
Structura repetitivă condiţionată anterior (de tip WHILE-DO) este reprezentată în
figura 5.8

Bloc - 1

C
DA
NU

Figura 5.8. Structura repetiti1v4ă1 condiţionată anterior


Structura repetitivă condiţionată posterior (de tip DO UNTIL) are forma din figura 5.9.

Bloc - 1

C
DA
NU

Figura 5.9. Structura condiţionată posterior


O formă particulară de structură repetitivă condiţionată posterior este structura
repetitivă cu număr definit de paşi (de tip DO FOR). Numărul de repetiţii este controlat
de o variabilă, numită variabilă de control. În reprezentarea grafică următoare, V este
variabila de control, Vi este valoarea iniţială a variabilei de control, iar R este raţia
(incrementul). O astfel de structură este redată în figura 5.10.

V=Vi

Bloc - 1

V=Vi+R

V>Vf
NU
DA

Figura 5.10. Structura repeti1t4i2vă cu număr definit de paşi


În literatura de specialitate, se consideră că structura secvenţială, structura
alternativă de tip IF-THEN-ELSE şi structura repetitivă condiţionată anterior sunt
suficiente pentru a defini structura de control a oricărui program. Din acest motiv, cele
trei structuri de control, enumerate mai sus, sunt numite structuri de control fundamentale
sau structuri de bază.

5.6.3. Proiectarea şi realizarea programelor


Ideea de bază în proiectarea programelor constă în faptul că acesta trebuie să
respecte întocmai structurile diagramelor fluxurilor de date, prin nivelurile arhitecturale
de tip program.
Pentru proiectarea programelor, programatorii vor respecta sistemul de cerinţe şi
restricţii impus de etapele parcurse anterior pentru realizarea sistemului informatic.
Urmând principiile programării structurate, realizarea programelor se face în următoarele
faze [2]: definirea problemei de programat; descompunerea problemei de programat;
realizarea modulară a produselor program; testarea “top-down” a produselor program;
definirea programului testat şi a documentaţiei aferente; dezvoltarea versiunii calitative a
produsului program.
Specificaţiile elaborate în etapele precedente permit definirea problemei de
programat prin care se formulează elementele specifice şi se analizează relaţiile dintre
aceste elemente, din punct de vedere dinamic sau static.
Descompunerea aplicaţiei se poate face după criteriul funcţionalităţii, motiv pentru
care elementele rezultate se mai numesc şi module funcţionale. Din punct de vedere al
fluxului datelor pot fi [2]:
- module de intrare, care manipulează datele de intrare;
- modulele de ieşire, care furnizează rezultate ale prelucrărilor;
- module de prelucrare, care efectuează diverse operaţii asupra datelor.

143
Pe baza unor funcţiuni identificate sau a altor raţiuni de programare,
modulele pot fi divizate în continuare. Scopul acestei structurări funcţionale până
la nivel elementar este de a identifica funcţiunile sistemului şi de a le separa,
eventual, în funcţiuni generale şi cu caracter specific aplicaţiei.
Modulele funcţionale pot fi descompuse apoi după criteriul omogenităţii,
rezultând modulele operaţionale.
Realizarea modulară a produselor program presupune următoarele acţiuni [2]:
- Examinarea modulelor şi specificarea succesiunii operaţiilor de
prelucrare descrise în acestea.
- Constituirea setului reprezentativ cu date test. Setul de date trebuie sa
acopere întreaga cazuistică a sistemului informaţional şi să testeze toate
ramurile programului.
- Precizarea elementelor de comunicaţie între module, respectiv stabilirea
parametrilor de intrare/iesire în/din fiecare modul.
- elaborarea algoritmii de prelucrare specifici fiecărui modul şi structura
programelor.
- transcrierea algoritmilor într-un limbaj de programare.
- scrierea codului sursă şi obţinerea fişierelor executabile.
Prin compararea rezultatelor propuse a fi obţinute cu cele efectiv furnizate
de aplicaţia informatică, sunt verificate sintactic şi funcţional module din program.
Dacă se realizează identitatea între cele doua categorii de rezultate, operaţia de
testare se consideră încheiată.
O atenţie deosebită trebuie acordată întocmirii documentaţiei programului
cu observaţia că în acest sens este recomandată autodocumentarea la nivel de
modul.

144

S-ar putea să vă placă și