Documente Academic
Documente Profesional
Documente Cultură
Datorită dimensiunii tot mai mari a aplicaţiilor software, programele nu pot fi realizate
decît în echipă. Din acest motiv, proiectarea trebuie să urmeze strict nişte etape,
conform unei metodologii şi unui anumit model de abordare al acestui proces. Acest
model de abordare se numeşte paradigmă, iar diversele paradigme sînt descrise
sistematic de un domeniu ingineresc numit “Ingineria programării”. În cadrul acesteia
se propun diverse sistematizări ale analizei cerinţelor, proiectării, implementării,
testării şi întreţinerii programelor. Etapele acestea alcătuiesc ciclul de viaţă al
programelor.
Există deci diverse abordări ale proiectării. Una din aceste abordări este cunoscută de
programatorii în limbaje de nivel înalt uzuale (de ex. Pascal, C), ducînd la un stil de
proiectare oarecum natural, firesc: proiectarea structurată. Aceasta presupune
descompunerea unei probleme de sus în jos, prin înlocuirea fiecărei subprobleme cu
mai multe, mai simple, acestea la rîndul lor fiind descompuse mai departe, ş.a.m.d.,
pînă la nivelul instrucţiunilor. Aceasta se numeşte abordarea top-down. O altă
caracteristică esenţială este folosirea în program a structurilor de control fundamentale
(blocul de instrucţiuni, decizia, bucla) în exclusivitate. Limbajul PASCAL este ideal
pentru această structurare. Proiectarea structurată pune accent pe analiza funcţională,
adică pe stabilirea funcţiilor sistemului şi apoi descompunerea fiecăruia, prin abordare
top-down.
crearea unui program nou ia mult timp şi deci este costisitoare; prin schimbări
minore în cerinţele utilizatorului, fragmente mari de program trebuie rescrise;
din pricina timpului îndelungat pentru dezvoltare, un program nou apare pe piaţă
poate prea tîrziu, după ce au apărut programe mai performante;
programele noi conţin erori (bugs) care se manifestă în funcţionare;
s-ar putea ca programul nou să nu corespundă cerinţelor utilizatorului întrucît
acesta şi proiectantul au avut puncte de vedere diferite şi nu au înţeles acelaşi
lucru prin specificaţiile stabilite de comun acord.
folosirea unor componente cît mai bine testate (astfel programele nu conţin
erori)
alcătuirea rapidă a aplicaţiilor din componente existente (deci durata
dezvoltării se reduce)
utilizarea unor componente cu o comportare cunoscută ajută la evitarea
neînţelegerilor la specificaţii.
Aceste observaţii stau la baza unei filosofii şi a unei reprezentări devenite clasice,
cunoscută sub numele de fîntîna software (Fig. 2.1) :
Aceasta “inversează” metodologiile funcţionale, fragile mai ales la reutilizare (la mici
schimbări ale cerinţelor trebuie restructurat masiv întreg sistemul). O abordare
orientată spre obiecte se focalizează pe obiectele din domeniul aplicaţiei, adică
entităţile independente care modelează realitatea. La aceste obiecte se stabilesc
ulterior proceduri de acces. Termenul “orientat spre obiecte” înseamnă organizarea
programului ca o colecţie de obiecte, fiecare înglobînd structuri de date şi avînd
asociat un anumit comportament. În programarea structurată, structurile de date şi
comportamentul entităţilor nu sînt conectate decît (relativ) slab.
căciula studentului
o fereastră deschisă pe un calculator
un triunghi desenat pe hîrtie
Exemple de clase :
căciulă
fereastră
triunghi
Exemplu: dacă avem clasa Triunghi, atunci este recomandabil să-i stabilim de la
început toate caracteristicile: coordonatele vîrfurilor, operaţii de desenare, translatare,
rotire, scalare, etc. chiar dacă nu toate acestea sînt necesare imediat, în aplicaţia
curentă. În acest mod este stimulată crearea bibliotecilor de clase.
În prezent, TOO s-au maturizat şi nu se mai pune problema unui conflict între adepţii
diverselor paradigme. Fiecare abordare are domeniul său predilect. Astfel, pentru
aplicaţii care trebuie să fie foarte rapide se mai scriu programe prin metode altele decît
OO. Pe de altă parte, performanţele aplicaţiilor nu mai depind semnificativ, relativ la
cerinţe, de aspectele structurale ale programelor, datorită creşterii performanţelor
sistemelor de calcul. De aceea, dezavantajul codului lent nu mai este important.
REZUMAT