Programare Orientata spre Obiecte (Object-Oriented Programming)

Size: px
Start display at page:

Download "Programare Orientata spre Obiecte (Object-Oriented Programming)"

Transcription

1 UPB - Facultatea ETTI - Curs POO - an II - seria E Programare Orientata spre Obiecte (Object-Oriented Programming) a.k.a. Programare Obiect-Orientata Titular curs: Eduard-Cristian Popovici Suport curs: UPB - ETTI - Curs POO - an II - seria E

2 Urmeaza 1.3. Caracteristicile si principiile abordarii OO Orientarea spre Obiecte (OO) Orientarea spre modelarea (abstractizarea) informatica a realitatii entitati bazate pe responsabilitati (roluri) incapsulare duala (a structurilor de date si de comportament) mentinerea si ascunderea unei stari interne colaborare intre entitati (comunicare prin mesaje, interactiune sociala) definirea unor interfete contractuale, componente black-box, etc. UPB - ETTI - Curs POO - an II - seria E 2

3 Structura cursului 1. Introducere in abordarea orientata spre obiecte (OO) 1.3. Caracteristicile si principiile abordarii OO UPB - ETTI - Curs POO - an II - seria E 3

4 Modelarea si abstractizarea OO Programul (sistemul software) orientat spre obiecte reprezinta un model informatic al unei parti din lumea reala elementele care compun modelul sunt construite prin analogie cu entitati care apar in lumea reala (obiecte reale, concepte) studentx studenty studentz sunt numite obiecte software studenta studentb trebuie reprezentate in limbajul de programare Care sunt constructiile software care permit reprezentarea obiectelor software (similare) in limbaje de programare? UPB - ETTI - Curs POO - an II - seria E 4

5 Clasificarea OO entitati bazate pe responsabilitati (roluri) Ca si in cazul obiectelor si conceptelor din lumea reala obiectele software pot fi categorisite (clasificate) categoriile (numite clase de obiecte) corespunzand diferitelor responsabilitati pe care le au sau diferitelor roluri pe care le joaca entitatile din lumea reala din care sunt construite prin analogie obiectele software Clasele sunt constructiile software care reprezinta obiectele software care au responsabilitati / roluri similare UPB - ETTI - Curs POO - an II - seria E 5

6 Clasificarea OO abstractizarea multimilor (AM) de obiecte Clasa (obiectelor software) este o constructie software complexa asemanatoare structurilor de date din C (struct) obiecte software evoluata din ADT (concretizare a ADT) si astfel tip de date cu incapsulare duala care descrie intr-o forma abstracta toate obiectele software de un tip particular (care au responsabilitati / roluri similare) studentx studenty studenta studentb AM Student (AOO) Clasa (categorie, tip) UPB - ETTI - Curs POO - an II - seria E 6

7 Clasificarea OO incapsularea duala cu ascunderea detaliilor Clasa fiind o constructie software evoluata din ADT realizeaza o incapsulare cu ascundere a detaliilor duala a informatiilor (datelor) regrupand elementele de date numite atribute sau variabile membru implicit CU ascunderea detaliilor (datelor, informatiilor) a comportamentului regruparea elementelor de comportament numite operatii sau functii membru implicit CU ascunderea detaliilor (implementarii) «transmite» obiectelor aceasta incapsulare cu ascundere a detaliilor duala! UPB - ETTI - Curs POO - an II - seria E 7

8 Incapsularea duala cu ascunderea detaliilor Incapsularea oferita de clase (si obiecte) este o forma de incapsulare duala INCAPSULARE DUALA (INFORMATII SI COMPORTAMENT) Clasa (obiect) atribute (variabile interne ascunse) semnaturi operatii comportament (implementare operatii) asociat atributelor Interfata (setul de semnaturi ale operatiilor) ideal este publica, vizibila, accesibila Reprezentarea datelor si implementarea (setul de atribute si setul de implementari ale operatiilor) ideal sunt private, ascunse, inaccesibile UPB - ETTI - Curs POO - an II - seria E 8

9 Incapsularea duala cu ascunderea detaliilor Incapsularea OO oferita de clase si obiecte inseamna ascunderea detaliilor interne reprezentarea datelor (set de atribute) si implementarea (set de coduri ale operatiilor) in spatele unei interfete publice (set de semnaturi ale operatiilor) Exemplu in Java UPB - ETTI - Curs POO - an II - seria E 9

10 Incapsularea duala cu ascunderea detaliilor Exemplu in Java UPB - ETTI - Curs POO - an II - seria E 10

11 Clasificarea OO incapsularea duala cu ascunderea detaliilor Obiectele si conceptele sunt categorisite / clasificate atat in lumea reala cat si in cea informatica (software) pe baza caracteristicilor esentiale pe care le au (rezultate in urma abstractizarilor) atribute elemente de date, variabile interne care caracterizeaza obiectele studentx Obiect nume= Xulescu Atribut operatii elemente de comportament, proceduri care pot fi efectuate asupra atributelor Clasele reprezinta obiecte software care au caracteristici esentiale (atribute si operatii) similare UPB - ETTI - Curs POO - an II - seria E 11

12 Mentinerea si ascunderea unei stari interne Ansamblul valorilor atributelor unui obiect la un moment dat reprezinta starea interna obiectului Atributele studentx note = {7,9,8,9} Obiect Starea interna la un moment dat sunt astfel variabilele de stare ale obiectului sunt prin natura lor private, ascunse, inaccesibile si dau astfel starii obiectelor calitatea de a fi privata, ascunsa, inaccesibila direct ea putand fi obtinuta din exterior doar indirect (controlat) prin intermediul apelurilor la operatii UPB - ETTI - Curs POO - an II - seria E 12

13 Mentinerea si ascunderea unei stari interne Starea unui obiect poate varia in timp ca urmare a comportamentului care este rezultatul executiei operatiilor prin apeluri venite de la alte obiecte studentx note = {7,9,8,9} Starea interna la un moment dat (initial) timp UPB - ETTI - Curs POO - an II - seria E 13

14 Mentinerea si ascunderea unei stari interne Starea unui obiect poate varia in timp ca urmare a comportamentului care este rezultatul executiei operatiilor prin apeluri venite de la alte obiecte studentx note = {7,9,8,9} studentx Starea interna la un moment dat (initial) addnota(8) addnota() Apel venit de la alt obiect Executia operatiei timp UPB - ETTI - Curs POO - an II - seria E 14

15 Mentinerea si ascunderea unei stari interne Starea unui obiect poate varia in timp ca urmare a comportamentului care este rezultatul executiei operatiilor prin apeluri venite de la alte obiecte studentx note = {7,9,8,9} studentx studentx note = {7,9,8,9,8} Starea interna la un moment dat (initial) addnota(8) addnota() Apel venit de la alt obiect Executia operatiei Starea interna dupa executia operatiei Mentinerea si ascunderea unei stari interne sunt calitati noi ale programelor introduse de orientarea spre obiecte UPB - ETTI - Curs POO - an II - seria E 15

16 Colaborarea intre entitati comunicarea prin mesaje In lumea reala sarcinile sunt realizate in colaborare intre entitati diverse Abordarile actuale OOP programarea orientata spre obiecte (derivata din conceptul ADT) CBD dezvoltarea bazata pe componente (black box) SOA orientarea spre servicii a arhitecturilor imita modelele sociale, colaborative UPB - ETTI - Curs POO - an II - seria E 16

17 Colaborarea intre entitati comunicarea prin mesaje Comportamentul si operatiile (functiile, procedurile) in abordarea OO se reprezinta prin forme de colaborare (comunicare, interactiune) intre obiectele ce compun programul (sistemul software) Decuplare intre obiecte Obiect utilizator Referinţă Legătură Mesaj Interacţiune a obiectelor Comunicaţie între obiecte Operaţie Declanşare (executie) Obiect tinta comportament global al sistemului (scenarii = secvenţe de mesaje = colaborări între obiecte) Colaborare între obiecte UPB - ETTI - Curs POO - an II - seria E 17

18 Colaborarea intre entitati comunicarea prin mesaje Operatiile (functiile, procedurile) in abordarea OO sunt unitati de comunicare (interactiune) numite mesaje Decuplare intre obiecte Obiect utilizator Referinţă Legătură Mesaj Interacţiune a obiectelor Comunicaţie între obiecte Operaţie Declanşare (executie) Obiect tinta comportament global al sistemului (scenarii = secvenţe de mesaje = colaborări între obiecte) Colaborare între obiecte UPB - ETTI - Curs POO - an II - seria E 18

19 Abordarea orientata spre obiecte a dezvoltarii programelor Constructia unui program de calcul (sistem software) este o secventa de iteratii de tip divizare-reunire, fiind necesare: descompunerea (analiza) pentru a intelege problema si a putea formula o conceptie a solutiei compunerea (sinteza) pentru a construi solutia (a materializa, a realiza efectiv conceptia) Specificatii Produs Analiză (funcţională / OO) Descompunere (funcţională / OO) Construcţie a componentelor Compunere (integrare) UPB - ETTI - Curs POO - an II - seria E 19

20 Abordarea orientata spre obiecte a dezvoltarii programelor Abordarea orientata spre obiecte (OO) propune descompunerea bazată pe responsabilitati si delegare de responsabilitati (nu doar functionala) integrarea a ceea ce este (structural) şi ceea ce face (comportamental) sistemul (nu doar a ceea ce face) Cuplajul intre obiecte este obtinut prin trimiterea de mesaje (apelurile de operatii) si astfel dinamic si slab Actionare Buton Aprindere Bec Deplasare Lift Cabină Deschidere Uşă UPB - ETTI - Curs POO - an II - seria E 20

21 Abordarea orientata spre obiecte a dezvoltarii programelor Modelul colaborativ OO in general operatiile sunt mesaje schimbate intre obiecte (suportul colaborarii) g1 g2 u1 u2 u3 o2 : Clasa2 f1 f2 v1 v2 o3 : Clasa3 f3 o1 : Clasa1 h1 h2 w1 w2 w3 UPB - ETTI - Curs POO - an II - seria E 21

22 Abordarea orientata spre obiecte a dezvoltarii programelor Modelul colaborativ OO in Java obiectele fiind create dinamic sunt accesate prin referinte g1 g2 u1 u2 u3 Obiectul propriu-zis (de tip Clasa2) Clasa2 f1 f2 f3 o1 Referinta catre obiect v1 v2 o2 Clasa1 Obiectul propriu-zis (de tip Clasa1) o3 h1 h2 Clasa3 Obiectul propriu-zis (de tip Clasa3) w1 w2 w3 UPB - ETTI - Curs POO - an II - seria E 22

23 Abordarea orientata spre obiecte a dezvoltarii programelor Exemple de cod Java System.out.println(..); System = clasa Java din pachetul java.lang (importat implicit) out = atribut public static al clasei System (variabila partajata de toate obiectele clasei System) d.p.d.v. structural = referinta catre obiect din clasa PrintStream d.p.d.v. al clasificarii println(..) = metoda a obiectelor clasei PrintStream UPB - ETTI - Curs POO - an II - seria E 23

24 Abordarea orientata spre obiecte a dezvoltarii programelor Exemple de cod Java System.out.println(..); // clasa Java din pachetul java.lang public class System { // atribut public static al clasei System // obiect din clasa PrintStream public static PrintStream out; exit() Clasa utilitara care incapsuleaza facilitatile portabile ale sistemelor de operare (apeluri sistem cum e exit(), console I/O) out } //.. restul codului clasei System in gc() System UPB - ETTI - Curs POO - an II - seria E 24

25 Abordarea orientata spre obiecte a dezvoltarii programelor Exemple de cod Java System.out.println(..); // clasa Java din pachetul java.io public class PrintStream { } // metoda a obiectelor clasei PrintStream public void println(..) { } //.. codului metodei println() //.. restul codului clasei PrintStream print(..) println(..) Obiect al unei clase flux de iesire care incapsuleaza fluxul de date catre consola standard de iesire) PrintStream out UPB - ETTI - Curs POO - an II - seria E 25

26 Abordarea orientata spre obiecte a dezvoltarii programelor Exemple de cod Java print(..) System.out.println(i); println(..) PrintStream exit() out in gc() System read() System = clasa Java out = atribut public static al clasei System = obiect din clasa PrintStream println() = metoda a obiectelor clasei PrintStream InputStream UPB - ETTI - Curs POO - an II - seria E 26

27 Abordarea orientata spre obiecte a dezvoltarii programelor Exemple de cod Java int i = System.in.read(); System = clasa Java din pachetul java.lang (importat implicit) in = atribut public static al clasei System (variabila partajata de toate obiectele clasei System) d.p.d.v. structural = referinta catre obiect din clasa InputStream d.p.d.v. al clasificarii read() = metoda a obiectelor clasei InputStream UPB - ETTI - Curs POO - an II - seria E 27

28 Abordarea orientata spre obiecte a dezvoltarii programelor Exemple de cod Java int i = System.in.read(); // clasa Java din pachetul java.lang public class System { // atribut public static (partajat de obiecte) al clasei System // obiect din clasa InputStream public static InputStream in; exit() out } //.. restul codului clasei System in gc() System UPB - ETTI - Curs POO - an II - seria E 28

29 Abordarea orientata spre obiecte a dezvoltarii programelor Exemple de cod Java int i = System.in.read(); // clasa Java din pachetul java.io public class InputStream { } // metoda a obiectelor clasei InputStream public int read() { } //.. codului metodei read() //.. restul codului clasei InputStream read() Obiect al unei clase flux de intrare care incapsuleaza fluxul de date dinspre consola standard de intrare) in InputStream UPB - ETTI - Curs POO - an II - seria E 29

30 Abordarea orientata spre obiecte a dezvoltarii programelor Exemple de cod Java print(..) println(..) PrintStream int i = System.in.read(); exit() out in gc() System read() System = clasa Java in = atribut public static al clasei System = obiect din clasa InputStream read() = metoda a obiectelor clasei InputStream InputStream UPB - ETTI - Curs POO - an II - seria E 30

31 Abordarea orientata spre obiecte vs abordarea procedurala Abordarea OO Partajarea datelor si responsabilitatilor creeaza probleme Abordarea procedurala UPB - ETTI - Curs POO - an II - seria E 31

32 Abordarea orientata spre obiecte vs abordarea procedurala Separarea rolurilor / responsabilitatilor si protectia datelor Abordarea OO Partajarea datelor si responsabilitatilor creeaza probleme Abordarea procedurala UPB - ETTI - Curs POO - an II - seria E 32

33 Programarea ca rezolvare de probleme Abordarea orientata spre obiecte a dezvoltarii programelor Domeniu al realitatii 1.3. Caracteristicile si principiile abordarii OO Entitate reala Modelare / Abstractizare Incapsulare duala cu ascunderea datelor si a comportamentului (clasa de obiecte) Analiza problemei Proiectarea solutiei Implementarea (concretizarea) solutiei Transformare constructii teoretice in constructii ale unui limbaj Constructii ale unui limbaj de programare OO UPB - ETTI - Curs POO - an II - seria E 33

34 Orientarea spre obiecte (OO) este astfel o orientare spre modelarea / abstractizarea (A) informatica a realitatii (in obiecte si clase) entitati bazate pe responsabilitati / roluri (clasele si obiectele) incapsularea (E) duala a reprezentarii datelor si a comportamentului (in obiecte si clase) cu limitarea accesului mentinerea si ascunderea unei stari interne (in obiecte) colaborare sociala intre entitati / comunicare prin mesaje (intre obiecte) definirea unor interfete contractuale (ale claselor) / componente black-box In plus, OO utilizeaza si concepte mai avansate A P I E generalizarea claselor in superclase si specializarea claselor in subclase prin mostenire (I) polimorfismul (P) selectia dinamica a comportamentului operatiei bazata pe pozitia in ierarhia de clase a obiectului UPB - ETTI - Curs POO - an II - seria E 34

35 Orientarea spre obiecte (OO) inseamna modelarea / abstractizarea (A) realitatii entitati cu responsabilitati / roluri incapsularea (E) duala (date+comportament) cu limitarea accesului mentinerea si ascunderea unei stari interne colaborare intre obiecte / comunicare prin mesaje interfete contractuale / componente black-box Concepte avansate A P I E generalizarea si specializarea claselor in ierarhii prin mostenire (I) polimorfismul (P) selectia dinamica a comportamentului operatiei bazata pe pozitia in ierarhia de clase a obiectului UPB - ETTI - Curs POO - an II - seria E 35

36 Principii ale proiectarii orientate spre obiecte (OOD) Single Responsibility Principle (SRP) A class should have only one reason to change (a single responsibility). Open Close Principle (OCP) Software entities like classes, modules and functions should be open for extension but closed for modifications. Liskov s Substitution Principle (LSP) Derived types must be completely substitutable for their base types. Interface Segregation Principle (ISP) Clients should not be forced to depend upon interfaces that they don t use. Dependency Inversion Principle (DIP) High-level modules should not depend on low-level modules. Both should depend on abstractions. Abstractions should not depend on details. Details should depend on abstractions. UPB - ETTI - Curs POO - an II - seria E 36

37 Single Responsibility Principle (SRP) A class should have only one reason to change. Fiecare clasa trebuie sa indeplineasca exact o responsabilitate. O clasa continand N responsabilitati trebuie separata in N clase One or more work orders is associated with a specific customer The purchase order is associated with a vendor Each line item on the purchase order reflects a part purchased for that vendor A part in the inventory system may be available from several vendors Each vendor has its own cost for the part The inventory system manages its own "cost" of the part The inventory cost is adjusted using a moving average: (4*oldCost + newcost)/5 Parts are designated as taxable or not Each PO line item is purchased either for inventory or as a part needed for a work order When the vendor invoice comes in, additional charges, such as shipping, hazmat, etc., are added to the purchase order The purchase order is closed when the purchased items are reconciled with the invoice When the PO is closed, any parts that were purchased against a work order are automatically billed to the customer Additional charges on the PO are added to the charge slip Set de cerinte pentru un sistem de automatic customer billing Since line items on a purchase order may be associated with different work orders from different customers, the additional charges have to be fairly distributed The only rule that anyone can come up with regarding this distribution is to divvy up the charges based on the part cost in relation to the total purchase order cost Parts are billed on charge slips, which emulates the manual process being used One or more charge slips are associated with one work order Parts are assigned added to the PO by selecting the part out of inventory. Only parts for the vendor from which the parts will be purchased should be available for addition to the PO Customers get different discount rates and may or may not be taxable UPB - ETTI - Curs POO - an II - seria E 37

38 Single Responsibility Principle (SRP) A class should have only one reason to change (single responsibility) Caracteristicile si principiile abordarii OO Solutia: utilizand carduri CRC (Class, Responsibility, Collaboration) putem crea un model al sistemului bazat pe principiul SRP Card CRC UPB - ETTI - Curs POO - an II - seria E 38

39 Open Close Principle (OCP) Software entities like classes, modules and functions should be open for extension but closed for modifications. Trebuie permisa Clasele trebuie sa poata fi usor extinse adaugarea/eliminarea noi fara a fi modificat codul existent functionalitati sub forma de operatii sau clase, cu minimum sau fara modificari in codul existent Clasa Account are cate o operatie pentru fiecare subtip al clasei AccountType Adaugarea sau eliminarea unei subclase a clasei AccountType impune adaugarea sau eliminarea unei metode in clasa Account (pastrand cat mai mult posibil codul existent nemodificat) Code NOT closed for modification UPB - ETTI - Curs POO - an II - seria E 39

40 Open Close Principle (OCP) Software entities like classes, modules and functions should be open for extension but closed for modifications. Solutia: clasa Account trebuie sa aiba operatii generice, care nu depind de subtipurile clasei AccountType Code NOT closed for modification OK! OK! UPB - ETTI - Curs POO - an II - seria E 40

41 Liskov s Substitution Principle (LSP) Derived types must be completely substitutable for their base types. Daca un cod client (context) utilizeaza o clasa de baza atunci o referinta catre acea clasa de baza poate fi folosita catre obiecte dintro clasa derivata fara a afecta functionalitatea codului client (context). Codul client (context) care utilizeaza pointeri sau referinte catre o clasa de baza trebuie sa fie capabil sa foloseasca obiecte din clase derivate fara a conta (fara a sti) acest lucru. clasa de baza obiecte din clasa de baza clasa derivata obiecte din clasa derivata UPB - ETTI - Curs POO - an II - seria E 41

42 Interface Segregation Principle (ISP) Clients should not be forced to depend upon interfaces that they don t use. Clientii (codurile context) nu trebuie fortati sa implementeze interfete pe care nu le utilizeze In loc de a proiecta o interfata cu multe operatii (fat), trebuie proiectate mai multe interfete mai mici bazate pe grupuri de operatii Fiecare interfata mica urmand sa serveasca un sub-modul A typical fat interface UPB - ETTI - Curs POO - an II - seria E 42

43 Interface Segregation Principle (ISP) Clients should not be forced to depend upon interfaces that they don t use. Solutia: mai multe interfete mai mici bazate pe grupuri de operatii OK! UPB - ETTI - Curs POO - an II - seria E 43

44 Dependency Inversion Principle (DIP) High-level modules should not depend on low-level modules. Both should depend on abstractions. Abstractions should not depend on details. Details should depend on abstractions. Componentele de nivel inalt trebuie decuplate de componentele de nivel redus Trebuie permisa reutilizarea diferitelor componente de nivel redus Inlocuirea componentelor de nivel redus trebuie obtinuta fara schimbari in componentele de nivel inalt Majoritatea systemelor software actuale sunt organizate ierarhic (in niveluri). In implementarea naiva a unui sistem ierarhic nivelurile inalte (UI / Business) depind de cele reduse (Business / Database) Problema este ca schimbari in componentele inferioare le afecteaza pe cele de nivel inalt UPB - ETTI - Curs POO - an II - seria E 44

45 Dependency Inversion Principle (DIP) High-level modules should not depend on low-level modules. Both should depend on abstractions. Abstractions should not depend on details. Details should depend on abstractions. Solutia: inversarea dependentelor componentele de nivel inalt depinzand doar de interfete abstracte (nemodificabile), implementate de componentele de nivel redus OK! UPB - ETTI - Curs POO - an II - seria E 45

Laborator 8 Java Crearea claselor de obiecte. Variabilele (campurile) clasei de obiecte

Laborator 8 Java Crearea claselor de obiecte. Variabilele (campurile) clasei de obiecte Laborator 8 Java Crearea claselor de obiecte. Variabilele (campurile) clasei de obiecte Probleme rezolvate: Scrieti, compilati si rulati toate exemplele din acest laborator: 1. Programul urmator (LotoConstante.java)

More information

Ingineria Sistemelor de Programare. UML Diagrama Cazurilor de Utilizare 2016

Ingineria Sistemelor de Programare. UML Diagrama Cazurilor de Utilizare 2016 Ingineria Sistemelor de Programare UML Diagrama Cazurilor de Utilizare mihai.hulea@aut.utcluj.ro 2016 Introducere UML UML UML = Unified Modeling Language Dezvoltat in cadrul Object Management Group In

More information

Inginerie Software pentru Comunicatii (ISC / RST)

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

More information

Ingineria Sistemelor de Programare

Ingineria Sistemelor de Programare Ingineria Sistemelor de Programare Interfete grafice (Swing) mihai.hulea@aut.utcluj.ro 2017 Scurt istoric AWT: Abstract Windowing Toolkit import java.awt.* Swing Java FX Swing Demo Libraria Swing Swing

More information

Tehnici avansate de programare

Tehnici avansate de programare Tehnici avansate de programare Curs - Cristian Frăsinaru acf@infoiasi.ro Facultatea de Informatică Universitatea Al. I. Cuza Iaşi Adnotarea elementelor Tehnici avansate de programare p.1/1 Cuprins Ce sunt

More information

Fişiere in C++ Un fişier este o colecţie de date indicat printr-un nume şi o extensie. Numele este desparţit de extensie prin punct.

Fişiere in C++ Un fişier este o colecţie de date indicat printr-un nume şi o extensie. Numele este desparţit de extensie prin punct. Fişiere in C++ Un fişier este o colecţie de date indicat printr-un nume şi o extensie. Numele este desparţit de extensie prin punct. Avantajul lucrului cu fisiere este evident, datele rezultate în urma

More information

Concepte fundamentale ale limbajelor de programare. Limbaje de programare orientate pe obiecte Curs 10 conf. dr. ing. Ciprian-Bogdan Chirila

Concepte fundamentale ale limbajelor de programare. Limbaje de programare orientate pe obiecte Curs 10 conf. dr. ing. Ciprian-Bogdan Chirila Concepte fundamentale ale limbajelor de programare Limbaje de programare orientate pe obiecte Curs 10 conf. dr. ing. Ciprian-Bogdan Chirila Cuprins programarea orientata pe obiecte mostenire legarea dinamica

More information

Overview of the OOA Process...

Overview of the OOA Process... Object-oriented analysis (OOA)! What are the relevant objects? How do they relate to one another? Object-Oriented Analysis and Modeling! How do we specify/model a problem so that we can create an effective

More information

Dynamic binding vs static binding. Programare Orientată pe Obiecte

Dynamic binding vs static binding. Programare Orientată pe Obiecte Dynamic binding vs static binding Programare Orientată pe Obiecte Ce va afişa următorul program? class TestEgal{ public boolean equals ( TestEgal other ) { System.out.println( "In equals din TestEgal"

More information

Overview of the OOA Process...

Overview of the OOA Process... Object-Oriented Analysis and Modeling Object-oriented analysis (OOA) What are the relevant objects? How do they relate to one another? How do we specify/model a problem so that we can create an effective

More information

Programare avansată Tipuri generice Colecții de date

Programare avansată Tipuri generice Colecții de date Programare avansată Tipuri generice Colecții de date Problema Construiți o structură de date: o stivă de date, o listă înlănțuită, un vector, un graf, un arbore, etc. Care este tipul de date pe care îl

More information

Utilizarea formularelor in HTML

Utilizarea formularelor in HTML Utilizarea formularelor in HTML Formulare Un formular este constituit din elemente speciale, denumite elemente de control (controls), cum ar fi butoane radio, butoane de validare, câmpuri text, butoane

More information

Inginerie software seminar 4. ISS - Seminar Diagrama de comunicare / colaborare

Inginerie software seminar 4. ISS - Seminar Diagrama de comunicare / colaborare ISS - Seminar 4 11 aprilie 2018 1. Diagrama de comunicare / colaborare Diagrama de comunicare (anterior UML 1.5 a fost numita diagrama de colaborare) este o diagrama de interactiune in care accentul cade

More information

Laborator 5 Instrucțiunile repetitive

Laborator 5 Instrucțiunile repetitive Laborator 5 Instrucțiunile repetitive Instrucțiunea for Instrucțiunea for permite repetarea unei secvențe de instrucțiuni atâta timp cât o condiție este îndeplinita. În plus, oferă posibilitatea execuției

More information

Laborator 3 Java. Introducere in programarea vizuala

Laborator 3 Java. Introducere in programarea vizuala Laborator 3 Java Introducere in programarea vizuala 1. Pachetele AWT si Swing. 2. Ferestre 3.1. Introduceti urmatorul program JAVA: public class Pv public static void main(string args[ ]) JFrame fer=new

More information

FUNDAMENTELE PROGRAMĂRII

FUNDAMENTELE PROGRAMĂRII UNIVERSIE BBEŞ-BOLYI acultatea de Matematică şi Informatică UNMENELE ROGRMĂRII ipuri definite de utilizator Laura ioşan 2 Conținut curs rogramming in the large Introducere în procesul de dezvoltare software

More information

Design patterns. Conf. univ. dr. Catalin Boja

Design patterns. Conf. univ. dr. Catalin Boja Design patterns Conf. univ. dr. Catalin Boja catalin.boja@ie.ase.ro http://acs.ase.ro/software-quality-testing Calitate cod sursă Principii urmărite în scrierea codului: Ușor de citit/înțeles clar Ușor

More information

POO. Observer Pattern (prezentare bazata pe GoF)

POO. Observer Pattern (prezentare bazata pe GoF) POO Observer Pattern (prezentare bazata pe GoF) 1 Observator: :intentie Defineste o relatie de dependenta 1..* intre obiecte astfel incat cand un obiect isi schimba starea, toti dependentii lui sunt notificati

More information

Programarea orientata pe obiecte. Curs 2 addon -Clase si obiecte in Java -Interfetele ca abstractizare

Programarea orientata pe obiecte. Curs 2 addon -Clase si obiecte in Java -Interfetele ca abstractizare Programarea orientata pe obiecte Curs 2 addon -Clase si obiecte in Java -Interfetele ca abstractizare 1 Clase si obiecte ex din lumea reala Card bancar: Concept abstract Asigura functionalitate: verifica

More information

PROGRAMAREA ORIENTATĂ OBIECT CURS 13 - PROGRAMARE II

PROGRAMAREA ORIENTATĂ OBIECT CURS 13 - PROGRAMARE II 1 PROGRAMAREA ORIENTATĂ OBIECT CURS 13 - PROGRAMARE II 2 CURS ANTERIOR Introducere în Standard Template Library Containere secvenţiale Containere asociative Adaptori ai containerelor Algoritmi String 3

More information

Programarea Orientată pe Obiecte Teorie Subiecte pentru proba scrisă a examenului de licență

Programarea Orientată pe Obiecte Teorie Subiecte pentru proba scrisă a examenului de licență Programarea Orientată pe Obiecte Teorie Subiecte pentru proba scrisă a examenului de licență 1. Precizați dacă afirmația care urmează este corectă ori incorectă și motivați răspunsul în 4-5 fraze. (Notă:

More information

Curs 5. Programare Paralela si Distribuita. Forme de sincronizare - Java. Curs 5 - PPD 1

Curs 5. Programare Paralela si Distribuita. Forme de sincronizare - Java. Curs 5 - PPD 1 Curs 5 Programare Paralela si Distribuita Forme de sincronizare - Java Curs 5 - PPD 1 Monitor in Java Fiecare obiect din Java are un mutex care poate fi blocat sau deblocat in blocurile sincronizate: Bloc

More information

Programare orientata-obiect

Programare orientata-obiect Programare orientata-obiect Virginia Niculescu vniculescu@cs.ubbcluj.ro www.cs.ubbcluj.ro/~vniculescu 1 Structura cursului Programare orientata-obiect paradigma de programare notiuni de baza concepte principii

More information

Design patterns. Conf. univ. dr. Catalin Boja

Design patterns. Conf. univ. dr. Catalin Boja Design patterns Conf. univ. dr. Catalin Boja catalin.boja@ie.ase.ro Calitate cod sursă Principii urmărite în scrierea codului: Ușor de citit/înțeles clar Ușor de modificat structurat Ușor de reutilizat

More information

Rezolvare fişă de laborator Java Iniţiere în limbajul Java

Rezolvare fişă de laborator Java Iniţiere în limbajul Java Rezolvare fişă de laborator Java Iniţiere în limbajul Java Ex 1: Scrie următorul program Java folosind JCreator apoi încercă să-l înţelegi. public class primulprg System.out.println("Acesta este primul

More information

Laborator 5 Sisteme Lindenmayer. Temă

Laborator 5 Sisteme Lindenmayer. Temă Laborator 5 Sisteme Lindenmayer. Temă 1. Parcurgerea unui pătrat. Următorul L-sistem Alfabet=F,+,-; Producţii= F -> F-F+F+F+F-F-F-F+F, + -> +, - -> - Axioma= F generează, cu interpretările standard (F

More information

Alocarea memoriei în C sub Linux

Alocarea memoriei în C sub Linux Costel Aldea Alocarea memoriei în C sub Linux Sunt trei funcţii C standard care se pot folosi pentru a aloca memorie: malloc(), calloc(), si realloc(). Prototipurile lor, după cum sunt definite în stdlib.h:

More information

1. Clase. Abstractizarea datelor

1. Clase. Abstractizarea datelor 1. Clase. Abstractizarea datelor Vom face în cursul de Programarea calculatoarelor şi limbaje de programare II o introducere în programarea orientată pe obiecte, cu aplicaţii în limbajul de programare

More information

Birotică Profesională. Cursul 12

Birotică Profesională. Cursul 12 Birotică Profesională Cursul 12 Sumar Visual Basic for Applications (VBA) Tipuri de date Structuri de control Funcţii si proceduri Obiecte si colecţii VBA Mediu de programare destinat in special realizării

More information

Programare Orientată pe Obiecte în limbajul Java

Programare Orientată pe Obiecte în limbajul Java Curs 4 Programare Orientată pe Obiecte în limbajul Java Programare Orientată pe Obiecte Cuprins Tipul enumerare Clase imbricate Clase şi metode abstracte Excepţii Tipuri de date enumerare enum public class

More information

Proiectarea Rețelelor 32. Controlul modelelor de trafic in retea prin alterarea atributelor BGP

Proiectarea Rețelelor 32. Controlul modelelor de trafic in retea prin alterarea atributelor BGP Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiectarea Rețelelor 32. Controlul modelelor de trafic in retea prin alterarea atributelor BGP De ce ebgp? De ce ibgp?

More information

Design patterns. Assoc. prof. Catalin Boja, PhD

Design patterns. Assoc. prof. Catalin Boja, PhD Design patterns Assoc. prof. Catalin Boja, PhD catalin.boja@ie.ase.ro http://acs.ase.ro/software-quality-testing Source code quality Principles for writing the code: Easy to read / understand - clear Easy

More information

The Reuse of the Components on the Java 2 Enterprise Edition Platform

The Reuse of the Components on the Java 2 Enterprise Edition Platform 140 The Reuse of the Components on the Java 2 Enterprise Edition Platform Lect.dr. Marian CRISTESCU Catedra de Informatică Economică, Universitatea "Lucian Blaga" Sibiu Reusable components are simply pre-built

More information

Proiectarea Rețelelor 1. Componentele hardware ale unui sistem de calcul

Proiectarea Rețelelor 1. Componentele hardware ale unui sistem de calcul Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiectarea Rețelelor 1. Componentele hardware ale unui sistem de calcul Integrated IS-IS 25 Noiembrie 2010 Proiectarea

More information

Metode avansate de programare

Metode avansate de programare Metode avansate de programare Informatică Română, 2017-2018, Curs 1 Noțiuni introductive If builders built houses the way programmers built programs, first woodpecker to come along would destroy civilization.

More information

Bibliografie. * * *, Java Development Kit ndex.html

Bibliografie. * * *, Java Development Kit  ndex.html Bibliografie * * *, Java Development Kit http://www.oracle.com/technetwork/java/javase/downloads/i ndex.html Java programming: from problem analysis la program design, D.S. Malik, 2010 Java de la 0 la

More information

Design patterns. Conf. univ. dr. Catalin Boja

Design patterns. Conf. univ. dr. Catalin Boja Design patterns Conf. univ. dr. Catalin Boja catalin.boja@ie.ase.ro Calitate cod sursă Principii urmărite în scrierea codului: Ușor de citit/înțeles clar Ușor de modificat structurat Ușor de reutilizat

More information

Programare orientată obiect

Programare orientată obiect UNIVERSITATEA BABEŞ-BOLYAI Facultatea de Matematică şi Informatică Programare orientată obiect Curs 01 Laura Dioşan 2 Conţinut Introducere Programare structurată la nivel inferior Programare structurată

More information

Tehnologii Java. Curs - Cristian Frăsinaru. Facultatea de Informatică Universitatea Al. I. Cuza Iaşi.

Tehnologii Java. Curs - Cristian Frăsinaru. Facultatea de Informatică Universitatea Al. I. Cuza Iaşi. Tehnologii Java Curs - Cristian Frăsinaru acf@infoiasi.ro Facultatea de Informatică Universitatea Al. I. Cuza Iaşi Introducere Tehnologii Java p.1/2 Tehnologii Java p.2/2 Informatii despre curs Scopul

More information

Curs practic de Java

Curs practic de Java Curs practic de Java Curs - Cristian Frăsinaru acf@infoiasi.ro Facultatea de Informatică Universitatea Al. I. Cuza Iaşi Internaţionalizarea Curs practic de Java p.1/1 Cuprins Introducere Clasa Locale Formatarea

More information

Programare orientată pe obiecte. 1. Pachete (packages) 2. Moştenire

Programare orientată pe obiecte. 1. Pachete (packages) 2. Moştenire Programare orientată pe obiecte 1. Pachete (packages) 2. Moştenire Organizarea claselor înrudite în pachete Pachet (package): set de clase înrudite Pentru a pune o clasă într-un pachet, trebuie scrisă

More information

Curs 4 Programare Orientată pe Obiecte în limbajul Java. Programare Orientată pe Obiecte

Curs 4 Programare Orientată pe Obiecte în limbajul Java. Programare Orientată pe Obiecte Curs 4 Programare Orientată pe Obiecte în limbajul Java Programare Orientată pe Obiecte Cuprins Exemplu clasa Complex Variabie şi metode de instanţă/clasă Blocuri statice Clasa Object Polimorfism Tipul

More information

Scop: Crearea unei aplicatii ce exemplifica paternul MVVM. In plus se creaza si o comanda in WPF.

Scop: Crearea unei aplicatii ce exemplifica paternul MVVM. In plus se creaza si o comanda in WPF. Laborator MVVM Scop: Crearea unei aplicatii ce exemplifica paternul MVVM. In plus se creaza si o comanda in WPF. Clasele implicate in acest pattern sunt date in figura de mai jos. Mai multe informatii

More information

Aplicatii JAVA. JAVA Programare în rețea # 8. Adrian Runceanu

Aplicatii JAVA. JAVA Programare în rețea # 8. Adrian Runceanu Aplicatii JAVA # 8 JAVA Programare în rețea 2017 Adrian Runceanu www.runceanu.ro/adrian Curs 8 Programare în rețea 28.04.2017 Curs - Aplicatii Java 2 Programare în rețea copyright@www.adrian.runceanu.ro

More information

Îmbunătăţiri aduse în limbajul C++ facilităţilor standard ale limbajului C (cele care nu ţin de conceptele programării orientate obiect).

Îmbunătăţiri aduse în limbajul C++ facilităţilor standard ale limbajului C (cele care nu ţin de conceptele programării orientate obiect). Îmbunătăţiri aduse în limbajul C++ facilităţilor standard ale limbajului C (cele care nu ţin de conceptele programării orientate obiect). Supraîncărcarea numelui de funcţii (overloading) In C nu este permisa

More information

Sisteme de operare 1. Sisteme de operare. Roluri și descriere generală

Sisteme de operare 1. Sisteme de operare. Roluri și descriere generală Platformăde e-learning și curriculăe-content pentru Sisteme de operare 1. Sisteme de operare. Roluri și descriere generală De ce SO? sunt peste tot (PC, servere, smartphones) administrarea eficientă a

More information

13. Java si XML Fisiere XML în aplicatii Java... XML si orientarea pe obiecte... Utilizarea unui parser SAX... Utilizarea unui parser DOM...

13. Java si XML Fisiere XML în aplicatii Java... XML si orientarea pe obiecte... Utilizarea unui parser SAX... Utilizarea unui parser DOM... CUPRINS 1. Java ca limbaj de programare cu obiecte Diferente între limbajele Java si C................................... Tipuri clasã si tipuri referintã....................................... Structura

More information

Programare avansată Introducere

Programare avansată Introducere Programare avansată Introducere Desfășurarea cursului Scopul Motivația Modul de lucru Platforma de programare Documentația Evaluarea Laborator: probleme, proiecte, referate ușor Examen: test scris greu

More information

CONFIGURAREA UNUI SERVER IRC IN LINUX. Bica Bogdan *

CONFIGURAREA UNUI SERVER IRC IN LINUX. Bica Bogdan * CONFIGURAREA UNUI SERVER IRC IN LINUX Bica Bogdan * In this exemple i show how to configure an irc server based on ircd dameon named ircu.this is the main file name ircd.conf and the most important.configure

More information

AppOBP > PrOBPT > class Timp import java.text.decimalformat;

AppOBP > PrOBPT > class Timp import java.text.decimalformat; AppOBP > PrOBPT > class Timp import java.text.decimalformat; public class Timp { private int hour; // 0-23 private int minute; // 0-59 private int second; // 0-59 // constructorul Timp initializeaza fiecare

More information

Cap. 1. SISTEME DEDICATE DE PRELUCRARE NUMERICĂ

Cap. 1. SISTEME DEDICATE DE PRELUCRARE NUMERICĂ Cap. 1. SISTEME DEDICATE DE PRELUCRARE NUMERICĂ Un sistem dedicat de prelucrare numerică (embedded system) este un ansamblu format din circuite electronice, programe, componente mecanice etc. conceput

More information

Laborator 2 - Introducere in limbajul Java.Pachete.Interfete.Tratarea exceptiilor. Pachete

Laborator 2 - Introducere in limbajul Java.Pachete.Interfete.Tratarea exceptiilor. Pachete Laborator 2 - Introducere in limbajul Java.Pachete.Interfete.Tratarea exceptiilor. 1. Pachete 2. Interfete 3. Tratarea exceptiilor Pachete Crearea unui pachet Folosirea membrilor unui pachet Importul unei

More information

1. Să se determine de câte ori apare cifra c în scrierea în baza p a numărului n.

1. Să se determine de câte ori apare cifra c în scrierea în baza p a numărului n. Observatii: Codul de mai jos a fost realizat si testat pe pagina online: https://www.tutorialspoint.com/compile_pascal_online.php 1. Să se determine de câte ori apare cifra c în scrierea în baza p a numărului

More information

Laborator 1 Java. Citirea datelor de la tastatura si afisarea datelor pe ecran

Laborator 1 Java. Citirea datelor de la tastatura si afisarea datelor pe ecran Laborator 1 Java Citirea datelor de la tastatura si afisarea datelor pe ecran In limbajul Java nu exista instructiuni specializate pentru citirea/scrierea datelor. Aceste operatii se realizeaza prin intermediul

More information

Se cer 2 variante: una cu implementarea statica si a doua cu implementarea dinamica a structurilor de date necesare. Comentati variantele.

Se cer 2 variante: una cu implementarea statica si a doua cu implementarea dinamica a structurilor de date necesare. Comentati variantele. Lucrarea 1 SDA 03.04.2017 Sa se realizeze urmatoarele programe, in limbaj C: 1. Se primesc de la intrarea standard: un numar k si un sir infinit de numere naturale a i. Se afiseaza la iesirea standard,

More information

Gestionarea memoriei dinamice. Tablouri şi şiruri de caractere. Conversii de date. Operaţii de intrare / ieşire

Gestionarea memoriei dinamice. Tablouri şi şiruri de caractere. Conversii de date. Operaţii de intrare / ieşire Lucrarea 3 Gestionarea memoriei dinamice. Tablouri şi şiruri de caractere. Conversii de date. Operaţii de intrare / ieşire Cuprins Simbolul this...1 Colectorul de reziduuri (Garbage Collector)...4 Transmiterea

More information

Laborator 4 Java Colectii

Laborator 4 Java Colectii Laborator 4 Java Colectii Scrieti, compilati si rulati toate exemplele din acest laborator: 1. Urmatorul exemplu foloseste diferite clase de colectii si adauga cate un element in aceste colectii import

More information

Aplicații JAVA. Lect.dr. Adrian Runceanu

Aplicații JAVA. Lect.dr. Adrian Runceanu Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Aplicații JAVA Lect.dr. Adrian Runceanu Curs 6 Colecții în Java 01.04.2015 Curs - Aplicatii

More information

Programarea calculatoarelor

Programarea calculatoarelor Programarea calculatoarelor #3 C++ Elemente introductive ale limbajului C++ 2016 Adrian Runceanu www.runceanu.ro/adrian Curs 3 Elemente introductive ale limbajului C++ 02.11.2016 Curs - Programarea calculatoarelor

More information

-modificatorul unei interfeţe este public sau abstract (implicit)

-modificatorul unei interfeţe este public sau abstract (implicit) 6.1. Interfeţe Java - interfeţele Java abstractizează complet metodele unei clase (interfaţa clasei) faţă de orice implementare; - folosind cuvântul rezervat interface (în loc de class) specificăm ce poate

More information

C13. INTERFATA PARALELA PROGRAMABILA (PPI) I8255A (PIO)

C13. INTERFATA PARALELA PROGRAMABILA (PPI) I8255A (PIO) C13. INTERFATA PARALELA PROGRAMABILA (PPI) I8255A (PIO) 1.Descriere PIO 2. Arhitectura PIO 3. Programare PIO 4. PIO in PC 5. Aplicatii http://www.advancedmsinc.com/iocards/8255.htm http://www.eisti.fr/~ga/phy/iitr/ii05/tr.pdf

More information

JavaScript - Intorducere. Și nu numai...

JavaScript - Intorducere. Și nu numai... JavaScript - Intorducere Și nu numai... Ce facem azi Nu o sa va vină să credeți. Pe foaia albă vă scrieți numele și prenumele ȘI Povestim despre JavaScript Exemple de aplicare discutii și surprize mici

More information

Lucrarea de laborator nr. 4.NET Remoting 1

Lucrarea de laborator nr. 4.NET Remoting 1 Lucrarea de laborator nr. 4.NET Remoting 1 4. Implementarea claselor Well Known (Server Activated) In cadrul acestei lucrari de laborator vom realiza cateva aplicatii care vor exemplifica conceptele fundamentale

More information

Error! Bookmark not defined.

Error! Bookmark not defined. SEMINAR 06 CONTENTS Enuntul Problemei... 1 Repository... 2 Memory... 2 XML... 3 GUI... 4 Forma Selectie... 4 Forma Programator... 5 Forma Tester... 6 Java... 7 Mecanismul de Transmitere al Evenimentelor

More information

Cursul 4 7 Martie

Cursul 4 7 Martie Cursul 4 7 Martie adiftene@infoiasi.ro 1 Din Cursurile trecute Forward Engineering Reverse Engineering Diagrame de Interacţiuni Diagrame de Secvenţă Diagrame de Colaborare 2 Diagrame Diagrame UML Diagrame

More information

Din Cursurile trecute. Alte tipuri de Design Patterns Quality Assurance. Design Patterns

Din Cursurile trecute. Alte tipuri de Design Patterns Quality Assurance. Design Patterns Cursul 9 18 Aprilie Din Cursurile trecute Design Patterns Creational Patterns Structural Patterns Behavioral Patterns Alte tipuri de Design Patterns Quality Assurance Software Testing Testing Methodologies

More information

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Transmisia datelor multimedia in retele de calculatoare 28. O scurta istorie a compresiei audio: MPEG-1, MPEG-2, MPEG-

More information

CYBERPRIVACY VS CYBERSECURITY. Intimitatea vs securitatea informatiilor in industria medicala. Daniel Nistor, Director Executiv

CYBERPRIVACY VS CYBERSECURITY. Intimitatea vs securitatea informatiilor in industria medicala. Daniel Nistor, Director Executiv CYBERPRIVACY VS CYBERSECURITY Intimitatea vs securitatea informatiilor in industria medicala Daniel Nistor, Director Executiv 1 Statistici Cybersecurity este sectorul tehnologic cu cea mai mare rata de

More information

Universitatea Politehnica Bucuresti Facultatea de Electronica, Telecomunicatii si Tehnologia Informatiei Inginerie software bazata pe componente

Universitatea Politehnica Bucuresti Facultatea de Electronica, Telecomunicatii si Tehnologia Informatiei Inginerie software bazata pe componente Universitatea Politehnica Bucuresti Facultatea de Electronica, Telecomunicatii si Tehnologia Informatiei Inginerie software bazata pe componente Manole Laurentiu 442A Mardare Oana - Viorica 441A Hurmuzache

More information

Tehnici avansate de programare

Tehnici avansate de programare Tehnici avansate de programare Curs - Cristian Frăsinaru acf@infoiasi.ro Facultatea de Informatică Universitatea Al. I. Cuza Iaşi Lucrul dinamic cu clase Tehnici avansate de programare p.1/3 Cuprins Incarcarea

More information

Serializarea. Transformarea datelor în secvenţe de octeţi astfel încât să poată fi transmise pe un flux de ieşire. Deserializare - procesul invers

Serializarea. Transformarea datelor în secvenţe de octeţi astfel încât să poată fi transmise pe un flux de ieşire. Deserializare - procesul invers Serializarea Transformarea datelor în secvenţe de octeţi astfel încât să poată fi transmise pe un flux de ieşire Deserializare - procesul invers Scopul serializării transmiterea datelor la distanţă. RMI

More information

Curs 3 Clase și obiecte. Limbajul de programare C++ Programare orientată obiect

Curs 3 Clase și obiecte. Limbajul de programare C++ Programare orientată obiect Curs 3 Clase și obiecte Limbajul de programare C++ Programare orientată obiect Limbajul de programare C++ Urmașul limbajului C apărut în anii 80, dezvoltat de Bjarne Stroustrup Bibliografie: B. Stroustup,

More information

Unified Meta Language

Unified Meta Language Unified Meta Language Ce este de fapt UML? Definitie: (OMG) " Unified Modeling Language (UML) reprezinta un limbaj grafic pentru vizualizarea, specificarea, dezvoltarea si documentarea componentelor unei

More information

Laborator 1 Tehnologia Java

Laborator 1 Tehnologia Java Laborator 1 Tehnologia Java Tehnologia Java este alcatuita dintr-un conglomerat de concepte dintre care amintim: limbajul de programare Java dezvoltat pe baza paradigmei obiect orientate; platforma de

More information

Operații de intrare/ieșire în C++

Operații de intrare/ieșire în C++ Operații I/O în limbajul C++ Operații de intrare/ieșire în C++ Mihai Gabroveanu Limbajul C++ moștenește de la C funcțiile de I/O Dezavantaj: permit manipularea doar a tipurilor de bază Limbajul C++ introduce

More information

6. Apelarea metodelor la distanță (RMI Remote Method Invocation)

6. Apelarea metodelor la distanță (RMI Remote Method Invocation) 6. Apelarea metodelor la distanță (RMI Remote Method Invocation) Cuprins O implementare naivă a RMI Caracteristicile generale ale RMI Scurtă prezentare a arhitecturii sistemului RMI Aplicație: programul

More information

Fisiere text in Java.

Fisiere text in Java. Fisiere text in Java. Doru Anastasiu Popescu Prelucrarea fisierelor text in Java Aspecte teoretice: http://cursuri.cs.pub.ro/~poo/wiki/index.php/input/output http://upm.ro/intranet/ecalin/cd_educational/cd/javac/cap3.htm

More information

FUNDAMENTELE PROGRAMĂRII

FUNDAMENTELE PROGRAMĂRII UNIVERSITATEA BABEŞ-BOLYAI Facultatea de Matematică şi Informatică FUNDAMENTELE PROGRAMĂRII INTRODUCERE Laura Dioşan Octombrie, 2013 Fundamentele programării - Introducere 2 Sumar Elemente organizatorice

More information

Lucrarea 5 Fire de Execuţie în Java. Mecanisme de Sincronizare.

Lucrarea 5 Fire de Execuţie în Java. Mecanisme de Sincronizare. Lucrarea 5 Fire de Execuţie în Java. Mecanisme de Sincronizare. În această lucrare vor fi prezentate mecanismele Java pentru programarea concurentă. Fire de Execuţie Există două moduri în care pot fi create

More information

Rezolvarea exceptiilor

Rezolvarea exceptiilor PL/SQL SECTIUNE 6 Rezolvarea exceptiilor Entering an incorrect username and/or password Forgetting to include the @ in an email address Entering a credit card number incorrectly Entering an expiration

More information

Unit Testing cu JUnit

Unit Testing cu JUnit Unit Testing cu JUnit Conf. univ. dr. Catalin Boja catalin.boja@ie.ase.ro http://acs.ase.ro Dep. de Informatică și Cibernetică Economică ASE București Resurse Lasse Koskela - Effective Unit Testing, Manning,

More information

Fisa de lucru: Studiul componentelor calculatorului

Fisa de lucru: Studiul componentelor calculatorului 11.3.7 Fisa de lucru: Studiul componentelor calculatorului Imprimati si completati aceasta activitate. In aceasta activitate veti folosi Internet-ul, un ziar, sau un magazin local pentru a culege informatii

More information

Implementarea mecanismelor de I/E

Implementarea mecanismelor de I/E Universitatea Politehnica Bucuresti Facultatea de Electronica, Telecomunicatii si Tehnologia Informatiei Implementarea mecanismelor de I/E Gestionarul Plug-and-Play in Windows Angelica Negrila 431 A -

More information

Curs 14 Colectii. Ce sunt colectiile? Interfete ce descriu colectii. Curs 14. Ce sunt colectiile? Interfetele de baza care descriu colectii

Curs 14 Colectii. Ce sunt colectiile? Interfete ce descriu colectii. Curs 14. Ce sunt colectiile? Interfetele de baza care descriu colectii Curs 14 Colectii Ce sunt colectiile? Interfetele de baza care descriu colectii o Collection o Set o List o Map o SortedSet o SortedMap Implementari ale colectiilor Folosirea eficienta a colectiilor Algoritmi

More information

Introducere in Maven. Information Type: Working Standard, Disclosure Range:, Information Owner: mihai.hulea, NTT DATA Romania

Introducere in Maven. Information Type: Working Standard, Disclosure Range:, Information Owner: mihai.hulea, NTT DATA Romania Introducere in Maven Build management tools Java build tools: Maven Gradle Ant + Ivy Build tools are programs that automate the creation of executable applications from source code. Building incorporates

More information

Aplicatii JAVA. JAVA Excepții în Java # 7. Adrian Runceanu

Aplicatii JAVA. JAVA Excepții în Java # 7. Adrian Runceanu Aplicatii JAVA # 7 JAVA Excepții în Java 2017 Adrian Runceanu www.runceanu.ro/adrian Curs 7 Excepții în Java 24.03.2017 Curs - Aplicatii Java 2 Excepții în Java 1. Ce sunt excepțiile? 2. Avantajele excepțiilor

More information

la Microsoft Office Communicator pentru ca modificarea selecţiei dispozitivului telefonic să se actualizeze.

la Microsoft Office Communicator pentru ca modificarea selecţiei dispozitivului telefonic să se actualizeze. QUICK START GUIDE Plug-in de selec ie a telefonului pentru caracteristica de control al apelurilor din Microsoft Office Communicator pentru Cisco Unified Presence versiunea 7.0(3) Prezentare generală 2

More information

Operatori. Comentarii. Curs 1

Operatori. Comentarii. Curs 1 Operatori atribuirea: = operatori matematici: +, -, *, /, % Este permisa notatia prescurtata de forma lval op= rval (ex: n += 2) Exista operatorii pentru autoincrementare si autodecrementare (post si pre)

More information

Master in Bioingineria protezarii

Master in Bioingineria protezarii Master in Bioingineria protezarii Cursul: TEHNICI CAD/CAM Facultatea de Bioinginerie medicala, UMF Iasi Anul universitar 2010-2011 Modelarea 3D cu ajutorul volumelor În general, obiectele 3D pot fi construite

More information

1. Citirea datelor de la tastatura si afisarea datelor pe ecran

1. Citirea datelor de la tastatura si afisarea datelor pe ecran Laborator 6 Java 1. Citirea datelor de la tastatura si afisarea datelor pe ecran In limbajul Java nu exista instructiuni specializate pentru citirea/scrierea datelor. Aceste operatii se realizeaza prin

More information

Introducere 21 Mai Adrian Iftene

Introducere 21 Mai Adrian Iftene Introducere 21 Mai 2012 Adrian Iftene adiftene@info.uaic.ro Conţinutul cursului Laboratoarele Proiectul Examenul Notarea Protocolul de comunicare Bibliografie Conținut pe scurt Ingineria programării (Software

More information

Laboratorul 6 Mediul de dezvoltare Eclipse

Laboratorul 6 Mediul de dezvoltare Eclipse Laboratorul 6 Mediul de dezvoltare Eclipse Ce ne propunem astăzi? În laboratorul de astăzi ne propunem familiarizarea cu mediul de dezvoltare Eclipse, crearea unei aplicańii simple de tip Hello World,

More information

Tipuri de date structurate

Tipuri de date structurate Tipuri de date structurate Problema 1 Să se citească un șir A de la tastatură, citirea șirului se termina la introducerea valorii 0. Să se construiască și să se tipărească șirul B de perechi (element,

More information

Aplicații JAVA. Lect.dr. Adrian Runceanu

Aplicații JAVA. Lect.dr. Adrian Runceanu Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Aplicații JAVA Lect.dr. Adrian Runceanu copyright@www.adrian.runceanu.ro Curs 5 Introducere

More information

Cursul 4 9,10 Martie

Cursul 4 9,10 Martie Cursul 4 9,10 Martie adiftene@infoiasi.ro 1 Din Cursurile trecute Forward Engineering Reverse Engineering Diagrame de Interacţiuni Diagrame de Secvenţă Diagrame de Colaborare 2 Diagrame Diagrame UML Diagrame

More information

Modelarea sistemelor informatice de ecommerce

Modelarea sistemelor informatice de ecommerce Modelarea sistemelor informatice de ecommerce Ciprian Dobre ciprian.dobre@cs.pub.ro 1 2 De ce modelăm ăm? Aplicaţiile software pot fi complexe; cum le putem gestiona eficient? Posibilă soluţie: folosim

More information

GHID DE UTILIZARE A APLICAȚIEI MINISTRA PLAY PE SMART TV

GHID DE UTILIZARE A APLICAȚIEI MINISTRA PLAY PE SMART TV GHID DE UTILIZARE A APLICAȚIEI MINISTRA PLAY PE SMART TV TV Deschide aplicația Ministra Play din bara de jos a interfeței TV. Selectează aplicația Ministra Play utilizând cursorul telecomenzii. Apar 4

More information

Universitatea Alexandru Ioan Cuza Facultatea de Informatică

Universitatea Alexandru Ioan Cuza Facultatea de Informatică Universitatea Alexandru Ioan Cuza Facultatea de Informatică Conf. Dr. Lenuța Alboaie adria@info.uaic.ro Cuprins Sisteme de fisiere caracteristici Sisteme de fisiere distribuite Vocabular Cerinte Aspecte

More information

Lucrarea nr.8 CLASE IMBRICATE

Lucrarea nr.8 CLASE IMBRICATE Lucrarea nr.8 CLASE IMBRICATE În C++ se poate include declaraţia unei clase în interiorul altei clase. Clasa declarată în interiorul alteia se numeşte clasă imbricată (nested class) şi permite evitarea

More information

Design Patterns 442A 443A. Horsa Alexandru Todicescu Alexandru Toma Crina Uta Cosmin Alexandru. Botoc Catalin

Design Patterns 442A 443A. Horsa Alexandru Todicescu Alexandru Toma Crina Uta Cosmin Alexandru. Botoc Catalin Design Patterns 442A Horsa Alexandru Todicescu Alexandru Toma Crina Uta Cosmin Alexandru 443A Botoc Catalin Cuprins Introducere...3 Model de proiectare...3 Descrierea modelelor de proiectare...3 Cum rezolva

More information