Sunteți pe pagina 1din 13

March 21, 2013 [MEDII DE PROGRAMARE VIZUAL]

ELABORAREA PRODUSELOR-PROGRAM
Elaborarea unui produs-program constituie o activitate deosebit de complex, care necesit utilizarea unei metodologii clare i unitare. De regul, o asemenea activitate se desfoar n echipe de lucru complexe n care sunt inclui analiti, specialiti ai domeniului pentru care se dezvolt produsul-program, programatori, specialiti n testarea i implementarea produselor-program, utilizatori etc. Literatura de specialitate pune n discuie o multitudine de probleme legate de metodologia elaborrii produselor-program i subliniaz n mod deosebit necesitatea existenei unei metodologii unitare. Totui, putem afirma c n forma sa final orice produs-program poate fi privit ca un sistem cu funcii i componente proprii, cu intrri, ieiri, prelucrri specifice i bucl de autoreglare i cu un scop bine stabilit.

3.1. Modele de elaborare a produselor-program


Din punct de vedere practic, elaborarea unui produs-program presupune parcurgerea unui anumit numr de activiti specifice obinerii acestuia. Exist un numr nsemnat de modele pentru elaborarea unui produs-program, dintre care cele mai importante sunt: modelul n cascad, modelul n V, modelul spiral, modelul liniar, modelul incremental, modelul RAD. 3.1.1. Modelul n cascad Dintre toate modelele enumerate mai sus, modelul n cascad este cel mai des utilizat n practic. Activitile avute n vedere la elaborarea produselor-program n cazul modelului n cascad (vezi i figura) sunt: definirea problemei; analiza; proiectarea; dezvoltarea; testarea; implementarea; ntreinerea.

1 | IE, an II

March 21, 2013 [MEDII DE PROGRAMARE VIZUAL]


Definirea problemei Validare -Verificare Analiz Validare -Verificare Proiectare Validare -Verificare Dezvoltare problemei Validare -Verificare Testare Validare -Verificare Implementare Validare -Verificare Exploatare-ntreinere Validare -Verificare

Modelul n cascad de elaborare a unui produs-program

Acest model a fost dezvoltat de ctre Royce n 1970 i este cel mai familiar programatorilor. Aa dup cum se observ n figura precedent, caracteristica fiecrei etape const n a se finaliza cu o verificare i o validare n scopul eliminrii eventualelor anomalii care ar putea s apar n cadrul fiecreia. Dac se constat eventuale anomalii, atunci se va reveni la etapa precedent pn cnd acestea vor fi eliminate. n acest fel se realizeaz o minimizare a costului pentru produsul-program dezvoltat. n acelai timp, trecerea de la o faz la alta, n sus i n jos, ofer modelului un caracter iterativ i incremental. Modelul n V Modelul n V poate fi considerat ca un caz particular al modelului n cascad prin faptul c activitile necesare elaborrii produsului-program sunt reprezentate grafic sub forma lui V. Esena modelului const n aceea c separ primele etape ale procesului de dezvoltare n sub activiti ce au legtur cu construcia sistemului. Aceast organizare sub forma literei V este dat de faptul c se pune n relaie direct de dependen primele etape cu cele aflate n partea de jos din modelul n cascad. n acest model se delimiteaz urmtoarele activiti1 [Grama, 2000,55]: 1. analiza cerinelor i studiul de fezabilitate; 2. specificarea global; 3. proiectarea de ansamblu; 4. proiectarea de detaliu; 5. programarea; 6. testarea unitar;
1

Grama, A., Filip, M., Medii de programare n economie, Editura Sedcom Libris, Iai, 2000, p. 55

2 | IE, an II

March 21, 2013 [MEDII DE PROGRAMARE VIZUAL] 7. integrarea i testul de integrare; 8. testul de acceptare; 9. implementarea i testul sistem. Constatm c din lista de mai sus activitile 1-5 influeneaz n mod permanent o activitate din 6-9, ceea ce permite o mai bun organizare a etapelor finale. Dezavantajul acestui model const n c nu pune n eviden posibilitatea relurii unei activiti deja parcurse, ceea ce poate s conduc la depistarea unor anomalii funcionale ale produsului-program n faza de implementare. Acest lucru va duce la reluarea ntregului proces de elaborare a produsului program cu costuri corespunztoare i pierderi de timp. Modelul incremental n modelele prezentate anterior rezult c dup o descompunere n elementele componente, acestea sunt dezvoltate independent unele dup altele, n paralel sau secevenial potrivit cu resursele disponibile. n modelul incremental, la un moment dat se dezvolt un singur subansamblu de componente. Iniial se dezvolt un nucleu, iar apoi succesiv se dezvolt incrementii care sunt totodat i integrai n sistemul propriu-zis. Avantaje: fiecare dezvoltare n parte este mai puin complex; integrrile sunt progresive; dup fiecare integrare de increment sistemul poate fi exploatat. Dezavantaj: necesitatea ca specificarea nucleului, a incremenilor i interaciunea lor s fie stabilite de la nceputul proiectului. Modelul n spiral Modelul n spiral a fost propus n 1988 de ctre B. W. Boehm i este cel mai cunoscut model evolutiv. El are la baz dou premise2: natura iterativ a dezvoltrii i nevoia de planificare i evaluare a riscurilor fiecrei iteraii; realizarea validrii ct mai devreme posibil i de ct mai multe ori, prin construirea prototipurilor. Obiectivul principal urmrit prin modelul spiral este gestiunea atent a riscurilor prin combinarea modelului cascad cu prototipizarea. Se construiete mai nti o prim versiune a sistemului, sub forma unui prototip, n care nu este definit ntregul sistem ci sunt luate n considerare doar caracteristicile sale principale. Dup transpunerea prototipului n aplicaie, aceasta este evaluat de ctre beneficiari, iar n funcie de rezultatul evalurii se pot defini i implementa noi caracteristici ale sistemului, construindu-se un nou prototip ce va fi supus evalurii. Acest proces se reia de mai multe ori, urmtoarele prototipuri fiind versiuni din ce n ce mai complete ale sistemului propus. Modelul cascad se va regsi n cadrul fiecrei iteraii. Modelul spiral este descompus n mai multe activiti-cadru maxim 6, cum sunt prezentate n continuare:
2

Oprea, D., Analiza i proiectarea sistemelor informaionale economice, Ed. Polirom, Iai, 1999, p. 68

3 | IE, an II

March 21, 2013 [MEDII DE PROGRAMARE VIZUAL] comunicarea cu beneficiarul (stabilirea i meninerea contactului dintre beneficiar i proiectant); planificarea (definirea resurselor, a termenelor limit de realizare); analiza riscului (riscuri tehnice i de organizare); proiectarea (definirea uneia sau mai multor reprezentri ale aplicaiei); construirea i lansarea; evaluarea beneficiarului (feed-back din partea beneficiarului asupra schimbrilor din noua versiune instalat). Cea mai cunoscut variant a modelului este cea bazat pe 4 elemente majore, ca n figura de mai jos. Printre avantajele modelului spiral se pot enumera: diminuarea riscurilor la nivel de prototip, prin angajarea treptat n proiect a echipei de dezvoltare i a beneficiarilor; valorificarea experienei anterioare n planificarea activitilor pentru prototipul urmtor; evaluarea riscurilor asociate proiectului n mai multe momente; simplificarea operaiunilor de evaluare a ceea ce este necesar n etapa (prototipul) urmtoare, inclusiv prin prisma costurilor.
Planificare Analiza riscului

Evaluarea beneficiarului

Proiectare

Ilustrarea modelului n spiral

Aplicarea cu succes a modelului spiral este condiionat de profesionalismul echipei de dezvoltare i flexibilitatea n aciune, inclusiv n alocarea de fonduri, dar i n definirea activitilor de ntreprins.

4 | IE, an II

March 21, 2013 [MEDII DE PROGRAMARE VIZUAL] Modelul RAD Dezvoltarea aplicaiilor trebuie s rspund, ca orice domeniu de activitate, principiului productivitii i eficienei economice. Detaliind, putem identifica mai multe aspecte ce trebuie avute n vedere n dezvoltarea unei aplicaii3: productivitatea resurselor; calitatea produsului; timpul de realizare; simplificarea ntreinerii; satisfacia utilizatorului. Modelul RAD i propune s porneasc de la surs, adic de la nevoile utilizatorilor. Utilizatorul se gsete n centrul ateniei, fiind clientul sistemului ce se realizeaz. RAD reprezint un arhetip revoluionar de succes n software-ul anilor 90, caracterizat pe scurt prin mai repede, mai bine, mai ieftin, ceea ce este posibil de realizat printr -o abordare foarte riguroas, bazat pe echipe mici de specialiti bine pregtii, pe utilizarea prototipurilor i impunerea unor limite rigide de timp n planificarea activitilor. RAD se bazeaz pe modelul spiral, ceea ce permite dezvoltarea incremental i repetitiv. Dei nu reiese din figura modelului, trebuie precizat influena metodelor orientate-obiect, ce asigur o eficien sporit pentru RAD, prin utilizarea de componente pre-fabricate. De asemenea, RAD apeleaz la generarea automat a codurilor prin sisteme CAPS (Computer-Aided Prototyping System), care nlocuiesc scrierea manual, mai nceat a codului i minimizeaz erorile. n fine, RAD nseamn flexibilitate, prin faptul c permite utilizatorilor s foloseasc propriile limbaje de interogare sau generatoare de rapoarte. Dup definirea de ctre J. Martin a filosofiei RAD4 a urmat un val de propuneri de modele de dezvoltare a aplicaiilor de tip RAD.
Planificarea cerinelor

Proiectare

Construire

Finalizare

Fazele unui ciclu de dezvoltare RAD

RAD se individualizeaz prin urmtoarele caracteristici: utilizarea de echipe mixte, formate n medie din 6 persoane, incluzndu-i pe utilizatorii finali, manageri i pe dezvoltatorii sistemului (aceast denumire face referire la specialistul multilateral, ce are att cunotine specifice analizei de sistem, ct i de proiectare i programare). Trebuie precizat c experiena anterioar este deosebit de important, iar
3 4

Silvestre, P., Verlhac, D., Le development de systemes dinformation, Edition Hermes, Paris, 1996, p. 112 Martin, J., Rapid Application Development, Macmillan, 1991

5 | IE, an II

March 21, 2013 [MEDII DE PROGRAMARE VIZUAL] succesul proiectului este asigurat prin implicarea activ a utilizatorilor, ca i prin comunicarea i colaborarea permanent ntre membrii echipei; utilizarea de instrumente specializate care asigur: dezvoltarea vizual, crearea de prototipuri, planificarea i gestiunea timpului, colaborarea i lucrul n echip, folosirea componentelor re-utilizabile i a componentelor API, controlul versiunilor; renunarea la caracteristici sau componente secundare (n special cu rol de mbuntire a interfeei sau a dialogului cu utilizatorul) pentru a asigura ncadrarea n termenele stabilite. De regul, ntregul proces de dezvoltare are o durat maxim de 6 luni; prototipizarea iterativ, evolutiv. Etapele unui ciclu de dezvoltare RAD pot fi prezentate i n succesiunea: analiz, proiectare, realizare i integrare, testare i implementare, dar ntr-un mod diferit fa de modelul clasic. Pentru ilustrare ne vom opri asupra ciclului de dezvoltare James Martin, cel mai reprezentativ dintre ciclurile de dezvoltare RAD. Exist n acest ciclu 4 faze: (1) identificarea i planificarea cerinelor, (2) proiectare, (3) construire, (4) finalizare. Planificarea cerinelor are ca obiectiv determinarea funciunilor sistemului. Utilizatorul trebuie s aib un rol activ n aceast faz. Faza se desfoar n aa-numitele ateliere de lucru (workshop), de tip Joint Requirements Planning. Activitile desfurate pot fi grupate n: evidenierea problemelor, identificarea i precizarea cerinelor, planificarea sarcinilor. Proiectarea realizeaz modelarea sistemului prin prototipuri i alte instrumente de modelare. Activitatea se desfsoar n ateliere de lucru de tip Joint Application Design. Dup stabilirea modelului de lucru se ntocmete rapid prototipul. Fiecare prototip va fi testat i validat n atelierele de lucru. Construirea sistemului este apanajul specialitilor informaticieni, care transpun modelele fazei anterioare n programe. Utilizatorii testeaz componentele i le valideaz sau solicit, dac e necesar, ameliorarea acestora. Faza se ncheie prin integrarea componentelor n sistemul final. Aa cum reiese i din figur, aceast faz i precedenta se constituie ntr-un ciclu iterativ, pn la obinerea rezultatului dorit (Iterate Until Done). Pe parcursul acestui ciclu prototipurile definite i revizuite pot evolua n prototipuri operaionale. Finalizarea se refer la punerea n exploatare a sistemului. Aceast faz continu testrile asupra produsului final, impune schimbri organizaionale, formeaz i instruiete utilizatorii finali. n sintez, modelul RAD se bazeaz pe urmtoarele soluii5: Includerea utilizatorilor n echipa de realizare a aplicaiei i implicarea activ a acestora. S-a pornit de la faptul c utilizatorii sunt sursa cerinelor informaionale, ca i beneficiari direci ai aplicaiei, deci opinia lor este determinant pentru succesul aplicaiei. Implicarea direct i continu a utilizatorilor n procesul de dezvoltare este esenial pentru succesul RAD. Ea prezint importan n detectarea din timp a eventualelor erori, tiind c dac defectul este descoperit mai repede, costul remedierii va fi mai sczut. Costul corectrii erorilor crete odat cu trecerea dintr-o etap a ciclului de via n alta.
5

Silvestre, P., Verlhac, D., Op. cit., pp. 112-113

6 | IE, an II

March 21, 2013 [MEDII DE PROGRAMARE VIZUAL] Gestiunea optim a timpului. Se fixeaz intervale scurte de timp pentru realizarea componentelor. Un proiect de dimensiuni mari va fi descompus n subproiecte cu posibiliti de realizare n paralel. Pentru a asigura respectarea termenelor, se vor realiza mai nti versiuni care vor cuprinde doar funcionalitile de baz. n final, se vor integra i funcionalitile complementare. Dezvoltarea incremental, numit i ciclu de elaborare n spiral. Este un factor ce contribuie la sporirea vitezei de realizare a aplicaiilor. n loc s se lanseze direct produsul final, aplicaia va apare n versiuni succesive. Se realizeaz prototipuri ale aplicaiei prin parcurgerea a 3 etape: determinarea cerinelor informaionale, transpunerea lor sub form de aplicaie, testarea acesteia de ctre utilizatori. Utilizarea prototipurilor permite ca utilizatorii s observe i s corecteze sistemul. Reutilizarea. O aplicaie nu mai este vzut ca un ansamblu de programe executabile mpreun cu un ansamblu de date, care comunic prin intermediul unor interfee. Aplicaia reprezint un ansamblu de servicii/componente care rspund unor obiective sau cerine. Utilizarea de instrumente CASE pentru generarea rapid i fr erori a programelor. Noiunea de algoritm Conceptul de algoritm desemneaz o mulime finit de operaii (instruciuni, comenzi) cunoscute, care executate ntr-o ordine bine stabilit, pornind de la un set de valori de intrare produc n timp finit, un alt set de valori, de ieire. Pentru a fi programabil, orice algoritm, trebuie s ndeplineasc cumulativ anumite condiii, cum sunt: s fie clar i coerent, exprimnd cu rigurozitate i fr ambiguiti operaiunile de prelucrare a datelor i ordinea lor de succesiune; s fie complet, descriind etap cu etap procesul de prelucrare a datelor, fr omisiuni; s aib caracter finit, adic s fie asigurat ncheierea algoritmului dup un anumit numr de pai. Algoritmizarea unei probleme presupune parcurgerea etapelor urmtoare: definirea unui enun precis al problemei; transformarea acestui enun n enun algoritmic; reprezentarea enunului algoritmic cu ajutorul instruciunilor specifice (organigrame, tabele de decizie, limbaje algoritmice etc); Observaie. Aceeai problem poate fi algoritmizat sub mai multe forme, neimpunndu-se existena unui algortim unic. Reprezentarea algoritmilor Cele mai utlizate tehnici de reprezentare sunt: schemele logice/flowchart pseudocodurile diagramele arborescente tabele de decizie.

Schemele logice au rolul de a reprezenta grafic fluxul general al datelor i a algoritmului de prelucrare. 7 | IE, an II

March 21, 2013 [MEDII DE PROGRAMARE VIZUAL] Se disting 2 tipuri de scheme logice: Schemele logice de sistem care au rolul de a indica sistemul de resurse afectat pentru obinerea rezultatelor scontate. Acestea schmatizeaz relaiile dintre informaii i suporturile de date, fluxul informatizat preconizat, operaiile ce se efectueaz asupra informaiilor prin procedee automate sau manuale. n cadrul lor exist unul sau mai multe blocuri de prelucrare ce reprezint proceduri independente de prelucrare i deci programe diferite pentru calculator. Scheme logice de program sintetizeaz succesiunea etapelor de rezolvare a unei probleme constituind o reprezentare grafic a funciilor algoritmului utlizat. i n cadrul acestor scheme se folosesc simboluri standard, crora li se asociaz n principiu anumite instruciuni. Schema logic reprezint de fapt un graf orientat n care exist cel puin urmtoarele elemente: o instruciune de pornire (START) i una de oprire (STOP); instruciuni de: o citire a datelor; o decizie; o atribuire; o scriere/afiare a rezultatelor prelucrrii. sgei care indic sensul fluxului de prelucrare, deci ordinea de execuie a operaiilor elementare. Ordinea n care instruciunile programului sunt executate constituie structura de control a acestuia. Structurile de control se mpart n general n 2 categorii: structuri secveniale structuri nesecveniale Cele secveniale sunt folosite n cazul programelor simple, n care ordinea execuiei instruciunilor sau modulelor de instruciuni coincide cu ordinea sintactic a acestora. Forma general a unei structuri secveniale este: a(1) a(2) a(3) . . . a(n) n exemplul: citete a,b,c m:=(a+b+c)/3 scrie m 8 | IE, an II

unde a(1), a(2),..a(n) sunt aciuni ce se execut n aceast ordine

a(1) a(2) a(3)

March 21, 2013 [MEDII DE PROGRAMARE VIZUAL] sunt implicate 3 aciuni a(1), a(2), a(3) care constau n: citirea a 3 valori; calculul mediei aritmetice; afiarea rezultatului.

Structurile nesecveniale apar n cazul n care instruciunile se execut numai n anumite condiii i/sau se repet n funcie de rezultatul evalurii unor condiii. Structurile nesecveniale pot fi: alternative (de decizie sau selecie); repetitive; multiple/mixte. Structura alternativ este acea structur n care se efectueaz un ciclu de operaii sau altul n funcie de o anumit condiie (C) impus de logica de rezolvare a problemei. Condiia poate fi de: verificare a coninutului i a naturii unor zone de memorie; verificare a coninutului unui contor, a crui valoare poate crete sau descrete; verificare a corectitudinii unor date de intrare etc. Cazul general de program (P) cu structur alternativ are forma: P=M1; {M2 dac C=DA i M3 dac C=NU}; M4 n care M1, M2, M3, M4 sunt modulele programului P, iar C condiia evaluat. Derularea programului se realizeaz astfel: sub forma P=M1; M2; M4 cnd condiia C este ndeplinit; sub forma P=M1. M3; M4 cnd condiia C nu este ndeplinit Schematic structura alternativ (IF THEN - ELSE) se prezint astfel:

9 | IE, an II

March 21, 2013 [MEDII DE PROGRAMARE VIZUAL]

Structura alternativ Dac M3 nu conine instruciuni se obine o structur alternativ cu ramur vid: Derularea programului este: P=M1 dac C=DA, atunci M2; M4 P=M1, dac C=NU atunci M4

Structura alternativ cu ramur vid 10 | IE, an II

March 21, 2013 [MEDII DE PROGRAMARE VIZUAL] Structura repetitiv permite reluarea identic de mai multe ori a aceluiai modul de instruciuni. Numrul de repetri poate fi predefinit (FOR) sau condiionat de rezultatul evalurii unei condiii (WHILE-DO sau DO - UNTIL). n primul caz este vorba de structura repetitiv cu un numr definit de pai (DO FOR), numrul de repetiii este controlat de o variabil V, numit variabil de control, care are o valoare iniial Vi i una final Vf, ambele prestabilite i o raie R (un increment) care se adaug la valoarea curent a variabilei de control, dup fiecare execuie a modulului repetitiv. Ieirea din structura repetitiv se realizeaz atunci cnd variabila de control depete valoarea final.

Structura repetitiv controlat prin FOR Derularea structurii repetitive controlat prin FOR, pentru o secven de program SP se realizeaz astfel: Sp=MODUL pentru V<Vf n cel de al doilea caz, n funcie de plasarea condiiei, structura repetitiv poate fi condiionat anterior (WHILE DO) sau condiionat posterior (DO UNTIL). n structura repetitiv condiionat anterior evaluarea condiiei precede execuia modulului repetitiv. Execuia i eventual repetarea modulului se va face numai cnd condiia este adevrat. Derularea structurii condiionate anterior se prezint astfel: Sp=ct timp C=DA execut MODUL REPET

11 | IE, an II

March 21, 2013 [MEDII DE PROGRAMARE VIZUAL]

NCEPUT MODUL INIIAL

DA C NU MODUL FINAL

MODUL REPET

SFRIT Structura repetitiv condiionat anterior n structura repetitiv condiionat posterior evaluarea condiiei se realizeaz dup fiecare execuie a modulului. Reluarea execuiei modulului are loc att timp ct condiia nu este adevrat. Derularea structurii repetitive condiionate posterior se prezint astfel: Sp=Execut MODUL REPET pn cnd C=DA Structura multipl este recomandat n cadrul programelor complexe cnd pe diverse niveluri de organizare se rentlnesc toate tipurile de structuri prezentate. Practica a demonstrat c pentru definirea structurii de control a oricrui program sunt suficiente structura secvenial, cea alternativ i cea repetitiv condiionat anterior, numite i structuri fundamentale de control.

12 | IE, an II

March 21, 2013 [MEDII DE PROGRAMARE VIZUAL]

NCEPUT MODUL INIIAL

MODUL REPET DA C NU MODUL FINAL

SFRIT Structur repetitiv condiionat posterior

13 | IE, an II

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