Un sistem de calcul e alcatuit din 2 subsisteme: software si hardware.Hardware =totalit echipamentelor fizice care compun sistemul de calcul;Software= totalitatea prodr progr cu care e echipat sistemul de calcul; Produse program(software)=ansamblul de programe intercorelate avand o interfata unitara destinata rezolvarii unui anumit tip de pb ale utilizatorului.Program=ansamblu de instructiuni care, transpuse intr-un anumit cod sau lb de programare si pe un suport accesibil calculat, poate realiza o functie de tratare a datelor sau a info.Tratarea datelor=operatii de calcul si/sau logice,transferuri, reorganiz, selectari, ordonari, cautari, regasiri, actualiz, afisaripe ecran!, listariimprim!, transmisii la distanta.Limba de programare=lb artificial destinat descrierii prin direcive, comenzi, instructiuni e"primate simbolic, prelucrarea datelor ce urmeaza a fi realizata in cadrul sistemului de calcul. #ot fi specializate pe domenii de aplicatii sau cerinte de calcul. Subsistemele software pot fi clasificate i!: $. programe de sistem " sistem de operare; instrumente soft, medii de programare! 2. programe de aplicatii pachete de programe orientate pe domenii; pachete de programe orientate pe metode!%. structuri de date Programele de sistem sunt create de specialisti din firme specializate, livrate odata cu calculatorul.S#=ansamblul de programe care realizeaza gestiunea resurselor unui sistem de calcul, are un caracter universal, controleaza e"ecutia altor programe si furnizeaza servicii altor componente ale software-ului.$!strume!te soft = entitati soft care prelucreaza sau actioneaza asupra altor entitati soft.%edii de programare=colectii de instrumente soft grupate in &urul unui compilator avand o interfata comuna care a&uta la dezvoltarea unui program intr-un anumit limba&.'". instrumente: compilatoare, interpret, editoare de legatura, depanatoare; '". medii: (isual),*o",+asic,),!#e lg mediile de programare, in proc dezvoltarii pachetelor software sunt fol si instrum )-.' computer assisted software engeneering! ce asista programele la analiza /proiectareProgr de aplicatii scrise pt anumite categorii de utilizatori si pt realizarea unor pb specifice: -domenii: ec, transporturi, constructii; -metode: statistice, matematices0stat, win1sb!2n plus fata de clasificarea anterioara mai e"ista e"tensii ale .3:-.3 cu caracter dedicat-comp software care asigura la nivelul echipamentelor, facilitati speciale curente fol numai de an. aplicatii.4ai e"ista si pachete integrate de programe:-editoare de te"t, tabele, gestiune +5, grafica de prezentare, agenda, posta electronica office!. -vanta&: compatibilitatea componentelor. 1.(co!ti!uare1) 'lemente constitutive ale produselor program#.!:-program=codificarea in lb de nivel inalt al unor algoritmi sau fctii de prelucrare a inf. 'ste o unitate de sine- statatoare, interactionand doar cu .3. 6ucreaza cu date 2/3 proprii. 'ste def prin date, algoritmi, structuri. 'ste parte fizica a unui #.##!.-subprogram=comp fizica, parte dintr-un program, destinata rez unor pb dintr-o an clasa. #oate fi fol in diverse parti ale pr. .e fol in cadrul lb de programare de niv inalt ce ofera facilitati de declarare, apel si transfer de parametrii.-modulul=comp logica, elemente de structura a programelor, rezulta din divizarea programelor in parti distincte, are independenta functionala si interactiunea lui cu alte module este minima. Un program e compus din cel putin un modul iar un modul din unul sau mai multe progr, proceduri, subprograme. 4odularizarea unui #. este la latitudinea dezvoltarii acestuia si reprezinta modelul de implemetare pe componente.-pachete de program##! -biblioteci de program, proceduri, subrutine = produse software ale caror comp pot fi apelate din diverse alte pachete software pt rezolvarea unor an pb specifice. 'le nu fac parte din produsul software de baza, ci tb sa e"iste alaturi de acesta. .unt specializate pe diverse tipuri de metode mate, statistice,...!. . &ibliotecile de programe = produse software ale caror componente pot fi apelate din diverse alte pachete software pt rezolvarea unor anumite pb specifice. +ibliotecile nu fac parte din produsul software de baza cit b sa e"iste alaturi de acesta. .unt specializate pe diverse tipuri de metode matematice, statistice, etc.! 'lasificarea ge!eratiilor de produse software dpdv al modului lor de realizare si al prelucrarilor efectuate 2 mari categ!: a! produse program clasice care prelucr. date si i!formatii(produse program monolit - nu li se pot face modificari, nu pot fi intrerupte in functionare(produse program conversationalesisteme de asistare a deciziei ;sisteme e"pert!(produse program prietenoase b)prod. program care prelucr. cu!osti!te) 'lasificarea produselor program orie!tate pe dome!ii se poate face di! mai multe pcte de vedere"(ge!eralitate ( produse program de uz general ) ( produse program generalizate )(produse program refolosibile ; ( produse program unicat. (dpdv al fct utilizator i!formatizate ( produse software pt informatizarea proceselor de productie; ( prod software pt informatizarea diverselor fctii ale intreprinderii; ( activitati de birou) ( activitati de cercetare) ( activitati de programare. 1.(co!ti!uare*) - dpdv al dome!iului utilizatorului ( produse software pt activitatea economica ind., constructii, agricultura!'lasificarea orie!tata pe metode" (dpdv al modelului utilizat + matematice; - orientate pe planificarea productiei) ( statistice; ( teoria deciziei(dpdv al fu!ctiei i!depli!ite ( produse software de e"ploatare a bd; ( produse software utilitare;(dpdv al comple,itatii ( produse program independente) ( biblioteci de programe sau subprograme'riterii de alegere a prod program si evaluarea calitatii lor" $. dimensiunea ma"ima a pb ce tb rezolvata in raport cu dim prod software 2. cerintele hard si soft minime necesare functionarii produsului program in raport cu cele e"istente %. fle"ibilitatea = usurinta in utiliz 7. costurile implicate de utilizarea curenta a produsului nu tb sa afecteze eficienta economica a intreprinderii8. modularitate si adaptabilitate la noi functii si dezvoltari ale produsului 9. modul de tratare al erorilor si de semnalare a lor:. fiabilitatea = siguranta in e"ploatare ;. implicatiile algoritmilor utilizati asupra preciziei rezultatelor, vitezei de raspuns si consumului de resurse'valuarea calitatii se poate realiza fie dpdv al utilizatorului dupa criteriile de mai sus!, fie al realizatorului prin compar. niv. caracteristice de calitate obtinute cu cele planificate.Stocarea si difuzarea produselor software.tocarea se face prin intermediul bibliotecilor tehnologice, iar difuzarea prin bibliotecile de distributie &ibliotecile teh!ologice - se realizeaza in cadrul unitatilor elaboratoare software; - % categorii: de sistem, ale proiectelor si ale programatorilor ; - 2n cadrul unei biblioteci tehnologice sunt cuprinse toate prod soft e"istente in cadrul unei firme de soft. &ibliotecile de sistem " ( )ontin toate instrumentele software, so, medii de programare utilizate in cadrul firmei. -numite categorii de utiliz din firma au acces la ele.&ibliotecile de proiect : - .pecifice fiecarui proiect de produs soft aflat in curs de realizare in cadrul firmei si cintine programme sau componente in curs de realizare sau in forma finala apartinand aceleiasi apl.&ibliotecile programatorilor : - .unt organizate si intretinute de fiecare programator in parte si contin comp software apartinand diverselor aplicatii in curs de realizare sau rwalizate de catre programatorul respectiv.&ibliotecile de distributie ( cercetarea de proiecte produs de uz general sau generalizabile de la elaboratori si difuzarea lor catre utilizatorii interesati ; - evidenta produselor program elaborate si in curs de elaborare aflate la autori ; - selectarea de produse program care pot prezenta interes 1.(co!ti!uare-) pt mai multi utilizatori ; - colectarea de produse program selectate si repartizarea lor pe categorii ; - testarea si omologarea produselor program selectate ; - informarea utilizatorilor cu privire la produsele program aflate in fondul bibliotecii; - difuzarea prod program catre utiliz; - urmarirea in e"ploatare a prod program ; - colectarea de la utilizatori de cerinte de noi versiuni ale prod e"istente. .specte legislative privi!d protectia produselor software6egea priv. dr. de autor si drepturile cone"e a fost aprobata in <=9 si a suferit pe parcurs adaugari si modificari din diverse ordonante.#biectul dreptului de autor = operele orig. de creeatie intelectuala indif. de modalitatile de creeatie, modul si forma concreta de e"primare si indep. de val. si destinatia lor.'o!ti!utul dreptului de autor -utorul are dr e"clusiv de a autoriza reproducerea integrala sau partiala, difuzarea, transmiterea prin fir, cablu sau fibra optica, accesul public la bd dc ele sunt prote&ate, utiliz, inchirierea sau imprumutul a orig sau a copiei.#rin contractul de inchiriere, autorul permite folosirea pe un timp determinat a origunalului sau a unei copii. /urata dr de autor = tot timpul vietii autorului si se transmite prin mostenire pe o perioada de 8> de ani. /ispozitii speciale privi!d produsele software #rotectia programelor pt calculator includ : orice e"presie a unui program, progr de aplicatie si sistemele de operare e"primate in orice lb, cod sursa, cod obiect sau cod e"ecutabil, materialele de conceptie pregatit precum si manualele.2deile, procedurile, metodele de functionare, conceptele matematice si principiile care stau la baza oricaror elemente dintr-un program, inclusiv cele care stau la baza interfetelor.-utorul are dreptul e"clusiv de a realiza sau autoriza : -reproducerea permanenta sau temporala, integrala sau partiala a unui program prin orice mi&loc sau forma ;-traducerea,adaptarea, rearan&area si alte transformari ale unui program, precum si reproducerea acestor transformari ;-difuzarea origunalului sau acopiilor sub orice forma, inclusiv inchiriere. 5repturile asupra programelor create de unul sau mai multi anga&ati ca atributii de servici sau dupa instructiunile celui care anga&eaza, apartin anga&atorului.Pri! co!tractul de utilizare : - utilizatorul are dreptul nee"clusiv de utilizare a progr. ; - utilizatorul nu poate transmite dr de utilizare unei alte persoane ; - cesiunea dreptului de utilizare al unui progr nu implica transferul dr de autor asupra lui ;- utilizatorul autorizat are dreptul de a realiza copii de arhiva sau de siguranta fara acceptul autorului 0eprod sau traduc codului progr pt interoperabilitatea cu alte 2nfo nu pot fi communicate altor 1.(co!ti!uare1) persona&e .2nfo nu pot fi utilizate pt definitivarea, producerea sau comercializarea unui program a carui e"presie e fundamental similara.Se sa!ctio!eaza cu i!chisoare sau ame!da urmatoarele" ( accesul public la bd care contins au constituie opere prote&ate, fara autorizarea titularului dreptului e autor ; ( insusirea fara drept a calitatii de autor ) ( fara autorizarea titularului dr de autor se :reproduce, difuzeaza sau comercializeaza programme ; pune la dispozitia publicului prin vanzare mi&loacele tehnice destinale neutralizarii dispozitivelor de protectie a progr+eneficiaza de protectie prin lege si progr creeate anter intrarii in viguare a acestei legi. *. #rga!izarea si structurarea datelor /atele = un mod de reprez a inf accesibil unui processor om sau calc! cu care se poate opera pt a obtine noi informatii despre fenomene, procese sau obiecte. /atele su!t grupate i! * mari categorii : $! datele eleme!tare = entitati indivizibile atat in raport cu inf pe care o reprezinta cat si in raport cu procesul care o prelucreaza.#oate fi privita dpdv logic sau fizic. Pctu de vedere logic = pctu de vedere al procesorului uman. ' formata din % parti : identificatori, atribute si valori.$de!tificatorul = simbol sau nume care se asociaza datei pt a o distinge de alte date si pt a o putea referi in procesul de prelucrare..tributele precizeaza proprietati datei si determina modul in care ea va fi tratata in procesul de prelucrare. #ot fi de tip, pot preciza modul de alocare al mem static/dinamic!, pot preciza reprezentarea interna, eventual valorile initiale.(alorile pot fi nr intregi, reale, comple"e, logice, siruri de caractere. #ot fi precizate prin enumerare sau printr-o proprietate comuna. 5c pe parc procesului de prel, data isi pastreaza valoare =? constanta, altfel =? variabila./pdv fizic al calc!, modelul coresp datei = o zona de mem de o an lungime situata la o an adresa absoluta in care sunt memorate pe o an per de timp si intr-o an forma specifica, valorile datei.5atele se prezinta sub forma unor multimi colectii! care necesita o an organizare. 5c intre elem unei colectii pot fi identif0 si introducse relatii, se obtine cel de- al doilea tip de date, structurile. 2! structurile de date @elatiile pot fi relatii de ordine intre elem colectiei sau relatii de descriere a mecanismelor de acces.3 structura de date = entitate de sine statatoare individualizata prin nume ale carei comp isi mentin propriet. )omp unei .5 pot fi individualizate sau selectate fie prin nume, fie prin pozitia pe care o ocupa in cadrul structurii conform cu relatia de ordine specificata.)ladificarea .5 :(dupa modul de selectare a comp : .5 cu acces direct sau acces secve!tial )( dupa suportul fizic in care sunt stocate : .5 i!ter!e si e,ter!efisiere, +5! ; - dupa modul de alocare a memoriei : .5 statice, care isi pastreaza nr de componente pe parc prelucrarii ; sau .5 di!amice, care isi modifica structura pe parc prelucrarii cu cardi!alitate fi!ita nr limitat de comp! ;cu cardi!alitate i!fi!ita nr de comp e nelimitat!!-supra unei .5 se pot efectua o multime de operatii cele mai uzuale fiind : creeare memorarea str pe un support!, actualizare adaugare, modif, stergere!, listare.-lte operatii : ventilarea desfacerea unei str in mai multe!, fuzionarea *. (co!ti!uare*) combinarea a 2/m multe str e". 2nterclasarea!. Tipurile de S/ i! memoria i!ter!a"1)sirul = o succesiune ordonata de elem. 6ungimea lui e data de nr de elem. Aipul lui e dat de tipul elem.*)%asivul = o colectie de date omogene cu cardinalitate finita. -re o str liniara si statica.-)$!registrarea = str de date eterogena, statica si cu cardinalitate finite. )omp ei sunt campuri si sunt indiv prin nume. @elatiile de ordine intre elem e ierarhica, ierarhia fiind precizata prin nr de nivel. 'lem str pot fi date elementare sau .5. 2n memoria interna, reprezentarea articolului se face prin liniarizare intr-o zona compacta.1)Liste = str dinamice liniare, recursive, cu comp omogene sau eterogene. 'lem unei liste pot fi date elem/.5. 3rice lista are doua capete numite baza si varf. Aoate elem unei liste mai putin baza si vf au det in mod unic elem precedent si eventual pe cel successor. #ot fi de 2 tipuri: li!iare asimetrice fiec elem 2 se cunoaste numai elem succ! si li!iare simetrice fiec elem 2 se cunoaste adr elem succ si al celui prec!. #arcurgerea listelor poate fi facuta in forma 62*3 sai *2*3 =? listele pot fi de tip coada *2*3! sau stiva 62*3!.1).rborii = str dinamice cu o rel de ordine ierarhica, elem str se numesc noduri sau varfuri, referintele pleaca de la nodul tata la nodul fiu. 2n orice arbore e"ista un nod radacina care nu are tata si noduri frunze care nu au fii. - -rbori generali -? orice data poate sa aiba un nr nelimitat de fii ( -rbori binari -? orice varf poate sa aiba ma"im 2 descendenti. -rborii binari pot avea urmatoarele forme de repreze!tare:standard,prin paranteze incluse,grafica,tata.Parcurgerea :preordine @.5! ;inordine .@5! ;postordine .5@!) 2)Structuri de date e,ter!e : ( fisiere = colectie organizata de inregistrari. 2n functie de modalitatea de mem a inreg, e"ista m multe tipuri de metode de acc la fis.- 3rganizare secventiala =? acc secvential; 3rganizare inde"at secv =? acc secv / direct; 3rganizare selective =? acc direct, secv, d0namic 3 categ speciala sunt fisierele inverse care se creeaza pe baza unor fis clasice prin inversarea rolului inreg cu cel al caract campurilor!. .e fol in cadrul org datelor in arhive sau cataloage de date in care se pune pb cautarii inreg carora le coresp o caract de o an valoare;. B &/(una sau mai multe colectii de date aflate Cn interdependenta, Cmpreuna cu descrierea structurii acestora si a relatiilor dintre ele. 2ncluderea Cn baza de date a descrierii structurii acesteia o deosebeste calitativ de fisierele de date, deoarece prin *. (co!ti!uare-) aceasta se asigura independenta datelor din baza fata de programele de aplicatii si invers. Dn functie de tipurile de structura abordate si conceptia de definire a relatiilor dintre colectiile de date putem avea: E baze de date ierarhice modelul ierarhic! care opereaza cu multimi de date structurate arborescent; E baze de date tip retea modelul retea! care opereaza cu multimi de date structurate Cn retea; aici notiunea de element ierarhicdispare fiind Cnlocuita cu cea de predecesor;E baze de date relationale modelul relational! care opereaza cu multimi de date structurate pe baza teoriei matematice a relatiilor dintre ansambluri. E baze de date orientate obiect modelul obiectual! destinate stocarii obiectelor utilizate in aplicatiiconcepute si realizate orientat obiect. 3actori care i!fl alegerea modului de org si str a datelor i! cadrul act de dezvoltare soft$.volumul datelor determina alegerea modului de stocare a datelor pe suport intern sau e"tern si implicit tipul de structura *.operatiile de prelucrare si frecve!ta lor determina natura suportului de memorie, tipul de structura si modul de acces -.i!dicele de activitate pe operatii este def ca un raport intre nr de comp a structurii utiliz intr-o operatie si nr de componente e"ploatate pt aceasta operatie. -cest fact infl tipul de acc, implicit suportul fizic 1.durata de viata a structurii. 5c se lucreaza in timp asupra datelor. 5c .5 sunt temporare, nu cont modalitatea de stocare ci modul de org a datelor care sa permita un acc rapid la ele 2.utilizarea eficie!ta a spatiului de mem. .patiul de mem conditioneaza stocarea datelor si implicit alegerea unor str de date .5! in mem interna42! 4. comple,itatea act de programe si lb de programare fol 5. asigurarea i!tegritatii datelor 6. e,perie!ta programatorului -. .L7#0$T%$ 1. Notiu!i ge!erale privi! alg -lgoritmul=sistem de reguli care, aplicat la o cls de pb de acelasi tip conduce de la o an inf initiala, la solutia finala cu a&utorul unor operatii succesiv ordonate si unic det. 3 inf initiala pt care un alg este aplicabil=inf admisibila. Aotalitatea inf admisibile formeaza domeniul algoritmului. -lg poate fi definit: f:5-?. 3bsF Gu orice metoda de calcul=alg. 3 met pt a fi alg tb sa indeplin % cond: $!generaliatate B tb sa rezolve toate pb din aceeasi clasa;2! finitudine B tb sa aiba reguli clare de sf a alf; %!unicitate B transf intermediare facute asupra inf initiale tb sa fie unic determinate de regulile alg si sa prezinte osuccesiune stricta a operatiilor'ompu!erea si descompu!erea alg)ompunerea se poate face prin:-suprapunere B at cand alg f este compus din suprapunerea lui f$ peste f2: f=f$f2!, de e" min, ma" pe coloane;- succesiune B in care inf finala a lui f$ = inf initiala pt f2: f=f$Hf2;-mi"tao succ de suprapuneri,o suprapunere de succ! 5escomp se realiz prin spargerea unui alg intr-o combinatie de alg cu o str mai simpla numiti subalg.'lasificarea alg 1)/pdv al formei de repreze!tare:-alg liniari in care succ alg este liniara si nu se poate reveni la pasii anteriori;- alg cu ramificatii care includ struct alternativa si se det evolutia alg pe o ramura sau alta in fctie de rez unei conditii) -alg cicliciiterativi! B pornind de la o val initiala a sol, imbunatat aceasta sol printr-un proc repetitiv *)/pdv al programarii"-alg !umerici B cu urm carac: ma& datelor sunt numerice;sunt org in siruri, liste, masive)fol ca suport 42)procesul de calcul este iterativ) nr de operatii de calcul e mare)pt progr lor sunt fol lb procedurale.(alg de prelucrare B prezinta o pondere mare a datelor stocate pe suporti e"terni, org in fis sau +5. .pecificul prel datelor impune o specializare a alg: alg pt creearea fis sau actualizarea lor. 5eoarece prel datelor din fis se realiz la niv de inreg, alg vor avea str repetitive.*. Teh!ici de repreze!tare a alg 8,ista * mari categ: 2.$ repr grafica: scheme logice, diagrame arborescente, tabele de decizie) 2.2 repr te"tuala: pseudocodul si reprez analitica3bsF $!se utilizeaza o tehnica de reprez, una sau alta, in fctie de avanta&ele /dezav fiecareia si de scopul urmarit astfel:-schema logica permite intelegerea mai clara a alg dar are dezav unui spatiu f mare ocupat si impos de a realiza o descompunere pe nivele a alg; -reprez analitica permite descrierea intr-un spatiu redus dar intelegerea semnif alg e f dificila; -diagrama arb are avant vizualizarii f clare a desc pe nivele a alg precum si a str fundam de control; -pseudocodul premite trecerea cu usurinta la lb de programare dar de asem spatiul ocupat este -. (co!ti!uare1) mare 2! diagr arb se parcurg de sus in &os si in cadrul aceluiasi niv de la st la dr. '"ista 2 tipuri de diagr arborescente:-tabourierI!;- millsasemanatoare cu prima numai J se elimina repr grafice: drept/romb. #seudocodul poate fi in engleza sau in romana. 'l permite in plus si repr unor declaratii de datept care se poate utilize sinta"a unor anumite lb de programare. 1.'iclul de viata si ciclul de realizare al produselor program 'v=intervalul de timp intre mom luarii deciziei de realizare a produsului si pana la inlocuirea totala alui cu un alt produs. 'r=intervalul de timp intre mom luarii deciziei de realizare si pana la punerea lui in functiune la utilizatorul final.-mandoua sunt impartite in etape, fiecare etapa fiind definita printr-un scop si avand preconizate an rezultate. 3rdinea de parcurgere a etapelor, intervalul de timp alocat fiecarei etape, precum si rezultatele partiale sau finale! ale etapelor fac sa e"iste diverse modele ale ciclului de viata, respectiv ciclul de realizare. %odelele cv su!t "( modelul li!iar )( modelul evolutiv )( modelul i! cascada )( modelul i!creme!tal )(modelul i! spirala)( imagi!ea bazata pe model. 8tapele cv su!t"$!a!aliza problemei" are ca scop identificarea si formularea cerintelor globale ale produselor soft, precum si analizarea necesitatii sau oportunitatii realizarii lui ca rezultat = tema de realizare.*)Proiectarea prelimi!ara" are ca scop specificarea mai detaliata a cerintelor functionale si de calitate si are ca rezultat specificatiile de definire si o prima varianta a planului de testare.%!Proiectarea detaliata" scop B proiectarea structi logice a modulelor;- proiectarea interfetelor cu utilizatorul; - proiectarea structurilor de date si de control dpdv logic;-proiectarea str fizice a datelor;- proiectarea algoritmilor si pregatirea testarii produsului ce teste se vor face, de cate ori se testeaza fiecare, modul, care vor fi datele de test, care tb sa fie rez corecte ale testelor! rezultat " specificatiile de realizare, de testare si de integrare ; 7!impleme!tarea de cod scop : elaborarea programelor, testarea individuala a programelor si modulelor, elaborarea aplicatiei, elab documentatiei de intretinere si inceperea elaborarii programe tb autorizata de titularul dr de autor daca : - actele de reprod sau traducere sunt realizate de o pers care detine dr de utilizator a unei copii ;- daca info necesare interoperabilit nu sunt usor si rapid accesib;- dc actele se limiteaza la,parti din program.2nfo necesare inteoperabilitatii nu pot fi utilizate in alte scopuri decat pt realizarea transf autorizate documentelor de intretinere, prezentare si utilizarerezultat " programele e"ecutabile, fisiere sau bd, date de test si documentatie de intretinere8!i!tegrarea si testarea i! a!samplu a produsului rezultat : - produsul program testat in ansamblu ;- raportul de integrare si testare ;- forma finala a documentelor de intretinere manualul de prezentare, de utilizare si eventual, manualul de e"ploatare!9!e,perime!tarea i! co!ditii 1. (co!ti!uare1) reale de lucru la utilizatorii fi!ali. @ezulta un raport de e"perimentare si se face prin versiuni beta:!omologarea = certificarea calitatii si functionalitatea produsului. .e realizeaza de catre firme specializate si acreditate sa faca acest lucru.5upa omologare produsul e dat in e"ploatare curenta si va functiona pana la inlocuirea lui de un alt produs modelul liniar! fie i se vor adauga veriuni ulterioare in etapa de mentenanta in alte modele!.2n versiunea liniara etapele tb parcurse integral. 6a sf fiecarei etape se realiz analiza si avaluarea rezultatului etapei. 5c analiza e pozitiva se poate trece la etapa urmatoare, altfel etapa va fi realuata. 3bs. o etapa odata validata nu va mai fi niciodata reluata.'tapele de analiza si proiectare preliminara = etapa de analiza care raspunde la intrebarea : K ce tre sa faca produsul program I L'tapa de proiectare detaliata : K cum vor fi realizate cerintele I L 1.1%odelul i! cascada Dn mod traditional, activitatea de realizare a produsului software este structurata utilizMnd diferite tipuri ale modelului Cn cascada care descrie flu"ul procesului de dezvoltareUn model tipic Cn cascada presupune ca dezvoltarea Cncepe cu definirea cerintelor si a specificatiilor, care se pot realiza Cn secv dar si alternMndu-le. Urmeaza proiectarea care odata terminata se pot implementa module mici care pot fi testate individual, iar apoi Cmpreuna; cMnd ultimul test de integrare este complet, Cntregul produs software poate fi testat si livrat si Cncepe etapa de mentenanta. *iecare etapa a ciclului de viata are un scop bine precizat si presupune unor activitati specifice. 6asfMrsitul fiecarei etape se obtin componentele produsului program Cn diverse stadii de elaborare precumsi documentatia de realizare a produsului.6a trecerea de la o etapa la alta, rezultatele obtinute sunt evaluate si avizate. 2nitial a e"istat ideea ca ofaza trebuie sa fie complet terminata pentru a o Cncepe pe urmatoarea. -cest principiu a fost abandonat relativ repede si s-a convenit ca o faza sa poata Cncepe Cnainte ca precedenta sa fie complet terminata. /efi!ire ceri!te ( are ca scop identificarea si formularea cerintelor globale privind realiz produsuluiprogram cMt si &ustificarea necesitatii si oportunitatii acestuia. 0ez. etapei este specificarea cerintelor utilizatorului. .!aliza B are ca scop specificarea cerintelor functionale si de calitate ale viitorului produs, identificarea mi&loacelor tehnice-suport, stabilirea fazelor si activitatilor de elaborare, a procedurilor de control sireceptie. 0ezultatul etapei este NTema de RealizareO.Proiectarea B are drept scop stabilirea arhitecturii si structurii viitorului produs. #entru proiectele comple"e aceasta etapa se Cmparte Cn proiectare preliminara si proiectare detaliata. 1.1. (co!ti!uare1) 8laborarea programelor are ca scop: realizarea modulelor/programelor conform specificatiilor derealizare si testare individuala a acestora. Aestarea, aici este orientata spre depistarea erorilor de programare la nivel individual. 0ezultatele etapei sunt: fisierele /bibliotecile cu programele/modulele testate individual, raportul de testare individuala si listinguri martor. $!tegrarea si testarea consta Cn integrarea si testarea progresiva a produsului program Cn ansamblu.Aestarea, Cn acest caz, este orientata spre validarea functiilor generale si a performantelor specificate, a interfetelor dintre programe P programe, programe P echipamente, programe P utilizator. 0ezultatul testarii este consemnat Cn NRaportul de Testare a integrarii ce contine: scurta descriere a functiunilor, conditiile de efectuare a testarii, rezultatele testarii, performantele obtinute. 8,perime!tarea are ca scop verificarea Cn conditii reale a functionalitatii si performantelor produsului program. 0ezultatele e"perimentarii se consemneaza Cntr-unNRaport de Experimentare9 care contine: descrierea sumara a produsului program, descrierea conditiilor concrete de e"perimentare, evaluarea rezultatelor obtinute, anomaliile constatate si modul de solutionare, recomandari de perfectionare. #mologarea are ca scop certificarea functionalitatii si a calitatii produsului program Cn scopu difuzarii sale pe scara larga. Dn acest model intrarile fiecarei etape sunt iesirile alteia. *eedbacJ-ul e format din erori care serasfrMng asupra etapei urmatoare. 'rorile se propaga indirect, Cn plus intervin costurile modificarilor fapt ce implica necesitatea testarii foarte riguroase a fiecarei etape. 1.*.%odelul i!creme!tal .pecific acestui model este faptul ca etapele finale sunt realizate Cn mai multi pasi succesivi ceea ce permite obtinerea de versiuni preliminare ale produsului software 'eri!te utiliz 'eri!te software Proiect arhitecturala Proiect de detaliu si prod Tra!sfer :tiliz si me!te!a!ta timp 4odelul incremental are urmatoarele caracteristici: P analiza si proiectul de ansamblu arhitectural! se realizeaza Cntr-o singura componenta; P proiectarea de detaliu, productia, transferul si mentenanta sunt facute Cn mai multi pasi succesivi; P elaborarea produsului software Cn pasi da posibilitatea verificarii daca productia va da rezultatele dorite. P 4odelul incremental este mai bun decMt modelul Cn cascada, necesita mai multa organizare, dar permite versiuni preliminare ale produsului software pe care se pot verifica calitatile acestuia. 5efinire cerinte -naliza #roiectare 2mplem cod Aestare UtilizQmentenan ta 1.-%odelul evolutiv )omparativ cu modelele precedente, acest model, necesita un management mai mare, o organizare mai buna. 'ste foarte util cMnd specificatiile initiale nu sunt foarte clare sau cMnd se realizeaza un s0stem nou si nu se pot da specificatii precise si complete sau cMnd acestea sunt instabile.#rin parcurgerea pasilor modelului evolutiv se realizeza un prototip initial care Cn final prin reluareaetapelor pasilor! a&unge sa satisfaca cerintele clientilor 'eri!te utiliz 'eri!te software Proiect arhitecturala Proiect de detaliu si prod Tra!sfer :tiliz si me!te!a!ta timp 4odelul evolutiv poate fi aplicat printr-o strategie agresiva sau revolutionara! care tine cont decerintele pietei Cn sensul dezvoltarii continue de noi produse sau de noi functii, racordate la cerintelepietei de produse software.+azat pe prototipizare, prin repetarea tuturor etapelor, modelul evolutiv naste Cn timp mai Cndelungatun produs, dar permite Cntotdeauna rezolvarea unor noi probleme sau includerea de noi functii cerutede piata utilizatorilor de produse software. -daptat la cerintele pietei, modelul evolutiv poate produce o solutie evolutiva sau, prin strategia agresiva, o solutie revolutionara. #rin combinarea acestora si Cn functie de studiile de piata se poate obtine o solutie intermediara. Prototipizarea este o tehnica de construire si implementare partiala a unui sistem sau produs software astfel CncMt cumparatorul, utilizatorul sau realizatorul sa poata Cnvata, cunoaste mai mult despre problema si despre solutionarea acesteia. Prototipul este util pentru utilizatorul final care va Cntelege mai bine ce vrea sau ce se asteapta de la produs si este util pentru realizator pentru a testa unele tehnici, algoritmi aplicati, interfete realizate etc. @eferitor la prototip e"ista doua abordari prototip de ;!cercare) prototip evolutiv 1.1%odelul i! spirala #roblemele ma&ore Cn dezvoltarea produselor software apar, Cn cele mai multe cazuri, Cn etapa de mentenanta care Cn realitate contine definirea de noi cerinte de specificare, de analiza, de proiectare.-u fost dezvoltate Cn timp o serie de alte modele decMt cele descrise anterior, cel mai utilizat actualmente fiind modelul Cn spirala al lui +oehm care Cncearca sa solutioneze problema amintita anterior 4odelul Cn spirala poate descrie cum un produs se dezvolta pentru a forma o noua versiune si cum o noua versiune se dezvolta incremental de la un prototip la un produs complet. -naliza
Proiectare 2mplement Q ($(2 (% (7 (ersiune Aestare individuala finala 2ntegrare 4odelul propune aceleasi etape de realizare, dar fiecare ciclu de dezvoltare Cncepe prin studiul de fezabilitate, apoi continua cu specificarea cerintelor si analiza, proiectarea si implementarea.#e de alta parte fiecare din etapele amintite anterior se realizeaza printr-o succesiune de activitati:P determinarea obiectivelor etapei, a alternativelor si restrictiilor;P evaluarea alternativelor, identificarea riscurilor si rezolvarea lor;P dezvoltarea si verificarea urmatorului nivel al produsului;P Cntocmirea planului urmatoarei etape, ales pe baza riscurilor.-tMt etapele cMt si activitatile lor componente sunt evaluate avMnd drept crt de baza costurile implicate. 4odelul Cn spirala are urmatoarele caract:P contine aproape toate caracteristicile celorlalte modele;P celelalte modele pot fi considerate sau sunt cazuri particulare ale acestuia;P evalueaza riscurile oricarei abordari Cn toate etapele de dezvoltare a produselor software, iar pebaza acestora alege abordarea corecta.5ezvoltarea produselor software contine Cn mod uzual toate fazele si activitatile prezentate anterior, chiar daca ele poarta dif nume Cn dif metodologii si dezvoltarea decurge incremental pe parcursul acestor etape, scenariu de dezvoltare care se poate aplica indiferent de metoda de realizare utilizata. #utem caracteriza dezvoltarea produsului ca pornind initial dintr-o faza nebuloasa, dar care se stabilizeaza Cn urmatorii pasi Cn subsecvente. 4etodele de dezvoltare trebuie sa a&ute ca procesul de dezvoltare sa fie stabil pe cMt posibil. .e presupune ca trebuie lucrat Cn etapa de analiza pMna cMnd se va Cntelege sistemul Cn totalitate, dar nu atMt de mult CncMt sa consideram detaliile care vor fi modificate pe parcursul proiectarii. -cest lucru poate Cnsemna ca cea mai mare durata este alocata analizei, ceea ce este valabil Cn unele modelele de implem a ciclului de viata prezentate anterior, cu variatii de la un model la altul.3 Cmpartire a timpului alocat etapelor proiectului precum si a relatiei timp/efort pe etape se poate reprezenta ca Cn figura: 2nitial un grup redus de persoane efectueaza analiza si proiectarea. -ceste activitati se realizeaza iterativ. )u cMt structura sistemului se stabilizeaza, un numar mai mare de oameni sunt antrenati Cn implementare si testare. 5e obicei activitatile de analiza si proiectare sunt clarificate atunci cMnd Cncepe testarea, deoarece Cn acest stadiu nu sunt posibile decMt putine modificari Cn ceea ce s-a realizat Cn etapa de analiza si proiectare. 2mplementMnd metodologiile de realizare bazate pe structura functionala sau pe structura datelor si/sau metodologiile orientate obiect, instrumentele pentru inginerie software asistata de calculator permit construirea, verificarea, validarea, stocarea si reutilizarea diferitelor modele componente ale aplicatiilor si produselor program. -sigurMnd dezvoltarea, CncepMnd de la modelele de analiza-proiectare si pMna la generarea automata de cod pentru modele, aceste produse pentru inginerie software asigura din punct de vedere calitativ produsele realizate si permit respectarea si/sau reducerea termenelor de livrare a produselor.-ceasta noua maniera de dezvoltare a prod program este denumita inginerie software bazata pe model B 4odel +ased .oftware 'ngineering B si poate fi considerata ca un nou model de implementare a ciclului de viata 2.%etode a!aliz a s i proiectare a produselor program .!aliza este prima etapa a ciclului de realizare Cn care se stabilesc cerintele aplicatiei, pornind de la cerintele utilizatorului final, se identifica functiile viitorului produs software precum si datele implicate. -naliza trebuie sa raspunda la Cntrebarea ce trebuie sa faca viitorul produs, pornind de la cunoasterea Cn ansamblu a Cntregului si descompunerea acestuia Cn elemente componente mai usor de studiat. Proiectarea este etapa ciclului de realizare Cn care se stabileste modul de realizare a cerintelor identificate Cn etapa de analiza, adica trebuie sa raspunda la Cntrebarea cum se vor realiza aceste cerinte atMt la nivel global cMt si la nivel de detaliu. -ceasta etapa porneste deci de la cerintele si specificatiile definite anterior si continua cu detalierea si transformarea acestora pMna la definirea structurii unei solutii care sa fie reprezentata folosind un limba& grafic, te"tual sau mi"t. #roiectul astfel obtinut trebuie sa poata fi utilizat mai departe la construirea sau elaborarea produsului software.unt de dif categorii si sunt realizate in fctie de diverse tipuri de cicluri de viata a prod soft. '"ista 2 mari categ de metodologii : 1)Structurale#ot fi structurate in fctie de etapele pe care le acopera in ciclul de realizare :-met care acopera intreg ciclul de dezvoltare ;-numai partea de analiza ;-numai partea de dezvoltare2n fctie de modul de abordare, de dezv a prod :-met top-down;-met bottom-up.2n fctie de punctul de pornire e"ista : - met structurate care incep de la analiza si proiectarea str functionale: R2#3hierarhical input processing output!, .-5A; -met structurate care pornesc de la analiza si proiectarea str datelor: 6).logica construirii sistemelor!, 6)#logica construirii programelor!;-met structurate care pornesc de la analiza si proiectarea flu"ului de date : Sourdon-)onstantine, met bazate pe abstractizare #arnase!*)#rie!tate obiect *olosesc notiunea de incapsulare B sunt grupate datele care e"ista unei anumite entitati precum si prelucrarile care se efectueaza asupra acerstor date. #rin ac grupare se obtine notiunea de obiect compus dina tributedate! si operatiiprelucrari!.3 colectie de obiecteatrib/operatii comune! formeaza o clasa de obiecte. Aoate met de analiza/ proiectare 33 lucreaza cu clase de obiecte.5intre cele mai cunoscute met de analiza/proiectare 33 :-34A;-335ob&ect oriented design! ;-33.'ob&ect oriented software engeneering!-U46unifier modeling language!;-U.5#unifier software developer process!;-@U#rational unified process! 2.1. %etoda H$P# Utilizarea metodei R2#3 permite asigurarea corectitudinii a consist si completitudinii! si a usurintei Cntretinerii produsului program final. Pri!cipii de baz a ale metodei 4etoda R2#3 Rierarchical-2nput- #roccessing-3utput sau Rierarch0 plus 2nput- #roccess-3utput Bdescrierea intrarilor, prelucrarilor si iesirilor Cn mod ierarhic! utilizata Cn realizarea produselor progr, se bazeaza pe principiile: descompunerea functionala modularitate! si de sus Cn &os topdown!. #biectiveR2#3, ca metoda de proiectare si documentare standardizata are urmatoarele obiective generale:E usurarea Cntelegerii structurii si functiunilor unui produs program prin divizarea produsului Cn parti mai mici, numite module, care pot fi stapMnite logic;E enumerarea functiilor ce urmeaza a fi realizate de sistem si e"primarea grafica a flu"ului intrariprelucrari- iesiri;E docum produsului program prin realizarea:B setului de proiectare generala, cuprinzMnd specif de definire,B setului de proiectare de detaliu continMnd specificatiile de realizareB setului de CntretinereB manualului tehnic al prod 8tape si activit at i#roiectarea - documentarea cu a&utorul metodei R2#3 presupune parcurgerea urmatorilor pasi:E elaborarea specificatiilor de definire prin:B conceperea listei de functiuni, sortarea si aran&area acesteia; B elaborarea diagramei ierarhice diagrama R!, care e"prima descompunerea top - down a functiunilor globale ale produsului program pMna la nivelul functiilor elementare, primul bloc din diagrama continMnd functia generala a sistemului; B elaborarea diagramelor intrari - prelucrari - iesiri diagrame 2#3!, pentru fiecare functie din diagrama R, Cn care apar intrarile si iesirile ma&ore ale functiilor de nivel inferior; E elaborarea specificatii de realizare: B e"pandarea diagramelor ierarhice si a diagramelor de prelucrare; Cn unele cazuri se obtin ierarhii de diagrame R si diagramele 2#3 corespunzatoare; B se alege sistemul de administrare a datelor;B se proiecteaza structura datelor;B se includ functiunile administrative ale produsului program deschideri, Cnchideri, copieri de fisiere etc.!;B se includ Cn setul R2#3 machetele structurilor de date;B se definesc punctele de intrare Cn module / programe, identificatorii pentru date;B se detaliaza prelucrarea erorilor etc E elab specificatiilor de Cntretinere pornind de la specificatiile de realizare si Cntocmirea documentatiei tehnice a produsului.*iecare set de documentatie -naliza #roiectare 2mplementare Aestare timp e f o r t permite: E descrierea structurii functionale a produsului program reprezentata printr-o 2.1. .(co!ti!uare1) diagrama ierarhica sau diagrama R diagrama de continut!, cu mentiunea ca fiec diagrama R de un anumit nivel este o submultime a unei diagrame R de nivel superior; E scrierea unei componente din cadrul structurii functionale prin specificarea intrarilor- prelucrarilor iesirilor necesare realizarii componentei functionale respective, repr printr-o diagrama intrari - prelucrari - iesiri sau diagrama 2#3.2. 'o!cepte de baz a < defi!i tii si simboluri utilizate )onceptele si simbolurile diagramelor R sunt:E modul functional B este rezultat din descompunerea ierarhica a functiilor produsuluiE cone"iunile dintre module Bredau structura descompunerii ierarhice.)onceptele si simbolurile diagr 2#3 sunt:E modulele 2 2nput - intrari!E modulele # #rocessing - prelucrari!E modulele 3 3utput - iesiri!.imbolurile utilizate pentru aceste tipuri de module sunt asemanatoare, dar diferentiate prin tipul modulului si continutul detaliat al acestuia. E cone"iuni orizontale Cntre modulele de tip 2, #, 3 reprezentMnd flu"urile de date dintre acestea. 4. %odalit at i de repreze!tare 5. 'omparatii cu alte metode4etoda R2#3, comparativ cu alte metode, are urmatoarele dezav:E este greu de utilizat Cn proiectare la nivel de detaliu;E diag sunt consumatoare de timp, sunt greu de Cntretinut si nu sunt orientate spre descrierea datelor.5intre avanta&ele metodei, se pot aminti:E repr clara a descompunerii functionale;E intrarile si iesirile Cn procese sunt clar specificate..e recomanda utiliz metodei R2#3 mai ales Cn proiectarea de ansamblu. 2.*. Teh!ica de a!aliz a s i proiectare structurat a ( S./T Scop E )unoasterea metodologiilor de analiza si proiectare structurata bazate pe descomp functionalaE @ealizarea de diagrame de date si activitati pentru aplicatii simpleE .esizarea deosebirilor metodei .-5A fata de alte meth utiliz Cn realiz proiectelor software *. Pri!cipii de baza ale metodei Aehnica .-5A .tructured -nal0sis and 5esign Aechni1ue! are la baza principiile descompunerii functionale, Cn maniera descendenta top-down!. 'ste o metoda preponderent grafica. .pecifica functiile si datele unei aplicatii, precum si legaturile dintre ele si permite verif completitudinii si a caract necontradictoriu al fctiilor si datelor. -ceasta tehnica realizeaza repr aplicatiei atMt sub aspectul activitatilor modelul activit! cMt si sub aspectul datelor modelul datelor! ceea ce asigura completitudinea si lipsa de contradictii Cn modele;5eoarece metoda nu are posibilitatea reprezentarii flu"urilor de date si de control, nu se recomanda introd Cn modele a aspectelor algoritmice-. #biective 5escompunerea functionala are ca obiectiv asig conditiilor: E partile subprogramele! ce alcatuiesc un pachet de programe sa fie concepute Cn conte"tul asamblarii lor, E proiectantul sa se concentreze Cn vederea elaborarii unor astfel de componente. -rhitectura functionala si Cn general arhitectura sistemului sunt caract printr-un nivel ridicat de concretizare a detaliilor Cn cadrul fiecarui niv ierarhic de descompunere a structurilor.Aermenul de arhitectura se &ustifica Cn primul rMnd prin necesitatea de a defini pozitia partilor Cn Cntreg si Cn al doilea rMnd, prin necesitatea Cmbinarii perfecte a partilor.1. 8tape si activit at iAehnica .-5A aplicata la elab pachetelor de programe se caract prin:E def Cn maniera structurata a proiectului produsului program;E esalonarea sarcinilor Cn cadrul echipelor comple"e de analiza-proiectare-codificare, Cn conte"tual proiectarii structurate;E utiliz unor concepte si simboluri unice, care asigura consistenta produsului program;E efectuarea unui control complet asupra stadiilor de elab prin docum elaborate progresiv;E analiza esalonata, pe parcursul etapelor de elaborare, a calitatii produsului program cu efectuarea corectiilor, asigurMnd nivelul planificat al calitatii; E integrarea de compon e"istente si asigurarea unui niv de reutilizare ridicat. Aehnica .-5A are caracterul iterativ al reluarii unor etape Cn cadrul elaborarii produselor program, dar vol reluarilor sau modificarilor pe care le pp acestea este redus. #entru disciplinarea si coordonarea muncii Cn echipa, se foloseste asa-numitul ciclu Tcititor- autorT. Dntr-o echipa .-5A sunt cuprinse urmatoarele persoane: 2.*. (co!ti!uare1) E. Autori - sunt persoane care studiaza cerintele si restrictiile, analizeaza functiunile sistemului si le reprezinta folosind metodele bazate pe diagrame .-5A.E. Comentatori - sunt de obicei autori care trebuie sa revada si sa comenteze Cn scris munca altor autori.E. Cititorii - sunt pers care citesc diagramele .-5A pentru informare, asteptMndu-se de la ei comentarii scrise.E. Expertii - sunt persoane de la care autorii obtin informatii de specialitate despre cerinte si restrictii.E. Comitetul tehnic - este un grup de specialisti cu e"perienta care rezolva probleme tehnice dificile si recomanda decizii conducerii proiectului.E. Bibliotecarul proiectului - este o persoana care are ca sarcina mentinerea unei evidente centralizate a tuturor docum proiectului, e"ecuta copii dupa documente, tine evidente etc.E. .eful de proiect - este un membru al echipei si are responsabilitatea tehnica finala pentru realizarea analizei si proiectarii.E. Analist sef - este persoana care cunoaste bine .-5A, Cndruma si sfatuieste membrii echipei Cn folosirea si aplicarea tehnicii .-5A. E. Instructorul - este cel care instruieste initial autorii si comentatorii Cn utilizarea .-5A. #e parcursul proiectului, prin interactiunea acestor persoane se asigura o comunicare continua si eficienta. 2. 'o!cepte de baz a < defi!i tii E 5ate de intrareE 5ate de iesire E 5ate de control restrictii!E 4ecanism de suport - defineste serviciul sau persoana raspunzatoare de realizarea unei activitati, Cn cazul unui descriptor de activitate, respectiv mi&locul de stocare al datelor, Cn cazul unui descriptor de dateE -ctivitate generatoare de dateE -ctivit utilizatoare de date E -ctivitate de controlE -ctigrame - diagrame de activitati E 5atagrame - diagrame de dateE 5escriptor de activitate - descrierea grafica a activitatii E 5escriptor de date - descriere grafica a unei entitati de date4. %odalit at i de repreze!tare Aehnica .-5A se concretizeaza prin reprez grafice la niveluri diferite; nivelele inferioare reprezinta detalieri ale celor superioare. @eprezentarile grafice permit stabilirea nivelului de detaliere, pozitia componentei Cn sistem si legaturile dintre componente. Dn acest scop sunt utilizate: E diagramele de activitati actigrame!; E diagramele de date datagrame!.Aoate diagramelesunt realizate top-down. *iecare diagrama este fie o diagrama sumarizata parinte!, fie una de detaliu fiu!.3 diagrama .-5A este compusa din dreptunghiuri si sageti. Dntr-o diagrama de activitati E dreptunghiul corespunde activitatii,E sagetile corespund datelorE fiecare activitate este denumita cu un verb si un obiect de e": T.3@A'-U- 5-A' -GV-S-A2T!; 2.*. (co!ti!uare*) E datele de control definesc restictiile asupra activitatilor,E mecanismul de suport Cnseamna definirea serviciului sau persoanei raspunzatoare de realizarea activitatii. Dntr-o diagrama de date E dreptunghiul corespunde datelorE sagetile indica activitatile legate de acele dateE fiecare data are un nume substantiv!E activitatea de control este cea care limiteaza generarea si utilizarea datelor E mecanismul de suport este mi&locul de stocare a datelor de e"emplu: fisier!, servind de asemenea ca mi&loc de legatura Cntre diagrame. 6imba&ul grafic .-5A asigura un set limitat de constructii primitive cu a&utorul caruia analistul si proiectantul pot compune structuri ordonate de orice dim. Un model .-5A este deci o secv organizata de diagrame, fiecare putMnd fi Cnsotita de un te"t descriptiv concis. 6a primul nivel, diag generala repr Cntregul subiect. *iecare diagrama de la nivelele inferioare introd un nivel limitat de detaliu, pastrMnd Cnsa leg cu portiunile superioare ale modelului, respectMnd rel logica a fiecarei componente cu sistemul global Un model .-5A este deci o repr grafica a structurii ierarhice a unui sistem, structurat astfel CncMt sa e"puna, treptat, din ce Cn ce mai multe detalii..6. 'ompara tii cu alte metode Dn conducerea proiectelor .-5A se pot utiliza si instrum info pentru automatiz activitatilor de analiza si proiectare, dezvoltate independent de metodologia .-5A. 4etoda .-5A comp cu alte metode:E se poate utiliza Cn proiectarea aplicatiilor de orice dim, fata de alte metode care se recomanda pentru aplicatii de dim reduse.E Gr diagramelor .-5A depinde de comple"itatea activitatilor si nu de marimea proiectelor. E 4odelul de date este de aceeasi impo cu modelul activitatilor, dar mai greu de realizat E 4odelul de date poate conduce la identif activitatilor lipsa. E 4etoda se foloseste de obicei cu instrumente de proiectare corespunzatoare pentru elaborarea diagramelor proprii metodei. 2.-. %etoda =ac>so! (co!ceptul !ested( logic) Scop E )unoasterea unei metodologii de analiza-proiectare care se bazeaza pe struc datelor aplicatiei.E @ealiz diagramelor specif metodei SacJson conform principiului Gested-6ogic.E #osibilitatea de a sesiza deosebirile si asemanarile dintre diferite metodologii orientate pe structuradatelor si/sau metodologii orientate pe structura functionala.*. Pri!cipii de baz a ale metodei - structura progr este derivata din structura problemei;- procesul de structurare a progr are la baza descompunerea Cntregului Cn parti componente obtinMndu-se o struct ierarhica;- principiile programarii structurate pot fi utiliz atMt pentru etapa de elaborare a programelor, cMt si pentru etapa de proiectare a acestora. -. #biectiveE determinarea structurii datelor aplicatiei si deducerea din aceasta a structurii programuluiE reprezentarea structurii datelor si structurii de prelucrare utilizMnd un limba& grafic unitar pentru ambele tipuri de structura E combinarea celor doua tipuri de structuri pMna la nivl operatiilor elementare ale progr 1. 8tape si activit at i - determinarea structurii datelor problemei; - det componentelor coresp din structurile datelor;- deducerea structurii programului din structura datelor;- det operatiilor elementare ce vor fi e"ecutate si alocarea lor la structura programului; - descrierea programului cu a&utorul pseudocodului schema de structura!. 2. 'o!cepte de baz a < defi!i tii si simboluri utilizateAipurile de componente blocuri! folosite de metoda SacJson sunt:- secventa - marcheaza un grup de enunturi e"ecutate Cn ordinea Cn care au fost scrise;- selectia - marcheaza separarea enunturilor Cn doua grupe Cn functie de realizarea / nerealizarea unei conditii;- iteratia - marcheaza un grup de enunturi cu e"ecutie repetata de un numar de ori, inclusiv repetarea de zero ori eliminarea e"ecutiei blocului!.+locurile se structureaza dupa urmatoarele reguli:$! pctul de intrare Cntr-un bloc este unic;2! pctul de iesire dintr- un bloc este unic;%! blocul iterativ Cncepe prel prin testarea conditiei de iesire din ciclu;7! un bloc poate contine orice combinatie de blocuri ce satisface regulile $!, 2!, %!. 4. %odalit at i de repreze!tare - doua tipuri de reprezentari. 3 reprezentare graficaB diagrama de structura si o repr tip pseudocod Bschema de structura. -cestea sunt utilizate atMt prntru structura datelor cMt si pentru structura de prelucrare. /iagrama de structura. #rin diagrama de structura se Cntelege reprezentarea grafica ierarhizata a uneistructuri de date sau a unei structuri de prelucrare pe nivele de detaliere, conform urmatoarelor reguli:$! nivelele de detaliere se parcurg de sus Cn &os top-down!; 2.-. (co!ti!uare1) 2! fiecare nivel reprezinta o detaliere a nivelului precedent;%! blocurile situate pe acelasi nivel se parcurg de la stMnga la dreapta;7! terminarea parcurgerii unui nivel presupune parcurgerea primului bloc din nivelul urmator.'lementul de baza al diagramei este blocul, reprezentat grafic printr-un dreptunghi si identificat printr-un nume Cnscris Cn interiorul blocului.)itirea unei diagrame de structura se face astfel:$! operatia de trecere de la un nivel superior la un nivel inferior se face utilizMnd e"presia )3G.A- 52G; 2! operatia de trecere de la un bloc la alt bloc de pe acelasi nivel se face utilizMnd e"presia U@4-A 5';%! citirea operatiei de trecere de la un nivel inferior la un nivel superior se face prin trecerea la urmatorul bloc al nivelului superior utilizMnd e"presia U@4-A 5';7! caracterul T H T marcat Cn coltul din dreapta sus al unui bloc identifica un bloc cu e"ecutie repetata si se citeste utilizMnd e"presia 4-2 4U6A'; 8! caracterul T o T marcat Cn coltul din dreapta sus al unui bloc identifica un bloc optional si se citeste utilizMnd e"presia .-U 5. 'ompara tii cu alte metode E metoda SacJson, comparativ cu alte metode prezentate sau nu Cn acest capitol se recomanda a fi utilizata Cn cazul aplicatiilor Cn care structura datelor este comple"a; E metoda este adecvata pentru faza de proiectare de detaliu, deoarece, fata de metoda Wourdon- )onstantine , nu prevede modalitati specifice pentru proiectarea de ansamblu; E utilizarea schemelor de structura de tip SacJson are avanta&ul ca apropie proiectul de faza de implementare de cod. 2.1. %etoda de a!aliz a s i proiectare structurat a ?ourdo!('o!sta!ti!e X acopera atMt etapa de analiza cMt si etapa de proiectare a apl informatice, permitMnd dezvoltarea acestora Cntr-o maniera unitara. 2.1.1..!aliza structurat a Xeste proc de studiere, Cntelegere si repr a unui sistem, proces Cn cadrul caruia se identif cerintele de perfectionare ale acestuia. )aracteristica esentiala a acestui proces este faptul ca ea se bazeaza pe o strategie de tip top - down, concretizMndu-se Cn proiectul logic al noului s0stem. #biectivul pp al proc de analiza structurata este construirea unui model logic al sistemului proiectat, care sa poata fi Cnteles si validat de catre utilizator si este asigurat prin:- folosirea unei metode rationale de Cmpartire a sistemului Cn compon usor de izolat si studiat; - descrierea riguroasa a procesului de transformare a datelor cu a&utorul unor instrumente adecvate;- utiliz cu precadere a tehnicilor grafice de descriere. #t atingerea obiectivului enuntat, analiza structurata propune folosirea unor tehnici de descriere a structurii sistemului, prin diagr de flu" de date, a structurii datelor prin dictionar de date si diagrama de structura a datelor si a structurilor de prelucrare a algoritmilor de prelucrare! prin limba& natural structurat. 8tape si activit at iProcesul 1" Studiul sistemului e,iste!t este un studiu complet al zonei din sistemul informationalcare urmeaza sa fie modif prin introd prelucrarii automate a datelor. #rocesul are ca scop Cntelegerea modului de functionare, cunoasterea principalelor flu"uri de date, algoritmi si restrictii legale si organizatorice. .tudiul sistemului este considerat Cncheiat cMnd se dispune de o reprezentare a modului de functionare a sistemului, de un set de acte normative care coordoneaza desfasurarea activitatilor din aria studiata si de un set al principalelor documente utilizate Cn sistem Procesul *" 'o!struirea modelului logic al sistemului e,iste!t consta Cn Cnlaturarea aspectelor fizice din modelul sistemului e"istent, acestea fiind induse de ambianta Cn care fct sistemul: organizare, dotare tehnica, repartizare teritoriala etc. Procesul -" 'o!struirea modelului logic al sistemului propus este proc de elaborare a structurii fct a noului sistem pe baza modelului logic al sist e"istent,al restrictiilor organizatorice,tehnice si legale identificate Cn etapa de studiu si pe baza cerintelor de perfectionare a sistemului, detectate Cn fazele anterioare sau definite de catre utilizator.Dn aceasta faza se construieste de asemenea modelul logic al datelor, adica o prima versiune a schemei bazei de date, obtinuta prin luarea Cn considerare a tuturor necesitatilor de acces la datele retinute Cn fisiere. 2.1 (co!ti!uare1) @ezultatul acestei faze - modelul logic al sistemului propus sau proiectul logic - nu face o distinctie neta Cntre procedurile manuale si cele automatizate, scopul sau fiind de a asigura fctatea dorita a sistemului. Procesul 1" Proiectarea procedurilor de i!terfata modifica modelul logic al sistemului propus prin elaborarea unor var de automatizare a proceselor, variante analizate si evaluate Cn termeni cost - performanta. Procesul 2: 8laborarea specificatiilor de sistem consta Cn asamblarea tuturor compon modelului logic al sistemului propus Cn conformitate cu standardele realizatorului proiectului tehnic. Dn aceasta faza se introduc detalii amMnate pe parcursul fazelor prec: modul de desfasurare Cn timp a prelucrarilor dinamica sistemelor!, flu"urile de control acte normative!, elemente de calcul a cheltuielilor de functionare a sistemului propus, propuneri de esalonare a realizarii sistemului, propuneri de buget alocat pentru etapele urm etc. @ezultatul - specificatiile structurate de sistem sau proiectul logic - ofera o descriere completa si coerenta a cerintelor de functionare a sistemului 'o!cepte de baz a a) #entru descrierea structurii sistemului se folosesc diagramele de flu, de date. Procesul - este o transformare a unui flu" de date de intrare Cntr-un flu" de date de iesire. Fluxul de date reprezinta o interfata Cntre procesele unei 5*5 si poate fi definit ca un canal prin care circula pachete de informatii de compozitie cunoscuta. Sursa sau Destinatia repr o pers, organizatie sau compartim care se afla Cn afara conte"tulu sistemului si este un emitator sau un receptor de date din sistem. Fisierul sau baze de date sunt depozite de date, avMnd o den unica care sa sugereze continutul acestuia. Nivelele de DFD )onceptul folosit pentru a realiza o parta&are pe nivele este analiza "top-down". 5aca fiecare din aceste partitionari succesive sunt descrise cu un 5*5, rezulta un set de diagrame ierarhizate care vor descrie complet sistemul si vor fi mai usor de Cnteles. 'lementele unui asemenea set ierarhizat de 5*5-uri sunt: diagramele de context, care documenteaza domeniul de studiu, prezinta flu"urile care intra si care ies din domeniul analizat, delimitMnd astfel granitele sistem) primitivele functionale, sunt procese ce nu se descompun Cn retele de nivel mai mic; nivelel intermediare, Cn numar de ;-=!, fac trecerea treptata de la diagrama de conte"t la primitiv functionale. Evaluarea DFD - pentru a testa si, eventual, a corecta 5*5 se aplica doua categorii de teste: teste de corectitudine si teste de utilitate b) #entru descrierea structurii datelor se foloseste dic tionarul de date DD! 2.1 (co!ti!uare*) -sa cum 5*5 realizeaza o partitionare a domeniului de studiu, 55 efectueaza o partitionare top-downa datelor. 6a nivel superior, flu"ul de date este definit ca fiind constituit din flu"uri de date subordonate, care la rMndul lor sunt definite detaliat pMna la nivelul de date elementare. Dn 55 trebuie sa e"iste un element pentru fiecare flu" de date din diagrama si pentru toate subordonatele acestor flu"uri. 55 cuprinde, de obicei, pe lMnga seturile de date si un set de proceduri utilizate pentru a construi si Cntretine acest depozit. 55 este compus din definitii ale flu"urilor de date, componentelor flu"urilor de date, fisierelor si proceselor. c) #entru descrierea structurii de prelucrare se foloseste limba"ul natural structurat (LNS) ' fol pt descrierea structurii de prelucrare pt fiecare proces de prelucrare din 5*5-uri. 6b tb sa respecte str fundamentala de control dar in rest, ca mod de e"primare e la latitudinea analistului.#rin intermediul lui se descrie in linii mari fct procesului de prel. Aehnici de repr utiliz i! proiectarea teh!ica #t repr structurii modulare se foloseste diagrama de str modulara.5.4!#t reprezentarea str datelor, se fol dict de date e"tins.55'!#t reprezentarea str de prelucrare se fol una dintre tehnicile de descriere a alg : schema logica, pseodocod, tabele de decizie etc. %odalit at i de repreze!tare 2.1.*. Proiectarea structurat a #roiectarea structurata are ca scop stabilirea modalitatilor concrete de realizare a cerintelor identificate Cn etapa de analiza structurata. #roiectarea structurata este procesul de definire a componentelor fizice ale sistemului proceduri,programe, module! Cn functie de posibilitatile si performantele configuratiei de calcul pe care va functiona viitorul sistem. 3biectivul principal al proiectarii structurate este realizarea unui sistem eficient, fiabil, usor de Cntretinut si de modificat, obiectiv care este asigurat prin:a! proiectarea sistemului pornind de la structura sa functionala;b! abordarea comple"itatii sistemului Cntr-o maniera care permite tratarea individuala a subsistemului;c! reutilizarea modulelor def si construite Cn cadrul altor proiecte; 2.1 (co!ti!uare-) d! folosirea unor criterii de evaluare a calitatii proiectarii si a unor tehnici de Cmbunatatire iterative a acesteia. 8tape si activit at i" Procesul 1. /efi!ire subsisteme - se desfasoara Cn doi pasi dupa cum urmeaza: $! se e"pliciteaza intrarile si iesirile Cn sistemul de prelucrare automata, prin adaugarea unor procese specifice de conversie date, centralizare-descentralizare date, fuzionare de fisiere etc.; 2! definirea unor subsisteme care se vor proiecta independent, Cmpartirea facMndu-se pe baza unor criterii bine precizate, cum ar fi: interfete minime Cntre subsisteme; grad de omogenitate ridicata a proc subsistemului; interval de timp similar de activare a proceselor; viteze de raspuns apropiate, la aceleasi tipuri de prelucrare; trasee de prelucrare a tranzactiilor; granita dintre tipuri diferite de echipam. *azele urm se desf la nivelul fiecarui subsistem definit Cn acest mod. Procesul *. Stabilire parametri de proiectare - este faza Cn care se fi"eaza parametrii tehnici si de performanta ai subsistemului ce urmeaza a fi proiectat: configuratia detaliata a echipamentelor, tipul de preluc, protocoale de comunicatie, viteze de prelucrare si timpi de rasp, proceduri de asigurare a confidentialit si securitatii datelor etc. Procesul -. Proiectare structura modulara subsistem - constituie proiectarea tehnica propriuzisa si consta din def unei ierarhii de module si a structurilor de date de comunicatie Cntre acestea. Procesul 1. #roiectarea structurii fizice de date porneste de la structura modulara si de la structurile de date definite Cn faza anterioara, prin simularea functionarii sistemului. -vMnd ca restrictie timpii de raspuns si limitarile de memorie, se proiecteaza structura fizica de implementare! a fisierelor si a zonelor de memorie de comunicatie Cntre module. Procesul 2. 8laborare specificatii de programare - se e"ecuta Cn doi pasi: $! definirea programelor;2! elaborarea specificatiilor programelor. Procesul 4. 8laborare specificatii de testare si i!tegrare - implica elaborarea instruct de testare a modulelor si programelor pe baza unor date de test specificate e"plicit sau prin intermediul unor reguli de generare! precum si schitarea strategiei de integrare a progr Cn aplicatii si a aplicatiilor Cn subsistem. 'o!cepte de baz a #roiectarea structurata a&uta proiectantul Cn obtinerea unui program modular sau a unui ansamblu de progr modulare. #entru aceasta se fac urmatoarele descrieri:a! structura fizica a aplicatiei, care este reprezentata Cn diagrame de structura; b! structura fizica a datelor fisiere, date interne ale programelor/modulelor,parametri!, 2.1 (co!ti!uare1) utilizMnd pseudocodul sau dictionarul de date e"tins;c! algoritmii modulelor/programelor, utilizMnd scheme logice, diagrame etc. %odalit at i de repreze!tare 4odulul poate fi de prelucrare, predefinit sau de date. 'l este reprezentat printr-un dreptunghi Cn interiorul caruia se scrie numele si functiunea . .ensul sagetii indica sensul transferului. 5aca denumirile flu"ului Cncarca prea mult figura, se poate folosinumerotarea sau prescurtarea inteligibila a acestora 2.2. %etodologia #%T (#bect %odeli!g Tech!i@ue) Pri!cipii de baza ale metodei 34A - este o tehnica de dezvoltare a software-ului bazata pe modele ca abstractii ale problemelor din lumea reala, menite sa focalizeze aspectele importante ale problemei si sa omita pe cele irelevante.4odelul are trei aspecte importante:P abstractizarea realitatii - pentru aceeasi problema se pot crea mai multe modele care sa focalizezediferite aspecte.P scopul modelului - se focalizeaza ceva cunoscutP comunicarea - modelul trebuie Cnteles de toti membrii echipei de analiza-proiectare precum si Cnteles si validat de utilizator.#biective 'volutia rapida Cn domeniul tehnologiei informatiei a impus pe lMnga dezvoltarea produselor hardwaresi elaborarea de noi metodologii pentru dezvoltarea sistemelor si aplicatiilor info. -stfel la oraactuala s-au cristalizat doua tipuri de metode utilizate Cn analiza si proiectarea sistemelor informatice :metode traditionale structurate, orientate pe functii/date! si metode orientate obiect.5aca metodele traditionale au separat modelarea datelor de modelarea functiilor, obtinMnd astfel douatipuri de structuri distincte, struc de date si structuri functionale, metodele orientate obiect propunmodelarea concomitenta a datelor si functiilor obtinMnd ierarhii de clase de obiecte care Cnglobeaza atMt date cMt si comportament. )omparativ cu metodele traditionale, abordarea orientata obiect muta centrul de greutate al solutionarii problemei Cn faza de analiza, fapt ce va fi compensat cu un minimum de efort Cn faza de implementare.3 buna Cntelegere a cerintelor problemei reale va conduce la construirea unui model fiabil, adaptabil, care suporta usor modificarile ulterioare'iclul de via ta al u!ui proiect #%T#entru ciclul de viata al unui proiect sunt posibile mai multe modele, dar fle"ibilitatea metodelororientate-obiect permite lucrul Cntr-un ciclu de viata #n spirala. @eamintim ca ciclul de viata Cn spirala,sau modelul Cn spirala, spre deosebire de modelul Cn cascada specific metodelor structurate, presupunem faptul ca doar o parte a modelului trebuie sa fie gata Cnainte de a trece la faza urmatoare. -ceastaCnseamna ca versiuni partiale ale sistemului pot fi livrate Cn timp scurt si pot fi evaluate si validate decatre utilizator iar proiectantul poate relua analiza pentru completarea modelelor. *eed-bacJ-ul rapid permite gasirea de solutii convenabile, iar fle"ibilitatea modelelor orientate-obiect permitearmonizarea cerintelor utilizatorului cu solutiile propuse de echipa de realizatori. 5e remarcat, de asemenea, ca modelul Cn cascada, chiar Cn varianta care cuprinde 2.2. (co!ti!uare1) iterarea fazelor, permite detectarea si corectarea erorilor Cnainte de trecerea la faza urmatoare si impune ca fiecare faza sa produca un document sau documente si produse absolut corecte. )orectarea erorilor Cn fazele urmatoare celei Cn care s-au facut este foarte costisitoare timp, efort! iar utilizatorul trebuie sa astepte pMna la sfMrsitul implementarii pentru a vedea daca sistemul corespunde necesitatilor.'o!cepte de baz a )onstructia de baza Cn abordarea orientata obiect este obiectul care combina structra datelor si comportam Cntr-o singura entitate. #rin obiect Cntelegem o entitate din lumea reala asupra careia se poate Cntreprinde o actiune, sau care poate Cntreprinde o actiune. Un obiect este caracterizat prin stare, comportame!t si ide!titate. .punem despre un obiect ca are doua componente: structura i!formatio!ala si comportame!tul sau operatiile care actioneaza asupra structurii.)omportamentul obiectelor poate fi declansat de stimuli e"terni sau eve!ime!te3rice obiect are atribute si operatii: atributele descriu un obiect si sunt valori ale datelor, operatiile fct!definesc comportamentul obiectelor. Un model de obiecte este format dintr-un numar de obiecte care comunica Cntre ele. 5intre acestea unele au caracteristici comune si pentru a pastra legatura semantica, acestea sunt grupate Cn clase de obiecte. Dn mod evident orice obiect apartine unei clase si este considerat, Cn momentul Cn care vrem sa-l precizam sau referim, ca o i!sta!ta a acelei clase2mplementarea unei operatii se numeste metoda. #entru o operatie pot e"ista mai multe metode dincare un obiect va selecta ce meth va e"ecuta Cntr-o situatie particulara.Dn obiecte/clase de obiecte sunt ascunse atMt structura cMt si implementarea operatiilor prin procesul de ;!capsulareDn conte"tul orientarii obiect la construirea claselor caracteristicile comune ale obiectelor sau claselor deobiecte sunt colectate Cn cadrul claselor, respectiv al superclaselor sau claselor abstracte, prin ge!eralizaresi/sau agregare. .imilitudinile, sau caract comune pot fi apoi moste!ite de clasele sau obiectele initiale si pot fi parta&ate Cntre anumite clase .Dn orientarea obiect, prin polimorfism se Cntelege faptul ca o op poate fi implementata diferit Cn clase diferite sau ca un atribut are sensuri dif pentru clase diferit 4a&oritatea metodelor orientate obiect utilizeaza reguli sau op semantice cum sunt ge!eralizarea A specializarea< agregarea A descompu!erea combinate cu moste!irea si ;!capsularea. 2.2.1 %odelul obiectual(static) 4odelul obiectual - reflecta structura statica a aplicatiei. -re ca scop evidentierea obiectelor, claselorde obiecte, a atributelor si operatiilor claselor, precum si a asociatiilor dintre ele. )onceptele de bazautilizate de modelul de obiecte sunt urmatoarele:P obiect - concept, abstractie sau lucru bine delimitat avMnd o identitateP clasa de obiecte - grup de obiecte cu aceleasi atribute, operatii si semantica .imbolul utilizat Cn metodologia 34A pentru reprezentarea unei clase de obiecte este prezentat Cn figura Gumele clasei trebuie sa fie sugestiv Cn conte"tul aplicatiei si sa identifice clasa Cn mod unic. P atribut - proprietate a obiectelor dintr-o clasa.Dn 34A atributele sunt repr sub numele clasei, fiind specificate numele atributului sioptional tipul sau si o valoare implicita, asa cum se poate observa Cn figura 3biectele se diferentiaza Cntre ele prin val pe care le iau atributele lor la un moment dat, valoricare constituie starea ob Cn acel mom.3 categorie speciala de atribute sunt atributele clasei. Un atribut al clasei repr un atribut a caruivaloare este comuna clasei de obiecte si nu unei instante specifice. .imbolul folosit pentru acest tip de atribut este caract YZO plasat Cn fata numelui atributului, asa cum se poate observa Cn figura 5eci el descrie o propietate comuna tuturor ob din clasa dar nu a unei anumite instante 3 alta categorie de atribute sunt atributele derivate. Un atribut derivat este un atribut a carui valoare se calculeaza pe baza valorii altor atribute. -cest tip de atribut se reprezinta utilizMnd caracterul Y/O Cn fata numelui sau. 2.2.1 (co!ti!uare1) P operatie B defineste comportamentul obiectelor clasei. 3 operatie este o functie sau o transformare aplicata obiectelor unei clase. 3 operatie apelata de un obiect al unei clase poate act asupra starii ob respectiv prin transformarea/ consultarea acesteia, poate actiona asupra starii altui obiect din clasa sau asupra starii unui obiect apartinMnd altei clase.Un tip specific de op Cl reprezinta operatia clasei. -ceasta reprezinta o operatie pe o clasa dar nu pe instantele acesteia. .imbolul utilizat pentru o operate a clasei este caracterul YZO Cn fata numelui operatiei. #entru reprezentarea grafica a unei clase, Cn metodologia 34A, se utilizeaza deci o forma dreptunghiulara avMnd una sau trei regiuni. Dn cazul Cn care este utilizata reprezentarea cu trei regiuni,Cn partea superioara se precizeaza numele clasei, Cn partea de mi&loc se specifica atributele iar Cn partea inferioara se gasesc operatiile clasei respective. Dn functie de niv de detaliere cerut, atributele si operatiile se pot specifica sau nu. Dn cazul Cn care se utiliz reprezentarea cu o singura regiune, Cn aceasta se specifica numele clasei. P Legatura + este o cone"iune Cntre obiecte P .socierea + repr descrierea unui grup de legaturi cu aceiasi structura si semantica. 3 asociere dintre doua clase este reprezentata, Cn metod 34A, printr-o linie ce conecteaza 2.2.1 (co!ti!uare*) doua clase. Gumele asocierii, de regula un verb, se trece deasupra liniei, indicMnd sensul asocierii. 3 caracteristica a asocierilor o repr faptul ca acestea pot avea atribute. .tributul u!ei asocieri reprezinta o valoare atasata fiecarei legaturi a asocierii. Nume de rol B este un concept prin care se identif Cn mod unic capetele unei asocieri. 3 clasa, care are mai mult de o asociere, poate &uca roluri dif fata de fiecare dintre acestea. .socieri calificate B o asociere calificata este o asociere unu B multi sau multi B multi la care un atribut special calificator! reduce multiplicitatea efectiva. Un calificator distinge Cntre seturile de obiecte de la capatul multi al unei asocieri. P ge!eralizareAspecializare - permit parta&area caracteristicilor comune Cntre clase, pastrMnd totodata diferentele dintre acestea. 2.2.1 (co!ti!uare-) P moste!ire - mecanism ce da posibilitatea parta&arii atributelor si operatiilor utilizMnd relatia de generalizare. P agregareA descompu!ere - operatii semantice Cn care clasele rezultate din descompunere sunt parti ale clasei agregate. )onceptele de baza ale modelului obiectual sunt utilizate pentru reprezentarea acestuia. 4odalitatea de repr utilizata de modelul de ob este /iagrama de .sociere a 'laselor (/.'), o diagrama a claselor de obiecte. 5iagrama este practic un graf ale carui noduri sunt clasele de obiecte si ale carui arce sunt asocierile dintre obiecte si clase de obiecte. 2.2.*. %odelul di!amic %odelul di!amic - descrie aspectele sistemului care se schimba Cn timp, respectiv succesiunea operatiilor.-cest model are ca scop evidentierea relatiilor temporale. )onceptele de baza utiliz sunt urmatoarele: E eve!ime!t - este ceva ce se CntMmpla la un moment dat si nu are durata instantaneu!; E sce!ariu B este o secventa de evenimente care apar Cn timpul e"ecutiei sistemului; .ecventa de evenimente si obiecte poate fi evidentiata prin Diagrama de Trasare a Evenimentelor!DTE" - se folosesc pentru analiza ev comple"e din declaratia unei probleme, mai e"act pentru reprezentarea scenariilor indicMnd actorii initiatorii evenimentelor!, eve!ime!tele si obiectele. 4odul de citire al 5A' este de sus Cn &os si de la stMnga spre dreapta. #entru un eveniment al aplicatiei se poate modela un singur scenariu, numit scenariu principal,iar daca evenimentul aplicatiei este comple", pe lMnga acesta se mai pot modela mai multe scenari alternative. 'venimentele sunt trimise de la un obiect emitator la un obiect receptor si ca obiectul care starteaza evenimentul este initiator. P Stare - este o abstractizare a valorilor atributelor si legaturilor unui obiect si specifica raspunsul obiectului la un ev de intrare.P Tra!zitie B reprezinta schimbarea starii cauzata de un eveniment.P 'o!ditie B este o functie booleana pe valorile obiectului, valida pe o perioada de timp; P #peratiileBsunt atasate stari si tranzitiilor si descriu comportamentul unui obiect ca raspuns laevenimente. P .ctivitati B repr operatii ce necesita timp pentru a se e"ecuta si sunt asociate unor stari pe care le controleaza pMna cMnd un eveniment le Cntrerupe si se produce o tranzitie a starii. P .ctiu!e B este o operatie instantanee, asociata unui eveniment, a carei structura interna nu este interesanta 2.2.*. (co!ti!uare*) 5iagrama de Aranzitie a .tarilor este un graf Cn care nodurile sunt starile, iar arcele sunt tranzitii datorate unor evenimente. Aoate tranzitiile din aceeasi stare trebuie sa corespunda la ev diferite. 3 5iagrama de Aranzitie a .tarilor descrie comportamentul unei singure clase de obiecte si specifica secventierea starilor cauzata de secventierea evenimentelor. 5iagramele de Aranzitie a .tarilor pot fi structurate pentru a descrie sisteme comple"e. .tructurarea se face prin generalizare si agregare. Un model dinamic este o colectie de diagrame de tranzitie a starilor care interactioneaza unele cu altele prin evenimente parta&ate. 4odelul dinamic descrie structura de control a sistemului. 2.2.-. %odelul fu!c tio!al B are ca scop descrierea structurii de calcul a sistemului evidentiind modul Cn care sunt obtinute iesirile pe baza intrarilor si a altor valori intermediare 4odalitatea grafica de repr a modelului functional este Diagrama de Flux a Datelor !DFD". 'o!ceptele utilizate"P proces - un proces transforma valorile datelor si corespunde unei oper din clasele implicate; P flu,uri de date - conecteaza iesirea unui obiect sau proces la intrarea unui alt obiect sau proces, un flu" putMnd fi trimis Cn mai multe locuri.P flu, de co!trol - corespunde unui mesa& Cntr-o diagrama de comunicare sau unui eveniment Cntr-o diagrama de tranzitie a starilor P actor - un obiect activ care produce sau consuma date.P depozit de date B reprezinta un obiect pasiv care memoreaza date pentru accesul ulterior. *lu"urile de date reprezinta valori, iar flu"urile intermediare reprezinta valori intermediare rezultate Cn calcule. -tMt actorii cMt si depozitele de date sunt obiecte cu comportament si utilizare diferita. 5iagramele de *lu" de 5ate evidentiaza pe lMnga flu"urile de date dintre terminatori, procese si depozite de date efectul proceselor asupra datelor din depozite, precum si flu"urile de control. *lu"urile de control Cn 5*5 sunt functii boolene care afecteaza e"ecutia unui proces.*lu"urile de date pot fi flu"uri de modificare sau flu"uri de rezultate. #rocesele din 5*5 trebuie implementate ca operatii ale obiectelor. 3peratiile pot fi specificate prin:- functii matematice, ecuatii Cntre intrari si iesiri- tabele de corespondenta Cntre intrari si iesiri- tabele de decizie- pseudocod- limba& natural structurat. 4odelul functional este format din 5*5-uri adica din grafuri ale caror noduri sunt procesele, iar arcele sunt flu"urile de date si de control 4. $mpleme!tarea si testarea programelor 4.1 $mpleme!tarea 3biectivul etapei de implementare este de a realiza componentele e"ecutabile ale aplicatiei astfel CncMt acestea sa satisfaca criteriile de performanta definite si sa se Cncadreze Cn restrictiile tehnice memorie interna, memorie e"terna, numar de periferice etc.! si economice timp de rulare, timp de realizare, cost e"ploatare curenta, cost Cntretinere etc.!. -cest obiectiv general trebuie atins prin mi&loace si metode de realizare care sa asigure viitorului produs program caractde calitate planificate. -ctivitatile specifice elaborarii programelor sunt determinate Cn mare masura de urmatorii factori: $. tipul de limba folosit; 2. !ivelul limbaului (ge!eratia)) %. modul de abordare a elaborarii; 7. comple,itatea produsului program) #ctivitatile specifice elaborarii programelor sunt: a) /efi!irea parametrilor de realizare consta Cn stabilirea conditiilor tehnice Cn care va fi realizat produsul program, a parametrilor de performanta ai acestuia si a tehnicilor de implementare a proiectului tehnic. b) 'odificarea structurilor de date comu!e se va face Cn limba&ul Cn care vor fi manipulate datele iar structurile fizice vor fi depuse Cn biblioteca produsului program, de unde vor fi incluse Cn toate componen care le utilizeaza. c) 'odificarea modulelor de acees la date. d) 0ealizarea eleme!telor fu!ctio!ale include codificarea, testarea si depanarea elem care contin logica de transformare a aplicatiei. e! $!tegrarea programelor cuprinde codificarea si testarea elementelor care contin logica de control a aplicatiei monitor, program principal, clase active! si completarea acestora cu elementele care asigura legatura cu celelalte unitati ale programului. f! Testare de a!samblu. g! 8lab docume!tatiei de impleme!tare *orma de prezentare a unui te"t sursa de program este un element esential Cn asigurarea unei Cnalte accesibilitati a programului. -ceasta, alaturi de maniera de organiz a datelor, prel si autodocumentarii sale sunt elemente esentiale pentru aprecierea accesibilitatii, Cntretinerii, diseminarii si asimilarii programelor precum si pentru facilitatea testarii si demonstrarii corectitudinii acestora. 'lementele de stil Cn programare se refera la aran&area Cn pagina, utilizarea comentariilor si semantizarea si standardizarea identificatorilor. . 4.* Testarea s i depa!area produselor program Aestarea reprezinta operatia de verificare a corectitudinii unui program prin furnizarea de date de intrare si compararea rezultatelor cu cele pe care am dori sa le obtinem. $n timpul proiectarii si codificarii se pot comite erori care sunt grupate Cn urmatoarele categorii: E erori legate de alegerea si descrierea algoritmului: algoritm incorect, sau corect dar inadecvat problemei;E erori ;! defi!irea si utilizarea datelorE erori de calculeE erori produse ;! teh!ica de programareE erori prod di! !eate!tieE erori ;! ma!ipularea te,tului programE erori legate de co!te,tul e,ecutiei.)ea mai mare parte a erorilor enumerate sunt depistate Cn faza de compilare a programului si sunt e"trase Cn fisierul de iesire, Cntr-o forma specifica fiecarui compilator. Aot ca erori de codificare sunt consid si cele detectate Cn faza de editare a legaturilor. )onceptul de t$pe-safet$ semnifica posibilitatea efectuarii de verificari semantice Cn faza de compilare a te"tului sursa, pentru a depista posibile neconcordante Cntre tipurile de date utilizate. $n timpul executiei pro%ramelor pot apare erori de genul:E erori de echipame!t, care sunt legate de conte"tul Cn care se e"ecuta un program si care pot fi:erori Cn datele de intrare, erori ce decurg din negli&area specificului unui limba& sau compilatoraritmetica numerelor Cn calculator, modul de implementare a tipurilor si structurilor de date pe un limba& dat etc.!; E erori de ;!carcare a programelor si de apelare incorecta a diferitelor periferice. Strategii de testare Testarea de sus ;! os. -ceasta este posibila numai Cn cazul unei conceperi descendente a sistemului.4eth consta din urmatoarele: se porneste cu modulul radacina @-5 si cu unul sau mai multe nivele de ordin imediat inferior figura 9.2.a!; dupa testarea acestui schelet care probeaza toate posibilitatile legaturilor interfetelor! se adauga un alt nivel inferior figura 9.2.b!; cMnd s-au adaugat modulele ultimului nivel testarea este terminata. Testarea de os ;! sus modulara!. -ceasta este metoda consta Cn testarea individuala a modulelor urmata de testarea ansamblului de module ca un tot unitar. #entru fiecare modul trebuie efectuate: testul de functionalitate se verifica daca modulul Cndeplineste functia sau functiile sale!, testul de depistare a datelor eronate ce nu corespund 4.* (co!ti!uare1) functiei si testul de comportare Cn conditii e"treme de lucru. 'a presupune verificarea sistemului din punct de vedere al specific sale, dar si al performantelor: timp de raspuns, capacitate de lucru etc. Aestele de s0stem pot ocupa pMna la %>[ din timpul total de realizare. 5intre dezavanta&ele metodei amintim: dificultati Cn stabilirea datelor de test pentru sistemul final; dificultati Cn depistarea erorilor legate de modul de comunicare Cntre module %eth mi,ta. -ceasta presupune aplicarea simultana a celor doua metode precedente, ramMnMnd predominanta testarea descendenta. #rin urmare se Cncepe elaborarea proiectului Cntr-o maniera descendenta, dar simultan se realiz module din nivelul de baza al ierarhiei Dn acest caz testarea descendenta se desfasoara paralel cu cea ascendenta. -cest procedeu de concepere si testare s-a dovedit eficient Cn elab multor produse program. C! cazul programelor orie!tate(obiect, testarea are, pe lMnga rolul de verificare a corectitudinii progr, si pe cel de a evalua masura Cn care clasele definite sau referite satisfac e"igentele cerute de reutilizabilitate. Tipuri de test a ri a) Testare de specificatie si de structura. b) Testare de modul( se poate face la doua nivele de profunzime: T4etoda cutiei negreT sau testarea de conformitate cu specificatiile! T4etoda cutiei albeT sau testarea structurala! c) Testare de i!tegrare. d) Testarea arhitecturii clie!tA server. e) Test de compatibilitate si co!figurare. g) Testarea utilizabilitatiih) Testare de acceptare a utilizatorului i) Testare regresiva. 4.- #ptimizarea produselor program Aermenul de optimizare este impropriu deoarece nu se poate stabili o functieB obiectiv prin care sa se precizeze nivelul de performanta al programului. 5e aceea optim se refera, Cn principal, la tehnicilesi metodele ce conduc la perfectionarea programelor Cn vederea obtinerii unor performante cMt mai ridicate. 5e obicei, cele mai multe criterii de optimizare se refera la timpul de e"ecutie si la spatiul de memorie ocupat. -cesti doi factori, adesea contradictorii constituie si elementele de baza pentru aprecierea utilizarii resurselor de catre un progr. .e urmareste, de asemenea, ca programul sa fie usor de modificat, adaptabil la noi conditii de lucru, fiabil etc., deci sa aiba, Cn general, caracteristicile de calitate stabilite. 3ptimizarea programului se realizeaza Cn decursul tuturor etapelor prin care trece un produs program. .e pune problema alegerii algoritmului ce rezolva problema cu un numar cMt mai redus de operatii, dar nu e"ista o metoda generala de determinare a unui asemenea algoritm. Dmbunatatirea performantelor programului se poate face intervenind asupra elementului de comple"itate, respectiv comple"itatea Cn timp a algoritmului sau a programului. 4.1 0eutilizarea software(ului @eutilizarea se poate concretiza Cntr-una sau mai multe din urmatoarele forme: B utilizarea bibliotecilor de progr/ subprogr / clase, prin includerea acestora ca baza de pornire Cn codificarea aplicatiei.B utilizarea componentelor software, entitati software care ofera o functionalitate bine stabilita, accesibila altor aplicatii prin interfete specifice.B apelarea unor module functionale din aplicatii pree"istente, folosind tehnologii de comunicare Cntre aplicatii. +ibliotecile de subprograme ofera dezvoltatorilor colectii de subprograme, care pot fi apelate de aplicatie. *ct oferita se adreseaza unor categorii largi de aplicatii, avMnd deci un gr mare de generalit se mai spune ca au granulatie fina!. .ubprogr sunt grupate Cn module cu functionalitate bine determinata; de e"emplu, subprograme pentru operatii matematice, pentru gestiunea memoriei, pentru grafica etc. +ibliotecile de clase constituie corespondentul bibliotecilor de subprograme Cn conte"tul programarii orientate-obiect. 'le contin ierarhii de clase, obtinute prin derivare, ce ofera, de asemenea, o functionalitate de ordin general. +ibliotecile actuale de subprograme / clase tind catre un grad mai Cnalt de agregare, regasindu-se sub forma cadrelor de aplicatie si interfetelor de programare a aplicatiilor. 2ntegrarea codului reutilizat cu aplicatia se poate face Cn doua moduri: E pri! legare statica; E pri! legare di!amica. 5. $!strume!te si medii de dezvoltare a programelor Un i!strume!t software, Cn general, este o entitate software care prelucreaza sau actioneaza asupra unei alte entitati software. $!strume!tele de programare sunt entitati software care actioneaza asupra elementelor de constructie a programelor modele, cod- sursa, cod-obiect, cod e"ecutabil!, realizMnd transformari ale acestora si/sau analizarea lor din punct de vedere sintactic, functional sau calitativ. Un mediu i!tegrat de dezvoltare constituie un ansamblu integrat de instrum de programare, care asista dezvoltatorul pe parcursul activitatilor de codificare, obtinere a programului e"ecutabil, testare si depanare. 2ntegrarea instrumentelor se manifesta prin utilizarea lor Cntr-o maniera consistenta, adesea Cn mod transparent pt programator. Un mediu de dezvoltare vizuala vizeaza Cn plus asistarea programatorului Cn realizarea interfetelor grafice ale aplicatiilor. 4ediile de programare ofera facilitati sporite de reutilizare a programelor, sub forma bibliotecilor de subprograme si cadrelor de dezvoltare a aplicatiilor application framewor%!. Un produs de tip '.S8 )omputer -ided .oftware 'ngineering! reprezinta un ansamblu de metode,instrum si procese destinate ingineriei software asistate de calculator. -cest tip de instrumente acopera si etapele de analiza-proiectare, oferind facilitati de reprezentare grafica a modelelor si diagramelor fol de meth / lb 2 de analiza si proiectare. $!strume!te software disparate Dn aceasta categorie sunt incluse instrumentele software puternic specializate pentru anumite subactivitati ale realizarii produselor program. #utem diferentia trei categorii de astfel de instrumente: E $!strum de programarerealizeaza de regula transformari ale elementelor de constructie a programelor;2nclud: 8ditoare pentru codul sursa, 'ompilatoare< 8ditoare de legaturi< $!terpretoare, .sambloare< Preprocesoare si precompilatoare< 8mulatoare!E $!strume de testare au rolul de a automatiza partial procesul de testare a programelor. 5intre categoriile de instrum pentru asistarea testarii fac parte: $!strume!te de capturareAredare< $!strum de e,ecutie automata a testelor< .!alizor de acoperire< 7e!erator de cazuri de test< 7e!erator de date de test< .!alizor logic A de comple,itate< $!strum de trasare a erorilor< $!strum de gestio!are a testarii! D $!strum pe!tru gestiu!ea versiu!ilor si co!figuratiilor#rocesul de gestiu!e a versiu!ilor are rolul de a asigura lucrul consistent si coerent cu elementele de constructie a programelor. 2nstrum de gestiune a versiunilor sunt construite Cn general Cn &urul unui depozit repositor$! care 5. (co!ti!uare1) contine versiunile succesive ale fisierelor unuia sau mai multor proiecte. 3peratiile uzuale Cntr-un astfel de instrum sunt:E c&ec%- out B e"tragerea unui fisier din depozit Cn vederea modificarii E c&ec%-in B actualizarea fisierului modif, Cnsotita eventual de analiza diferentelordiff!si integr modif concurente merge!,cu semnalarea conflictelor.! 5intre instrumentele de gestiune a versiunilor amintim: @ational )lear)ase, 4icrosoft (isual .ource.afe, )(. )oncurrent (ersions .0stem!. %edii i!tegrate de dezvoltare clasice(cuprind ansamblul de instrumente necesare implementarii Cntr-un anumit limba& de programare. Dn componenta unui mediu integrat de dezvoltare intra, Cn mod obligatoriu, urmatoarele instrumente: E 8ditorE 'ompilatorE 8ditor de legaturi #e lMnga acestea sunt prezente si facilitati de testare si depa!are< care asistaprogramatorul Cn activit de depistare si corectare a erorilor. 5epistarea erorilor este facilitata prin: B Cntreruperea e"ecutiei programului Cn anumite puncte, stabilite de utilizator brea%points!B e"ecutia pas-cu-pas a progr trace!, cu posibilitatea parcurgerii subprogr 2
apelatetrace into! sau nu step over!.B inspectarea continutului variabilelor watc&! la un moment dat Cn cursul rularii. %edii i!tegrate de dezvoltare vizual a( repr o evol a mediilor integrate, vizMnd asistarea programatorului Cn realizarea interfetelor grafice ale aplicatiilor. 3biectivul acestor medii de programare este de a scuti progr de scrierea codului specific lucrului cu interfata grafica, acesta concentrMndu-se pe fctatea aplicatiei. 4ediile de programare vizuala includ si gestiunea unitara a fisierelor corespunzatoare unei anumite aplicatii sub forma unui proiect. *isierele unui proiect pot fi: fisiere sursa, fisiere de definire a ferestrelor aplicatiei, fisiere de resurse etc. #rogramele realizate cu aceste medii de programare sunt construite Cn maniera orientata pe evenimente. Produse de tip '.S8( reprezinta colectii demeth, instrum si procese destinate ingineriei software asistata de calculator. #t ca o colectie de instrumente sa fie calificata drept un produs de tip )-.' tb sa : P sa ofere facilitati grafice puternice pentru a descrie si documenta software-ul P sa fie integrat, astfel CncMt sa permita transmiterea usoara a datelor Cntre componenteP sa stocheze informatiile referitoare la software Cntr-un depozit computerizat, permitMnd accesarea acestor informatii de catre toti membrii echipei de elaboratoriP sa poata fi utilizat ca baza pentru automatizarea procesului de producere a software-ului utilizMnd una sau mai multe metode de analiza proiectare 5. (co!ti!uare*) P sa fie reutilizabil pentru dezvoltarea de noi sisteme, aplicatii si programeP sa poata fi utilizat pe orice platforma hardware CncepMnd cu calculatoare personale pMna la mainframe- uriP sa permita realizarea usoara a interfetei cu utilizatorul final si e"pandarea interactiunii cu acestaP sa asigure dezvoltarea de aplicatii Cn limba&e de programare evoluateP sa asigure din punct de vedere calitativ software-ul realizat. 2mportanta si avanta&ele utilizarii )-.'-urilor: B scurteaza durata de realizare a proiectelor si de implementare a aplicatiilor B asigura din punct de vedere calitativ produsul software si cresc Cncrederea utilizatorului Cn calitatea acestuiaB asista realizarea fiecarei etape si deci Cmbunatatesc calitatea procesului de realizareB dezvoltarea software-ului se face conf unor metodologii care specifica pe lMnga etapele de dezvoltare, continutul si iesirile fiecarei etape, Cn mod diferentiat dupa natura produsului sau dupa domeniul sau de aplicatieB obtinerea de specificatii de definitie completeB acuratetea specificatiilor de realizare de proiectare! B obtinerea unei cai usor de Cntretinut si dezvoltat Cn ideea ca un produs software nu este niciodata Cn mod real terminat, dezvolt sa fiind prelungita de operatiile de mentenanta!. 'lasificarea si evaluarea produselor '.S8 a! dupa metodele de analiza si proiectare implementate: P neorientate obiect, bazate pe metodologii de analiza si proiectare structurata sau metode functii/date!P pur orientate obiectP mi"te - care suporta ambele tipuri de metodologii. b! dupa numarul metodelor de analiza si proiectare implementateP ofera suport pentru o singura metoda de analiza proiectareP ofera suport pentru mai multe metode si Cn acest caz daca - foloseste independent mai multe metode - permite trecerea automata a documentelor realizate pentru o anumita metoda Cn documente echivalente ale altei metode. c! dupa cum acopera etapele ciclului de viata si de realizare a aplicatiilor P acopera una sau mai multe parti ale ciclului de viata P acopera tot ciclul de viata 2-)-.'! d! dupa codul generatP nu genereaza codP genereaza cod care contine:- numai sabloane si cod partial ce trebuie completat si optimizat- cod integral, e"ecutabil pe baza transformarii directe a proiectuluie! dupa cum asigura modul de lucru:P Cn echipaP Cn retea f! dupa modul Cn care permite realizarea altor proiecte, sau sabloane de proiecte, integral sau partialg! permite reverse engineering - actualizarea diagramelor dupa modificari Cn codh! permite includerea sa Cntr-un mediu integrat de dezvoltare 25' 2ntegrat 5evelopment 'nvironment! #rodusele )-.' trebuie sa satisfaca urmatoarele conditii: 5. (co!ti!uare-) a! sa creasca eficienta elaborarii produselor program si b! sa nu scada calitatea si siguranta Cn functionare a produselor program obtinute. 'ompo!e!te de baz a ale u!ui produs '.S8 6. 'o!ducerea procesului de realizare a produselor program 6.1. Pla!ificarea (consta Cn stabilirea obiectivelor proiectului si a sarcinilor de Cndeplinit, alocarea resurselor necesare si stabilirea termenelor de realizare.#reviziunea, Cn cazul produselor program, se realizeaza pe cele trei niveluri cunoscute: strtegic, tactic si operativ. Planificarea strate%ica se realiz, de regula, la nivelul Cntregii organizatii producatoare de software si are Cn vedere:P stabilirea tipurilor de produse program pe care le elaboreaza unitatea respectiva, Cn raport cu:P obiectivele generale ale unitatii ;P resursele disponibile la nivelul unitatii;P fondul de programe de&a e"istent;P stabilirea nivelului tehnic si calitativ al produselor program elaborate, care depinde de:P competenta profesionala a membrilor organizatiei;P dotarea cu tehnica de calcul;P posibilitatile de specializare, cooperare si procurare de produse software de&a e"istente;P stabilirea termenelor globale de realizare a produselor program;P stabilirea costurilor globale si a preturilor de livrare a produselor program. Planificarea tactica se desfasoara la nivelul proiectului si se refera la un produs program concret. Dn mod evident, planificarea tactica este derivata din planificarea strategica. #lanific proiectului acopera ca orizont de timp Cntreg ciclul de viata al produsului program. 'a cuprinde atMt elem legate de alocarea resurselor pe activit cMt si de planificare calendaristica a acestora. Planificarea operativa se desfasoara pe parcursul desfasurarii proiectului. 'a pp: E detalierea si corectarea planif tactice, a planif activitatilor si resurselor unui proiect;E stabilirea ordinii de e"ecutie a dif sarcinii si activit, pe baza planif calendaristice a sarc si resurselor,efect la niv Cntregului proiect.#lanif operativa este necesara datorita corectiilor fata de planificarea tactica, care Cn general sunt datorate urmatoarelor cauze:E imposibilit unei eval precise a resurselor si a duratelor necesare pentru e"ecutarea sarcinilor, Cnainte de desfasurarea efectiva a proiectului;E indisponibilit neprev a unor resurse afectate proiectului;E modif sarcinilor impusa pe parc realiz lor de Cnsasi tehnologia de realiz a prod. 6.*. #rga!izarea proiectului 6.*.1. Programarea deschis a Pri!cipiile de baza ale acestei tehnici sunt urmatoarele:E Cntraga echipa are un scop unic - reusita proiectului si nu scopuri individuale; E Cnlaturarea greselilor / erorilor este Cn interesul Cntregii echipe;E erorile trebuie descoperite si nu ascunse;E deoarece, uneori este mai usor sa TveziT erorile din programele altuia decMt din programele proprii,ech este compusa din m multi programatori Cntre care e"ista relatii de colaborare;E definirea globala a produsului si a solutiilor de realizare se face Cn colectiv, Cn cadrul Cntregi echipe, dupa care scrierea progr se distribuie Cntre membrii colectivului;E Cnainte de compilare, progr fiecarui programator vor fi citite de un alt alti! membruii! al/ai echipei pentru a descoperi erorile. Dn timpul testarii, fiecare programator se consulta cu colegii din echipa asupra rezultatelor obtinute si a modului de Cnlaturare a erorilor. .va!tae" E asigurare spirit de echipa;E cun reciproca a progr 2 si respectiv a Cntregului produs;E integrarea mai usoara si mai rapida a componentelor;E Cnvatarea si transferul de e"perienta Cntre membrii echipei. Aoti membrii echipei, de la cel mai e"perim pMna la Cncepatori, schimbMnd programele Cntre ei, Cnvata noi tehnici de programare si algoritmi, discuta probleme de stil de programare si eficienta, Cntr-o atmosfera deschisa si de colaborare;E programarea deschisa nu pp responsabilitati distincte ale membrilor echipei; conducerea revine, prin rotatie, fiecarui programator Cn functie de calitatile si de e"perienta necesara Cndiferitele momente ale desfasurarii proiectului. /ezva!tae" E nefiind definite responsabilitatile membrilor echipei, apar momente de confuzie Cn solutionareaunor divergente;E nu se poate impune un control riguros al avansului proiectului si al consumului de resurse; E luarea deciziilor, Cn anumite momente, poate fi amMnata timp Cndelungat, pMna se a&unge la un consens asupra diferitelor solutii de proiectare, asupra standardelor de respectat sau a altor reguli;E nu se asigura o conducere permanenta si continua a proiectului; E comunicarea cu alte entitati organizatorice, din afara echipei conducerea organizatiei, utilizatorii etc.! se face Cn mod greoi. 6.*.*. 8chipa programatorului sef ('PT) .pre deosebire de programarea deschisa, Cn acest caz structura echipei si responsabilitatile atribuite au un caracter precis si bine definit. #rincipiile pe care se bazeaza acest mod de organizare sunt urmatoarele:E Cntreg procesul de realizare a prod program trebuie structurat pe sarcini precise, care sa poata fi atribuite membrilor echipei;E crearea premizelor pentru utiliz de instrumente a&utatoare Cn realiz produsului;E asig vizibilitatii produsului pe tot parcursul procesului de elaborare;E asigurarea posibilitatilor de Cnvatare Cn cadrul echipei;E asigurarea conditiilor ca cel putin doi membri din echipa sa cunoasca Cntreg produsul Cn detaliu pMna la nivelul fiecarei linii de program-sursa!. Dn cadrul Yechipei programatorului sefO e"ista un nucleu al echipei format din doi specialisti cu e"perienta programatorul-sef si ad&unctul sau! precum si secretarul echipei. #rogr - membri ai echipei sunt selectati de catre programatorul sef, numarul lor fiind variabil Cn functie de comple"itatea proiectului, sau chiar pentru acelasi proiect, Cn functie de necesarul de programatori Cn diferitele etape de dezvoltare a produsului software Biblioteca proiectului este organizata Cntr-o biblioteca interna la care nu are acces decMt secretarul bibliotecar si o biblioteca externa la care au acces toti membrii echipei. .va!tae"D introduce rigurozitate Cn distribuirea responsabilitatilor si a sarcinilor; E ofera posibilitatea de control permanent al avansului proiectului, din punct de vedere calendaristic; /ezav"D - lipsa de motivare si interes ale membrilor echipei;- lipsa de control asupra deciziilor pr sef;- lipsa de atractivitate pentru functia de Tad&unct al programatorului sefT;- posibilitati limitate de Cnvatare si de schimb de e"perienta Cntre membrii echipei;- dificultati Cn selectarea si numirea de programatori sefi, care trebuie sa Cntruneasca foarte multe calitati atMt de ordin profesional cMt si de conducator. 6.*.-. 8chipa chirurgical a . .i Cn acest caz echipa este compusa dintr-un sef de ec&ipa, a&utat de un administrator, care, daca problema este mai comple"a, poate fi asistat de un secretar care nu trebuie sa fie neaparat un prr!. 'ditarea documentatiilor este facuta de un editor, care poate avea la rMndul sau un secretar. )eilalti programatori sunt Cmpartiti pe categorii. .eful echipei si ad"unctul sau Cn termenii originali TsurgeonT si TcopilotT! Cndeplinesc sarcini similare cu cele din cadrul metodei programatorului sef, cu urmatoarele diferente: - seful echipei nu se mai ocupa de recrutarea personalului si procurarea resurselor, sarcini ce revin administratorului!, ramMnMnd strict desemnat pentru coordonarea tehnica a proiectului; - ad&unctul are sarcina de a asigura si interfata cu alte echipe. Admin raspunde de asigurarea conditiilor de lucru normale pentru echipa: gestionarea resurselor ale pro, procurarea spatiului, asigurarea accesului si a fondului de ore- calculator etc. si e"ec interfata cu conducerea de pe nivelurile superioare. -dmin raporteaza activitatea sa sefului echipei si ia decizii administrative cu aprobarea acestuia. Editorul elaboreaza - pe baza documentelor primite de la seful echipei - Cntreaga documentatie a proiectului. -dministratorul si respectiv editorul sunt a&utati de catre un secretar. #r propriu-zisi sunt si ei specializ pe diferite functii:- responsabilul cu instrum ' - pune la dispozitia echipei instrumentele software necesare sau chiar elab anumite instrum software,stabileste procedurile de catalogare si genereaza macrobibliotecile;- specialistii (n limba)e de programare sunt utilizati ca e"perti specializ pe diferite limba&e, care selecteaza solutii eficiente de programare Cn lb respective;- responsabilul cu testarea - pune Cn aplicare planul de testare elaborat de seful echipei, prin generarea seturilor de date de test, a programelor de testare si a procedurilor de depanare. 3rganizarea de tip Techipa chirurgicalaT atenueaza unele dificultati ale metodei Yprogramare deschisaO prin distrib mai uniforma a sarcinilor tehnice si creserea responsabilitatii membr echipei de programare 6.*.1. 8chipa programatorului sef revizuit a( 0'PT) -c meth de organizare Cmbina av meth precedente, nucleul fiind format dintr-un conducator de proiect, un ad&unct al acestuia, un responsabil pentru asigurarea legaturii cu utilizatorul si un administrator al proiectului .pre deosebire de )#A, Cn aceasta varianta de organiz, conducatorul de proiect - echivalent cu pr sef - este subordonat admin, caruia Ci raporteaza starea proiectului. Conducatorul de proiect este conducatorul tehnic al echipei pe care o coordoneaza pe tot parcursul proiectului si Cndeplineste urmatoarele sarcini: - hotaraste Cmpreuna cu administratorul resursele necesare; - select si/sau elaboreaza standardele si procedurile obligatorii de respectat; - elab specificatiile de definire a produsului program si documentatia de proiectare, a&utat de ad&unctul sau si de persoana Cnsarcinata sa mentina legatura cu utilizatorul; - asigura conducerea tehnica a proiectului;- verifica programele scrise de membrii echipei, planurile de testare si rezultatele testarii; - tine &urnalul proiectului;- asigura ridicarea nivelului tehnic al membrilor echipei. )olaboratorul sau - ad"unctul sefului de proiect - Cndeplineste functii similare cu ad&unctul programatorului sef, cu deosebirea ca are sarcini de conceptie suplimentare, participMnd la proiectarea produsului. Administratorul de proiect este conducatorul administrativ al proiectului, care asigura legatura cu conducerea organizatiei respective. Un administrator poate subordona simultan mai multe proiecte. #ersoana Cnsarcinata sa mentina legatura cu utilizatorul trebuie sa cunoasca foarte bine domeniul de aplicatie pentru care se realizeaza produsul Pro%ramatorii raspund de scrierea si testarea programelor, pe baza specificatiilor primite si a sarcinilor distribuite de conducatorul proiectului. #rogramatorii pot fi specializati pe diferite activitati, putMnduse roti Cntre ei Cn realizarea diferitelor sarcini. Dn mod optional @)#A poate include si un redactor tehnic de documentatie, Cn special pentru produse progr comple"e si care se adreseaza unui cerc foarte larg de utilizatori. *ata de organizarile prezentate Cn paragrafele anterioare, @)#A aduce unele inovatii menite sa atenueze 6.*.1. (co!ti!uare1) dezavanta&ele tehnicilor respective. Dn primul rMnd se Cncearca o limitare a functiilor Cndeplinite de conducatorul proiectului, care trb sa se concentreze numai pe activitatea de conceptie-proiectare a produsului program, fara a mai fi vazut ca un Tsupra-programatorT. 'l nu mai scrie nici un program, Cn schimb verif codul sursa realizat de programatori, din punctul de vedere al respectari specificatiilor. Dn al doilea rMnd, prin functiile atribuite administratorului proiectului, au fost plasate pe alt nivel de competenta - mult mai Cnalt - sarcinile de asigurare a resurselor, recrutarea si evaluarea personalului, controlul avansului proiectului si raportarea Cn fata conducerii organizatiei. Dn al treilea rMnd, conducatorul proiectului este scutit de interactiunea cu utilizatorul si cu alte grupuri din afara echipei, putMndu-se concentra pe aspectele tehnice, pe mai buna distribuire si urmarire a sarcinilor Cn interiorul echipei, pe ridicarea nivelului tehnic al programatorilor. Dn cadrul @)#A se asigura, mult mai bine decit Cn alte tehnici de organizare, comunicarea dintre echipa si e"terior Un alt avanta& al @)#A este ca poate fi implement pe proiecte de diferite dimensiuni. -stfel, pentru proiecte mici @)#A se poate reduce la conducatorul proiectului si ad&unctul sau . Dn acest caz, acestia doi preiau si functiile de programare, legatura cu utilizatorul si scrierea documentatiei. #entru proiecte mai mari se poate alcatui o ierarhie de @)#A, Cn cadrul careia legatura dintre echipe se realizeaza prin intermediul ad&unctului 5upa ce a fost aleasa o modalitate de organizare a echipei de lucru se trece la construirea echipei de lucru.5upa ce s-a stab factorul de decizie, se va hotarC cum se va derula procesul. 'upri!s " 1.Not de baza priv pachetele software continuare$Q2Q%Q7! *. #rga!izarea si structurarea datelor continuare$Q2Q%! -. .L7#0$T%$ 1.'iclul de viata si ciclul de realizare al produselor program/continuare$! 1.1%odelul i! cascada/continuare$! 1.*.%odelul i!creme!tal 1.-%odelul evolutiv 1.1%odelul i! spirala 2.%etode a!aliz a s i proiectare a produselor program 2.1. %etoda H$P#/continuare$! 2.*. Teh!ica de a!aliz a s i proiectare structurat a ( S./T /continuare$Q2! 2.-. %etoda =ac>so! (co!ceptul !ested( logic) /continuare$! 2.1. %etoda de a!aliz a s i proiectare structurat a ?ourdo!('o!sta!ti!e 2.1.1..!aliza structurat a /continuare$Q2! 2.1.*. Proiectarea structurat a / continuare2Q%Q7! 2.2. %etodologia #%T (#bect %odeli!g Tech!i@ue) 2.2.1 %odelul obiectual(static) / continuare$Q2Q%! 2.2.*. %odelul di!amic 2.2.-. %odelul fu!c tio!al 4. $mpleme!tarea si testarea programelor 4.1 $mpleme!tarea 4.* Testarea s i depa!area produselor program/continuare$! 4.- #ptimizarea produselor program E 4.1 0eutilizarea software(ului 5. $!strume!te si medii de dezvoltare a programelor/continuare$Q2Q%! 6. 'o!ducerea procesului de realizare a produselor program 6.1. Pla!ificarea 6.*.1. Programarea deschis a 6.*.*. 8chipa programatorului sef ('PT) 6.*.1. 8chipa programatorului sef revizuit a( 0'PT) /continuare$!