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

FISA DISCIPLINEI

Codul
Denumirea disciplinei
MID1010 Arhitectura sistemelor soft
Specializarea
Semestrul
Ore: C+S+L
Categoria
Statutul
Programare bazată pe componente - în limba engleză
4
2+1+0
specialitate
obligatorie
Sisteme inteligente - în limba engleză
4
2+1+0
specialitate
obligatorie
Metode formale în programare - în limba engleză
4
2+1+0
specialitate
obligatorie
Modelare si simulare - în limba engleză
4
2+1+0
specialitate
optionala
Titularii de disciplina
Prof. Dr. PÂRV Bazil,  bparvcs.ubbcluj.ro
Obiective
Cursul introduce conceptele şi principiile de bază ale arhitecturii sistemelor soft,
punând accentul pe definirea arhitecturii soft, stilurile arhitecturale,
modelele de arhitectură, limbajele de descriere a arhitecturii şi instrumentele
folosite in proiectarea arhitecturii.
Toate elementele teoretice sunt introduse folosind studii de caz, exemple de aplicaţii reale.
Continutul
1. Introducere. De la limbajele de programare la arhitectura sistemelor soft
1.1. Definiţii
1.2. Istoric. Preocupări @clasice@ legate de arhitectura sistemelor soft
1.3. Limbaje de programare de nivel inalt
1.4. Tipuri abstracte de date
1.5. Arhitectura sistemelor soft
2. Stiluri arhitecturale
2.1. Magistrale şi filtre
2.2. Structurarea programelor folosind abstractizarea datelor şi orientarea pe obiecte
2.3. Apelarea implicită, bazată pe evenimente
2.4. Sisteme stratificate
2.5. Depozite de date partajate
2.6. Interpretarea dirijată de tabele
2.7. Alte stiluri @familiare@ de arhitectură
2.8. Arhitecturi heterogene
3. Studii de caz
3.1. Problema 1: KWIC (Key Word in Context, David Parnas)
3.2. Problema 2: Soft pentru instrumente de măsură
3.3. Problema 3: Roboţi mobili
3.4. Problema 4: Controlul vitezei (Cruise control)
3.5. Problema 5: Structura stratificată cu stiluri diferite pentru fiecare nivel
3.6. Problema 6: Interpretor cu diferite stiluri de componente
3.7. Problema 7: Arhitectură blackboard reconsiderată global ca interpretor
4. Sisteme soft bazate pe partajarea datelor între utilizatori
4.1. Partajarea resurselor in sistemele software
4.2. Integrarea bazelor de date
4.3. Integrarea în mediile de programare
4.4. Integrarea în aplicaţiile de proiectare a construcţiilor
4.5. Structuri arhitecturale pentru sistemele informatice bazate pe partajarea datelor
5. Arhitecturi client-server
5.1. Introducere
5.2. Evoluţia arhitecturilor software
5.2.1. Arhitecturi mainframe
5.2.2. Arhitecturi bazate pe partajarea fişierelor
5.2.3. Arhitecturi client-server
5.3. Exemple de arhitecturi client-server
5.3.1. Arhitecturi pe două nivele
5.3.2. Arhitecturi pe trei (mai multe) nivele
5.3.2.1. Arhitecturi pe trei nivele folosind tehnologia monitoarelor pentru prelucrarea tranzacţiilor
5.3.2.2. Arhitecturi pe trei nivele cu server de mesaje
5.3.2.3. Arhitecturi pe trei nivele cu server de aplicaţii
5.3.2.4. Arhitecturi de broker de cereri la obiecte (Object Request Broker, ORB)
5.3.2.5. Arhitectura distribuită/colaborativă de intreprindere
6. Modele şi elemente de arhitectură
6.1. Tipuri de elemente şi modele
6.2. Notaţii arhitecturale tradiţionale
6.3. Limbaje de descriere a arhitecturilor
6.4. Modelul celor 4+1 vederi (Kruchten)
7. Notaţii arhitecturale
7.1. Diagrame informale
7.2. Limbaje de interconectare a modulelor
7.3. SGL (Software Glue Language)
7.4. ADL (Architecture Description Language)
7.5. Limbaje de modelare/specificare (UML, ModeChart)

Activităţi de laborator

Studenţii vor lucra în echipe de 3-5 membri pentru rezolvarea unei probleme concrete, folosind diverse stiluri arhitecturale. Fiecare membru va implementa o soluţie proprie, cu un stil arhitectural specific.
Principalele activităţi de laborator sunt:
• faza de gestiune a proiectului (săpt 1 - 3)
• faza de analiză/proiectare (săpt 4 - 7)
• faza de implementare/testare (săpt 8 - 11)
• demonstraţii live şi documentaţie finală (săpt 12)
Bibliografie
Bibliografie

1. FUSSELL, MARK L.: A Good Architecture for Object-Oriented Information Systems. Structures, Designs, and Patterns, OOPSLA@96 Tutorial 23, [http://www.chimu.com/ publications/oopsla96tutorial23/oopsla96tutorial23.pdf].
2. KRUCHTEN, PHILIPPE: Architectural Blueprints - The 4+1 View Model of Software Architecture, IEEE Software 12 (6), 1995, pp. 42-50.
3. MOWBRAY, THOMAS J. - MALVEAU, RAPHAEL: Software Architect Bootcamp, Prentice Hall, (1st ed., 2000, 2nd ed., 2003).
4. SHAW, MARY: 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, MARY - GARLAN, DAVID: Software Architecture: Perspectives on an Emerging Discipline, Prentice-Hall, 1996.
6. Software Architecture Resources, [http://www.bredemeyer.com/papers.htm ]
Evaluare
Nota finală va reflecta activitatea de 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 laborator
4p proiectul realizat
4p examenul scris
Legaturi: Syllabus-urile tuturor disciplinelor
Versiunea in limba engleza a acestei discipline
Versiunea in format rtf a acestei discipline