Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licență

FISA DISCIPLINEI

Codul
Denumirea disciplinei
MID0016 Sabloane de proiectare
Specializarea
Semestrul
Ore: C+S+L
Categoria
Statutul
Informatică - linia de studiu română
6
2+0+2
specialitate
optionala
Matematică informatică - linia de studiu română
6
2+0+2
specialitate
optionala
Ingineria informatiei - in limba romana
6
2+0+2
optionala
Titularii de disciplina
Prof. Dr. PÂRV Bazil,  bparvcs.ubbcluj.ro
Lect. Dr. DARVAY Zsolt,  darvaycs.ubbcluj.ro
Obiective
La terminarea cursului, studenţii trebuie să:
a) cunoască şi înţeleagă şabloanele de proiectare fundamentale
b) fie capabili să identifice posibilele şabloane în faza de proiectare
c) ştie să folosească combinaţii de şabloane de proiectare în rezolvarea unor probleme reale
d) posede abilităţile necesare pentru a realiza proiecte şi componente soft reutilizabile
Continutul
1. Introducere
1.1. Ce este un şablon de proiectare
1.2. Descrierea şabloanelor de proiectare
1.3. Catalogul şabloanelor de proiectare
1.4. Probleme de proiectare rezolvate de şabloanele de proiectare
1.5. Cum se alege un şablon de proiectare
1.6. Cum se foloseşte un şablon de proiectare
2. Studiu de caz
2.1. Enunţul problemei
2.2. Probleme de proiectare
2.3. Structura documentului
2.4. Formatarea
2.5. Interfaţa cu utilizatorul
2.6. Mai multe standarde de aspect şi interacţiune
2.7. Mai multe sisteme de ferestre
2.8. Operaţii utilizator
2.9. Prelucrări analitice
3. Şabloane creaţionale
3.1. Introducere
3.2. Abstract Factory
3.3. Builder
3.4. Factory Method
3.5. Prototype
3.6. Singleton
3.7. Concluzii
4. Şabloane structurale
4.1. Introducere
4.2. Adapter
4.3. Bridge
4.4. Composite
4.5. Decorator
4.6. Facade
4.7. Flyweight
4.8. Proxy
4.9. Concluzii
5. Şabloane comportamentale
5.1. Introducere
5.2. Chain of Responsibility
5.3. Command
5.4. Interpreter
5.5. Iterator
5.6. Mediator
5.7. Memento
5.8. Observer
5.9. State
5.10. Strategy
5.11. Template Method
5.12. Visitor
5.13. Concluzii

Prezentarea fiecărui şablon respectă etapele: scop, problema rezolvată, descrierea structurii (inclusiv diagrama UML), exemple (un exemplu structural şi cel puţin un exemplu real).
Activităţi de laborator
Trei mini-proiecte, ce vor conţine folosirea şabloanelor de proiectare creaţionale, structurale şi respectiv comportamentale. Fiecare soluţie va fi implementată în două limbaje de programare diferite (Java, C#, Visual Basic 6.0, Visual Basic .NET, Python, etc).

Materialele de curs şi de laborator sunt disponibile pe serverul Win, în directorul \\win\labor\romana\an3\Design Patterns
Bibliografie
1. COOPER, J.W.: The Design Patterns Java Companion, Addison-Wesley, 1998.
2. COPLIEN, J.: Multi-Paradigm Design, PhD Thesis, Vrije Universiteit Brussel, 2000 [http://www.netobjectives.com/download/CoplienThesis.pdf].
3. ECKEL, B.: Thinking in Patterns with Java [http://www.bruceeckel.com].
4. GAMMA, E., R. HELM, R. JOHNSON, J. VLISSIDES: Design Patterns - Elements of Reusable Object-Oriented Software, Addison-Wesley, 1995.
5. MARTIN, R.C.: Agile Software Development: Principles, Patterns, and Practices, Prentice-Hall, 2002.
6. STELTING, S., O. MAASSEN: Applied Java Patterns, Prentice Hall, 2001.
7. Data and Object Factory Patterns, [http://www.dofactory.com/patterns/Patterns.aspx]
Evaluare
Nota finală va reflecta activitatea de laborator, calitatea mini-proiectelor realizate şi rezultatul la examenul scris (în ultima săptămână, la curs). Se acordă (pe o scală de notare cu 10 puncte):
1p din oficiu
1p prezenta la seminar/laborator
4p mini-proiectele realizate
4p examenul scris
Legaturi: Syllabus-urile tuturor disciplinelor
Versiunea in limba engleza a acestei discipline
Versiunea in format rtf a acestei discipline