Documente Academic
Documente Profesional
Documente Cultură
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.
i1
i2
in
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).
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
Bloc - 1
C
DA
NU
V=Vi
Bloc - 1
V=Vi+R
V>Vf
NU
DA
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