17.04.2013 Views

Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C

Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C

Florian Moraru PROGRAMAREA CALCULATOARELOR în limbajul C

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!