1 / 69

CUPRINS II . PROIECTAREA ORIENTATA - OBIECT

CUPRINS II . PROIECTAREA ORIENTATA - OBIECT. Slide 2 – 5. Abordarea obiectuala in informatica Slide 6 – 36. Modelul obiect : Slide 6 – 16. Concepte de baza: Slide 6 - 8. Obiecte Slide 9 -12. Clase si subclase de obiecte

braden
Download Presentation

CUPRINS II . PROIECTAREA ORIENTATA - OBIECT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CUPRINS II . PROIECTAREA ORIENTATA - OBIECT Slide 2 – 5. Abordarea obiectuala in informatica Slide 6 – 36. Modelul obiect: Slide 6 – 16. Concepte de baza: Slide 6 - 8. Obiecte Slide 9 -12. Clase si subclase de obiecte Slide 13. Incapsularea Slide 14. Abstractizare Slide 15. Polimorfism Slide 16. Persistenta Slide 17-22. Legaturi intre clasele de obiecte (asocierea, agregarea) Slide 23- 26. Mostenirea Slide 27- 32. Clase abstracte Slide 33- 36. Restrictii de integritate Slide 37 –57. Modelul dinamic Slide 37- 39. Concepte de baza (evenimente, stari) Slide 40. Diagrame de stare Slide 41- 44. Operatii Slide 45- 47. Generalizarea starilor Slide 48- 51. Generalizarea evenimentelor Slide 52- 56. Exemple de Modele obiect (Modele statice) Slide 57 –69. Modelul functional

  2. METODE DE PROIECTARE ORIENTATE - OBIECT Abordarea obiectuala in informatica Metodele de "Analiza si proiectare orientate obiect" au aparut dupa anul 1990 preluand cele mai bune idei ale programarii structurate si le-a combinat cu concepte noi incuraand programatorii sa priveasca activitatea de programare intr-o noua optica. Un consortiu american (Object Management Group-OMG) format din peste 800 de companii ce produc si distribuie aplicatii la a caror realizare s-a utilizat tehnologia orientata obiect si care stimuleaza si supravegheaza adoptarea unor standarde industriale in domeniu a hotarat sa studieze posibilitatile de convergenta din domeniul metodelor de analiza si proiectare orientate obiect. La 17 noiembrie 1997 OMG a hotarat unificarea celor mai utilizate si mai apreciate metode de analiza si proiectare prin realizarea unui standard in domeniul construirii sistemelor software, intr-un LIMBAJ DE MODELARE UNIFICAT (UML-Unified Modeling Language).

  3. Limbajul de modelare unificat (UML) utilizeaza simbolistici grafice in simbioza cu adnotarile textuale care conduc la: • o intelegere mult mai rapida si completa a domeniului problemei; • schimbarea instantanee a nivelului de abstractizare a prezentarii cu ajutorul instrumentelor; • automatizarea tuturor activitatilor care se preteaza la acest gen de abordare. • Analiza si proiectarea orietata obiect priveste sistemul informatic ca o structura de obiecte autonome ce se organizeaza si coopereaza intre ele. Fiecare obiect poate interveni in mai multe feluri sau scenarii functionale diferite si poate participa la cnceperea altor obiecte mai complexe.

  4. Paradicma (conceptul sau exemplu) orientarii obiectsustine ca o entitate din lumea reala poate fi modelata: • ca un obiect (instanta a unei clase); • care are un numar de proprietati (atribute); • metode (operatii sau proceduri). • Regruparea proprietatilor si metodelor intr-o singura entitate (incapsularea) este un concept fundamental de modelare a datelor la fel ca instantierea ( un obiect exte instanta unei clase asa cum spre exemplu tiparul care permite reproducerea oricarui numar de exemplare dorite) si abstractizarea sau generalizarea (o clasa mosteneste proprietatile si metodele de la alte clase). • Analiza si proiectarea orientata obiect utilizeaza limbaje de programare orienatate obiect care au trei elemente comune: • obiecte si clase de obiecte; • polimorfism; • mostenire.

  5. Toate sistemele care asigura orientarea pe obiect contin aceste mecanisme esentiale chiar daca ele nu se numesc la fel sau nu sunt implementate im aceeasi maniera. • Analiza si proiectarea orientata obiect foloseste trei modele diferite pentru descrierea unui sistem informatic: • 1. Modelul obiect : • descrie obiectele si relatiile lor in sistem; • 2. Modelul dinamic : • descrie interactiunile intre obiecte in cadrul • sistemului; • 3. Modelul functional : • descrie transformarea valorii datelor in sistem.

  6. 1. Modelul obiect • Concepte de baza •  Obiecte : • Orice lucru din lumea inconjuratoare poate fi considerat un obiect (ex.: o masina, o persoana, un formular de cerere, un ordin de plata, o marfa etc. ), iar prin analogie in analiza si proiectarea orientata pe obiect, un camp dintr-o baza de date (ex. cod produs), un formular de bilant etc., sunt considerate obiecte; • Un obiect se caracterizeaza prin:

  7. Proprietati- care redau atributele fizice ale unui obiect. • Ex. pentru obiectul student ca proprietati pot fi: • nume; • prenume; • data nasterii; • localitatea, etc.; • sau pentru un text sau control dintr-o fereastra ecran se definesc urmatoarele proprietati sau atribute: • pozitia pe ecran; • latimea; • inaltimea; • culoarea; • variabila care il insoteste; • tipul fontului; • vizibilitatea, etc.;

  8.  Metode care reprezinta actiunile ce pot fi efectuate de un obiect. Ex.: • afisarea pe ecran a unei anexe din formularul bilant; • calcularea stocului curent de materiale; • suma drepturilor cuvenite salariatilor; • totalul valorii marfurilor vandute; • sau pentru o fereastra ecran ca metode ar putea fi: • open; • close etc. • Metoda reda ceea ce poate face un obiect, iar manipularea obiectelor prin program se realizeaza prin mesaje. Ex. o metoda a obiectului factura este listarea iar mesajul care i se poate transmite prin program la actionarea butonuli Print este listarea. • Pentru fiecare mesaj pe care obiectul il intelege, exista o metoda corespunzatoare care executa mesajul, astfel, obiectul reactioneaza la primirea unui mesaj prin executarea metodei.

  9.  Clase si subclase de obiecte: • In varianta proiectarii orientate obiect (POO) obiectele sunt grupate in clase si subclase de obiecte. • -Clasa de obiecte: • este formata din totalitatea proprietatilor si metodelor ce caracterizeaza o anumita categorie de obiecte. (Ex. clasa studenti, clasa imobile, clasa materiale, clasa profesori etc.) • intre clase pot exista asemanari datorita unor proprietati si metode comune (Ex. intre clasa studenti si clasa profesori pot exista una sau mai multe proprietati identice, cum ar fi: proprietatea cetatean, proprietatea varsta etc.) • intre clase pot exista deosebiri (Ex. intre clasa studenti si clasa imobile, proprietatea numar etaje apare numai la clasa imobile.)

  10. Sintaxa Exemplu Numele - clasei PERSOANA nume-atribut-1:tip-data-1=valoare implicita 1 nume:text = Popescu nume-atribut-2:tip-data-2=valoare implicita 2 salariu:intreg = 3000000 nume-atribut-3:tip-data-3=valoare implicita 3 data_nasterii: date = 01-11-1960 . . . nume-operatie-1:tip rezultat - 1 Schimba starea civila: casatorit nume-operatie-2:tip rezultat - 2 Schimba vechime: 20->25 ….. ….. • Reprezentarea grafica a claselor de obiecte:

  11. o particularitate a claselor de obiecte o constituie conceptul de mostenire. in momentul crearii unui obiect este necesar sa se precizeze clasa din care face parte obiectul respectiv pentru ca acesta sa poata mosteni: • proprietatile; • metodele; • valorile prestabilite ale clasei parinte. In acest mod se pot crea la infinit noi clase din clasele existente iar fiecare clasa nou creata va mostenii toate elementele clasei parinte. Mai mult unele obiecte poat avea mai multe clase parinte mostenind toate proprietatile acestora.

  12. procesul crearii unui obiect este numit instantiere. (Un obiect este instanta unei clase). • instantierea este procesul prin care orice obiect creat este o instanta (un exemplar) al clasei parinte. Ex. "Declaratia TVA pe luna martie 1999" este o instanta a clasei "Declaratii TVA" • operatia de instantiere este necesara pentru a putea realiza procesul de mostenire a proprietatilor, metodelr si valorilor aferente proprietatilor. Ex. la clasa Marfuri, proprietatea TVA este declarata 19% dar se poate modifica ulterior. • -Subclasele de obiecte • Sunt definite drept clase derivate dintr-o clasa parinte, care iau nastere dintr-un grup de clase. • Ex. subclasa profesor face parte din clasa angajat si clasa cetatean.

  13. Alte concepte de modelare folosite in analiza si • proiectarea orietata - obiect • Incapsularea: • Este un termen formal care descrie legarea dateloe si a metodelor impreuna intr-un obiect astfel incat accesul la date sa fie permis numai prin intermediul metodelor proprii obiectului ; • Definirea obiectului se bazeaza pe principiul incapsularii, adica obiectul regrupeaza in cadrul entitatii unice, datele si procedurile pe care le manipuleaza • incapsularea (ascunderea informatiei) este o tehnica de structurare a uni sistem, atunci cand sistemul este alcatuit dintr-o colectie de module care sunt accesibile printr-o interfata bine definita. Ex. interfata unii obiect poate fi comparata cu un contract de tip client-furnizor, in care:

  14. clientul (obiect) adreseaza cereri (mesaje) furnizorului (obiect), pentru a i se face anumite servicii (metode) pe care furnizorul stie si poate sa le realizeze. • Abstractizarea : • este o forma utila de programare modulara care incurajeaza programatorul sa gandeasca aplicatiile in termeni abstracti; • unui obiect, realizeaza o vedere speciala asupra obiectului propriu prin insumarea proprietatilor sale; • datelor prin incapsulare, este una din caracteristicile esentiale ale BD orientate obiect. Ex. Crearea claselor elementare care vor face parte din clasa parinte nu mai pot fi simplificate, iar abstractizarea presupune crearea acestor clase elementare.

  15. Polimorfismul: • este un fenomen prin care un mesaj transmis diferitelor obiecte, poate avea ca rezultat actiuni complet diferite. Ex. mesajul print pentru afisarea unui grafic va apela metode diferite de listare, fata de cazul in care acelasi mesaj print este transmis pentru listarea unei facturi; • este incurajat de mecanismul de mostenire; • este utilizat in limbajele orientate pe obiect, cu semnificatia ca, un nume poate fi folosit pentru mai multe situatii corelate dar in scopuri diferite. Ex. aceeasi functie (+) poate face operatii diferite in raport de datele pe care le prelucreaza aceasta functie. Ea poate sa adune doua variabile de tip numeric (a+b) sau doua variabile de tip caracter (nume + prenume).

  16. Persistenta: • se refera la timpul alocat unui obiect in memoria calculatorului pentru a putea fi accesat; • unui obiect in memoria calculatorului are in vedere cand : • este creat un obiect in functie de un parametru asociat; • un obiect este conectat la o structura persistenta data; • exista un obiect radacina persistent, orice obiect pornind de la aceasta radacina este persistent; • un obiect este tinta unui mesaj explicit pentru a-l face persistent.

  17. Legaturi intre clasele de obiecte Legaturile exprima o relatie intre doua sau mai multe obiecte: asocieri si agregari. Asocierea: - se realizeaza intre doua sau mai multe obiecte care sunt in mod normal independente, dar adesea pot fi legate intre ele - poate fi intre doua sau mai multe obiecte: fara atribute si cu atribute. Ex.: fara atribute TARA ORAS Capitala Asociere binara (2 obiecte) Compartiment Proiect Asociere ternara (3 obiecte) Persoana

  18. Reprezentarea conectivitatiilor se simbolizeaza astfel: 1 0,1 +,1 - cu atribute ProdFinite Gestiune CodProd:Number DenProd:Text UM:Text PretMediu:Number Nr gestiune:Number Den gestiune:Text StocInit:Number DataStoc:Date StocCurent:Number In cazul in care asocierea are atribute proprii si metode ea va deveni clasa de obiecte

  19. Agregarea • Agregarea exprima legaturile care apar în cazul în care un obiect este compus din alte obiecte. Obiectele componente pot sa aiba o existenta independenta sau pot exista numai în cadrul agregarii. De asemenea, aceleasi componente pot apareîn mai multe agregari diferite. • Agregarea este tranzitiva: un obiect este compus din alte obiecte care, la rândul lor, pot fi compuse. • Notatie grafica:

  20. Ex:o universitate este compusa din mai multe facultati. • Agregarea si asocierea sunt forme specifice de legatura între obiecte: • - daca doua obiecte sunt legate printr-o relatie compus- component, atunci este o agregare; • - daca doua obiecte sunt în mod normal independente, dar pot fi adesea legate, atunci este o asociere.

  21. Ex:O factura este compusa din produse facturate si cheltuieli de transport‑aprovizionare facturate. • Fiecare produs facturat se refera la un produs anumit si precizeaza catitatea facturata si pretul de facturare. • Agregarea poate fi: • -fixa: numarul si tipul componentelor sunt predeterminate (ex: un automobil este compus dintr-un sasiu, un motor, patru roti etc); • -variabila: numarul de nivele este finit dar numarul de componente pe fiecare nivel poate varia (ex: factura poate avea unul sau mai multe produse facturate si una sau mai multe elemente de CTA); • -recursiva: o componenta face referire, direct sau indirect, la ea însasi. • O caracteristica definitorie pentru agragare este propagarea operatiilor: o operatie aplicata asupra obiectului compus se aplica automat asupra tuturor componentelor sale.

  22. Ex:un document este compus din paragrafe si acestea sunt compuse, la rândul lor din caractere. Copierea sau deplasarea documentului implica toate componenetele acestuia. Fiecare componenta poate fi copiata sau deplasata de sine statator, fara a implica elementele din care face parte. • Acest lucru nu este valabil si în cazul asocierilor. • Ex:copierea documentului nu implica si copierea persoanei care este proprietarul sau.

  23. Mostenirea • - Mostenirea simpla si multipla • Mostenirea este o abstracizare care permite partajarea proprietatilor comune dintre clase, pastrând nealterate diferentele dintre ele. • Clasa de la care se mosteneste este numita superclasa, iar clasa care mosteneste este numita subclasa. • Mostenirea este tranzitiva pe un numar oricât de mare de nivele. Instanta unei subclase este simultan instanta a tuturor superclaselor sale. • Mostenirea poate fi exclusiva (obiectele pot apartine unei singure subclase) sau inclusiva (obiectele pot apartine mai multor subclase din aceeasi arborescenta).

  24. Notatia grafica:

  25. Mostenirea multiplapermite unei clase sa aiba mai multe superclase directe si sa mosteneasca proprietatile tuturor.

  26. Fiecare generalizare introdusa prin mostenirre trebuie sa acopere o singura proprietate. Daca exista mai multe proprietati care determina specializari, trebuie introdusa câte o relatie de mostenire distincta pentru fiecare dintre ele.

  27. - Clase abstracte • O clasa abstracta este o clasa care nu are instantieri directe dar ale caror clase descendente au instantieri. O clasa concreta (adica instantiabila) poate avea subclase abstracte, cu conditia ca acestea sa aiba subclase concrete. • O clasa abstracta nu poate fi clasa terminala în arborele de mostenire.

  28. Clasele abstracte servesc pentru: • - încapsularea claselor care participa la aceleasi asocieri sau agregari; • - definirea metodelor care urmeaza a fi mostenite de subclase; este posibil sa se defineasca numai semnatura metodei (protocolul de invocare) urmând ca implementarea concreta sa se faca la nivelul fiecarei subclase.

  29. - Atribute si metode statice • Atributele si metodele statice sunt elemente definite la nivelul clasei. Ele servesc pentru a descrie proprietati sau a implementa operatii referitoare la clasa privita si ea ca obiect (mai precis ca un metaobiect). • În aceasta categorie se includ: • - atribute care descriu ansamblul instantierilor (obiectelor) clasei respective si nu fiecare obiect (de exemplu, numarul de instantieri existente la un moment dat); • - metode care opereaza asupra ansamblului ( de exemplu, parcurgerea, unul câte unul, a obiectelor clasei respective) sau care nu pot fi plasate la nivelul obiectelor (constructorii- metode care creaza un nou obiect din calsa respectiva - si destructorii - metode care suprima un obiect existent).

  30. Ex:pentru ferestrele de ecran pot fi definite o serie de atribute si metode aferente fiecarei ferestre: marime, vizibilitate, afiseaza si atribute si metode specifice ansamblului ferestrelor (statice): marime_implicita, marime_maxima, creaza_fereastra, activeaza_fereastra.

  31. - Extensie si restrictie în mostenire • Extensie: adaugarea într-o subclasa de noi proprietati, alaturi de cele mostenite. • Restrictie: limitarea valorii pe care obiectele le pot lua pentru atributele mostenite. • Obiectul apartinând unei clase este o instanta a tuturor superclaselor acesteia. În consecinta, toate caracteristicile superclaselor trebuie sa se aplice pâna la ultimul nivel de mostenire. • O subclasa nu poate surpima o proprietate mostenita si nu poate schimba protocolul (semnatura) metodelor mostenite. Ea poate adauga noi proprietati - atribute si metode - la cele mostenite sau poate redefini implementarea anumitor operatii mostenite.

  32. Redefinirea operatiilor se poate face: • pentru extindere:subclasa poseda atribute suplimentare fata de cele mostenite iar implementarea operatiei trebuie sa ia în considerare si aceste noi atribute; semnatura operatiei nu se schimba; • pentru restrângere:implementarea operatiei introduce restrictii sau limite referitoare la valoarea argumentelor sau la tipul acestora, admitând submultimi ale argumentelor mostenite; • pentru optimizare: se da o noua implementare operatiei, schimbând, spre exemplu, algoritmul de realizare, astfel încât aceasta sa se execute mai repede fara a schimba însa semnatura si semantica operatiei.

  33. Restrictii de integritate • Tipologia restrictiilor de integritate din cadrul metodelor sistemice ramâne valabila si aici. • Metodele orientate obiect introduc anumite notatii particulare pentru unele restrictii de integritate (RI). • Cardinalitatile: exprima, în mod implicit, restrictii de integritate referitoare la participarea obiectelor la asocieri sau agregari.

  34. Ordonarea: indica ordinea impusa elementelor aflate pe latura "mai multe" într-o asociere. • Incluziunea: nu mai face distinctie între roluri si asocieri.

  35. Obiecte, legaturi si atribute derivate: sunt precedate de caracterul "/".

  36. •Homomorfismul:este reprezentarea unei asocieri spre o alta asociere. • Ex:un catalog de piese auto poate contine articole aflate într- un alt catalog. Fiecare articol de catalog poseda un numar de model caruia îi pot corespunde mii de articole produse individual de fabricanti diferiti. Un articol poate fi compus din subarticole. Fiecare arbore de descompunere al unui articol fizic trebuie sa aiba aceeasi forma cu arborele corespunzator din catalog. Exista, prin urmare, un homomorfism între cele doua agregari contine.

  37. 2. Modelul dinamic • Modelul dinamic prezinta modificarile suportate de obiecte si corelatiile temporale dintre acestea. • Conceptele de baza: • - evenimente • - stari. • • Eveniment: • - un fapt intervenit într-un anumit moment; • - conceptual, un eveniment nu are durata. • Ordine de aparitie a evenimentelor poate fi dirijata de legaturi de cauzalitate. Spre exemplu, plata unei facturi se face numai dupa receptia marfurilor facturate. • Doua evenimente care nu au nici o in fluneta unul asupra altuia sunt numite concurente, ordinea lor putând fi oarecare. • Un eveniment trasporta informatie catre un obiect sau de la un obiect la altul. Datele transmise sunt atributele evenimentului.

  38. Scenariul: • - secventa de evenimente care se deruleaza într-o anumita executie particulara a sistemului. Aria unui scenariu poate varia, poate cuprinde toate evenimentele sau numai evenimentele corespunzatoare unui anumit obiect sau unei situatii. • Starea: • - o abstractizare a valorilor atributelor si a legaturilor unui obiect; • - multimile de valori sunt grupate în stari în functie de proprietatile • care afecteaza comportamentul ansamblului obiectului; • - reprezinta raspunsul obiectului la evenimentele de intrare. • Raspunsul la un eveniment aparut poate varia cantitativ, în functie de valoarea exacta a atributelor sale dar sub aspect calitativ este identic pentru toate valorile aceluiasi eveniment si poate varia pentru valori de stare diferite. Acest raspuns poate cuprinde o actiune sau o schimbare de de stare.

  39. O starecorespunde intervalului de timp dintre doua evenimentente survenite pentru acelasi obiect. O stare are deci o durata. Evenimentele si starile sunt duale: o stare separa doua evenimente si un eveniment separa doua stari. • O stareregrupeaza toate combinatiile de valori ale atributelor si legaturilor care conduc la acelasi raspuns fata de un anumit tip de eveniment. • Evenimentele si stariledepind de nivelul de abstractizare utilizat. • Ex: o agentie de voiaj care planifica un itinerar va trata fiecare etapa a calatoriei ca un eveniment unic; pentru o anumita etapa de calatorie, în aeroport, tabela de afisaj va face distinctia între evenimentele plecare si sosire, iar sistemul de control al traficului va descompune zborul în mai multe culoare geografice. • Legaturile dintre stari si evenimentesunt reprezentate prindiagrame de stare. La aparitia unui eveniment starea urmatoare depinde de starea curenta a obiectului si de evenimentul survenit: schimbarea declansata este numita tranzitie.

  40. Diagrama de stare indica comportamentul unei clase de obiecte. Dar, tot asa cum fiecare obiect are valori proprii ale atributelor, are si stari proprii si deci functioneaza independent de celelalte, urmând însa aceeasi schema. Diagaramele de stare pot fi de doua tipuri: - cu executie unica - în bucla continua. Diagramele cu executie unica corespund claselor de obiecte cu o durata de viata finita si cuprind starile initiala si finala. Modelul dinamic este compus din ansamblul diagramelor de stare si descrie structura de control a sistemului. În cadrul modelului dinamic, diagramele de stare ale diverselor clase de obiecte interactioneaza prin intermediul evenimentelor partajate. Modelul dinamic descrie suita completa de secvente de evenimente si tranzitii, în timp ce un scenariu descrie secventa specifica unei anumite situatii sau context. Starilor le pot fi atasate conditii. În asemenea cazuri, o tranzitie se produce numai la aparitia unui/unor evenimente si daca starea îndeplineste conditia necesara.

  41. - Operatii Operatiile sunt atasate evenimentelor si/sau starilor si indica ce face obiectul la aparitia evenimentului sau starii respective. Exista doua categorii de operatii: activitati si actiuni. Oactivitate este o operatie care necesita o anumita durata de timp (în termenii aplicatiei studiate). O activitate poate acoperi întreaga durata a unei stari sau poate fi mai scurta decât aceasta. Este, de asemenea posibil, ca o activitate sa înceteze înaintea executiei sale complete din cauza aparitiei unui eveniment. În termeni generali, o activitate poate fi privita ca o operatie de natura secventiala cu durata indefinita. O actiuneeste o operatie instantanee (tot în termenii aplicatiei, deoarece fizic nu poate fi realmente instantanee). Actiunea este întotdeauna atasata unui eveniment. Actiunile pot reprezenta de asemenea operatii de control intern, cum ar fi modificarea valorii unor atribute sau generarea altor evenimente.

  42. Notatia grafica Ex. 1.Afisarea meniului derulant (scurt) la apasarea butonului drept al mouse-ului.

  43. Ex. 2. Automat de distributie a cafelei si bauturilor racoritoare

  44. O activitate dintr-o stare poate fi extinsa într-o diagrama de nivel mai jos în care fiecare stare sa reprezinte un pas al activitatii initiale. Activitatile imbricrate sunt diagrame de stare cu executie unica si cutranzitii de intrare si de iesire. Ex: pentru activitatea distribuie articol din diagrama de mai sus, se poate trasa o diagrama imbricata de tipul urmator:

  45. -Generalizarea starilor O diagrama imbricata este în fapt o generalizare de stari. Un obiect aflat într-o anumita stare în diagrama de pe nivelul superior trebuie sa fie obligatoriu si într-una din starile din diagrama imbricata. Altfel spus, toate starile din diagrama imbricata sunt detalieri ale diagramei de pe nivelul mai înalt. Starile pot avea substari care mostenesc tranzitiile superstarilor lor, tot asa cum clasele pot avea subclase care mostenesc atributele si operatiile superclaselor lor. Fiecare tranzitie sau actiune aplicata unei stari este aplicata tuturor substarilor sale, cu conditia ca acestea sa nu fi fost eventual redefinite (suprascrise).

  46. În schema de mai sus, Vit I-a,...Vit a III-a sunt substari pentru Mers înainte. Tranzitiile superstarii sunt mostenite de toate substarile. Selectionarea tranzitiei SchimbaS (stop) din orice viteza provoaca o trecere la punctul mort. Tranzitia de la mers înainte la punct mort implica trei tranzitii mostenite, câte una pentru fiecare dintre vitezele de mers înainte spre punctul mort. Comutarea mersului înainte plecând din punctul mort provoaca o tranzitie în interiorul starii mers înainte la viteza I-a, s.a.m.d.

  47. - Generalizarea evenimentelor Evenimentele pot fi organizate într-un ierarahie de mostenire a atributelor acestora. Construirea unei ierarhii de evenimente permite sa se utilizeze diverse nivele de abstractizare în diferite sectiuni ale proiectului.

  48. Fiecare tip de eveniment din schema mosteneste atributele evenimentelor de pe nivelul/nivelele superioare. Ex: buton mouse apasat mosteneste proprietatile timp, periferic, pozitie. -Concurenta si sincronizarea Concurenta apare în interiorul unui obiect atunci când acesta poate fi partitionat în subansamble de atribute si legaturi, având fiecare propria diagrama de stare. Nu este obligatoriu ca subdiagramele sa fie independente: acelasi eveniment poate provoca tranzitii în fiecare dintre acestea. Un obiect poate fi obligat sa execute mai multe acctiuni în mod concurent. Executia interna a acestora nu este sincronizata în vreun mod, dar obiectul nu poate face tranzitia la starea urmatoare decât dupa efectuarea lor completa.

  49. Ex:la terminarea unei tranyzactii cu un client, un bancomat trebuie sa efectueze doua operatii: sa elibereze bancnotele corespunzatoare sumei cerute si sa returneze card-ul. Masina nu poate trece în starea urmatoare pâna când aceste operatii nu s-au realizat, indiferent de ordinea în care a actionat clientul: a preluat mai întâi banii sau card-ul sau pe amândoua simultan.

More Related