Universitatea "Babeș-Bolyai" din Cluj-Napoca

Facultatea de Matematică și Informatică
FISA DISCIPLINEI

Programare bazată pe componente (1) Component-based programming (1)
Cod
Semes-
trul
Ore: C+S+L
Credite
Tipul
Sectia
MI251
1
2+2+0
9
obligatorie
Programare bazată pe componente - în limba engleză
(Component-Based Programming - in English)
Cadre didactice indrumatoare Teaching Staff in Charge
Prof. Dr. PÂRV Bazil, bparv@cs.ubbcluj.ro
Obiective Aims
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;
At the completion of this course, the students will be able to:
a) have a systematic knowledge about fundamentals of component-based programming;
b) have a good understanding of the following terms: component, interface, polymorphism;
c) feel the similarities and differences between component-based programming and object-oriented programming in the frame of inheritance and composition issues;
d) understand the importance of component's scale, granularity, and architecture aspects;
Continut
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

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 Assessment
Forma de examinare este examenul scris.
Nota finala va fi formata din (1 punct din oficiu):
a) Activitatea de la seminar: 2 pct
b) Lucrare scrisa: 7 pct.
The assessment method is written exam. The final mark (on a ten points scale, one point by default) will be obtained as:
a) Seminar activity: 2 pts
b) Written exam: 7 pts