Curs 3 Curs 5

[Curs nr.4]

Regula: faza de analiza poate fi considerata ca incheiata cand echipa a elaborat aproximativ 80% dintre scenariile principale si o colectie reprezentativa a scenariilor secundare. Scenariile principale trebuie sa se refere doar la comportamentul extern al sistemului, la constrangerile impuse asupra lui si la raspunsul sistemului la posibile evenimente nedorite.

Proiectarea

Scop: crearea unei arhitecturi pentru viitoarea implementare.
O data terminata analiza, exista de multe ori tendinta de a considera modelul domeniului rezultat din analiza ca fiind gata pentru codare, fara a mai trece prin faza de proiectare. Unii incearca sa ignore aceasta faza fie pentru ca sunt grabiti sa ajunga la produsul finit si nu mai au timp de arhitectura, fie pentru ca nu au convingerea ca proiectarea arhitecturala are vreo valoare reala.
Fara o arhitectura sanatoasa, un proiect nu va avea o integritate conceptuala, clasele nu se vor imbina, chiar daca ele, luate separat sunt bune, iar sistemul rezultat va fi fragil, greu de inteles si mult mai complex decat ar fi nevoie de fapt.
Proiectarea poate incepe indata ce echipa a obtinut o intelegere rezonabila asupra cerintelor. Ea se concentreaza asupra structurii statice si dinamice a sistemului. In paralel cu proiectarea, analiza poate continua, in principal pentru a studia partile inca nesigure ale comportarii sistemului. Proiectarea serveste in primul rand la crearea unui schelet concret al sistemului pe care vor fi "agatate" componentele rezultate la implementare. Pentru proiecte de complexitate modesta, al caror ciclu de viata este de aprox. 1 an, faza de proiectare dureaza cam 1 luna, rar depasind 2 luni.
 La terminarea acestei faze, managerii trebuie sa poata raspunde la urmatoarele intrebari: Cautarea raspunsurilor la aceste intrebari reprezinta motorul procesului de proiectare. Primele 2 intrebari din lista de mai sus privesc forma arhitecturii rezultate. A 3-a intrebare priveste caile de rezolvare a problemei prin adaptarea unor cadre existente, utilizand diverse generatoare de aplicatii si exploatand anumite sisteme mostenite (legacy sistems). Ultimele intrebari se refera la stabilirea unui plan de evolutie a arhitecturii in faza urmatoare.