Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Masterat
Domeniul: 
Programul de studii: Scoala doctorala
Limba de predare: Română

SYLLABUS

I. Date generale
Codul	Disciplina	
MID2012	Proiectarea arhitecturii sistemelor software	

Semestrul	Ore: C+S+L+P	Categoria	Statutul	
2	2+1+0+0		obligatorie	

II. Cadre didactice cu norma de bază în Universitate
Numele şi	Titlul	Gradul	Catedra	Tipul activităţii	
prenumele	ştiinţific	didactic		C	S	L	
PÂRV Bazil	Dr. 	Prof.	Limbaje şi Metode de Programare	*			

Cadre didactice asociate
Numele şi	Titlul	Instituţia	Tipul	Tipul activităţii	
prenumele	ştiinţific		postului	C	S	L	

III. Obiectivele disciplinei
Cursul introduce conceptele şi principiile de bază ale proiectării arhitecturii sistemelor software, punând accentul pe definiţiile arhitecturii software, stilurile (şabloanele) şi modelele arhitecturale, limbajele de definire a arhitecturii şi instrumentele folosite la proiectarea arhitecturală. Toate conceptele teoretice sunt introduse prin studii de caz, preluate din aplicaţii reale.	

IV. Conţinutul disciplinei
1. Introducere. Drumul parcurs de la limbajele de programare la arhitectura software 
2. Stiluri arhitecturale
3. Studii de caz
4. Sisteme de partajare a datelor (informaţiei)
5. Arhitecturi client/server
6. Modele şi elemente arhitecturale
7. Notaţii arhitecturale	

V. Bibliografie
1. BASS, L., CLEMENTS, P., KAZMAN R.: Software Architecture in Practice, 2nd ed., Addison-Wesley, 2003
2. KRUCHTEN, PH.: Architectural Blueprints – The 4+1 View Model of Software Architecture, IEEE Software 12 (6), 1995, pp. 42-50. 
3. MALVEAU, R., MOWBRAY, T.J.: Software Architect Bootcamp, Prentice Hall, (1st ed., 2000, 2nd ed., 2003).
4. SHAW, M.: The Coming-of-Age of Software Architecture Research, in Proc. of the 23rd ICSE, IEEE Comp. Soc. 2001, 656, [http://www.cs.cmu.edu/afs/cs.cmu.edu/project/vit/ ftp/pdf/shaw-keynote-rev.pdf] 
5. SHAW, M., GARLAN, D.: Software Architecture: Perspectives on an Emerging Discipline, Prentice-Hall, 1996.	

VI. Tematica activităţilor didactice pe săptămâni
Lecţii - 14 săptămâni
Săptămâna 1 1. Introducere. Drumul parcurs de la limbajele de programare la arhitectura software : definiţii, preocupări arhitecturale timpurii
Săptămâna 2 1. Introducere. Drumul parcurs de la limbajele de programare la arhitectura software : limbaje de programare de nivel înalt, abstractizarea datelor
Săptămâna 3 2. Stiluri arhitecturale: magistrale şi filtre, abstractizarea datelor şi orientarea pe obiecte, organizarea bazată pe evenimente (apelul implicit).
Săptămâna 4 2. Stiluri arhitecturale: sisteme stratificate, depozite de date, interpretoare dirijate de tabele, alte stiluri arhitecturale, arhitecturi heterogene.
Săptămâna 5 3. Studii de caz: Key Word in Context, Soft pentru instrumente de măsură, Roboţi mobili
Săptămâna 6 3. Studii de caz: Tempomat (Cruise control), Arhitectura stratificată cu stiluri diferite pentru fiecare strat, Interpretor folosind idioame diferite pentru componente, Blackboard reconsiderat global ca interpretor 
Săptămâna 7 4. Sisteme de partajare a datelor: definiţii, integrarea bazelor de date, integrarea în mediile de dezvoltare, integrarea în mediile de proiectare a construcţiilor, structuri arhitecturale.
Săptămâna 8 5. Arhitecturi client/server: introducere, evoluţie - arhitecturi pentru calculatoare mainframe, arhitecturi cu partajare de fişiere, arhitecturi client-server cu exemple, arhitecturi pe două nivele (client masiv, client suplu)
Săptămâna 9 5. Arhitecturi client/server: arhitecturi pe trei (mai multe)-tier - aspecte generale, variante (cu monitor de tranzacţii, cu server de mesaje, cu server de aplicaţii)
Săptămâna 10 5. Arhitecturi client/server: arhitecturi pe trei (mai multe)-tier cu ORB (object request broker), arhitectura distribuită/colaborativă la nivelul organizaţiei
Săptămâna 11 6. Modele şi elemente arhitecturale: definiţii, tipuri şi elemente ale modelelor, notaţii arhitecturale tradiţionale, limbaje de descriere a arhitecturii
Săptămâna 12 6. Modele şi elemente arhitecturale: modelul 4+1 View (Kruchten), arhitecturi ale sistemelor informatice (framework-ul Zachman, Data warehouse)
Săptămâna 13 7. Notaţii arhitecturale: diagrame informale, limbaje de interconectare a modulelor, SGL (Software Glue Language)
Săptămâna 14 7. Notaţii arhitecturale: ADL (Architecture Description Language), limbaje de modelare/specificare (UML, ModeChart)

Seminarii /laboratoare- 1 oră/săptămână (7 seminarii de două ore), pregătirea unui referat şi a unui proiect
Primele două seminarii sunt dedicate informării documentare şi planificării susţinerii referatelor cu tematică din domeniul cursului.  Seminariile de la 3 la 6 sunt rezervate pentru presentarea referatelor.
Pentru proiect, fiecare student va trebui să rezolve o problemă folosind cel puţin două stiluri arhitecturale diferite. 
Lab 1 Informare documentară; alegerea problemei de rezolvat şi planificarea iniţială a derulării proiectului.
Lab 2 Project management (definirea problemei, cerinţe, stiluri arhitecturale folosite, orar preliminar)
Lab 3-4 Analiză şi proiectare (elemente de analiză şi decizii generale de proiectare, proiectare de detaliu pentru fiecare stil arhitectural considerat, monitorizarea derulării proiectului)
Labs 5-6 Construcţie (implementare şi testare)
Lab 7 Demonstraţii cu aplicaţiile realizate (documentaţia va include cod sursă şi compararea soluţiilor).

Fiecare lecţie de curs are 2 ore. Toate materialele de curs sunt disponibile în directorul \win\labor\Romana\Master\pbc251\SoftwareArch
accesibil doar din intranet-ul departamentului
Studenţii sunt invitaţi să citească în avans materialul de curs.	

VII. Metode didactice folosite
Metodele didactice folosite sunt: expunerea, conversaţia, modelarea, discutarea unor cazuri de studiu, folosirea şi explicarea unor exemple de programare. Conţinutul lecţiilor este disponibil în forma unor prezentări Powerpoint şi documente Word.
Munca de seminar şi laborator constă în realizarea unor teme individuale. Fiecare student trebuie să pregătească un referat pe o temă dată şi să realizeze un proiect software.	

VIII. Evaluare
Nota finală acoperă munca de laborator (realizarea unui proiect soft) şi de cercetare (pregătirea şi prezentarea unui referat), precum şi rezultatul de la examenul scris. Media ponderată se calculează astfel:
10% din oficiu
10% activitatea de seminar şi laborator
20% nota la proiect
20% nota la referat
40% nota la examenul scris.	

IX. Bibliografie suplimentară
1. FUSSELL, M.L.: A Good Architecture for Object-Oriented Information Systems, in Structures, Designs, and Patterns, OOPSLA'96 Tutorial 23, [http://www.chimu.com/ publications/oopsla96tutorial23/oopsla96tutorial23.pdf].
2. Software Architecture Resources, [http://www.bredemeyer.com/papers.htm ]	

	Decan,							Sef de catedra,
	Prof. Dr. ȚÂMBULEA Leon			Prof. Dr. PÂRV Bazil

	Data,							Titular curs,
	1 Octombrie 2010					Prof. Dr.  PÂRV Bazil