Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
13. Dezvoltarea programelor mari <strong>în</strong> C<br />
Particularitãti ale programelor mari<br />
Aplicatiile reale conduc la programe mari, cu mai multe sute si chiar mii de linii<br />
sursã. Un astfel de program suferã numeroase modificãri (cel putin <strong>în</strong> faza de punere la<br />
punct), pentru adaptarea la cerintele mereu modificate ale beneficiarilor aplicatiei<br />
(pentru îmbunãtãtirea aspectului si modului de utilizare sau pentru extinderea cu noi<br />
functii sau pentru corectarea unor erori apãrute <strong>în</strong> exploatare).<br />
Programarea la scarã mare este diferitã de scrierea unor programe mici, de scoalã, si<br />
pune probleme specifice de utilizare a <strong>limbajul</strong>ui, a unor tehnici si instrumente de<br />
dezvoltare a programelor, de comunicare <strong>în</strong>tre programatori si chiar de organizare si<br />
coordonare a colectivelor de programatori.<br />
Principala metodã de stãpânire a complexitãtii programelor mari este împãrtirea lor<br />
<strong>în</strong> module relativ mici, cu functii si interfete bine precizate.<br />
Un program mare este format dintr-un numãr oarecare de functii, numãr de ordinul<br />
zecilor sau sutelor de functii. Este bine ca aceste functii sã fie grupate <strong>în</strong> câteva fisiere<br />
sursã, astfel ca modificãri ale programului sã se facã prin editarea si recompilarea unui<br />
singur fisier sursã (sau a câteva fisiere) si nu a <strong>în</strong>tregului program (se evitã<br />
recompilarea unor functii care nu au suferit modificãri). In plus, este posibilã<br />
dezvoltarea si testarea <strong>în</strong> paralel a unor functii din aplicatie de cãtre persoane diferite.<br />
Inainte de a <strong>în</strong>cepe scrierea de cod este necesarã de obicei o etapã care contine de<br />
obicei urmãtoarele:<br />
- <strong>în</strong>telegerea specificatiilor problemei de rezolvat si analiza unor produse software<br />
asemãnãtoare.<br />
- stabilirea functiilor de bibliotecã care pot fi folosite si verificarea modului de<br />
utilizare a lor (pe exemple simple).<br />
- determinarea structurii mari a programului: care sunt principalele functii din<br />
componenta programului si care sunt eventualele variabile externe.<br />
Pentru a ilustra o parte din problemele legate de proiectarea si scrierea programelor<br />
mari vom folosi ca exemplu un program care sã realizeze efectul comenzii DIR din<br />
MS-DOS (“dir” si “ls” din Linux), deci sã afiseze numele si atributele fisierelor dintrun<br />
director dat explicit sau implicit din directorul curent. O parte din aceste probleme<br />
sunt comune mai multor programe utilitare folosite <strong>în</strong> mod uzual.<br />
Pentru <strong>în</strong>ceput vom defini specificatiile programului, deci toate datele initiale (nume<br />
de fisiere si optiuni de afisare), eventual dupã analiza unor programe existente, cu<br />
acelasi rol. Programul va fi folosit <strong>în</strong> mod linie de comandã si va prelua datele necesare<br />
din linia de comandã.<br />
O parte din optiunile de afisare au valori implicite; <strong>în</strong> mod normal se afiseazã toate<br />
fisierele din directorul curent, nu se afiseazã fisierele din subdirectoare si nu se<br />
afiseazã toate atributele fisierelor ci numai cele mai importante. Exemple de utilizare:<br />
dir // toate fisierele din directorul curent, cu atribute