Sunteți pe pagina 1din 13

Ministerul Educaiei, Tineretului i Sportului al Republicii Moldova Universitate Tehnic a Moldovei Catedra Automatica i Tehnologii n!

ormaionale

Lucrarea de laborator nr.4-5


Disciplina: Anali"a si Modelarea Sistemelor n!ormationale Tema: Studiul i anali"a abstraciilor, claselor, pachetelor i obinerea codului surs #n instrumentele CASE

A reali"at$ A veri!icat$ lector universitar Sava %ina

Chiinu &'('

TEMA: Studiul i analiza abstraciilor claselor pac!etelor i obinerea codului surs" instrumentele $ASE

#n

Scopul lucr"rii: () Studierea abstraciilor, claselor, pachetelor i obinerea codului surs la diverse nivele #n instrumentele CASE$ %oiunile generale i e*emplele lucrrii recente i din !iierul Supliment(+&,enCod)doc) Anali"ai i descriei e*erciiile propuse) &) E!ectuai punct) &-. i e*punei scenariile i re"ultatele cu anali"a de rigoare i c#te / e*erciii din respectivele compartimente 0() 1oggs2 /) Crearea i preci"area diverselor tipuri de clase$ active, abstracte, concrete, parametri"ate i stereotipurilor pentru de"voltarea propriilor modele din lucrrile 34l5 precedente) 6) Crearea, construirea e*emplarelor claselor, categoriei claselor, metaclaselor i descriptoarelor) 7) Anali"a architecturii produsului so!t8are implementat #n pachetele claselor) .) ,enerarea codului surs #n limba9ul C:: pentru diverse ca"uri) ;) <escrierea scenariilor e!ecturii !iecrui punct) Sarcina: =entru sistemul din lucrarea de laborator %r)& elaborai c#te trei diagrame a claselor) %ntreb"ri de control: () %umii principalele avanta9e ale abstracti"rii) &) Ce numim clas> /) <escriei tipurile de relaii utili"ate #n diagrama claselor) 6) C#te nivele de vi"ibilitate recunoate UM4> 7) Cum #nelegei noiunea de clas abstract> .) Care este di!erena dintre clasele ?root@ i ?lea!@> ;) C#te tipuri de stereotipuri sunt !olosite #n limba9ul UM4> A) <escriei diagramele de clase) B) Enumerai etapele pregtirii proiectului pentru generarea codului surs) (') Cum are loc generarea codului din diagrama de clase, diagrama de componente i din pachete> &"spunsuri la #ntreb"ri: '. (umii principalele a)anta*e ale abstractiz"rii. Abstracti"area repre"int re"ultatul necesitii proiectrii i implimentrii unor sisteme enorme) Ast!el atenia se concentrea", considerabil, asupra !ormelor de in!ormaie 3p#n ce date5 i nu asupra algoritmilor de reali"are) Unul din avanta9ele aplicrii tipurilor abstracte de date presupune identi!icarea, dar nu #ntotdeauna) Modelul matematic ce permite descrierea !ormal a comportamentului acestui tip, #n sensul comple* al anali"ei sistemelor, se de"ice de metode matematice deoarece devine imposibil de anali"at masive enorme de in!ormaie) +. $e numim clas", $lasele. C clas conine structura i comportamentul comun unui set de obiecte) C clas este o abstracie a entitilor lumii reale) C#nd acestea e*ist #n lumea real, ele sunt instane ale clasei, i atribuite obiectelor) =entru !iecare clas care are un comportament temporal semni!icativ, putem crea o diagram de stare care s descrie acest comportament) -. Descriei tipurile de relaii utilizate #n dia.rama claselor. Dn UM4 e*ist 6 tipuri de legturi #ntre clase$ (5 ''' Asociere 3association relationship5

&5 ,enerali"are 3generali"ation relationship5E /5 <ependena 3dependencF relationship5E 65 Reali"are 3reali"ation relationship5) 4. $#te ni)ele de )izibilitate recunoate /ML, UM4 de!inete / nivele de vi"ibilitate pentru atribute i operaii$ public - element vi"ibil tuturor clienilor clasei 3inter!aa pur5 3simbol :5E protected - element vi"ibil subclaselor clasei 3simbol G5E private - element vi"ibil #n interiorul clasei 3implementare pur5 3simbol -5) n!ormaia privind vi"ibilitatea, chiar dac este de!init #n model, poate s nu !ie #ntotdeauna !igurat #n mod e*plicit) mplicit, nivelul de vi"ibilitate este simboli"at prin caracterele$ :, G, - ) Anumite atribute i operaii pot !i vi"ibile global, #n toate e*presiile le*icale ale clasei) Aceste elemente denumite variabile i operaiile de clas, sunt repre"entate ca i obiectele prin sublinierea numelor) %otaia se 9usti!ica prin !aptul c o variabil de clas apare ca un obiect parta9at de instanele clasei) =rin e*tensie, operaiile clasei sunt de asemenea subliniate) Repre"entarea atributelor i operaiilor din punct de vedere al vi"ibilitii acestora) 5. $um #nele.ei noiunea de clas" abstract", Se numesc abstracte clasele ce nu posed instane, i se !olosesc numai pentru sinte"a noilor subclase ce #ncapsulea" proprieti i comportament asemntor 3#n calitate de ?lea!@ aceste clase nu sunt utile H i se !olosesc pentru susinerea ierarhiei5 i #n aa mod preci"ea" cele preluate din clasa de ba" H aceste subclase de9a pot avea instane i pot !i utili"ate direct) Clasele abstacte se crea" i atunci c#nd e*ist un set de metode ce utili"ea" atributele i alte metode numai din clasa dat, i acest set poate !i abstracti"at 3simplu de pre"entat comportament comun5 pentru #ncapsulare #n subclase) Clasa abstract poate !i creat prin declararea unei metode virtuale, de e*emplu aceasta poate !i destructorul 3i nici #ntr-un ca" constructorul5, pe c#nd celelalte metode pot !i concreti"ate H acele metode ce posed cod propriu i pot !i utili"ate #n clasa derivat) Abstracte pot !i i precedentele H acestea pre"int comportament dependent, adic intr #n componena altor precedente prin utili"area relaiilor de e*tindere 3e*tend5, includere 3include5 sau generali"are) Acest principiu rm#ne valabil i pentru celelalte elemente din model) Ast!el putem a9unge la o claritate in anali"a si proiectarea unui sistem so!t)

0. $are este di1erena dintre clasele 2root3 i 2lea13, ?4ea!@ sunt subclase !inite #n sens c nu se !olosesc pentru obinerea altor clase, adic ele nu se utili"ea" pentru motenire ci sunt !olosite direct H prin crearea instanelor) Clasele ?lea!@ se gsesc pe ultimele nivele 3cele de 9os5 ale arborelui ierarhic, i deci sunt cele mai speciali"ate condiiilor concrete) ?Root@ sunt clasele generali"ate ce sunt destinate pentru crearea altor clase speci!icate #ntr-o msur mai mare 3#n schema precedent dac presupunem c din clasa C1utton nu se vor deriva subclase, atunci Cbutton este ?lea!@ i CRect va !i ?root@5) <e e*emplu clasele abstracte pot !i de tip ?root@ 3nu numai pot !i dar i trebuie s !ie H #ns aceasta este doar o recomandare, nu se tie dinainte dac clasa dat rm#ne concret p#n la !inisarea proiectrii, #n practic aceasta se #nt#lnete des de e*emplu din cau"a divi"rii sarcinilor clasei5 atunci prin motenire se crea" clase concrete, i nici #ntr-un ca" nu pot !i ?lea!@, deoarece aceasta nu aduce nici un !olos H clasele abstracte nu posed instane 3cum am menionat se !olosesc pentru claritatea ierarhiei5) 4. $#te tipuri de stereotipuri sunt 1olosite #n limba*ul /ML, Stereotipul este un mecanism ce ne d posibilitatea de a #mpri #n categorii clasele) Dn limba9ul UM4 stereotipurile sunt de trei !eluri $ Boundary (Hotar), Entity (Obiect), Control (Control). Stereotipul clasa entitate 5class entit67. Clasele entitate modelea" structura i comportametul datelor, ce di!er prin caracterul su stabil 3de regul aceste clase sunt create la etapa de plani!icare5) Clasele acestui stereotip se utili"ea" pentru e*ecuia !unciilor interne ale sistemului i cel mai important re!lect calitatea entitilor 3abstraciilor5 lumii reale i aceste clase sunt independente de #mpre9urri, adic nu sunt !le*ibile la !aptul cum !actorii e*terni in!luenea" asupra !uncionrii sistemului) =entru

depistarea stereotipurilor este necesar di!erenierea s!erelor de responsabilitate ale sistemului, #n ba"a anali"ei !lu*ului de evenimente, ce cuprinde anumite scenarii) Clasele entiti sunt necesare sistemului pentru susinerea !unciilor di!eritor s!ere de responsabilitate) Stereotipul clas" !otar 5boundar6 class7. Clasele hotare deservesc procesele de interaciune dintre sistem i lumea e*terioar 3sunt acea parte a sistemului ce nem9locit comunic cu e*teriorul H adic clasele sunt necesare pentru modelarea mi9loacelor de comunicare5, asigur#nd inter!aa pentru utili"ator sau alt sistem 3subiect activ5) =entru depistarea claselor hotare se anali"ea" perechile de tip ?subiect activ I scenariul@) Aceste clase asemenea claselor entiti se depistea" la etapa de plani!icare, i de regul se deosebesc prin gradul de detaliere sc"ut) Acum este de !olos modelarea i documentarea !unciilor inter!eei gra!ice ce se privete #n comple* 3#n comple* #nseamn descrierea generali"at i nu concret H de e*emplu di!erite butoane ale meniurilor i panourilor5) Dn procesul proiectrii aceste clase se detali"ea" #n dependen de mecanismele alese pentru implementarea lor) Stereotipul clas" de .estiune 5control class7. Clasele de gestiune se utili"ea" pentru reali"area caracteristicilor de comportament ale sistemului ce sunt caracteristice unor scenarii i coordonea" evenimentele, ce se produc pe parcursul !uncionrii sistemului #n cadrul acestor scenarii) Aceste clase pot !i considerate abstracii ce pre"int dinamica scenariilor) =entru depistarea lor asemenea claselor hotar se anali"ea" perechile de tip ?subiect activ I scenariul@ #n primele stadii ale ciclului de via i pentru !iecare pereche se crea" o clas de gestiune, sarcina lui !iind controlul !lu*urilor de evenimente ce se produc pe parcursul acestui scenariu) 8. Descriei dia.ramele de clase <iagramele de clase e*prim la modul general structura static a unui sistem, #n termeni de clase i de relaii #ntre aceste clase) Aa cum o clas descrie un ansamblu de obiecte, o asociere descrie un ansamblu de legturi$ obiectele sunt instane ale claselor, legturile sunt instane ale asocierilor) <iagramele de clase i diagramele de obiecte sunt repre"entri alternative pentru modelele obiectelor) <iagramele de clase conin clase i diagramele de obiecte conin obiecte, dar se pot mi*a clasele i obiectele atunci c#nd este de vorba de di!erite tipuri de metadate) <iagramele de clas sunt mult mai relevante dec#t cele de obiecte) <e obicei, se construiesc diagramele de clase i oca"ional diagramele de obiecte pentru a ilustra structuri de date complicate sau transmiteri de mesa9e) <iagramele de clase conin simboluri gra!ice pentru clase) Se pot crea una sau mai multe clase pentru a repre"enta clasele din nivelul de v#r! al modelului curent) <e asemenea, se pot crea una sau mai multe diagrame de clase pentru a repre"enta !iecare pachet din model, clase care sunt, coninute #n pachetul ce cuprinde clasele de repre"entat) <ac se modi!ic proprietile sau relaiile unei clase prin editarea speci!icaiilor sale, diagramele de clase ce conin aceste clase se actuali"ea" con!orm acestor modi!icri) <ac modi!icrile au loc #n cadrul unei diagrame de clase, se vor actuali"a speci!icaiile clasei i celelalte diagrame de clase care conin aceast clas) <iagramele de clase se utili"ea" pentru anali"a, #n care se arat rolurile i responsabilitile comune ale entitilor ce descriu comportamentul sistemului i pentru proiectare, unde se indic structura claselor ce !ormea" arhitectura sistemului) 9. Enumerai etapele pre."tirii proiectului pentru .enerarea codului surs". =rocesul de generare const din ase etape de ba"$ :. ;eri1icarea modelului H mediul conine serviciile ce permit veri!icarea modelului independent de limba9ul ales pentru generare, ce se utili"ea" pentru asigurarea calitii codului generat, aceasta permite depistarea erorilor i neclaritilor ce nu permit generarea, acest serviciu e de dorit s !ie utili"at iterativ 3de la #nceputul modelrii elementelor statice5, deoarece #ntr-un model aglomerat procesul depistrii erorilor este mai complicat 3deci, veri!icarea se poate !ace prin ChecJ Model din meniul Tools5) C alt opiune este Access Kiolation ce permite depistarea dereglrilor speci!icaiilor de acces, atunci c#nd e*ist

relaii #ntre clasele di!eritor pachete 3opiunea este accesibil din meniu Report HL Sho8 Access Kiolation5) ::. $rearea componentelor pentru realizarea claselor H e*ist di!erite !orme de componente de la !iiere surs p#n la componentele ActiveM) =reventiv clasele pot !i asociate unor componente, unde relaiile dintre ele vor repre"enta dependenele de compilare 3pentru ca"ul nostru acest pas poate !i omis deoarece pentru C:: aceasta se !ace #n mod automat5) :::. Asocierea claselor pe componente H !iecare component repre"int un !iier cu codul surs pentru unul sau mai multe clase, #n C:: pentru !iecare clas se crea" dou !iiere unul antet, cellalt corp 3 pentru C:: aceasta se !ace automat5) :;. Setarea parametrilor de .enerare H aceti parametri 3pentru C:: H se accesea" din meniul ToolsHLCptionsHLC::5 determin modul de generare a codului pentru clase, atribute, operaii, pachete, componente, etc 3de e*emplu dac nu dorim manual #n diagrama claselor s de!inim pentru !iecare clas constructor i destructor, putem indica aceasta #n opiuni i Rose o s genere"e speci!icri corespun"toare #n mod automat5) ;. Selectarea claselor pac!etelor sau componentelor H codul poate !i generat #n parte pentru !iecare clas sau pentru toate #mpreun 3dac selectm pachet se vor genera toate clasele din pachetul dat5) ;:. <enerarea codului pentru $== H generarea codului se poate !ace 3dac nu este de!init de!ault limba9ul corespun"tor5 prin alegarea nemi9locit a opiunii Code ,eneration 3ToolsHLC::HLCode ,eneration5) =reventiv selectm clasele 3sau pachetele #n care se a!l clasele5 ce vor !i generate, sau putem determina iniial limba9ul de programare din meniu ToolsHL Cptions I %otation, pentru opiunea <e!ault 4anguage din list alegem C::, atunci codul poate !i generat din meniul de conte*t, alegem opiunea C::HLCode ,eneration) '>. din pac!ete, $um are loc .enerarea codului din dia.rama de clase dia.rama de componente i

Modalit"ile de .enerare a codului #n &ational &ose =entru a putea genera codul #n Rational Rose trebuie s avem construite cel puin diagramele de clas i de componente) =entru !iecare clas de selectat limba9ul #n care trebuie de generat codul 3#n e*emplul de mai 9os am !olosit limba9ul C::5, aceasta se !ace #n !elul urmtor$ #n diagrama de componente deschidem !ereastra de speci!icaii a !iierului #n care vom genera codul i pe pagina General la opiunea Language alegem limba9ul C::) =entru ca clasa s se genere"e #n !iierul respectiv #n diagrama de clase deschidem !ereastra de speci!icaii pentru clasa respectiv, pe pagina Components e*ecutm un clicJ cu butonul drept al mouse-ului pe !iierul #n care va !i plasat codul clasei i din meniu alegem opiunea Assign, codul poate !i generat) Generarea codului din diagrama de clase =entru a genera codul din diagrama de clase e!ectum un clicJ cu butonul drept al mouse-ului pe clasa respectiv i alegem opiunea C++ Code Generation, codul a !ost generat i plasat #n mapa source din directorul programului Rational Rose ) Codul generat conine carcasa programului !inal, clasele ce conin atributele i metodele declarate #n model i o mulime de comentarii care a9ut la de"voltarea claselor) Dn !iier au !ost generate clasele ce au !ost asociate lui, deci clasa NAdministratorul de =rocese@ i clasa N%ucleul sistemului de operare@, diagrama de clase arat #n !elul urmtor$ Generarea codului din diagrama de Componente <up ce !iecare clas din diagrama de clase a !ost asociat unui !iier se poate de generat codul din diagrama de componente) Se e!ectuea" un clicJ cu butonul drept al mouse-ului i alegem C++ Code Generation 3Oigura 6-7)((5) Generarea codului din pac!ete Dn diagrama de clase se selectea" pachetul necesar i din meniul principal se alege opiunea ToolsLC::LCode ,eneration) Dn mapa Source se va crea mapa =rocese cu !iierele$ Nproces de sistem)h@, Nproces de sistem)cpp@, Nproces utili"ator)h@, Nproces utili"ator)cpp@) Dn acest cod se pstea" ierarhia creat mai sus, adic clasele proces de sistem i proces utili"ator sunt derivate de la clasa proces)

Elaborarea lucrarii:
Sistemul Figures

Subsitemul Fisierele Programului

Subsistemul Interfata Utilizatorului

Fisier cod sursa

Fisier Biblioteca Grafica

Meniul Programului

Fereastra de iesire/proiectare a figurilor

?i.'. &eprezentarea dia.ramei pac!etelor pentru pro.ramul ?i.ures Dn !igura ( am reali"at des!acerea sistemului Oigures in subsisteme) Mai e*act, a putea spune ca sistemul Oigures este compus din & subsisteme i anume Subsistemul nter!aa ,ra!ic a Utili"atorului 3,U 5 i al doilea !iind Subsistemul Oiierele =rogramului) Subsistemul ,U este compus din & subpachete, i anume Meniul =rogramului i Oereastra de proiectare a !igurilor) Cellalt subsitem este compus deasemenea din & subpachete care sunt Oiierul ce conine codul surs i Oiierul ce conine bibliotecile gra!ice apelate de componenta main a programului)
Buton
&aloare Marime 'e(t Culoare Intoarce )aloare!" *++, *

Fereastra
Inaltime Latime Culoare Puncte de reper Intoarce )aloare!"

*++,

Interfata grafica Buton Fereastra $fiseaza!" #eactualizeaza!" esc%ide!" Inc%ide!"

Fereastra de iesire / output


Lungime Latime Culoare Puncte_de_reper esenare!" #edesenare!" Stergere!" $ctualizare!"

Cerc
#aza set#aza!"

Figura Geometrica reptung%i


Latime Lungime setLatime!" setLungime!" Coordonate Culoare setCoordonate!" 'raseaza!"

?i.+. Dia.rama claselor pentru inter1aa .ra1ic" </: Dn !igura & am repre"entat diagrama claselor pentru inter!aa gra!ic a utili"atorului 3,U 5) Aceasta este compusa dintr-o serie de butoane, #n diagrama !iind repre"entat doar un singur e*emplar, atributele butonului !iind marimea, te*tul, culoarea, sarcina acestui buton !iind de a intoarce o anumita valoare) ,U reali"ea" o !igur geometric av#nd ca atribute coordonatele si culoarea) =rin relaia de generali"are sunt repre"entate c#teva !iguri geometrice, care au la r#ndul lor atribute speci!ice, care nu sunt pre"ente in clasa parinte3Oigura ,eometrica5)

Meniu_Figures
-ume Culoare Marime $fiseaza_Meniu!" * * * * *

* * *

File
-ume Culoare Marime -e.!" Sa)e!" /pen!" 0(it!"

0dit
-ume Culoare Marime Cut!" Cop1!" Paste!"

'ools
-ume Culoare $lege_culoare!" $lege_figura!"

&ie.
-ume Culoare Marime 2oom!" #efres%!"

3elp
-ume Culoare Marime espre_Figures!" espre_autor!"

Buton
-ume Culoare Marime &aloare #eturneaza_&aloare!"

?i.-. Dia.rama claselor pentru meniul ?i.ures Dn !igura / am repre"entat diagrama claselor pentru meniul editorului gra!ic de !iguri geometrice, programul Oigures) <upa cum este artat #n !igur, bara de meniu este compus din urmtoarele butoane$ () ?ile - care are ca atribute urmtoarele$ nume, culoare, mrime, valoare) Acestea sunt atribute motenite de la clasa @uton. Ca !uncii ale butonului Oile sunt urmtoarele operaii$ %e835, Save35, Cpen35, E*it35) &) Edit - are aceleai atribute iar operaiile sunt$ Cut35, CopF35, =aste35) /) Tools - cu operaiile Alege+culoarea35, Alege+!igura35) 6) ;ieA - cu operaiile Poom35, Re!resh35) 7) Belp - cu operaiile <espre Oigures35, <espre autor35) Toate aceste butoane sunt unite prin relaia de generali"are de clasa @uton motenesc atributele sale, precum i operaia de returnare a unei valori oarecare) de unde

Produs_S/F'
-ume Marime &ersiune &erifica_compatibilitatea_S/!" 0fectueaza_operatii!"

mat%+%
operand* operand8 operatie_matematica!"

Program Figures main


4 5 int 6 5 int Lungime 5 float Latime 5 float Inaltime 5 float Culoare 5 C/L/##0F 'raseaza!" Sterge!" Seteaza_culoare!" Modifica!" Sal)eaza!" esc%ide!" Imprima!" * * *++, 7++, -ume Marime Cerinte_S1stem 0laboreaza figuri geometrice!" 'raseaza figuri geometrice!" Imprima!" Sal)eaza!" * *

grap%ics+%
coordonata_4 coordonata_6 lungime latime inaltime operatie trigonometrica!"

traseaza_figura
int coordonate lungime latime inaltime return_figura!"

set_culoare
nume_culoare return_culoare!"

?i.4. Dia.rama claselor pentru elaborarea codului pro.ramului Dn !igura 6 am repre"entat diagrama claselor pentru elaborarea codului programului Oigures) Mai #nt#i de toate proramul !igures se pre"int ca un produs SCOT ce are ca atribute numele, marimea, versiunea) Cperaiile de ba"a e!ectuate de un produs so!t sunt e!ectuarea unei operaii, pentru care a !ost elaborat acest produs i veri!icarea compatibilitii cu sistemul de operare cind acest produs este instalat in =C) <eci =rogramul mosteneste calitile clasei produs+so!t) Dn compo"iia clasei !igures intr clasa de ba"a main care, dac ar !i #nlturat, programul nu ar mai putea !unciona) <upa cum se vede #n diagram, clasa main depinde de & biblioteci principale graphics)h si math)h)

Dn continuare sunt pre"entate & ane*e cu generarea codului C:: utili"#nd Rational Rose) Ane*a ( repre"int generarea codului clasei nter!ata+gra!ica din !igura &) Ane*a & repre"int generarea codului clasei Main din !igura6)

AneCa '
IIGG begin moduleQ()7Q)codegen+version preserveRFes IIGG end moduleQ()7Q)codegen+version IIGG begin moduleQ6<''A(66'&O<)cm preserveRno IIGG end moduleQ6<''A(66'&O<)cm IIGG begin moduleQ6<''A(66'&O<)cp preserveRno IIGG end moduleQ6<''A(66'&O<)cp IIGG Module$ nter!ata gra!icaQ6<''A(66'&O<E =seudo =acJage bodF IIGG Source !ile$ C$S=rogram OilesSRationalSRoseSC::SsourceS nter!ata gra!ica)cpp IIGG begin moduleQ6<''A(66'&O<)additional ncludes preserveRno IIGG end moduleQ6<''A(66'&O<)additional ncludes IIGG begin moduleQ6<''A(66'&O<)includes preserveRFes IIGG end moduleQ6<''A(66'&O<)includes Ginclude T nter!ata gra!ica)hT IIGG begin moduleQ6<''A(66'&O<)additional<eclarations preserveRFes IIGG end moduleQ6<''A(66'&O<)additional<eclarations II Class nter!ata+gra!ica nter!ata+gra!ica$$ nter!ata+gra!ica35 IIGG begin nter!ata+gra!ica$$ nter!ata+gra!icaQ6<''A(66'&O<+const)hasinit preserveRno IIGG end nter!ata+gra!ica$$ nter!ata+gra!icaQ6<''A(66'&O<+const)hasinit IIGG begin nter!ata+gra!ica$$ nter!ata+gra!icaQ6<''A(66'&O<+const)initiali"ation preserveRFes IIGG end nter!ata+gra!ica$$ nter!ata+gra!icaQ6<''A(66'&O<+const)initiali"ation U IIGG begin nter!ata+gra!ica$$ nter!ata+gra!icaQ6<''A(66'&O<+const)bodF preserveRFes IIGG end nter!ata+gra!ica$$ nter!ata+gra!icaQ6<''A(66'&O<+const)bodF V nter!ata+gra!ica$$ nter!ata+gra!ica3const nter!ata+gra!ica Wright5 IIGG begin nter!ata+gra!ica$$ nter!ata+gra!icaQ6<''A(66'&O<+copF)hasinit preserveRno IIGG end nter!ata+gra!ica$$ nter!ata+gra!icaQ6<''A(66'&O<+copF)hasinit IIGG begin nter!ata+gra!ica$$ nter!ata+gra!icaQ6<''A(66'&O<+copF)initiali"ation preserveRFes IIGG end nter!ata+gra!ica$$ nter!ata+gra!icaQ6<''A(66'&O<+copF)initiali"ation U IIGG begin nter!ata+gra!ica$$ nter!ata+gra!icaQ6<''A(66'&O<+copF)bodF preserveRFes IIGG end nter!ata+gra!ica$$ nter!ata+gra!icaQ6<''A(66'&O<+copF)bodF V nter!ata+gra!ica$$X nter!ata+gra!ica35 U IIGG begin nter!ata+gra!ica$$X nter!ata+gra!icaQ6<''A(66'&O<+dest)bodF preserveRFes IIGG end nter!ata+gra!ica$$X nter!ata+gra!icaQ6<''A(66'&O<+dest)bodF V

nter!ata+gra!ica W nter!ata+gra!ica$$operatorR3const nter!ata+gra!ica Wright5 U IIGG begin nter!ata+gra!ica$$operatorRQ6<''A(66'&O<+assign)bodF preserveRFes IIGG end nter!ata+gra!ica$$operatorRQ6<''A(66'&O<+assign)bodF V int nter!ata+gra!ica$$operatorRR3const nter!ata+gra!ica Wright5 const U IIGG begin nter!ata+gra!ica$$operatorRRQ6<''A(66'&O<+eY)bodF preserveRFes IIGG end nter!ata+gra!ica$$operatorRRQ6<''A(66'&O<+eY)bodF V int nter!ata+gra!ica$$operatorZR3const nter!ata+gra!ica Wright5 const U IIGG begin nter!ata+gra!ica$$operatorZRQ6<''A(66'&O<+neY)bodF preserveRFes IIGG end nter!ata+gra!ica$$operatorZRQ6<''A(66'&O<+neY)bodF V IIGG Cther Cperations 3implementation5 void nter!ata+gra!ica$$A!isea"a 35 U IIGG begin nter!ata+gra!ica$$A!isea"aQ6<''C<71''6E)bodF preserveRFes IIGG end nter!ata+gra!ica$$A!isea"aQ6<''C<71''6E)bodF V void nter!ata+gra!ica$$Reactuali"ea"a 35 U IIGG begin nter!ata+gra!ica$$Reactuali"ea"aQ6<''C<.6'(<6)bodF preserveRFes IIGG end nter!ata+gra!ica$$Reactuali"ea"aQ6<''C<.6'(<6)bodF V void nter!ata+gra!ica$$<eschide 35 U IIGG begin nter!ata+gra!ica$$<eschideQ6<''C<;1''OA)bodF preserveRFes IIGG end nter!ata+gra!ica$$<eschideQ6<''C<;1''OA)bodF V void nter!ata+gra!ica$$ nchide 35 U IIGG begin nter!ata+gra!ica$$ nchideQ6<''C<;O'''O)bodF preserveRFes IIGG end nter!ata+gra!ica$$ nchideQ6<''C<;O'''O)bodF V II Additional <eclarations IIGG begin nter!ata+gra!icaQ6<''A(66'&O<)declarations preserveRFes IIGG end nter!ata+gra!icaQ6<''A(66'&O<)declarations IIGG begin moduleQ6<''A(66'&O<)epilog preserveRFes IIGG end moduleQ6<''A(66'&O<)epilog

AneCa +
IIGG begin moduleQ()7Q)codegen+version preserveRFes IIGG end moduleQ()7Q)codegen+version IIGG begin moduleQ6<'AOAE''/AA)cm preserveRno II QMQ Q[Q QPQ Q\Q IIGG end moduleQ6<'AOAE''/AA)cm IIGG begin moduleQ6<'AOAE''/AA)cp preserveRno IIGG end moduleQ6<'AOAE''/AA)cp IIGG Module$ mainQ6<'AOAE''/AAE =seudo =acJage bodF IIGG Source !ile$ C$S=rogram OilesSRationalSRoseSC::SsourceSmain)cpp IIGG begin moduleQ6<'AOAE''/AA)additional ncludes preserveRno IIGG end moduleQ6<'AOAE''/AA)additional ncludes IIGG begin moduleQ6<'AOAE''/AA)includes preserveRFes IIGG end moduleQ6<'AOAE''/AA)includes II main Ginclude Tmain)hT IIGG begin moduleQ6<'AOAE''/AA)additional<eclarations preserveRFes IIGG end moduleQ6<'AOAE''/AA)additional<eclarations II Class main main$$main35 IIGG begin main$$mainQ6<'AOAE''/AA+const)hasinit preserveRno IIGG end main$$mainQ6<'AOAE''/AA+const)hasinit IIGG begin main$$mainQ6<'AOAE''/AA+const)initiali"ation preserveRFes IIGG end main$$mainQ6<'AOAE''/AA+const)initiali"ation U IIGG begin main$$mainQ6<'AOAE''/AA+const)bodF preserveRFes IIGG end main$$mainQ6<'AOAE''/AA+const)bodF V main$$main3const main Wright5 IIGG begin main$$mainQ6<'AOAE''/AA+copF)hasinit preserveRno IIGG end main$$mainQ6<'AOAE''/AA+copF)hasinit IIGG begin main$$mainQ6<'AOAE''/AA+copF)initiali"ation preserveRFes IIGG end main$$mainQ6<'AOAE''/AA+copF)initiali"ation U IIGG begin main$$mainQ6<'AOAE''/AA+copF)bodF preserveRFes IIGG end main$$mainQ6<'AOAE''/AA+copF)bodF V main$$Xmain35 U IIGG begin main$$XmainQ6<'AOAE''/AA+dest)bodF preserveRFes IIGG end main$$XmainQ6<'AOAE''/AA+dest)bodF

V main W main$$operatorR3const main Wright5 U IIGG begin main$$operatorRQ6<'AOAE''/AA+assign)bodF preserveRFes IIGG end main$$operatorRQ6<'AOAE''/AA+assign)bodF V int main$$operatorRR3const main Wright5 const U IIGG begin main$$operatorRRQ6<'AOAE''/AA+eY)bodF preserveRFes IIGG end main$$operatorRRQ6<'AOAE''/AA+eY)bodF V int main$$operatorZR3const main Wright5 const U IIGG begin main$$operatorZRQ6<'AOAE''/AA+neY)bodF preserveRFes IIGG end main$$operatorZRQ6<'AOAE''/AA+neY)bodF V IIGG Cther Cperations 3implementation5 void main$$Trasea"a 35 U IIGG begin main$$Trasea"aQ6<'B'76.'&(/)bodF preserveRFes IIGG end main$$Trasea"aQ6<'B'76.'&(/)bodF V void main$$Sterge 35 U IIGG begin main$$StergeQ6<'B'77A''/E)bodF preserveRFes IIGG end main$$StergeQ6<'B'77A''/E)bodF V void main$$Setea"a+culoare 35 U IIGG begin main$$Setea"a+culoareQ6<'B'7.A'(B.)bodF preserveRFes IIGG end main$$Setea"a+culoareQ6<'B'7.A'(B.)bodF V void main$$Modi!ica 35 U IIGG begin main$$Modi!icaQ6<'B&/7(''&E)bodF preserveRFes IIGG end main$$Modi!icaQ6<'B&/7(''&E)bodF V void main$$Salvea"a 35 U IIGG begin main$$Salvea"aQ6<'B&/.&''&E)bodF preserveRFes IIGG end main$$Salvea"aQ6<'B&/.&''&E)bodF

V void main$$<eschide 35 U IIGG begin main$$<eschideQ6<'B&/;;''EA)bodF preserveRFes IIGG end main$$<eschideQ6<'B&/;;''EA)bodF V void main$$ mprima 35 U IIGG begin main$$ mprimaQ6<'B&/A;'(.;)bodF preserveRFes IIGG end main$$ mprimaQ6<'B&/A;'(.;)bodF V II Additional <eclarations IIGG begin mainQ6<'AOAE''/AA)declarations preserveRFes IIGG end mainQ6<'AOAE''/AA)declarations IIGG begin moduleQ6<'AOAE''/AA)epilog preserveRFes IIGG end moduleQ6<'AOAE''/AA)epilog

$oncluzie: Dn urma e!ecturii acestei lucrri de laborator am !cut cunostin cu generarea codului surs a unui program, av#nd ca ba" clasa care repre"int imaginea arhitectural a programului) nstrumentul de generare a codului surs este programul Rational Rose, care este o adevrat !acilitate in construirea ba"ei unui program) <easemenea am #ntrit cunotinele #n construirea diagramelor claselor)

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