Ingineria programării Adriana Gheorghieş, Ovidiu Gheorghieş 23 octombrie / 62

Mărimea: px
Porniți afișarea la pagina:

Download "Ingineria programării Adriana Gheorghieş, Ovidiu Gheorghieş 23 octombrie / 62"

Transcriere

1 Ingineria programării Adriana Gheorghieş, Ovidiu Gheorghieş 23 octombrie / 62

2 Cuprins Diagrama de stari Diagrama de activitati Organizare: pachete UML recapitulare studiu de caz recomandări 2 / 62

3 Eveniment Exemple de evenimente Acţiune Activitate 3 / 62

4 Eveniment Exemple de evenimente Acţiune Activitate Eveniment Acţiune Activitate 4 / 62

5 Eveniment Eveniment Exemple de evenimente Acţiune Activitate Reprezintă ceva atomic care se întâmplă la un moment dat Modelează apariţia unui stimul care poate conduce la efectuarea unei tranziţii Are ataşată o locaţie în timp şi spaţiu Nu are o durată în timp Evenimentele pot fi: sincrone sau asincrone externe sau interne 5 / 62

6 Exemple de evenimente Eveniment Exemple de evenimente Acţiune Activitate semnal=stimul asincron care are un nume, este aruncat de un obiect şi recepţionat de altul (ex. excepţii) apel de operaţie (de obicei sincron) trecerea timpului schimbarea rezultatului evaluării unei condiţii 6 / 62

7 Acţiune Eveniment Exemple de evenimente Acţiune Activitate Reprezintă execuţia atomică a unui calcul Are ca efect: returnarea unei valori schimbarea stării Are o durată mică în timp Exemplu: i++; 7 / 62

8 Activitate Eveniment Exemple de evenimente Acţiune Activitate Repezintă execuţia neatomică a unor acţiuni Are o durată în timp Exemplu: vorbitul la telefon execuţia unei funcţii 8 / 62

9 Stare Stare: Notaţie grafică Tranziţie internă Tranziţie Exemplu de tranziţie Stări compuse Exemplu de stare compusă (1) Exemplu de stare compusă (2) 9 / 62

10 Stare Stare: Notaţie grafică Tranziţie internă Tranziţie Exemplu de tranziţie Stări compuse Exemplu de stare compusă (1) Exemplu de stare compusă (2) Folosită pentru a modela comportamentul unui singur obiect. Specifică o secvenţă de stări prin care trece un obiect de-a lungul vieţii sale ca răspuns la apariţia unor evenimente împreună cu răspunsul la acele evenimente. Conţine: Stări Tranziţii 10 / 62

11 Stare Stare Stare: Notaţie grafică Tranziţie internă Tranziţie Exemplu de tranziţie Stări compuse Exemplu de stare compusă (1) Exemplu de stare compusă (2) Reprezintă o perioadă din viaţa unui obiect în care acesta: satisface anumite condiţii, execută o acţiune sau aşteaptă apariţia unui eveniment. Stările pot fi: simple compuse concurente secvenţial active 11 / 62

12 Stare: Notaţie grafică Stare Stare: Notaţie grafică Tranziţie internă Tranziţie Exemplu de tranziţie Stări compuse Exemplu de stare compusă (1) Exemplu de stare compusă (2) Typing Password entry/set echo invisible exit/set echo normal character/ handle character help/display help Elementele unei stări: nume tranzitii interne stare initiala stare finala nume: identifică o stare tranziţii interne: acţiuni şi activităţi pe care obiectul le execută cât timp se află în acea stare. 12 / 62

13 Tranziţie internă Stare Stare: Notaţie grafică Tranziţie internă Tranziţie Exemplu de tranziţie Stări compuse Exemplu de stare compusă (1) Exemplu de stare compusă (2) Forma generală a unei tranziţii interne: nume eveniment ( lista parametrilor ) [ cond gardă ] / acţiune nume eveniment identifică circumstanţele în care acţiunea specificată se execută nume predefinite: entry, exit, do, include cond gardă este o expresie booleană care se evaluează la fiecare apariţie a evenimentului specificat; acţiunea se execută doar în cazul în care rezultatul evaluării este TRUE. acţiunea poate folosi atribute şi legaturi care sunt vizibile entităţii modelate 13 / 62

14 Tranziţie Stare Stare: Notaţie grafică Tranziţie internă Tranziţie Exemplu de tranziţie Stări compuse Exemplu de stare compusă (1) Exemplu de stare compusă (2) Reprezintă o relaţie între două stări Indică faptul că un obiect aflat în prima stare va efectua nişte acţiuni şi apoi va intra în starea a doua atunci când un anumit eveniment se produce. Notaţie grafică: Stare sursa nume eveniment(lista parametrilor)[cond garda]/actiune Stare destinatie 14 / 62

15 Exemplu de tranziţie Stare Stare: Notaţie grafică Tranziţie internă Tranziţie Exemplu de tranziţie Stări compuse Exemplu de stare compusă (1) Exemplu de stare compusă (2) Simple object right-mouse-down(location)[location in widow]/object=pick object(location); object.highlight() eveniment parametru conditie garda Highlighted object activitati 15 / 62

16 Stări compuse Stare Stare: Notaţie grafică Tranziţie internă Tranziţie Exemplu de tranziţie Stări compuse Exemplu de stare compusă (1) Exemplu de stare compusă (2) Conţin substări tranziţii interne Substările pot fi: secvenţial active (disjuncte) paralel active (concurente) Substările pot conţine, la rândul lor, alte substări. 16 / 62

17 Exemplu de stare compusă (1) Stare Stare: Notaţie grafică Tranziţie internă Tranziţie Exemplu de tranziţie Stări compuse Exemplu de stare compusă (1) Exemplu de stare compusă (2) Stare compusă cu substări secvencţial active: Incepe entry/apare ton exit/dispare ton apasatasta(n) Formeaza numar de telefon Numar partial entry/numar.adauga(n) apasatasta(n) [numar.estevalid()] 17 / 62

18 Exemplu de stare compusă (2) Stare Stare: Notaţie grafică Tranziţie internă Tranziţie Exemplu de tranziţie Stări compuse Exemplu de stare compusă (1) Exemplu de stare compusă (2) Stare compusă cu substări paralel active: Take class Incomplete Lab 1 lab done Lab 2 lab done Project project done Exam pass fail Passed Failed 18 / 62

19 (1) (2) Stare activitate/acţiune Tranziţie Ramificaţie Exemplu Bară de sincronizare de activităţi (1) de activităţi (2) Obiecte (1) Obiecte (2) de activităţi (3) (obiecte) 19 / 62

20 (1) (1) (2) Stare activitate/acţiune Tranziţie Ramificaţie Exemplu Bară de sincronizare de activităţi (1) de activităţi (2) Obiecte (1) Obiecte (2) de activităţi (3) (obiecte) Folosită pentru a modela dinamica unui proces sau a unei operaţii Evidenţiază controlul execuţiei de la o activitate la alta Se ataşează: Unei clase (modelează un caz de utilizare) Unui pachet Implementării unei operaţii 20 / 62

21 (2) (1) (2) Stare activitate/acţiune Tranziţie Ramificaţie Exemplu Bară de sincronizare de activităţi (1) de activităţi (2) Obiecte (1) Obiecte (2) de activităţi (3) (obiecte) Poate conţine: Stări activitate/acţiune Tranziţii Obiecte Bare de sincronizare Ramificaţii 21 / 62

22 Stare activitate/acţiune (1) (2) Stare activitate/acţiune Tranziţie Ramificaţie Exemplu Bară de sincronizare de activităţi (1) de activităţi (2) Obiecte (1) Obiecte (2) de activităţi (3) (obiecte) Modelează execuţia unor acţiuni sau a unor subactivităţi Notaţie grafică: Exemplu: Nume Drive car matrix.invert(tolerance:real) 22 / 62

23 Tranziţie (1) (2) Stare activitate/acţiune Tranziţie Ramificaţie Exemplu Bară de sincronizare de activităţi (1) de activităţi (2) Obiecte (1) Obiecte (2) de activităţi (3) (obiecte) Reprezintă o relaţie între două activităţi Tranziţia este iniţiată de terminarea primei activităţi şi are ca efect preluarea controlului execuţiei de către a doua activitate Notaţie grafică: Activitate 1 Activitate 2 tranzitie 23 / 62

24 Ramificaţie (1) (2) Stare activitate/acţiune Tranziţie Ramificaţie Exemplu Bară de sincronizare de activităţi (1) de activităţi (2) Obiecte (1) Obiecte (2) de activităţi (3) (obiecte) Se foloseşte pentru a modela alternative (decizii) a căror alegere depinde de o expresie booleană Are o tranziţie de intrare şi două sau mai multe tranziţii de ieşire Fiecare tranziţie de ieşire trebuie să aibă o condiţie gardă Condiţiile gardă trebuie să fie disjuncte (să nu se suprapună) şi să acopere toate posibilităţile de continuare a execuţiei 24 / 62

25 Exemplu ramificatie reunire (1) (2) Stare activitate/acţiune Calculate total cost [cost<$50] [cost>=$50] Get authorization Charge customer s account Tranziţie Ramificaţie Exemplu Bară de sincronizare de activităţi (1) de activităţi (2) Obiecte (1) Obiecte (2) de activităţi (3) (obiecte) 25 / 62

26 Bară de sincronizare (1) (2) Stare activitate/acţiune Folosită pentru a modela sincronizarea mai multor activităţi care se execută în paralel. Poate fi de două tipuri: fork: are o tranziţie de intrare şi două sau mai multe tranziţii de ieşire join: are două sau mai multe tranziţii de intrare şi o singură tranziţie de ieşire. Tranziţie Ramificaţie Exemplu Bară de sincronizare de activităţi (1) de activităţi (2) Obiecte (1) Obiecte (2) de activităţi (3) (obiecte) Notaţie grafică: fork join 26 / 62

27 Exemplu: diagrama de activităţi (1) (1) (2) Stare activitate/acţiune Tranziţie Ramificaţie Exemplu Bară de sincronizare de activităţi (1) de activităţi (2) Obiecte (1) Obiecte (2) de activităţi (3) (obiecte) Pune filtrul in cafetiera Pune apa in rezervor Pune cafea in filtru Porneste cafetiera Prepara cafeaua Ia o cana Toarna cafeaua Bea 27 / 62

28 Exemplu: diagrama de activităţi (2) Customer Sales Stockroom (1) (2) Stare activitate/acţiune Tranziţie Ramificaţie Exemplu Bară de sincronizare de activităţi (1) de activităţi (2) Request service Pay Take order Deliver order Fill order Obiecte (1) Obiecte (2) de activităţi (3) (obiecte) Collect order 28 / 62

29 Obiecte (1) (1) (2) Stare activitate/acţiune Tranziţie Ramificaţie Exemplu Bară de sincronizare de activităţi (1) de activităţi (2) Obiecte (1) Obiecte (2) de activităţi (3) (obiecte) Acţiunile sunt realizate de către obiecte sau operează asupra unor obiecte. Obiectele pot constitui parametri de intrare/ieşire pentru acţiuni Obiectele pot fi conectate de acţiuni prin linii punctate cu o săgeată la unul din capete (orientarea săgeţii indică tipul parametrului - intrare sau ieşire) 29 / 62

30 Obiecte (2) (1) (2) Stare activitate/acţiune Tranziţie Ramificaţie Exemplu Bară de sincronizare de activităţi (1) de activităţi (2) Obiecte (1) Obiecte (2) de activităţi (3) (obiecte) Un obiect poate apărea de mai multe ori în cadrul aceleiaşi diagrame de activităţi. Fiecare apariţie indică un alt punct (stare) în viaţa obiectului. Pentru a distinge apariţiile numele stării obiectului poate fi adăugat la sfârşitul numelui obiectului 30 / 62

31 Exemplu: diagrama de activităţi (3) (obiecte) Customer Sales Stockroom Request service (1) (2) Stare activitate/acţiune Tranziţie Ramificaţie Exemplu Bară de sincronizare de activităţi (1) de activităţi (2) Pay Order {placed} Take order Deliver order Order {entered} Order {filled} Fill order Obiecte (1) Obiecte (2) de activităţi (3) (obiecte) Collect order Order {delivered} 31 / 62

32 Pachet (1) Pachet (2) Exemplu Utilitatea pachetelor 32 / 62

33 Pachet (1) Pachet (1) Pachet (2) Exemplu Utilitatea pachetelor Este un container logic pentru elemente între care se stabilesc legături Defineşte un spaţiu de nume Toate elementele UML pot fi grupate în pachete (cel mai des pachetele sunt folosite pentru a grupa clase) Un pachet poate conţine subpachete se creează o structură arborescentă (similară cu organizarea fişierele/directoarelor) 33 / 62

34 Pachet (2) Pachet (1) Pachet (2) Exemplu Utilitatea pachetelor Notaţie grafică: Relaţii: Nume dependenţă <<access>> = import privat dependenţă <<import>> = import public Ambele relatii permit folosirea elementelor aflate în pachetul destinaţie de către elementele aflate în pachetul sursă făra a fi necesară calificarea numelor elementelor din pachetul destinaţie (similar directivei import din java. 34 / 62

35 Exemplu Auxiliary <<access>> ShoppingCart <<import>> WebShop <<import>> Types Pachet (1) Pachet (2) Exemplu Utilitatea pachetelor Elementele din Types sunt importate în ShoppingCart şi apoi sunt importate mai departe de către WebShop. Elementele din Auxiliary pot fi accesate însă doar din ShoppingCart şi nu pot fi referite folosind nume necalificate din WebShop 35 / 62

36 Utilitatea pachetelor Pachet (1) Pachet (2) Exemplu Utilitatea pachetelor Împart sisteme mari în subsisteme mai mici şi mai uşor de gestionat Permit dezvoltare paralelă iterativă Definirea unor interfeţe clare între pachete promovează refolosirea codului (ex. pachet care oferă funcţii grafice) 36 / 62

37 37 / 62

38 Diagramele să nu fie nici prea complicate, dar nici simpliste: scopul este comunicarea eficientă. Daţi nume sugestive elementelor componente. Aranjaţi elementele astfel încât liniile să nu se intersecteze. Încercaţi să nu arătaţi prea multe tipuri de relaţii odată (altfel vor rezulta diagrame complicate). Dacă este nevoie, realizaţi mai multe diagrame de acelaşi tip. 38 / 62

39 Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea 39 / 62

40 Pattern Traducere: şablon, model Este o soluţie generală la o problemă comună Fiecare pattern are un nume sugestiv şi uşor de reţinut (ex. composite, observer, iterator) Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea 40 / 62

41 GRASP Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea GRASP = General Responsibility Assignement Software Patterns Descrise de Craig Larman în cartea Applying UML and Patterns. An Introduction to Object Oriented Analysis and Design Ne ajuta să alocăm responsabilităţi claselor în cel mai elegant mod posibil Modelele sunt numite: Information Expert (sau Expert), Creator, High Cohesion, Low Couplig şi Controller 41 / 62

42 Information Expert (1) Problemă: dat un anumit comportament (operaţie), cărei clase trebuie să-i fie atribuit? O alocare bună a operaţiilor conduce la sisteme care sunt: Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea Uşor de înţeles Mai uşor de extins Refolosibile Mai robuste 42 / 62

43 Information Expert (2) Soluţie: asignez o responsabilitate clasei care are informaţiile necesare pentru îndeplinirea acelei responsabilităţi Recomandare: începeţi asignarea responsabilităţilor evidenţiind clar care sunt responsabilităţile Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea 43 / 62

44 Information Expert (3) Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea Sale -date -time 1 SalesLineItem -quantity Contains 1..* * Described by 1 ProductSpecification -description -price -itemid Scenariul de utilizare cere ca utilizatorului sa-i fie prezentată valoarea totală a cumpărăturilor. Cărei clase trebuie să-i fie asignată metoda gettotal()? Mai trebuie adăugate şi alte metode? 44 / 62

45 Information Expert (4) t := gettotal() :Sale t := gettotal() :Sale 1*: st := getsubtotal() * :SalesLineItem Pattern t := gettotal() :Sale 1*: st := getsubtotal() * :SalesLineItem GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) 1.1: p:=getprice() Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) :ProductSpecification Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea 45 / 62

46 Information Expert (5) Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Clasă Sale SalesLineItem ProductSpecification Responsabilităţi să cunoască valoarea totală a cumpărăturilor să cunoască subtotalul pentru un produs să cunoască preţul produsului Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea 46 / 62

47 Information Expert (6) Sale -date -time +gettotal() 1 Contains Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) SalesLineItem -quantity 1..* +getsubtotal() * Described by 1 ProductSpecification -description -price -itemid +getprice() Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea 47 / 62

48 Creator (1) Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea Problemă: cine trebie să fie responsabil cu crearea unei instancte a unei clase? Soluţie: Asignaţi clasei B responsabilitatea de a crea instanţe ale clasei A doar dacă cel puţin una dintre următoarele afirmaţii este adevărată: B agregă obiecte de tip A B conţine obiecte de tip A B foloseşte obiecte de tip A B are datele de iniţializare care trebuie transmise la instanţierea unui obiect de tip A (B este deci un Expert în ceea ce priveşte crearea obiectelor de tip A) 48 / 62

49 Creator (2) Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea Sale -date -time 1 SalesLineItem -quantity Contains 1..* * Described by 1 ProductSpecification -description -price -itemid Cine este responsabil cu crearea unei instanţe a clasei SalesLineItem? 49 / 62

50 Creator (3) :Register :Sale Pattern addlineitem(itemtype, quantity) create(itemtype, quantity) :SalesLineItem GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea Deoarece Sale conţine (agregă) instanţe de tip SalesLineItem, Sale este un bun candidat pentru a i se atribui responsabilitatea creării acestor instanţe 50 / 62

51 Low coupling (cuplaj redus) Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea Cuplajul este o măsură a gradului de dependenţă a unei clase de alte clase. Dependenţă: este conectată cu are cunoştinţe despre se bazează pe O clasă care are cuplaj mic (redus) nu depinde de multe alte clase; multe este dependent de contex. O clasă care are cuplaj mare depinde de multe alte clase. 51 / 62

52 Cuplaj (2) Probleme cauzate de cuplaj: schimbări în clasele relaţionate forţează schimbări locale clase greu de înţeles în izolare (scoase din context) clase greu de refolosit deoarece folosirea lor presupun prezenţa şi a claselor de care depind Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea 52 / 62

53 Cuplaj (3) Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea Forme comune de cuplaj de la clasa A la clasa B sunt: A are un atribut de tip B O instanţă a clasei A apelează un serviciu oferit de un obiect de tip B A are o metodă care referenţiază B (parametru, obiect local, obiect returnat) A este subclasă (direct sau indirect) a lui B B este o interfaţă, iar A implementează această interfaţă 53 / 62

54 Legea lui Demeter Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea Don t talk to strangers Orice metodă a unui obiect trebuie să apeleze doar metode aparţinând lui însuşi oricărui parametru al metodei oricărui obiect pe care l-a creat oricăror obicte pe care le conţine 54 / 62

55 Vizualizarea cuplajelor Diagrama de clase Diagrama de colaborare Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea 55 / 62

56 Exemplu makepayment() :Register 1:create() p:payment 2:addPayment(p) (a) :Sale Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea makepayment() 1:makePayment() :Register :Sale 1.1:create() (b) :Payment (a) Există legături între toate clasele (b) Elimină cuplajul dintre Register şi Payment 56 / 62

57 High Cohesion Coeziunea este o măsură a cât de puternic sunt focalizate responsabilităţile unei clase. O clasă ale cărei responsabilităţi sunt foarte strâns legate şi care nu face foarte multe lucruri are o coeziune mare. O clasa care face multe lucruri care nu sunt relaţionate sau face prea multe lucruri are o coeziune mică (slabă) Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea 57 / 62

58 Coeziune (2) Probleme cauzate de o slaba coeziune: greu de înţeles greu de refolosit greu de menţinut delicate; astfel de clase sunt mereu supuse la schimbări Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea 58 / 62

59 Coeziune şi Cuplaj Sunt principii vechi în design-ul software Promovează un design modular Modularitatea este proprietatea unui sistem care a fost descompus într-o mulţime de module coezive şi slab cuplate Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea 59 / 62

60 Controller (1) Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea Problemă: Cine este responsabil cu tratarea unui eveniment generat de un actor? Aceste evenimente sunt asociate cu operaţii ale sistemului Un Controller este un obiect care nu ţine de interfaţa grafică şi care este responsabil cu recepţionarea sau gestionarea unui eveniment. Un Controller defineşte o metoda corespunzătoare operaţiei sistemului. 60 / 62

61 Controller (2) Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea Soluţie: asignează responsabilitatea pentru recepţionarea sau gestionarea unui eveniment unei clase care reprezintă una dintre următoarele alegeri: Reprezintă întregul sistem sau subsistem (façade controller) Reprezintă un scenariu de utilizare în care apare evenimentul; deseori acesta este numit [UseCaseName]Handler, [UseCaseName]Coordinator sau [UseCaseName]Session (use-case or session controller) -Folosiţi aceeaşi clasă Controller pentru toate evenimentele care apar în acelaşi scenariu de utilizare -Informal, o sesiune reprezintă o instanţă a unei conversaţii cu un actor. Sesiunile pot avea orice lungime, însă sunt organizate, de obicei, în termeni de scenarii (use case sessions) 61 / 62

62 Controller (3) Pattern GRASP Information Expert (1) Information Expert (2) Information Expert (3) Information Expert (4) Information Expert (5) Information Expert (6) Creator (1) Creator (2) Creator (3) Low coupling (cuplaj redus) Cuplaj (2) Cuplaj (3) Legea lui Demeter Vizualizarea În mod normal, un controller ar trebui sa delege altor obiecte munca care trebuie făcută; Controller-ul coordonează sau controlează activitatea, însă nu face prea multe lucruri el însuşi. O greşeală comună în design-ul unui controller este să i se atribuie prea multe responsabilităţi (façade controller) Un UseCaseController este o alegere bună dacă există multe evenimente care apar în procese diferite împărţire în mai multe clase. Avantaje: mai uşor de gestionat oferă o bază pentru a putea determina starea scenariului în desfăşurare. 62 / 62

PROGRAMARE ORIENTATA PE OBIECTE

PROGRAMARE ORIENTATA PE OBIECTE Curs 2 Principiile Programării Orientate pe Obiecte Programare Orientată pe Obiecte Tehnici de programare Programarea procedurală Modul în care este abordată programarea, din punct de vedere al descompunerii

Mai mult

PowerPoint Presentation

PowerPoint Presentation UPB - Facultatea ETTI - Curs ISC - an IV Specializarea RST 2010-2011 Inginerie Software pentru Comunicatii (ISC / RST) Titular curs: Eduard-Cristian Popovici Suport curs: http://discipline.elcom.pub.ro/isc/

Mai mult

Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011

Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011 Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011 I. NOŢIUNI TEORETICE A. Ce este un fir de execuţie? Înainte de a defini conceptul de fir

Mai mult

Creational design patterns

Creational design patterns Unit Testing: CORRECT ALIN ZAMFIROIU Recapitulare Testing Unit testing Junit Test TestCase TestSuite Assertion Right-BICEP Test QUIZ.CSIE.ASE.RO CORRECT C Conformitatea formatului (Conformance); O Ordinea

Mai mult

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai Cluj-Napoca superior 1.2 Facultatea Facultatea de Mate

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai Cluj-Napoca superior 1.2 Facultatea Facultatea de Mate FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai Cluj-Napoca superior 1.2 Facultatea Facultatea de Matematică şi Informatică 1.3 Departamentul Departamentul

Mai mult

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Babeş-Bolyai Cluj-Napoca 1.2 Facultatea Matematică şi Info

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Babeş-Bolyai Cluj-Napoca 1.2 Facultatea Matematică şi Info FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Babeş-Bolyai Cluj-Napoca 1.2 Facultatea Matematică şi Informatică 1.3 Departamentul Informatică 1.4 Domeniul

Mai mult

Proiectarea Sistemelor Software Complexe

Proiectarea Sistemelor Software Complexe Proiectarea Sistemelor Software Complexe Curs 4 Arhitecturi de Sistem Software Bazate pe Tehnologii Middleware. Obiecte Distribuite. Rolul unui arhitect software este foarte asemănător cu cel al unui arhitect

Mai mult

Ingineria sistemelor soft Curs 2 Specificarea modelelor folosind UML Curs bazat pe B. Bruegge and A.H. Dutoit "Object-Oriented Software Engi

Ingineria sistemelor soft Curs 2 Specificarea modelelor folosind UML Curs bazat pe B. Bruegge and A.H. Dutoit Object-Oriented Software Engi Ingineria sistemelor soft 2018-2019 Curs 2 Specificarea modelelor folosind UML Curs bazat pe B. Bruegge and A.H. Dutoit "Object-Oriented Software Engineering using UML, Patterns, and Java" Sumar Curs 2

Mai mult

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

Logică și structuri discrete Limbaje regulate și automate Marius Minea   marius/curs/lsd/ 24 noiembrie 2014 Logică și structuri discrete Limbaje regulate și automate Marius Minea marius@cs.upt.ro http://www.cs.upt.ro/ marius/curs/lsd/ 24 noiembrie 2014 Un exemplu: automatul de cafea acțiuni (utilizator): introdu

Mai mult

9. Design patterns - Singleton, Factory, Observer Scopul acestui curs este familiarizarea cu folosirea unor pattern-uri des întâlnite în design-ul atâ

9. Design patterns - Singleton, Factory, Observer Scopul acestui curs este familiarizarea cu folosirea unor pattern-uri des întâlnite în design-ul atâ 9. Design patterns - Singleton, Factory, Observer Scopul acestui curs este familiarizarea cu folosirea unor pattern-uri des întâlnite în design-ul atât al aplicațiilor, cât și al API-urilor - Singleton,

Mai mult

Laborator 3

Laborator 3 Laborator 3 Programare III săptămâna 8-12.10.2018 OBIECTIVE: - Folosirea modificatorilor unei clase (public, abstract, final) - Folosirea modificatorilor de acces în declaraţiile membrilor unei clase Noţiuni:

Mai mult

Laborator 4: Continuare Programare Orientată pe Obiecte Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 29 octombrie 2011

Laborator 4: Continuare Programare Orientată pe Obiecte Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 29 octombrie 2011 Laborator 4: Continuare Programare Orientată pe Obiecte Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 29 octombrie 2011 I. NOŢIUNI TEORETICE A. Suprascrierea metodelor O clasă derivată

Mai mult

Paradigme de Programare

Paradigme de Programare Paradigme de Programare Conf. dr. ing. Andrei Olaru andrei.olaru@cs.pub.ro cs@andreiolaru.ro Departamentul de Calculatoare 2019 9 : 1 / 38 Cursul 9 Concluzie Paradigma Funcțională 9 : 2 / 38 Cursul 9:

Mai mult

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja far Mohammed ibn Musâ al- Khowârizmî în cartea sa intitulată

Mai mult

Slide 1

Slide 1 Programare orientată pe obiecte 1. Dezvoltarea aplicațiilor OO 2. Diagrame UML de clase și obiecte Proiectarea orientată pe obiecte 1. Descoperim clasele 2. Determinăm responsabilităţile fiecărei clase

Mai mult

Slide 1

Slide 1 Introducere 20 Februarie 2012 Adrian Iftene adiftene@info.uaic.ro Echipa Conţinutul cursului Laboratoarele Proiectul Examenul Notarea Protocolul de comunicare Bibliografie Cursul: Adrian Iftene adiftene@infoiasi.ro

Mai mult

Curs 10

Curs 10 Ingineria Programării Design Patterns Modele de proiectare Curs Ovidiu Gheorghieş, ogh@infoiasi.ro Adriana Gheorghieş, adrianaa@infoiasi.ro Model View Controller Cel mai popular model de proiectare Dezvoltat

Mai mult

Ingineria Sistemelor de Programare

Ingineria Sistemelor de Programare Ingineria Sistemelor de Programare Agregarea si Mostenirea mihai.hulea@aut.utcluj.ro 2019 Compozitia si agregarea Relatia dintre obiecte raspunde afirmativ la intrebarea are un/are o Exemple: Telefonul

Mai mult

PowerPoint Presentation

PowerPoint Presentation Auto Id Middleware Preocupă-te de nevoile tale de business, de tehnologie ne ocupăm noi! Vrei să integrezi RFID și alte echipamente Auto Id în procesele tale de business? Concentrează-te pe logica de aplicație

Mai mult

CL2009R0976RO bi_cp 1..1

CL2009R0976RO bi_cp 1..1 2009R0976 RO 31.12.2014 002.001 1 Acest document reprezintă un instrument de documentare, iar instituţiile nu îşi asumă responsabilitatea pentru conţinutul său. B REGULAMENTUL (CE) NR. 976/2009 AL COMISIEI

Mai mult

Microsoft Word - Curs_08.doc

Microsoft Word - Curs_08.doc Partea a II-a. Proiectarea bazelor de date Capitolul 6. Tehnici de proiectare şi modele În capitolele precedente s-au analizat modele de baze de date şi limbaje, presupunând în cele mai multe cazuri că

Mai mult

proiectarea bazelor de date

proiectarea bazelor de date Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie şi Dezvoltare Durabilă Departamentul de Automatică, Energie, Mediu şi Dezvoltare Durabilă Proiectarea bazelor de date Lect.dr. Adrian

Mai mult

Capitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursu

Capitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursu Capitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursul precedent am prezentat modelul de spaţiu vectorial

Mai mult

PPSD

PPSD Modele paralele SPMD Modelul SPMD Comunicarea prin mesaje Message Passing Interface Modelul SPMD Modelul SPMD (Single Program Multiple Data) Acesta este un model adecvat calculatoarelor MIMD In cele ce

Mai mult

Analiză de flux de date 29 octombrie 2012

Analiză de flux de date 29 octombrie 2012 Analiză de flux de date 29 octombrie 2012 Analiză statică: definiţie O analiză a codului sursă (fără a executa programul), cu scopul de a determina proprietăţi ale programului sursă. (in principal corectitudinea,

Mai mult

Retele Petri si Aplicatii

Retele Petri si Aplicatii Reţele Petri şi Aplicaţii Curs 4 RPA (2019) Curs 4 1 / 45 Cuprins 1 Analiza structurală a reţelelor Petri Sifoane Capcane Proprietăţi 2 Modelarea fluxurilor de lucru: reţele workflow Reţele workflow 3

Mai mult

Microsoft Word _POO_Lab_1_Modificari_v01.htm

Microsoft Word _POO_Lab_1_Modificari_v01.htm Laborator POO - 00 (draft) 00-00 / 0//00 00_POO_Lab Modificari_v0.htm POO Laborator Modificarea programelor Java. Studiu de caz: programul Salut.java. Varianta care utilizeaza un argument al programului

Mai mult

Microsoft PowerPoint - TDRC_II-10-TCP.ppt

Microsoft PowerPoint - TDRC_II-10-TCP.ppt TCP & UDP Curs 10 TCP si UDP Transmission Control Protocol Connection oriented RFC 793 User Datagram Protocol (UDP) Connectionless RFC 768 Corneliu Zaharia 2 Corneliu Zaharia Servicii TCP Comunicaţie sigură

Mai mult

Analiză statică Analiza fluxului de date 23 octombrie 2014

Analiză statică Analiza fluxului de date 23 octombrie 2014 Analiză statică Analiza fluxului de date 23 octombrie 2014 Analiză statică: definiție O analiză a codului sursă (fără a executa programul), cu scopul de a determina proprietăți ale programului sursă. (in

Mai mult

INFORMATICĂ ŞI MARKETING

INFORMATICĂ ŞI MARKETING CUPRINS CAPITOLUL 1... 7 UTILIZAREA CONCEPTELOR ŞI INSTRUMENTELOR TEHNOLOGIILOR INFORMAŢIEI ŞI COMUNICAŢIEI ÎN ACTIVITATEA DE MARKETING... 7 1.1 IMPACTUL TEHNOLOGIILOR INFORMAŢIEI ŞI COMUNICAŢIEI ASUPRA

Mai mult

Capitole Speciale de Informatică Curs 1: Extragerea informaţiilor. Modelul boolean şi modelul boolean extins 27 septembrie 2018 Extragerea informaţiil

Capitole Speciale de Informatică Curs 1: Extragerea informaţiilor. Modelul boolean şi modelul boolean extins 27 septembrie 2018 Extragerea informaţiil Capitole Speciale de Informatică Curs 1: Extragerea informaţiilor. Modelul boolean şi modelul boolean extins 27 septembrie 2018 Extragerea informaţiilor (engl. Information Retrieval, IR) constă în găsirea

Mai mult

GHERCĂ MAGDA CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: GHERCĂ G

GHERCĂ MAGDA CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: GHERCĂ G CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: GHERCĂ G MAGDA COLEGIUL NAŢIONAL ROMAN-VODĂ ROMAN PROIECTUL UNITĂŢII DE ÎNVĂŢARE

Mai mult

PowerPoint Presentation

PowerPoint Presentation Circuite Integrate Digitale Conf. Monica Dascălu Curs Seminar Laborator notă separată Notare: 40% seminar 20% teme // + TEMA SUPLIMENTARA 40% examen 2014 CID - curs 1 2 Bibliografie Note de curs Cursul

Mai mult

Introducere

Introducere Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic AEACD 17. Segmentarea imaginilor: Region-based segmentation. Graph Theory In Image Segmentation Region-based segmentation

Mai mult

Gestionarea I/E

Gestionarea I/E Gestionarea I/E Apelurile de sistem I/O in Linux si apelurile API de I/E pentru Windows Herea Cristian 431 A 1. Linux Apeluri de sistem (system calls) Sistemele de operare au un nivel suplimentar de interfete

Mai mult

Aggregating Data

Aggregating Data Subinterogări. Subinterogări multi-row. Formatarea rezultatelor unei interogări Obiective Prin parcurgerea acestui referat studentul va dobândi cunoştinţele necesare: identificării funcţiilor grup disponibile;

Mai mult

Slide 1

Slide 1 Recapitulare IP 10 Octombrie 2011 Adrian Iftene adiftene@info.uaic.ro Recapitulare noțiuni pe care ne vom baza Definiție Modele de dezvoltare Etapele dezvoltării proiectelor Ingineria cerințelor Diagrame

Mai mult

Tablouri (continuare)

Tablouri (continuare) Vector Dinamic DYNAMIC ARRAY Observații 1. Un tablou este static: nu pot fi inserate sau şterse celule. 2. Vector - tablou unidimensional 3. Reprezentarea vectorilor este secvenţială, adică elementele

Mai mult

A TANTÁRGY ADATLAPJA

A TANTÁRGY ADATLAPJA FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai din Cluj-Napoca superior 1.2 Facultatea Facultatea de Matematică şi Infrormatică 1.3 Departamentul Departamentul

Mai mult

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de dezvoltare bazată pe un microcontroller ATmega 328P pe 8 biți cu 32kB memorie flash. Placa de dezvoltare conține:

Mai mult

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai din Cluj-Napoca superior 1.2 Facultatea Facultatea de

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai din Cluj-Napoca superior 1.2 Facultatea Facultatea de FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai din Cluj-Napoca superior 1.2 Facultatea Facultatea de Matematică şi Infrormatică 1.3 Departamentul Departamentul

Mai mult

Paradigme de programare

Paradigme de programare Curs 4 Transparență referențială. Legare statică / dinamică. Modelul contextual de evaluare. Transparență referențială Cuprins Efecte laterale Transparență referențială 2 Efecte laterale Efecte laterale

Mai mult

MODUL RETAIL

MODUL RETAIL Modulul RETAIL Cu ajutorul acestui modul se pot face vânzări prin casa de marcat la posturi de lucru, fără ca acestea să fie conectate la baza de date principală. Aceasta presupune că operatorii care lucrează

Mai mult

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine numărul de operaţii efectuate de către un algoritm care determină

Mai mult

Ghid privind raportările referitoare la decontarea internalizată conform articolului 9 din regulamentul privind depozitarii centrali de titluri de val

Ghid privind raportările referitoare la decontarea internalizată conform articolului 9 din regulamentul privind depozitarii centrali de titluri de val Ghid privind raportările referitoare la decontarea internalizată conform articolului 9 din regulamentul privind depozitarii centrali de titluri de valoare (CSDR) 30/04/2019 ESMA70-151-367 RO Ghid privind

Mai mult

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai Cluj-Napoca superior 1.2 Facultatea Facultatea de Mate

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai Cluj-Napoca superior 1.2 Facultatea Facultatea de Mate FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai Cluj-Napoca superior 1.2 Facultatea Facultatea de Matematică şi Informatică 1.3 Departamentul Departamentul

Mai mult

Microsoft Word - Algoritmi genetici.docx

Microsoft Word - Algoritmi genetici.docx 1.1 Generalităţi Algoritmii genetici fac parte din categoria algoritmilor de calcul evoluționist și sunt inspirați de teoria lui Darwin asupra evoluției. Idea calculului evoluționist a fost introdusă în

Mai mult

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx SDA (PC2) Curs 9 Liste / Grafuri / Arbori Iulian Năstac Lista dublu înlănțuită Recapitulare Într-o astfel de listă fiecare nod conţine doi pointeri: unul spre nodul următor şi unul spre nodul precedent.

Mai mult

Kein Folientitel

Kein Folientitel S.C East Electric S.R.L distribuitor Balluff în Romania. Balluff producător de senzori, şi traductoare, cu peste 40 ani de experienţă Firma a fost creată în 1921, experienţa în domeniul senzorilor începând

Mai mult

Definiţie: modele analitice care asigură evaluarea unor caracteristici de calitate alese, bazându-se pe date din măsurători ale proiectelor software.

Definiţie: modele analitice care asigură evaluarea unor caracteristici de calitate alese, bazându-se pe date din măsurători ale proiectelor software. Definiţie: modele analitice care asigură evaluarea unor caracteristici de calitate alese, bazându-se pe date din măsurători ale proiectelor software. Oferă, în timp, o predicţie corectă a calităţii software

Mai mult

NORMĂ pentru aplicarea Ghidului ESMA privind raportările referitoare la decontarea internalizată conform articolului 9 din regulamentul privind depozi

NORMĂ pentru aplicarea Ghidului ESMA privind raportările referitoare la decontarea internalizată conform articolului 9 din regulamentul privind depozi NORMĂ pentru aplicarea Ghidului ESMA privind raportările referitoare la decontarea internalizată conform articolului 9 din regulamentul privind depozitarii centrali de titluri de valoare (CSDR) În temeiul

Mai mult

Slide 1

Slide 1 Gruparea (si clasificarea) fuzzy a datelor Introducere Aspecte teoretice generale Gruparea tranșantă Metode fuzzy FCM SC Utilizarea metodelor fuzzy în matlab. Exemplificare Introducere (1) Obiectivul grupării

Mai mult

Caraivan George-Alexandru Grupa 431A Interfața driver-kernel la Linux Introducere Deși pentru unii dintre noi acest lucru poate fi o supriză, cei mai

Caraivan George-Alexandru Grupa 431A Interfața driver-kernel la Linux Introducere Deși pentru unii dintre noi acest lucru poate fi o supriză, cei mai Caraivan George-Alexandru Grupa 431A Interfața driver-kernel la Linux Introducere Deși pentru unii dintre noi acest lucru poate fi o supriză, cei mai specializați dintre noi în domeniul calculatoarelor

Mai mult

Laborator 10 - Paradigme de Programare Corutine - suport nativ pentru paralelism în Kotlin Înainte de a trece la realizarea unei aplicații utilizând c

Laborator 10 - Paradigme de Programare Corutine - suport nativ pentru paralelism în Kotlin Înainte de a trece la realizarea unei aplicații utilizând c Laborator 10 - Paradigme de Programare Corutine - suport nativ pentru paralelism în Kotlin Înainte de a trece la realizarea unei aplicații utilizând corutinele în Kotlin este bine să se realizeze următorii

Mai mult

Slide 1

Slide 1 Cursul 4 11 Martie 2019 adiftene@info.uaic.ro 1 Din Cursurile trecute Diagrame UML - Exemple C4 Model Forward & Reverse Engineering 2 Diagrame Diagrame UML Diagrame Use Case Diagrame de Clase 3 4 5 6 Diagrama

Mai mult

LABORATOR I

LABORATOR I 1. Scopul lucrării Lucrare de laborator nr. 10 Modelarea maşinilor cu stări finite în VHDL Însuşirea principiilor şi tehnicilor de modelare a circuitelor secvenţiale de tip maşină cu stări finite în VHDL.

Mai mult

Biomedical Wi-Fi data transmissons

Biomedical Wi-Fi  data transmissons Ce este WireShark? Introducere in WireShark (indrumar de laborator) Wireshark este un sniffer de pachete gratuit, care captureaza pachetele care sunt vehiculate pe o anumita interfata de retea. Aceasta

Mai mult

AUTORITATEA NAȚIONALĂ DE REGLEMENTARE ÎN DOMENIUL ENERGIEI Nota de prezentare a Proiectului de Normă Tehnică privind Cerinţele tehnice de racordare la

AUTORITATEA NAȚIONALĂ DE REGLEMENTARE ÎN DOMENIUL ENERGIEI Nota de prezentare a Proiectului de Normă Tehnică privind Cerinţele tehnice de racordare la AUTORITATEA NAȚIONALĂ DE REGLEMENTARE ÎN DOMENIUL ENERGIEI Nota de prezentare a Proiectului de Normă Tehnică privind Cerinţele tehnice de racordare la reţelele electrice de interes public pentru module

Mai mult

Microsoft Word - lab-fr_3

Microsoft Word - lab-fr_3 LUCRAREA 3 Urmarirea conexiunilor (Partea 2) 1 Mecanismul de stare a conexiunii (continuare) 1.1 Conexiuni UDP Conexiunile UDP sunt în sine conexiuni fara stare. Sunt cateva motive pentru care ele sunt

Mai mult

ALGORITHMICS

ALGORITHMICS Curs 7: Gruparea datelor (II) Data mining - Curs 7 1 Structura Metode bazate pe densitate DBSCAN DENCLUE Metode probabiliste EM - Expectation Maximization Data mining - Curs 7 2 Metode bazate pe densitate

Mai mult

Prezentarea calculatorului

Prezentarea calculatorului Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie şi Dezvoltare Durabilă Departamentul de Automatică, Energie, Mediu şi Dezvoltare Durabilă Baze de date Lect.dr. Adrian Runceanu Curs

Mai mult

Microsoft Word - grile.doc

Microsoft Word - grile.doc SISTEME INFORMATICE ÎN ADMINISTRAŢIA PUBLICĂ TESTE GRILĂ PROPUSE PENTRU REZOLVARE 1. Pentru stabilirea corectă a resurselor financiare disponibile la un moment dat necesare susţinerii unor procese investiţionale

Mai mult

Document2

Document2 O NOUA TEORIE A STABILITATII ASCHIERII, CARE SE BAZEAZA PE DINAMICA HAOTICA A PROCESULUI, PRECUM SI APLICAREA ACESTEIA LA CONTROLUL INTELIGENT AL STABILITATII Obiectivele proiectului Ideile cheie care

Mai mult

Baze de date Anul 2 Teorie Examen 1. Diagrama entitate/relatie si diagrama conceptuala (curs 2-5) 2. Arbore algebric si expresie algebrica (curs 6-10)

Baze de date Anul 2 Teorie Examen 1. Diagrama entitate/relatie si diagrama conceptuala (curs 2-5) 2. Arbore algebric si expresie algebrica (curs 6-10) Baze de date Anul 2 Teorie Examen 1. Diagrama entitate/relatie si diagrama conceptuala (curs 2-5) 2. Arbore algebric si expresie algebrica (curs 6-10) 3. Forme normale (curs 6-10) 4. Notiuni teoretice

Mai mult

1

1 1. Funcţionarea echipamentelor într-o reţea locală Placa de reţea (NIC-Network Interface Card) este o placă cu circuite integrate poate fi preinstalată în calculator sau se montează într-un slot de extensie

Mai mult

Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011

Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011 Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011 I. NOŢIUNI TEORETICE A. Instrucţiuni condiţionale 1. Intrucţiunea

Mai mult

carteInvataturaEd_2.0_lectia5.pdf

carteInvataturaEd_2.0_lectia5.pdf Lect ia3 Diagrame Veitch-Karnaugh 5.1 Noţiuni teoretice Diagramele Veich-Karnaugh (V-K) sunt o modalitate de reprezentare grafică a funcţiilor logice. Pentru o funct ie de N variabile, diagrama corespunz

Mai mult

tehnologii web

tehnologii web Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Tehnologii Web Lector univ. dr. Adrian Runceanu 1 Curs 7 Limbajul PHP (partea II) 2

Mai mult

Microsoft Word - 2 Filtre neliniare.doc

Microsoft Word - 2 Filtre neliniare.doc 20 Capitolul 2 - Filtre neliniare 21 CAPITOLUL 2 FILTRE NELINIARE 2-1. PRELIMINARII Răspunsul la impuls determină capacitatea filtrului de a elimina zgomotul de impulsuri. Un filtru cu răspunsul la impuls

Mai mult

CURS

CURS Capitolul Cuvinte-cheie SOAP, XML, REST, ASP.NET, client web, PHP, NuSOAP IH.12.1. Introducere Ce înseamnă serviciile web? Ele înseamnă invocarea la distanță a metodelor, prin web; limbaje și platforme

Mai mult

Matrici și vectori în VBA În VBA, o matrice este un grup de variabile de același tip. De ce ar trebui să utilizați o matrice? Presupunem că ați vrut s

Matrici și vectori în VBA În VBA, o matrice este un grup de variabile de același tip. De ce ar trebui să utilizați o matrice? Presupunem că ați vrut s Matrici și vectori în VBA În VBA, o matrice este un grup de variabile de același tip. De ce ar trebui să utilizați o matrice? Presupunem că ați vrut să stocați douăzeci de nume de angajați în variabile

Mai mult

Microsoft Word - Curs_07.doc

Microsoft Word - Curs_07.doc 5.3 Modificarea datelor în SQL Pentru modificarea conţinutului unei baze de date SQL pune la dispoziţie instrucţiunile insert, delete şi update. 5.3.1 Inserări în baza de date Sintaxa instrucţiunii insert

Mai mult

PowerPoint Presentation

PowerPoint Presentation Forme Normale 4 Redundanţa Redundanţa este cauza principală a majorităţii problemelor legate de structura bazelor de date relaţionale: spaţiu utilizat, anomalii de inserare / stergere / actualizare. Redundanţa

Mai mult

PowerPoint Presentation

PowerPoint Presentation Proiectarea bazelor de date 5 Proiectarea bazelor de date Proiectare conceptuală (ex. diagrama de clase) Identificarea entităţilor şi a relaţiilor dintre ele Proiectarea logică Transformarea modelului

Mai mult

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici Operatii pe biti Operatorul conditional Operatori Logici

Mai mult

Chertif Ionuț - Andrei Prietenul meu, calculatorul CLASA a V - a, 1 ora pe săptămână ARGUMENT Transformările societăţii româneşti din ultimii ani, dez

Chertif Ionuț - Andrei Prietenul meu, calculatorul CLASA a V - a, 1 ora pe săptămână ARGUMENT Transformările societăţii româneşti din ultimii ani, dez Prietenul meu, ul CLASA a V - a, ora pe săptămână ARGUMENT Transformările societăţii româneşti din ultimii ani, dezvoltarea şi răspândirea informaticii, impun o pregătire diversificată a tinerilor în acest

Mai mult

PHP (II)

PHP (II) PHP şi MySQL Bazele de date sunt colecţii de date, aranjate într-o anumită formă Operaţii : - Crearea bazei de date; - Conectarea la baza de date; - Inserarea datelor in baza de date; - Ștergerea datelor

Mai mult

2 BAZE TEORETICE ALE REȚELELOR DE CALCULATOARE CAPITOLUL 2 BAZE TEORETICE ALE REŢELELOR DE CALCULATOARE 2.1. Necesitatea standardizării (referenţierii

2 BAZE TEORETICE ALE REȚELELOR DE CALCULATOARE CAPITOLUL 2 BAZE TEORETICE ALE REŢELELOR DE CALCULATOARE 2.1. Necesitatea standardizării (referenţierii CAPITOLUL 2 BAZE TEORETICE ALE REŢELELOR DE CALCULATOARE 2.1. Necesitatea standardizării (referenţierii) reţelelor de calculatoare După cum am precizat în capitolul anterior, din punct de vedere fizic

Mai mult

Modulul 1 M1-2.3 Protocoale şi servicii în reţea În acest capitol ne propunem să abordăm următoarele: Protocoalele şi aplicaţiile folosite în reţelele

Modulul 1 M1-2.3 Protocoale şi servicii în reţea În acest capitol ne propunem să abordăm următoarele: Protocoalele şi aplicaţiile folosite în reţelele M1-2.3 Protocoale şi servicii în reţea În acest capitol ne propunem să abordăm următoarele: Protocoalele şi aplicaţiile folosite în reţelele locale şi în Internet Porturile şi numerele de port M1-2.3.1.

Mai mult

Cuprins

Cuprins Cuprins 1. Introducere 2. Modele și limbaje pentru specificația sistemelor 3. Interfețe de comunicație 4. Periferice pentru sisteme dedicate 5. Microcontrolere 6. Procesoare dedicate 7. Dezvoltarea programelor

Mai mult

SUBPROGRAME

SUBPROGRAME SUBPROGRAME Un subprogram este un ansamblu ce poate conţine tipuri de date, variabile şi instrucţiuni destinate unei anumite prelucrări (calcule, citiri, scrieri). Subprogramul poate fi executat doar dacă

Mai mult

Microsoft PowerPoint - ARI_R_c9-10_IP_part2 [Compatibility Mode]

Microsoft PowerPoint - ARI_R_c9-10_IP_part2 [Compatibility Mode] 2.1.2.2.2 Divizarea în subreţele de dimensiuni variabile Divizarea în subreţele de dimensiuni variabile sau cu măşti de subreţea de lungime diferită, VLSM (variable length subnet masks) subreţelele obţinute

Mai mult

Microsoft Word - Curs_09.doc

Microsoft Word - Curs_09.doc Capitolul 7. Proiectarea conceptuală Scop: reprezentarea cerinţelor informale ale aplicaţiei în termenii descrierii complete şi formale dar independent de criteriul folosit pentru reprezentare în sistemul

Mai mult

E_d_Informatica_sp_SN_2014_bar_10_LRO

E_d_Informatica_sp_SN_2014_bar_10_LRO Examenul de bacalaureat naţional 2014 Proba E. d) Informatică Varianta 10 Toate subiectele sunt obligatorii. Se acordă 10 puncte din oficiu. Timpul de lucru efectiv este de 3 ore. În rezolvările cerute,

Mai mult

Modul Modbus ASCII SISTEME DE COMUNICATIE CURS 5 - Constantinescu Catalin Atunci cand se foloseste modul MODBUS ASCII fiecare octet din mesaj

Modul Modbus ASCII SISTEME DE COMUNICATIE CURS 5 - Constantinescu Catalin Atunci cand se foloseste modul MODBUS ASCII fiecare octet din mesaj 2.3.5.2 Modul Modbus ASCII Atunci cand se foloseste modul MODBUS ASCII fiecare octet din mesaj este trimis ca doua caractere ASCII (de exemplu, octetul 0x7A este transmis ca doua caractere 0x37 = 7, respectiv

Mai mult

Testare manuala: situatia in care o persoana initiaza fiecare test, interactioneaza cu el si interpreteaza, analizeaza si raporteaza rezultatele. Test

Testare manuala: situatia in care o persoana initiaza fiecare test, interactioneaza cu el si interpreteaza, analizeaza si raporteaza rezultatele. Test Testare manuala: situatia in care o persoana initiaza fiecare test, interactioneaza cu el si interpreteaza, analizeaza si raporteaza rezultatele. Testare automata: exista un mecanism pentru executia fara

Mai mult

Probleme proiect TP BITPERM Implementați un algoritm care citește de la intrarea standard două numere naturale și scrie la ieșirea standard da

Probleme proiect TP BITPERM Implementați un algoritm care citește de la intrarea standard două numere naturale și scrie la ieșirea standard da Probleme proiect TP 2016 1. BITPERM Implementați un algoritm care citește de la intrarea standard două numere naturale și scrie la ieșirea standard dacă reprezentarea binară a unuia dintre numere poate

Mai mult

Modelarea si Simularea Sistemelor de Calcul

Modelarea si Simularea Sistemelor de Calcul Modelarea şi Simularea Sistemelor de Calcul Generarea de numere aleatoare ( lab. 5) Numim variabilă aleatoare acea funcţie X : (Ω, δ, P) R, care în cazul mai multor experimente efectuate în condiţii identice

Mai mult

Fâciu N. Maria-Ema CASA CORPULUI DIDACTIC BRĂILA PROGRAM DE FORMARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: Fâciu N. M

Fâciu N. Maria-Ema CASA CORPULUI DIDACTIC BRĂILA PROGRAM DE FORMARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: Fâciu N. M CASA CORPULUI DIDACTIC BRĂILA PROGRAM DE FORMARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: PROIECTUL UNITĂŢII DE ÎNVĂŢARE ALGORITMI Notă: filmele didactice, dezbaterile, jocurile

Mai mult

programă şcolară pentru clasa a 11a, liceu

programă şcolară pentru clasa a 11a, liceu Anexă la OMECI nr. 5099 din 09.09.2009 MINISTERUL EDUCAŢIEI, CERCETĂRII ŞI INOVĂRII PROGRAME ŞCOLARE TEHNOLOGIA INFORMAŢIEI ŞI A COMUNICAŢIILOR (Sisteme de gestiune a bazelor de date) CLASA A XII-A CICLUL

Mai mult

Utilizare Internet

Utilizare Internet Curs 14 2014/2015 1 Functionalitate La toate temele 1p din nota este obtinut de indeplinirea functionalitatii cerute. orice tehnologie, orice metoda, sa faca ceea ce trebuie Forma paginii prezinta importanta

Mai mult

PROIECT DIDACTIC DATE DE IDENTIFICARE Data: Școala : Școala Gimnazială Grigore Moisil Ploiești Clasa: a VI-a Profesor: Ilie Oana Magdalena Disciplina:

PROIECT DIDACTIC DATE DE IDENTIFICARE Data: Școala : Școala Gimnazială Grigore Moisil Ploiești Clasa: a VI-a Profesor: Ilie Oana Magdalena Disciplina: PROIECT DIDACTIC DATE DE IDENTIFICARE Data: Școala : Școala Gimnazială Grigore Moisil Ploiești Clasa: a VI-a Profesor: Ilie Oana Magdalena Disciplina: Informatică și T.I.C. Titlul lecției: Algoritmi și

Mai mult

LUCRAREA 8 PROGRAMAREA NELINIARĂ ÎN REZOLVAREA PROBLEMELOR DIN ENERGETICĂ. METODE DE ORDINUL Aspecte generale Programarea neliniară are o foart

LUCRAREA 8 PROGRAMAREA NELINIARĂ ÎN REZOLVAREA PROBLEMELOR DIN ENERGETICĂ. METODE DE ORDINUL Aspecte generale Programarea neliniară are o foart LUCRAREA 8 PROGRAMAREA NELINIARĂ ÎN REZOLVAREA PROBLEMELOR DIN ENERGETICĂ. METODE DE ORDINUL 0 8.. Aspecte generale Programarea neliniară are o foarte mare importanţă în rezolvarea problemelor de optimizări,

Mai mult

Microsoft Word - 4-Interfete paralele.doc

Microsoft Word - 4-Interfete paralele.doc 4. Cuprins modul 4.1. neprogramabile 4.2.Interfaţa paralelă programabilă 4.3.Protocoale de transfer 4.4.Programarea circuitului de interfaţă paralelă 4.5.Exemplu de implementare Cuprins Introducere După

Mai mult

PowerPoint-Präsentation

PowerPoint-Präsentation Universitatea Transilvania din Braşov Laboratorul de Vedere Artificială Robustă şi Control Sisteme cu MicroProcesoare Curs 2 Porturi de intrare/ieșire Gigel Măceșanu 1 Cuprins Programarea unui MC Porturi

Mai mult

Ingineria Sistemelor de Programare

Ingineria Sistemelor de Programare Ingineria Sistemelor de Programare Cuprins Fire de executie Concurrency API (java.util.concurrent) Executia concurenta Concurenta prin intermediul proceselor si a firelor de executie http://www.javamex.com/tutorials/threads/how_threads_work.shtml

Mai mult

Limbaje de Programare Curs 6 – Functii de intrare-iesire

Limbaje de Programare   Curs 6 – Functii de intrare-iesire Limbaje de Programare Curs 6 Funcţii de intrare-ieşire Dr. Casandra Holotescu Universitatea Politehnica Timişoara Ce discutăm azi... 1 Citire formatată 2 Citirea şirurilor de caractere 3 Citirea unor linii

Mai mult

PLAN DE ÎNVĂŢĂMÂNT

PLAN DE ÎNVĂŢĂMÂNT PLAN DE ÎNVĂŢĂMÂNT Valabil începând cu anul universitar 2013-2014 UNIVERSITATEA LUCIAN BLAGA DIN SBIU FACULTATEA DE ŞTIINŢE Programul de studii universitare de licenţă: INFORMATICĂ Domeniul fundamental:

Mai mult

PT Curs 6 [Compatibility Mode]

PT Curs 6 [Compatibility Mode] PREȚURI DE TRANSFER Curs 6 Lect.univ.dr. Victor-Octavian Müller CAPITOLUL 6: ALEGEREA METODEI CELEI MAI ADECVATE PT. STABILIREA PREȚURILOR DE TRANSFER Lect.univ.dr. Victor-Octavian Müller 1 Introducere

Mai mult