Documente Academic
Documente Profesional
Documente Cultură
1B
Dat fiind faptul că modelele joacă un rol important în ingineria cerințelor și a proiectării în sine,
acestea ajută atât dezvoltatorii sistemului cât și utilizatorii acestuia, 3 motive importante ce
demonstrează necesitatea modelelor ar fi:
Faptul că acestea ajută la clarificarea a ce face un sistem în uz, existent.
Modelul unui sistem existent este ca o bază de discuție a părților sale tari și slabe.
Medelele elaborate pentru sistemele existente conduc la stabilirea cerințelor pentru un nou
sistem care poate deveni mai eficient datorită experienței modelelor anterioare.
Un model pentru sistemele existente nu este neapărat necesat să fie atât corect cât și complet
pentru că acesta servește drept o bază de cunoștințe pe care se bazează modul de lucru ap
sistemului cu date reale și condiții neprevăzute. Astfel se poate identifica și trata mai ușor micile
erori. Uneori este mult mai avantajoas din punct de vedere financiar și ar resurselor, crearea unui
sistem în modul acesta din motiv că crea unui sistem imperfect și îmbunătățirea acestuia la scurt
timp după distribuție (release 1.0) decât crearea unui model perfect din start.
b) Enumerați trei motive importante pentru care ați crea un model pentru
un nou sistem. Este necesar ca un asemenea model de sistem să fie
deopotrivă corect și complet?
Crearea unui model pentru un sistem nou este foarte importantă și avantajoasă, acest model
este creat:
Pentru a facilita înţelegerea funcţionalităţii sistemului intenționat spre creare.
Pentru a discuta propunerile de design și pentru a documenta sistemul în vederea
implementării.
Pentru a comunica cerințele propuse altor stakeholderi.
Cu toate că crearea modelelor pentru sisteme noi este un proces complex, este necesar sau
măcar de dorit ca acestea să fie totalmente corecte și complete de la început, din cauza că astfel se
va obține o performanță maximă cu funcționalitățile necesare implementate și toate cerințele luate
în considerare.
Folosirea unui model structural este foarte potrivit în situația în care este proiectat pentru o
bază de date deoarece evidenţiază entităţile sau fluxurile de date ce sugerează arhitectura
sistemului.
Este cunoscut faptul că aceste modele prezintă câteva dificultăți și anume : identificarea
claselor (cere o înţelegere profundă a domeniului de aplicaţie), modelarea de entităţi abstracte și
reutilizarea intre sisteme diferite, NU se recomandă utilizarea acestor modele în situații cu un număr
mare de clase, multe entități abstracte și sisteme care necesită o utilizare sporită cu alte sisteme
diferite.
d) Explicați utilitatea modelului arhitectural 4+1, dar și caracterul generic
al său, din punctul de vedere al fiecărei categorii de stakeholderi.
Modelul arhitectural 4+1 este folosit pentru descrierea arhitecturii a sistemelor software
intensive (SSI) care se bazează pe utilizarea multiplă și concurentă a perspectivelor. Perspectivele
sunt folosite pentru a descrie sistemul din diferite puncte de vedere ale stakeholder-ilor precum end-
users, dezvoltatori, inginer de sistem și manager de proiect.
Cele patru perspective ale modelului sunt : logic, dezvoltare, proces și fizic. În plus, anumite
scenarii sunt folosite în vederea ilustrării arhitecturii ce servește ca fiind perspectiva “+1”, de aceea
modelul arhitectural este numit și 4+1.
Modelul arhitectural 4+1 deține un caracter generic și nu este restricționat niciunei notații,
instrument sau metodă de proiectare. Această abordare este consistentă cu viziunea 4+1 a lui
Krutchen(1995) asupra arhitecturilor de sistem.
Din punct de vedere a categoriilor de stakeholderi putem analiza următoarele:
1. Perspectiva logică sprijină cerințele funcționale – ce anume ar trebui ca sistemul să furnizeze
cu privire la serviciile oferite utilizatorilor. Diagramele UML sunt folosite pentru a reprezenta
această perspectivă și includ diagramele de clase și de stare.
2. Perspectiva de proces se ocupă cu aspectele dinamice ale sistemului, explică procesele
sistemului și modul cum aceste comunică și se focusează pe comportamentul timpului de
rulare al sistemului. Diagramele UML includ diagramele de secvență, comunicare și activitate.
3. Perspectiva de dezvoltare ilustrează un sistem din punctul de vedere al unui programator și
se ocupă cu gestiunea software-ului. Utilizează diagrama de componente UML pentru a
descrie componentele sistemului. Diagramele UML folosite în reprezentarea perspectivei de
dezvoltare includ diagramele de pachete
4. Perspectiva fizică descrie sistemul din punctul de vedere al unui inginer de sistem și se
ocupă cu topologia componentelor software pe stratul fizic precum și conexiunile fizice între
aceste componente. Diagramele UML folosite în reprezentarea perspectivei fizice includ
diagramele de implementare.
5. Scenarii : descrierea arhitecturii este ilustrată utilizând un set micuț de scenarii care devin a
cincea perspectivă. Scenariile descriu secvențe de interacțiuni între obiecte și între procese.
Acestea sunt folosite pentru a identifica elementele arhitecturale, să exemplifice și să valideze
proiectarea arhitecturii. De asemenea, joacă un rol important ca fiind un punct de începere
pentru teste la un prototip de arhitectură.
Menținerea unui nivel înalt de abstractizare permite inginerului software să ignore detaliile
irelevante și să se concentreze asupra fiecărei probleme la un anumit nivel de generalitate.
Proiectarea cu flexibilitate este anticiparea eventualelor modificări ale proiectului și pregătirea
pentru acestea. Moduri de realizare a unui proiect flexibil :
1. Crearea de entități abstracte
2. Reducerea gradului de cuplare și creșterea gradului de coeziune a modulelor
3. Păstrarea opțiunilor de proiectare
4. Construirea de cod reutilizabil și reutilizarea codului
De asemenea un efect de menținere a unui grad înalt de abstractizare în fiecare etapă de
proiectare conduce la un nivel înalt de abstractizare a sistemului prin ascunderea sau amânarea
tratării detaliilor. La fel, se păstrează un nivel de abstractizare cât mai înalt în vederea reducerii
complexității.
Diferite aspecte ale unui sistem software trebuie proiectate astfel incat sa poata fi reutilizate
in diferite contexte, in cadrul sistemului curent sau in cadrul altor sisteme.
Reutilizabilitatea poate fi incorporata la nivel de:
Procedura
Clasa
Cadru (Framework)
Câteva strategii pentru sporirea gradului de reutilizabilitate (construirea de componente
reutilizabile) pentru stiva din cadrul sistemului LIBSYS ar fi:
1. Construirea unui proiect cat mai simplu si general
2. Aplicarea precedentelor trei principii de proiectare:
3. Cresterea gradului de coeziune
4. Reducerea gradului de cuplare
5. Sporirea nivelului de abstractizare