Sunteți pe pagina 1din 5

Partea scrisa Lucrarea Nr.

Descrierea n detalii arhitectura fiecruia din sistemele A i B.


SystemA

Schema iniial
Sistemul const din patru filtre conectate prin conducte.
InputFile - fiierul de intrare n care se conin datele studenilor i anume: Nume Prenume, specializarea i ID
cursurilor complectate. Evident ca fluxul de intrare se extrage din acest fi ier.
SplitMSE - divizeaz elevi n raport cu un anumit criteriu
Course15716 face filtrarea dupa curs (15716)
Course21588 face filtrarea dupa curs (21588)
MergeFilter citete nregistrrile cu studenii dintr-un fiierul de intrare InputFile i desparte informaiile n
studeni la IS i studeni la alte specializri. Fiierul de intrare este orientat pe cmpuri i folosete spaiul ca
separator. Fiecare linie conine un singur student i are urmtoarea structur:

ID student

Nume i prenume

Specializarea

Lista cursurilor

100234009

Popescu Ion

IACD

13567 23324 21701

CourseFilter dou filtre, cte unul pentru fiecare curs necesar cu responsabilitatea
de a determina faptului c studenii au absolvit sau nu cursul respectiv.
Ambele primesc intrare de la filtrul SplitFilter. Ieirile ambelor filtre sunt trimise la cte un
filtru unificator.
MergeFilter scrie rezultatul ntr-un fiier.
Filtrul Accepted - va nscrie ntr-un fiier intrrile acceptate OutputFile.
Filtrul Rejected - va nscrie ntr-un fiier intrrile rejectate OutputRejected.

FiltruSort - este de tip tampon (Buffer) i realizeaz sortarea dup nume a listei finale a studenilor
acceptai.

Dup prerea mea cred c dup ce se face sortarea dup curs si datele apar ntrun document apartea,
dar fiind cam ntortocheate ar trebui sa fie un continut doar din numele studentului i specialitatea.

Prin MergeFilter1 eu am fcut adunarea tuturor datelor care au loc n Course15716,


Course21588, apoi au fost lsate doar informaii ce in de numele studentului si specialitatea
n final fiierul MergeFilter, iniializeaz un vector cu componente de tip string, citete i scrie
toi studenii n vector.
Analogic ultimul pas sau fcut sortrile necesare i care au fost nscrise ntrun fisier *.txt

SistemB

n sistemul B am folosit 3 filtem cite un filtru pentru fiecare curs Pentru optimizarea sitemului ini ial to i
studenii sunt divizai prin divizorul SplitStudenti. n continuare toi studenii care au finisat cursurile IACD i
cei care nu au finisat specialitatea IACD vor trece prin filtrele cu fiecare curs.
n MergeFilter1 se va verifica n parte dac fiecare student ace finisat toate 3 cursuri sau daca numele unui
student figureaz n toate trei cursuri apoi datele se transmit la filtrul MergeFilter i OutputFile

Descriei modul n care fiecare sistem nou implementeaz fiecare din


funcionalitile nou cerute.
n Sistemul A Pentru modificarea formatului final am aplicat nc un filtru care va face nu numai
sortarea dar va sterge informaia nu chiar utila (adic vom lsa doar numele studentului i
specialitatea) public String studentOutput(),n classa MergeFilter unde realizm nscrierea n fiier
vom apela anume metoda studentOutput().

n sistemulB am folosit algoritmul din sistemul A doar ca puin modificat. Am fcut sortarea dup fiecare curs n
parte, dup care cu ajutorul filtrului MergeFilter1verificm datele pentru fiecare student dac face parte din
toate trei cursuri.

Precizai care au fost deciziile arhitecturale majore i care au fost problemele critice de proiectare pentru
modificarea arhitecturii sistemului de baz. Discutai i justificai deciziile de proiectare pe care le-ai
luat (utiliznd conceptele arhitecturale i vocabularul utilizate la curs).
SistemulA. Modificare ce vizeaz formatului ieirii finale i anume prezentarea numai a Numelui i specializrii
nu afecteaz n nici un mod structura arhitectural.
Pentru raportarea intrrilor rejectate se implimenteaz o cale de execu ie paralel cu cele acceptate ns
rezultatul se nscrie n fiierul OutputRejected. De menionat ca CourseFilter n acest caz este prevzut cu dou
iesiri.

Sortarea aduce introducerea n diagram a unui filtru nou SortFilter amplasat ntre filtrul de unificare i fi ierul
Output.
SistemulB: Realizarea sistemuluiB a fcut puin careva schimbri n structura arhitecturala sistemului A. n
acest caz exist mai multe opiuni de implimentare a ordinei de execu ie. Fie divizarea ini ial n specialit i fie
dup trecerea a celor dou filtre comune. Totui analiznd riguros cele dou op iuni am ales prima variant
deoarece este mai rapid prin formarea a dou cai paralele de execu ie a sistemului mbunt ind astfel
performana sitemului dat.
Discutai atributele de calitate pe care le promoveaz i pe care le inhib arhitecturile acestor sisteme i
deciziile de proiectare pe care le-ai luat cu implicaii directe n promovarea sau inhibarea acestor caliti.
Atribute de calitate promovate
Simplitate sistemul este compus din component primitive simple de tip split, merge, filter i conducte care
leag aceste componente urmrind acest legtur se poate cu cuno tin e minime de stabilit
destinaia sitemului.
Reutilizarea filtrelor - datorit independenei funcionale a acestora ele pot fi reutilizate sau chiar extinse cu
eforturi minimale, ca de exemplu filtrul Sort n cazul sistemuluiA
Modificabilitate n sistemulA cu uurin a fost adaugat filtrul Sort iar in SistemulB am realizat o
reconfigurare mult mai ampl.
Atribute de calitate inhibate
Performan - se poate crete prin paralelizarea procesrii datelor
Interactivitate (dificil)
Detectarea, tratarea erorilor i refacerea sistemului
Exist alte soluii posibile pe care le-ai fi putut adopta? Ce v-a determinat s alegei soluia voastr n
raport cu aceste soluii posibile?
NU---Cred c soluia mea este cea mai usoar dup construcie i modul de n elegere
Se modific rezultatele calculului dac se inverseaz oricare dou filtre?
Pentru sistemul A nu.
Pentru sistemul B nu.
S-ar modifica rezultatele dac filtrele ar fi executate pe calculatoare distribuite cu
diferite frecvene de ceas?
Nu cred
n ce msur implementrile voastre difer de cele ale noiunii idealizate de arhitectur pipe-and-filter?

Analiznd arhitectura sitemului conchidem ca ea respect n foarte mare msur modelul idealizat al arhitecturii
pipe-and-filter.
Pentru sistemulB cred c ordinea datelor de ieire nu depinde de ordinea de execu ie a filtrelor

S-ar putea să vă placă și