Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Masterat
FIŞA DISCIPLINEI

Codul	Disciplina	
MID1001	Programare bazată pe componente	

Specializarea	Semestrul	Ore: C+S+L	Categoria	Statutul	
Programare bazată pe componente - în limba engleză	1	2+1+1	specialitate	obligatorie	

Titularii de disciplină	Prof. Dr. PÂRV Bazil, bparv@cs.ubbcluj.ro	
Obiective	La terminarea cursului, studentii trebuie sa posede:
a) cunostinte sistematice despre fundamentele programarii bazate pe componente;
b) întelegerea clara a termenilor de componenta, interfata, polimorfism;
c) asemanarile si deosebirile dintre programarea bazata pe componente si programarea orientata pe obiecte în ceea ce priveste mostenirea si compunerea;
d) importanta aspectelor de scala, granularitate si arhitectura a componentelor;
	
Conţinutul	1. Definitia componentelor soft
1.1. Termeni de baza: componenta, obiect, modul, interfata, reutilizare
1.2. Aspecte de standardizare
2. Componente, interfete, reentranta
2.1. Tipuri de interfete pentru componente
2.2. Partile unui contract
2.3. Relatia client-server în sisteme procedurale, obiectuale si bazate pe componente
2.4. Componentele în sisteme distribuite
3. Polimorfismul
3.1. Conceptul de tip de date în limbajele de programare
3.2. Extensibilitatea tipurilor si extensibilitatea independenta a componentelor
3.3. Siguranta în functionarea sistemelor bazate pe componente
3.4. Evolutia interfetelor si contractelor
4. Modalitati de implementare a polimorfismului
4.1. Tipuri de mostenire
4.2. Avantajele si dezavantajele folosirii mostenirii
4.3. Mostenirea de interfete
4.4. Delegarea, compunerea, mostenirea si polimorfismul
5. Aspecte de scala si granularitate a componentelor
5.1. Impactul componentelor asupra dezvoltarii de soft
5.2. Componentele si procesul de dezvoltare
5.3. Executia sistemelor bazate pe componente
5.4. Întretinerea sistemelor bazate pe componente
6. Arhitectura sistemelor bazate pe componente
6.1. Modalitati de reutilizare a componentelor
6.2. Tipuri de componente în raport cu modalitatea de reutilizare
6.3. Sabloane de proiectare
6.4. Cadre de aplicatie
6.5. Arhitectura sistemelor bazate pe componente
7. Stiluri de programare în sistemele bazate pe componente
7.1. Programarea orientata pe conexiuni
7.2. Evenimente si mesaje
7.3. Interfete dispecer si metaprogramare
7.4. Limbaje script
8. Modele de interconectare a componentelor
8.1. Caracteristici generale
8.2. OMG CORBA, OMA
8.3. Sun Java: JavaBeans, Enterprise Java Beans
8.4. Microsoft: COM, ActiveX, COM+, .NET 

Tematica seminariilor
S1 - Surse de informatie disponibile pe Internet si Intranet
S2 - Planificarea referatelor
S3 - S14 - prezentari de referate cu urmatoarea tematica
1. Componentele soft si aspecte economice. Piata componentelor soft
2. Definitii alternative ale termenului de componenta soft
3. Specificarea interfetelor
4. Callback-uri si contracte
5. Comunicarea între componente
6. Tipuri, subtipuri si verificarea tipurilor
7. Siguranta componentelor
8. Extensibilitatea componentelor
9. Problema clasei de baza fragile
10. Abordari disciplinate ale mostenirii
11. Compunerea claselor si a obiectelor
12. Componentele si reutilizarea
	
Bibliografie	1. Michael Barnes, Component Road Map. A Hurwitz Group White Paper, 1997, http://hurwitz.harvard.net/component.html.
2. Component Technology Homepage, http://www.odateam.com.
3. Rich Levin, Components on the Track, 1998,  http://techweb.cmp.com/iw/663/63iucmp.htm.
4. Bob Orfali, Dan Harkey, Jeri Edwards, The Essential Distributed Objects Survival Guide, Wiley, 1996.
5. Cuno Pfister, Component Software: A Case Study using BlackBox Components, http://www.oberon.ch/docu/case_study/index.html.
6. Keith Short, Component Based Development and Modeling, Sterling Software 1997, http://www.cool.sterling.com/whitepaper/coverpg.htm.
7. Clemens Szyperski, Component-Oriented Programming - A Refined Variation on Object-Oriented Programming, The Oberon Tribune No 1/2, December 1995.
8. Clemens Szyperski, Component Software. Beyond Object-Oriented Programming, Addison-Wesley 1998.
	
Evaluare	Nota finală va reflecta activitatea de seminar/laborator, calitatea proiectului realizat şi rezultatul la examenul scris. Se acordă (pe o scală de notare cu 10 puncte):
1p din oficiu
1p prezenta la seminar/laborator
2p proiectul realizat
2p referatul prezentat.
4p examenul scris