Documente Academic
Documente Profesional
Documente Cultură
SISTEMELOR
SOFTWARE
Dr. ing. Liviu PERNIU
Curs 2
Curs 2
Curs 2
Curs 2
Testarea legturilor
Testarea final
Performana
Latena
Fiabilitatea
Dsiponibilitatea
Reguli de modificare
Modificri ale bazei de date
Modificri ale interfeei
Adugarea sau eliminarea de
componente
Asamblarea sau descompunerea de
componente
Modificri ale mediului de dezvoltare
Modificri ale arhitecturii,
Curs 2
Arhitectura de referin
Elemente cheie furnizate la sfritul fazei de Elaborare
O implementare parial a sistemului (prototipul arhitectural)
Proiectele i regulile de arhitectur care (mpreun) arat faptul c:
Sistemul va ndeplini cerinele funcionale cheie
Sistemul va avea atributele de calitate dorite (va ndeplini cerinele nonfuncionale)
Cantitatea de date prelucrat ntr-un anumit interval de timp, securitate, scalabilitate,
termenele stabilite etc.
Curs 2
Prototipul arhitectural
Este o parte a arhitecturii de referin
Repprezint o implementare parial a sistemului
Este creat pentru a demonstra
Funciile sistemului
Proprietile sistemului (atributele de calitate)
Curs 2
Curs 2
Curs 2
Potrivirea
Din punct de vedere funcional
Din punct de vedere tehnic
Implicaii arhitecturale
Adaptabilitate i evoluie
Curs 2
Cost
Costul componentei
Costul de ntreinere al componentei
Curs 2
Un ablon
Reprezint o soluie la o problem ntr-un anumit context
Codific anumite cunotine preluate din experiena obinut ntr-un
anumit domeniu
Reprezint elemente reutilizabile de proiectare
Simplific i grbete proiectarea
Reduce riscul
Faciliteaz comunicarea dintre proiectani
Curs 2
Tipuri de abloane
Sistemele bine structurate conin mai multe abloane la diferite nivele
Idiomuri sistem lingvistic cu trsturi proprii folosit de un anumit grup
La nivel de limbaj de programare
abloane arhitecturale
La nivel de component i de subsistem
Curs 2
abloane comportamentale
Lanul de responsabiliti
Mediator
Vizitator
Obiect concurent
Curs 2
Soluia
Justificare
Contextul rezultat
Exemple
Dr. ing. Liviu PERNIU
Curs 2
Nume ablon
Colaborare
parametrizat
Aspect structural
Aspect
comportamental
Dr. ing. Liviu PERNIU
Curs 2
Param1
Param1
Param2
Nume ablon
Rol
Participant2
Param2
Colaborrile
abstracte
se
utilizeaz pentru a prezenta
patrticipanii i relaiile dintre
acetia n cadrul ablonului.
Dr. ing. Liviu PERNIU
Curs 2
Problema:
De obicei nu este bine s se permit accesul direct la serviciile unei componente
sau obiect, de exemplu din motive de securitate. De asemenea s-ar putea s fie
imposibil s se acceseze n mod direct o component datorit locaiei sale fizice.
Dac un obiect nu poate fi accesat n mod direct, trebuie prevzut un mecanism
suplimentar ntre client i serviciul cerut.
Curs 2
Soluie
Clientul trebuie s comunice cu un delegat al componentei i nu cu componenta
propriu-zis. Delagatul este un proxy (obiect de apropiere) care trebuie s ofere
interfaa (serviciile) componentei, dar poate face i alte lucruri suplimentare, cum
ar fi, de exemplu, verificarea aspectelor de securitate.
Curs 2
Furnizorul
serviciului
Furnizorul de servicii
Destinatarul serviciului
Surogat
Proxy
Destinatarul
serviciului
Client
Surogat
Proxy
AbstractOriginal
serviciul 1()
serviciul 2()
Client
sarcina()
Proxy
pre-procesare()
post-procesare()
Original
Curs 2
p : Proxy
o : Original
sarcina ( )
serviciul1( )
pre-procesare( )
serviciul1( )
post-procesare( )
Curs 2
Bazat pe reguli
Client-Server
Straturi
Condus de evenimente
MVC
Bazat pe cadre
Broker
Batch-uri
Tranzacie
Filtre
Blackboard
Bazat pe depozite
Interpretor
- Software Architecture: Perspective On An Emerging Discipline, Mary Shaw, David Garlan, PrenticeHall, 1996
- Pattern-Oriented Software Architecture - A System of Patterns, Buschmann, F, Meunier, R., Rohnert,
H., Sommerlad, P., and Stahl, M., John Wiley and Sons, 1996.
Curs 2
Combinarea abloanelor
Un sistem distribuit tipic, obinuit, probabil va fi necesar s foloseasc:
ablonul de stratificare (sisteme cu mai multe nivele de abstractizare)
ablonul client-server
ablonul de folosire a depozitelor de date
ablonul broker
ablonul de notificare a evenimentelor
ablonul MVC
ablonul proceselor distribuite
etc.
Curs 2
Mediul de
implementare
restricionate de
Mecanisme
Specificaii suplimentare
Produse
Baze de date
Tehnologii
etc.
responsabil de
Modelul Use-Case
Arhitect
Dr. ing. Liviu PERNIU
Curs 2
Slide
Slide
59
59
Mecanism
de analiz
ORB, RDBMS
Orbix, Oracle
Mecanism
de proiectare
Mecanism de
implementare
Dr. ing. Liviu PERNIU
Curs 2
Comunicare
Mecanisme
de proiectare
Mecanisme de
implementare
JDBC + Oracle
ObjectStore
Orbix
Object Request Broker
VisiBroker
MSMQ
Coada de mesaje
MQSeries
Curs 2
Cerinele
FURPS
Analiz
Proiectare
Implementare
Influeneaz
Mecanisme de
analiz
Cerinele de
proiectare
Influeneaz
Cerinele de
implementare
influeneaz
Rafinate n
Mecanisme
de proiectare
Rafinate n
Mecanisme de
implementare
Curs 2
Curs 2
DBPersistentClass
PersistentClassList
create() : PersistentClass
read(searchCriteria : string) : PersistentClassList
update(c : PersistentClass)
delete(c : PersistentClass)
DB_faade
PersistenceClient
Requestor
getString() : string
new()
add(c: PersistentClass)
getData()
setData()
command()
new()
Persistent_object_list
Persistent_object
DB_faade
Persistent_object
Persistent_object_list
Persistence RDBMS - JDBC
ResultSet
PersistentClass
Statement
SQL_helper
Result
Drive_manager
DB_connection
Connection
createStatement() : Statement
Diagrama
Diagrama este
este oo diagram
diagram de
de colaborare
colaborare
folosit
folosit pentru
pentru aa prezenta
prezenta mecanismul
mecanismul de
de
persisten
persisten n
n cazul
cazul utilizrii
utilizrii unui
unui sistem
sistem
relaional
relaional de
de gestiune
gestiune aa bazelor
bazelor de
de date.
date.
Clasele
Clasele abstracte
abstracte (cu
(cu caractere
caractere nclinate)
nclinate)
reprezint
reprezint roluri
roluri n
n cadrul
cadrul mecanismului
mecanismului
JDBC
JDBC ce
ce trebuie
trebuie completate
completate de
de ctre
ctre
proiectant
proiectant pentru
pentru aa instania
instania mecanismul.
mecanismul.
Clasele
Clasele ce
ce trebuie
trebuie nlocuite
nlocuite cu
cu clase
clase
concrete
concrete de
de ctre
ctre proiectant
proiectant sunt
sunt prezentate
prezentate
n
n galben.
galben.
DriverManager
getConnection(url, user, pass) : Connection
Curs 2
Curs 2
Curs 2
Window
Button
My Interface
MyWindow
MyButton
Curs 2
Pornire i oprire
Managementul tranzaciilor
Persisten
Managementul erorilor
Prezentare (GUI)
Curs 2
Curs 2
Funcionalitate
Logica aplicaiei
Scris de ctre
productorul de
componente
Oferit de
mediul de
producere a
componentelor
Clasele
interfeelor
generate de
obicei de
ctre mediul
de elaborare
Infrastructur
Controlul eerorilor
Curs 2
Iteraia n arhitectur
Contextul iteraiei
- La nceputul iteraiei se face o descriere a contextului n care se desfoar ntregul proces,
prezentndu-se felul n care iteraia se ncadreaz n procesul general de dezvoltare
software.
La final, se va face o revizuire a arhitecturii propuse iniial i se ofer setul de reguli necesar.
Curs 2
Faze
Iniiere
Elaborare
Construcie
Tranziie
Modelarea domeniului
Cerine
Analiz i proiectare
Implementare
Testare
Introducere n mediul real de funcionare
Fluxurile suport
Configurare i managementul modificrilor
Managementul proiectului
Mediu
Ne aflm aici!
Iteraii
preliminare
Iter.
#1
Iter.
#2
Iter.
#n
Iter. Iter.
#n+1 #n+2
Iter.
#m
Iter.
#m+1
Iteraii
Dr. ing. Liviu PERNIU
Curs 2
Curs 2
Axarea pe modificri
Aspectul cel mai important ce trebuie avut n vedere n faza de Elaborare este acela referitor la
modificri. De exemplu, presupunnd c avem patru iteraii, acestea ar putea arta cam aa:
Iteraia 1:
Alctuirea echipei
nelegerea tehnologiilor de baz (att cele folosite la elaborare ct i cele ntlnite la execuie)
Revizuirea cerinelor
Iteraia 2:
Iteraia 3:
Acordarea unei atenii sporite relaiilor ce se stabilesc n timpul funcionrii, integrare extern sporit
Iteraia 4:
mpachetarea mecanismelor
Curs 2
Start
Elaborarea vederii
de domeniu
Corespondena DoUC
Corespondena DoLo
Elaborarea vederii
Use case
Corespondena NFUC
Elaborarea vederii cerinelor
non-funcionale
Corespondena UCLo
Corespondena NFLo
Corespondena NFPr
Elaborarea
vederii logice
LoPr Mapping
Corespondena NFIm
Corespondena LoIm
Elaborarea
vederii de proces
Corespondena LoDe
PrIm Mapping
Corespondena NFPmrf
PrPmrf Corespondena
Elaborarea vederii
de implementare
ImPmrf Corespondena
Curs 2
Cerine non-funcionale
(Informaii)
DoUC
NFUC
Use-Case
Utilizabilitatea, performana
sau scalabilitatea trebuie
asociate Use case-urilor
Curs 2
Nr.
Eveniment
Comentarii
7
8
Sistemul pstreaz datele studentului pe care le poate afia oricnd se cere acest lucru
Catedra
1..n
nregistrrile sunt adunate pentru fiecare student, iar la sfrit se prezitn suma total
de plat
+curs oferit
0..1
0..n
Curs
1
+cursuri posibile
Student
0..n
0..n
urmeaz
Orar
0..n
Specializare
Cerin
ntrebare
Impact
Rspuns
De ce nu se
folosete
doar
accesul Internet?
Cere elaborarea a
dou
tipuri
de
interfee
alternative
care va conduce la
creterea costului cu
25%
Trebuie s avem
acces dedidat de
mare vitez la
sistem.
Mare
De ce nu se
folosete un sistem
SQL Server care s
ruleze
pe
Windows?
Trebuie s existe
personal specializat
care s tie s
lucreze att pe SQL
Server ct i pe
ORACLE
Sistemul existent
pentru
cursuri
folosete
dj
platforma
ORACLE
Mare
Stratul
intermediar
(middleware) trebuie s ruleze
pe servere Windows
Dac
folosim
ORACLE de ce nu
folosim servere Sun
pentru elaborarea
stratului
intermediar?
Avem n vedere
ca mai trziu s
migrm sistemul
pe
platforme
Microsoft.
Mare
= 100/15 100
de utilizatori cu 15
sec. timp maxim
de rspuns
Mediu
Prioritate
Slide-ul
urmtor
Vede raport
Din slide-ul
anterior
Student
Se nregistreaz la curs
Conectare
Profesor
Sistem existent
pentru cursuri
Trimite note
Sistem de nregistrare
existent
ncheierea nregistrrii
Sistem
existent de
plat
Curs 2
Curs 2
Curs 2
Curs 2
Curs 2
Curs 2
NFLo
UCLo
Use-Case
Domeniu
(Funcional)
(Informaii)
DoLo
Conceptele de domeniu (entitile)
sunt prezentate prin clase sau
subsisteme, constrngerile de
domeniu sunt prezentate prin
constrngeri de proiectare
Logica
Curs 2
Curs 2
Curs 2
Cerine
Curs 2
Curs
Profesor
+instructor
0..n
0..n
+ IdentificatorCurs
+ NumeCurs
1
1
0..n
0..n
Student
+urmeaz
0..n
+orar
0..n
Specializare
+ NumarSpecializare : Integer
+ capacitate : Integer
1
0..1
ContStudent
Curs 2
Partiiile iniiale
n multe situaii, pot exista arhitecturi predefinite sau abloane
arhitecturale ce pot fi refolosite.
abloane arhitecturale
Concept i reutilizare (stratificare)
Elemente de grup care se afl ala acelai nivel de abstractizare
Elementele de la nivelul mai nalt de abstractizare pot refolosi elemente de la
nivelele mai joase de abstractizare
Separarea problemelor
Gruparea elementelor cu responsabiliti asemntoare
Gruparea elementelor asemntoare
Reziliena
Gruparea elementelor aflate n strns legtur
Gruparea elementelor care se modific mpreun (interfaa utilizator, reguli de
domeniu, date pstrate)
Curs 2
Aplicaie
4
Cadrul
aplicaiei
Infrastructura
1
Curs 2
<<layer>>
Interfaa utilizator
(din modelul de proiectare)
<<layer>>
Logica de domeniu
<<layer>>
Servicii
(din modelul de proiectare)
Stratul
Interfaa
utilizator
conine
Stratul
Interfaa
utilizator
conine
elementele
elementele modelului
modelului care
care au
au rolul
rolul de
de aa
interaciona
interaciona cu
cu utilizatorul.
utilizatorul.
Stratul
Stratul Logica
Logica de
de domeniu
domeniu conine
conine acele
acele
elemente
elemente ale
ale modelului
modelului care
care acord
acord
comportamentul
comportamentul specific
specific acelui
acelui domeniu.
domeniu.
Stratul
Stratul de
de Servicii
Servicii conine
conine acele
acele elemente
elemente
de
de model
model ce
ce ofer
ofer servicii
servicii elementelor
elementelor din
din
stratul
stratul superior.
superior. Aceste
Aceste servicii
servicii se
se pot
pot folosi
folosi
n
n cadrul
cadrul aplicaiilor.
aplicaiilor.
Curs 2
Curs 2
Curs 2
Curs 2
Granularitate dimensiunea
obiectelor care se pstreaz
Volum numrul de obiecte care
trebuie pstrate
Durata ct timp trebuie pstrate
obiectele
Mod de acces modalitatea de
identificare unic i modul de
extragere
Frecvena accesului (CRUD) ct de
des se modific obiectele
Fiabilitate obiectele fac fa unei
cderi a sistemului?
Securitate
Dimensiunea datelor
Granularitatea utilizatorului
Reguli de securitate
Categorii de privilegii
Interfaa motenit
Laten
Durata
Mecanism de acces
Frecvena accesului
Comunicare
Laten ct de repede pot comunica
obiectele unele cu altele
Sincronizare tip de comunicare
sincron sau asincron
Dimensiunea mesajului
Protocol flux automat, pstrare n
memorie etc.
etc.
Curs 2
Profil 2
Granularitate
2-24 KB
2-3 MB
100,000
2-4
Durata
> 2 ore
zile
Mod de acces
aleator
aleator
mic: 100/h
mic: 2/zi
medie: 3,000/h
medie: 10/zi
mare: 9,000/h
mare: 100/h
Frecven acces
Fabilitate
mare
mare
Curs 2
n memoria extern
Pn la 20-30 MB
Vitez de modificare mic
Vitez de citire moderat
(continued)
Curs 2
ntrebare
Impact
Rspuns
De ce nu se
folosete
doar
accesul Internet?
Cere elaborarea a
dou
tipuri
de
interfee
alternative
care va conduce la
creterea costului cu
25%
Trebuie s avem
acces dedidat de
mare vitez la
sistem.
Mare
De ce nu se
folosete un sistem
SQL Server care s
ruleze
pe
Windows?
Trebuie s existe
personal specializat
care s tie s
lucreze att pe SQL
Server ct i pe
ORACLE
Sistemul existent
pentru
cursuri
folosete
dj
platforma
ORACLE
Mare
Stratul
intermediar
(middleware) trebuie s ruleze
pe servere Windows
Dac
folosim
ORACLE de ce nu
folosim servere Sun
pentru elaborarea
stratului
intermediar?
Avem n vedere
ca mai trziu s
migrm sistemul
pe
platforme
Microsoft.
Mare
= 100/15 100
de utilizatori cu 15
sec. timp maxim
de rspuns
Mediu
Prioritate
<<mechanism>>
Persistena RDBMS - JDBC
Curs 2
Subsisteme
Un subsistem este n acelai timp o clas i un pachet
Un subsistem conine i comportamentul coninuturilor sale
Sunt uor de nlocuit
Pot fi folosite la fel ca i clasele
Clasa client
PachetB
<<subsistem>>
Clasa B1
Clasa B2
Curs 2
Utilizarea subsistemelor
Subsistemele pot fi folosite la partiionarea unui sistem n componente independente:
Controlat, configurat sau furnizat
Dezvoltat, atta timp ct interfeele sale rmn nemodificate
Implementat de-a lungul unor noduri de calcul distribuite
Modificat fr a afecta alte pri ale sistemului
Subsistemele mai pot fi folosite la:
Partiionarea sistemului n uniti care ofer o anumit securitate a resurselor cheie
Reprezint produse existente sau sisteme externe n cadrul proiectrii (de exemplu,
componente)
Se modeleaz mai multe variante de implementare
Curs 2
Identificarea subsistemelor
Se caut clase de analiz complexe
Se caut produse existente sau sisteme externe
Se caut colaborri de obiecte i cuplri
Se urmrete opionalitatea (comportamentul opional din cadrul modelului de
colaborare, sau caracteristicile ce pot fi eliminate, actualizate sau nlocuite cu
altele)
Se stabilesc actorii i interfaa utilizator
Se urmrete substituirea (reprezint nivele diferite ale serviciului pentru o
anumit caracteristic - de exemplu, disponibilitate nalt, medie sau sczut
- , fiecare dintre acestea folosind aceleai interfee
Se urmrete distribuirea (dac o anumit funcionalitate trebuie ndeplinit
ntr-un anumit nod, se creeaz un subsistem pentru acel nod)
Se urmrete instabilitatea (creearea de pri separate n cadrul unui sistem
care se ateapt s se modifice frecvent)
Dr. ing. Liviu PERNIU
Curs 2
Stabilirea interfeelor
Stabilirea unui grup de interfee candidat pentru subsistemele identificate anterior organizarea funcionalitilor subsistemelor n grupuri de funcionaliti coezive, asociate.
Aceste grupuri stabilesc setul iniial de interfee ale sistemului. Trebuie stabilit o operaie
corespunztoare fiecrei funcionaliti, la care se adaug parametrii i valorile de retur.
Cutarea de similitudini ntre interfee - se caut nume, funcionaliti i operaii
asemntoare. Se introduc operaiile comune ntr-o nou interfa.
Stabilirea dependenelor interfeelor - se adaug relaii de dependen ntre interfee i
clase i/sau alte interfee care apar n semnturile operaiilor interfeelor
Stabilirea corespondenelor dintre subsisteme i interfee
Stabilirea comportamentului specific pentru fiecare interfa - dac operaiile interfeelor
trebuie invocate ntr-o anumit ordine, trebuie creat o main de stare care s prezinte
strile vizibile sau care se pot deduce ce trebuie suportate pentru fiecare element de
proiectare care se materializeaz ntr-o interfa.
mpachetarea interfeelor - Interfeele pot fi gestionate i controlate n mod independent de
sisteme. Interfeele trebuie grupate n conformitate cu funcionalitile lor. Dac un
subsistem are doar o singur interfa, acesta poate fi plasat n acelai pachet cu interfaa.
Interfeele stabile, bine definite reprezint cheia unei arhitecturi rezistente la ocuri
Curs 2
<<interface>>
IPlata
<<subsystem>>
Sistem de plata
<<boundary>>
CatalogCursuri
// afiseaza lista cursuri()
<<interface>>
ICatalogCurs
<<subsystem>>
Catalog de cursuri
Curs 2
Curs 2
Mecanisme arhitecturale
Modele de programare
Curs 2
Mecanisme arhitecturale
Trebuie identificate i modelate toate mecanismele arhitecturale necesare
Arhitectura trebuie s ofere o imagine complet i atotcuprinztoare asupra
mecanismelor
Trebuie definite modelele de programare.
Curs 2
ntre ele, se pot muta unele dintre clase n alte pachete sau se creeaz alte
pachete.
Se verific dac exist elemente sau colaborri dintre elemente n cadrul
pachetului care pot fi separate n pachete independente
Se verific dac raportul dintre numrul de pachete i numrul de clase este
corespunztor
Curs 2
Curs 2
Cerine non-funcionale
Cerinele de performan,
fiabilitate i distribuire vor stabili
clasele active
NFPr
Logic
LoPr
Proces
Curs 2
Curs 2
<<process>>
ClasaA
<<thread>>
ClasaB
Curs 2
Curs 2
Cerine de concuren
Concurena motenit (extern)
Se stabilete dac sistemul este distribuit i dac pri ale sale opereaz concurenial
Se urmrete dac sistemul controleaz evenimente externe aflate n legtur care
apar aleator
Se urmrete dac sistemul controleaz canale independente de introducere a datelor
Curs 2
Curs 2
Curs 2
Curs 2
<<process>>
<<process>>
ServerWeb
BrowserWeb
<<Client Page>>
Principala
<<Client Page>>
IncepeInregistrare
<<Client Page>>
Inregistrare
<<Client Page>>
AlegeCurs
<<process>>
ServerAplicatie
<<Server Page>>
TrimiteInregistrare
<<process>>
<<process>>
TPM
ConectorCatalogCursuri
<<Server Page>>
ObtineListaCursuri
<<thread>>
CoordonatorInregistrareWeb
<<Server Page>>
ObtineListaSpecializari
+ obtineSpecializari()
Curs 2
Curs 2
<<process>>
ServerAplicatie
(din managerii de resurse)
<<Server Page>>
ObtineListaSpecializari
(din paginile serverului)
ListaSpecializari
(din artefacte universitare)
<<Server Page>>
ObtineListaCursuri
(din paginile serverului)
ListaCursuri
(din artefacte universitare)
Curs 2
Diagrame de colaborare
Concurente
Curs 2
Curs 2
<<process>>
ServerAplicatie
<<Server Page>>
ObtineListaSpecializari
<<process>>
TPM
<<Server Page>>
Trimiteinregistrare
<<Server Page>>
ObtineListaCursuri
<<thread>>
CoordonatorWebInregistrare
IInregistrareWeb
Curs 2
Curs 2
PC1 :
IncepeInregistrare
SW :
ServerWeb
SA :
ServerAplicatie
WB2 :
BrowserWeb
PS1 :
ObtineListaCursuri
PC2 :
AlegeCurs
Curs 2
Curs 2
<<process>>
ApplicationServer
(din managerii de resurse)
<<Server Page>>
ObtineListaCursuri
(din paginile serverului)
<<Server Page>>
ObtineListaSpecializari
(din paginile serverului)
<<process>>
TPM
(din managerii de resurse)
<<Server Page>>
TrimiteInregistrare
(din paginile serverului)
<<thread>>
CoordonatorInregistrareWeb
(din coordonatori)
IInregistrareWeb
(din coordonatori)
Curs 2
<<process>>
BrowserWeb
(din managerii de resurse)
<<Client Page>>
Inregistrare
(din paginile client)
Mecanism IPC :
COM
Mecanism IPC :
COM
<<process>>
ServerWeb
<<process>>
ServerAplicatie
<<process>>
TPM
<<submit>>
<<Server Page>>
TrimiteInregistrare
(din paginile server)
IInregistrareWeb
(din coordonatori)
<<thread>>
CoordonatorInregistrareWeb
(din coordonatori)
<<Form>>
FormularAlegereSpecializare
(din paginile client)
Curs 2
Procese independente
Coeziune mare ntre clasele corespunztoare aceluiai proces
Legtur slab ntre clasele corespunztoare aceluaii proces
Curs 2
Curs 2
Vedere logic
LoIm
PrIm
Vederea de
implementare
Vederea cerinelor
non-funcionale
NFIm
Se stabilete modalitatea de
mpachetare a elementelor active.
Curs 2
Curs 2
Curs 2
Curs 2
Vederea de implementare
<<urmeaz>>
<<.CPP>>
ConectorCatalog
CursuriPrincipal
<<.H>>
TipuriDate
Domeniu
<<.H>>
TipData
Orb
<<.H>>
TipuriDateUniversitate
<<.CPP>>
ClaseORB
Curs 2
Curs 2
Curs 2
Curs 2
Curs 2
Vederea de implementare
<<EXE>>
ConectorCat
alogCursuri
<<.CPP>>
ConectorCatalog
CursuriPrincipal
<<.H>>
TipuriDateUniversitate
<<urmeaz>>
<<.H>>
TipuriDate
Domeniu
<<.H>>
TipData
Orb
<<.CPP>>
ClaseOrb
Curs 2
Curs 2
Vederea de implementare
Vederea logic
<<urmeaz>>
<<legatura>>
<<Client Page>>
IncepeInregistrare
(din paginile client)
<<Form>>
FormularCautareCurs
(din paginile client)
<<urmeaz>>
<<Form>>
FormularAlegereCurs
(din paginile client)
<<trimite>>
<<creeaza>>
<<Client Page>>
Inregistrare
(din paginile client)
<<Server Page>>
ObtineListaCursuri
<<trimite>>
<<creeaza>>
<<Client Page>>
AlegeCurs
<<trimite>>
<<Form>>
FormularAlegereSpecializare
(din paginile client)
<<execution>>
FormularCautareCurs
<<Server Page>>
ObtineListaSpecializari
(din paginile server)
<<execution>>
FormularAelegereCurs
<<execution>>
FormularAlegereSpecializare
<<urmeaz>>
<<Server Page>>
TrimiteInregistrare
(din paginile server)
Curs 2
Curs 2
Unitati de punere n
mediul real de
functionare
InterfataLAN
InterfataWeb
<<layer>>
InterfataUtilizator
Managementul
sesiunii
<<layer>>
LogicaDomeniu
<<layer>>
Servicii
Middleware
AccesBazaDate
Reutilizare
Coordonatori
AccesSistem
Existent
ArtefacteUniversitate
Curs 2
ASP
VBScripts
ObtineCurs
sVBScript
ObtineSpec
sVBScript
Inregistrare
VBScript
Curs 2
Vederea
Vederea de
logic
implementare
LoDe
Componentele sunt grupate n uniti i
se asociaz nodurilor.
ImDe
Vederea de punere
n mediul real
de funcionare
PrDe
NFDe
Vederea cerinelor
Vederea de proces
non-funcionale
Curs 2
Curs 2
Curs 2
Necesitatea distribuirii
Reducerea ncrcrii procesorului
Cerine speciale de procesare de exemplu, procesarea digital de
semnal, unde este nevoie de procesoare specializate
Preocupri referitoare la scalabilitate un numr prea mare de
utilizatori concureni care nu poate fi suportat de ctre un singur
procesor
Preocupri de natur economic
Accesul distribuit la sistem
Performan
Tolerana la defectri
Dr. ing. Liviu PERNIU
Curs 2
<<Node>>
Nod #1
<<Processor>>
Procesor #1
Suport dispozitivul
De obicei este controlat de ctre un procesor
Conexiune
Conexiune
Mecanism de comunicare
Mediu fizic
<<Device>>
Dispozitiv #1
Protocol software
Dr. ing. Liviu PERNIU
Curs 2
Server
plat
<<Windows>>
PC
<<LAN>>
<<LAN>>
<<NT>>
Server aplicaie
<<LAN>>
<<Sun>>
Server catalog
de cursuri
<<dialup>>
Windows 2000
IIS
ASP
MTS
Inregistrarea paginilor server
Inregistrarea componentelor COM
<<Windows>>
Staie Web
<<LAN>>
<<Sun>>
IE6
HTTP
ODBC
Server
baz
de date
Sun Solaris v5.1
Oracle 8 v3.3
Curs 2
Client/Server
Trei nivele
Activitatea de baz se desfoar la client
Activitatea de baz se desfoar la server
Peer-to-peer
Curs 2
Client C
Client B
Client A
Aplicaie
Aplicaie
Servicii de domeniu
Browser Web
DCOM
CORBA Beans
ADO/R
Motorul
oiectului
Server de
obiecte
COM
MTS
Beans
ETS
Server
Web
HTML
CGI
ASP
Servicii oferite
de obiecte
Serviciile
obiectului
Motorul
obiectelor
Motorul
obiectului
Java
n
n exemplul
exemplul de
de mai
mai sus,
sus, clientul
clientul A
A este
este un
un exemplu
exemplu de
de arhitectur
arhitectur pe
pe 22 nivele,
nivele, cu
cu cea
cea mai
mai mare
mare parte
parte aa logicii
logicii aplicaiei
aplicaiei plasat
plasat
pe
server.
Clientul
B
reprezint
o
arhitectur
tipic
pe
3
nivele
cu
serviciile
de
domeniu
plasate
ntr-un
server
de
obiecte.
Clientul
pe server. Clientul B reprezint o arhitectur tipic pe 3 nivele cu serviciile de domeniu plasate ntr-un server de obiecte. Clientul
C
C reprezint
reprezint oo aplicaie
aplicaie tipic
tipic Web.
Web.
Curs 2
Architectura peer-to-peer
Servicii
oferite de
aplicaie
Aplicaie
DCOM
CORBA Beans
ADO/R
COM
MTS
Servicii
oferite de
domeniu
Servicii de
date
Beans
ETS
Servicii oferite
de obiecte
Motorul
obiectelor
Aplicaie
DCOM
CORBA Beans
ADO/R
COM
MTS
Beans
ETS
Servicii oferite
de obiecte
Motorul
obiectelor
Curs 2
Curs 2
Colectarea informaiilor
Modelele de arhitectur elaborate
Lista ordonat dup periculozitate a riscurilor identificate
Specificaiile critice de funcionalitate
Criteriile de reuit (atributele de calitate stabilite)
Rezultatele testrii prototipului arhitectural
Justificri ale deciziilor cheie luate pe parcurs
(continuare)
Curs 2
Curs 2
Funcionalitate
Performan
Uurina utilizrii
Securitate
Disponibilitate
Rapiditatea modificrilor
Mentenan
Portabilitate
Uuurina integrrii
Testabilitate
Prioriti
Prioritate: S sau s pentru calitate sczut
M sau m pentru calitate medie
I sau i pentru calitate ridicat
Satisfacie: 0 (zero) pentru nesatisfctor
1 pentru satisfctor
2 pentru foarte mulumit
Satisfacia
Administrator sistem
ntreinere
Programator
Arhitect
Vnzri i suport
<Proiect>
Client
Utilizator final
Formularul
Formularul alturat
alturat a
a fost
fost
propus
propus de
de ctre
ctre Herman
Herman
Postema
Postema n
n lucrarea
lucrarea
Architecture
Architecture Assessment:
Assessment:
Approach
Approach and
and Experiences,
Experiences,
Proceedings
Proceedings of
of SPI
SPI 98
98,, Monte
Monte
Carlo,
Carlo, Dec.
Dec. 1998.
1998. Profilul
Profilul
prezint
prezint o
o evaluare
evaluare subiectiv
subiectiv
referitor
referitor la
la ndeplinirea
ndeplinirea
ateptrilor
ateptrilor persoanelor
persoanelor
interesate
interesate de
de bunul
bunul mers
mers al
al
proiectului.
proiectului. Profilul
Profilul conine:
conine:
calitile
calitile sistemului
sistemului care
care
se
se evalueaz;
evalueaz;
prioriti
prioriti subiective
subiective
atribuite
atribuite calitilor
calitilor de
de
ctre
ctre diferite
diferite persoane;
persoane;
nivelul
nivelul de
de satisfacie
satisfacie al
al
calitilor
calitilor
Curs 2
Verificarea cunotinelor
Care sunt informaiile de intrare la nceperea fazei de Elaborare?
Descriei, pe scurt, preocuprile/aspectele ce trebuie avute n vedere
de ctre un arhitect la elaborarea fiecrei vederi arhitecturale.
Descriei, pe scurt, modul de elaborare al fiecrei vederi arhitecturale.
Care sunt activitile prevzute pentru evaluarea arhitecturii
elaborate?