Documente Academic
Documente Profesional
Documente Cultură
(software engineering)
Prelegeri – 30 ore
Seminare – 10 ore
Laborator – 20 ore
examen
Tema 1:Metodologii de proiectare
a produselor program
1. Fazele de proiectare a produselor program(PP).
1.1. Faza de analiză.
1.2. Faza de proiectare.
1.3. Faza de implementare.
1.4. Faza de testare-validare.
2. Metodologii de dezvoltare (MD) a PP.
2.1. MD secvențială.
2.2. MD cascadă.
2.3. MD ciclică.
2.4. MD de tip ‘V- Model’.
2.5. Metodologia RUP (Rational Unified Process).
Subiectul 1.1.
• Faza de analiză. Faza rezidă în formularea cerințelor (requirements) față de
sistemul a fi dezvoltat. Cerințele pot fi formulate atât într-un limbaj formal, cât și în
limbaj natural.
Rezultatul acestei faze este un document al cerințelor – caietul de sarcini.
Caietul de sarcini este un standard oficial.
Caietului de sarcini este un text care definește un set de relații între obiecte,
acțiuni, stări, scenarii tipice, scenarii atipice, cerințe noi și cele vechi. Relațiile
definite sunt, de obicei, funcționale.
Stările țin de obiectele sistemului. Stările denotă contextele, stările de lucruri ale
Universului, în care va funcționa sistemul proiectat.
Subiectul 1
Evenimentele ce se produc în Universul sistemului declanșează tranziția obiectelor
de la o stare la alta. În sistem există stări declarate drept stări inițiale, cât și stări
declarate ca fiind stări finale. Este vorba de o abordare automatică cu
stări finite.
Scenariile tipice sunt șiruri de stări care modelează tranziția sistemului din
stările inițiale ale sistemului a fi dezvoltat în stările sale finale. Această
tranziție declanșată de evenimentele din domeniul problemei modelează
funcțiile sistemului. Rezolvarea de către sistem a problemelor stipulate de
dezvoltator este înlocuită cu abilitatea utilizatorului de a gestiona
scenariile tipice ale acestui sistem.
Scenariile atipice sunt șiruri de stări care modelează reacția sistemului la
erori. Aceste scenarii sunt indispensabile pentru menținerea integrității
funcționale a sistemului.
Modificarea cerințelor ține de eliminarea unor cerințe deja formulate,
includere unor cerințe noi sau modificarea cerințelor vechi. Toate operațiile
enumerate influențează integritatea funcțională a sistemului.
Subiectul 1.2.
• Faza de proiectare. La această etapă, pe baza cerințelor determinate în
procesul de analiză a domeniului modelat de sistemul dezvoltat,
este stabilită arhitectura sistemului.
Arhitectura include următoarele părți:
1. Componentele, care formează structura sistemului. Sunt construite pe baza
cerințelor determinate la faza de analiză.
2. Comportamentul sistemului este reacția la evenimentele produse atât în
mediul exterior sistemului - Universul, cât și la evenimentele din interiorul
lui.
3. Interfața gestionează evenimentele produse.
Faza de proiectare produce planul de proiectare (implementarea
cerințelor). Planul include următoarele părți componente: mediile de
proiectare, platforma, limbajele, structura, interfețele etc.
La această fază sunt elaborate și modalități de gestionare a priorităților
critice: condițiile când sistemul nu funcționează corect. Tot aici este inclusă
și analiza performanțelor sistemului.
Subiectul 1.3., 1.4.
• Faza de implementare. La această fază se construiește efectiv sistemul a fi
dezvoltat pe baza documentelor furnizate de fazele precedente: caietul de
sarcini și planul de proiectare. Faza se încheie cu instituirea planului de
implementare. Echipele de dezvoltare lucrează conform planului de
implementare. Erorile care apar în procesul de implementare sunt analizate
reieșind din tipul erorilor: erori critice, erori necritice și erori inclasificabile.
• Faza de testare. Testarea sistemului dezvoltat se face cu ajutorul unui
pachet (colecții) de programe – testul de regresiune. Testarea se efectuează
conform unui plan:
1. Testarea internă - se testează fiecare funcție a sistemului.
2. Testarea unităților – se testează interacțiunea funcțiilor.
3. Testarea aplicației – se testează sistemul în întregime.
4. Testarea la stres – sistemul este supus unor testări la limită.
Subiectul 2.1.,
• Metodologia secvențială. Conform metodologiei secvențiale sistemul se
construiește respectând ordinea temporală a fazelor. Trecerea de la o fază la
alta necesită decizii centralizate:
Analiză
Proiectare
Codare și depanare
Testare și validare
Mentenanță și validare
Subiectul 2.3.,2.4.
• Metodologia ciclică. Metodologia este asemănătore cu metodologia
secvențială, dar permite iterații. Acest lucru permite optimizarea timpului
rezervat implementării fiecărei faze. Schematic tranziția de la fază la alta
poate fi reprezentată astfel:
analiză Testare
Proiectare Testare
Proiectare Testare
Implementare
Subiectul 2.5.
• Metodologia RUP (Rational Unified Process). Metodologia a fost elaborată
de compania Rational Software.
Principiile metodologiei RUP sunt:
1. Dezvoltarea iterativă a produsului.
2. Managementul cerințelor.
3. Arhitectura bazată pe componente.
4. Modelarea vizuală.
5. Controlul modificărilor.
Metodologia RUP include:
1. Elaborarea Vocabularului lexical.
2. Determinarea fluxului principal de evenimente pe baza scenariilor tipice.
3. Determinarea fluxului alternativ de evenimente pe baza scenariilor atipice.
4. Proiectarea pre-condițiilor de reacție la evenimente.
5. Proiectarea post-condițiilor de reacție la evenimente.
Tema 2: Modele. Modelarea produselor program.
Limbaje de modelare a produselor program
1. Conceptul de model al realității.
2. Model, meta-model, obiecte. Conceptul de multe-
modelare și descrierea unui obiect complex.
3. Aspecte și niveluri la descrierea produselor program.
4. Limbajul unificat de modelare a produselor soft
UML. Structura.
5. Conceptele fundamentale ale mediului Enterprise
Architect 7.5.. Realizarea limbajului UML în mediul
EA.
Subiectul 1,2
• Modelarea realității include următoarele operații ale rațiunii:
Aplică cardul
Abonat
Introduce PIN
Av ansează suma
Retrage numerar
Chitanța
Retrage Cardul
Subiectul 4,5
Există circa 40 de limbaje de modelare a produselor program. Limbajele sunt
orientate pe modelele enunțate mai sus. Fiecare limbaj realizează un model.
Limbajul de modelare UML a fost obținut prin reuniunea a trei limbaje de
modelare: Grady Booch, OMT ( Object Modeling Techniques), OOSE (Object
Oriented Software Engineering). Ca rezultat limbajul folosește pentru modela
rea produsului program 3 modele enunțate mai sus: modelul cazurilor de
utilizare, modelul structural (static) și modelul comportamental.
Limbajul UML asigură vizualizarea, specificarea, elaborarea și documentarea
produselor program.
Limbajul UML (2.4.1. ) este constituit din fraze lingvistice denumite diagrame.
Matematic, diagramele reprezintă niște grafuri. În total sunt 9 tipuri.
Diagramele constau din elemente de modelare: clase, obiecte, relații de
asociere, dependență, generalizare etc. Diagramele se reunesc în reprezentări
- views.
Subiectul 5
• Sunt 5 reprezentări tipice care modelează 5 aspecte de realizare a produselor
program:
1. Reprezentarea logică (Logical view) descrie modelul – obiect al produsului. Ea
poate conține diagramele de clase, secvențiale, stare, colaborare
2. Reprezentarea proceselor (Process view) descrie interacțiunea proceselor –
structuri de alocarea a resurselor. Nivelul are un caracter dinamic. În UML există un
tip dedicat de diagramă – diagrama activităților care asigură reprezentarea
proceselor.
3. Reprezentarea fizică (Physical view) descrie mediul de existență a produsului,
adică amplasarea componentelor pe mediul fizic. Amplasarea e descrisă de
diagrama de desfășurare (Deployment).
4. Reprezentarea componentelor (Development view) descrie componentele
produsului soft: pachete (package), biblioteci etc. Componentele sunt prezentate de
diagrama componentelor și de diagrama pachetelor.
5. Reprezentarea cazurilor de utilizare (Use Case view) descrie interacțiunea
produsului cu mediul său extern: funcțiile produsului la cel mai înalt nivel de
abstractizare. Sunt similitudini aglutinante cu cerințele beneficiarului față de
produs.
Subiectul 5
• Schematic reprezentările pot fi prezentate astfel:
Logical Process
View View
Use Case
View
Physical Component
View View
Alege cursurile
predare
Profesor
Catalogul cursurilor
Noteaza studen?ii
Login
Alege cursurile
frecv en?a
Student
Informa?ie despre
profesori
Închide înregistrarea
Operator
Informa?ie despre
studen?i
Tema 3: Managementul cerințelor (requirements)
față de produsul program proiectat
1. Metodele de identificare și formulare a
cerințelor față de produs.
2. Clasificarea cerințelor: cerințe funcționale,
cerințe non-funcționale, cerințele
utilizatorilor.
3. Perfectarea caietului de sarcini pentru
produsul program.
4. Standardul IEEE pentru cerințe.
Subiectul 1,2
• Definiție 1: Cerințele implică două componente:
1. Lista serviciilor care sunt oferite de fiecare cerință.
2. Restricțiile impuse serviciilor oferite (constraints).
Metodele de identificare a cerințelor față de produs pot fi reduse la:
1. Interviuri cu utilizatorii potențiali.
2. Întruniri cu părțile interesate (stakeholders).
3. Brainstorming, care include o agendă precisă cu documentarea ideilor.
4. Reiterarea p. 1-3 se impune ori de câte ori este necesar.
(Detalierea - la lucru individual)
uc MBancomat
Relatia (asociere)
Use Case
Actor
uc MRegistration
Alege cursurile
frecv enta
4..5
0..*
Student
uc MRegistration
Alege cursurile
predare
Catalogul cursurilor
Subiectul 3. Exemplu. Generalizarea de actori
uc MRegistration
Profesor
Utilizator
Student
Operator
Subiectul 3. Relația de includere face legătura între doua cazuri de utilizare.
Cazul inclus este încapsulat în cazul de bază (cazul spre care arată săgeata).
Exemplu. Cazuri de utilizare conectate de relația “include”.
uc MRegistration
uc MRegistration
«extend»
Logare nereușită
Subiectul 4. Exemplu. Din elementele prezentate sa se proiecteze o diagramă UseCase
inserând relațiile potrivite .
uc Caz
Conditiile Plata
Comandarea Depozit
Informarea Client
Procurarea Marfii
Cumparator
Vanzator
Cumparator Auto
Vanzator Auto
Tema 5. Managementul structurii produsului
program. Aspectul static al sistemului soft.
1. Modelul structurii produsului program: clasă,
obiect, atribut, asociere, operație.
2. Conceptul de clasă. Caracterizarea unei clase.
Reprezentarea unei clase în limbajul UML.
3. Definiția relațiilor între clase: asociere,
agregare, compoziție, dependență,
generalizare, realizare.
4. Conceptul de obiect . Instanțierea.
Subiectul 1.
• Definiție : Obiectul este o entitate prin care putem vorbi despre lumea (domeniul) a fi
modelat. Obiectul are identitate, stare și comportament invocabil.
Lumea ( spus și “Univers”) a fi modelată este tipizată: fiecare obiect are (aparține) tipul său.
Tipurile sunt mulțimi cu anumite proprietăți. Există o ierarhie a tipurilor. Tipurile se mai
numesc și clase.
• Definiție : Clasă este o descriere a proprietăților, comportamentului și relațiilor între
obiectele de un anumit tip ( nu toate proprietățile obiectelor sunt descrise de o anumită
clasă). Există o ierarhie a claselor (tipurilor). Clasa are nume, structură, comportament și
relație
• Definiție : Atributul unei clase reprezintă informația deținută de clasă.
• Definiție : Asocierea este o relație între două sau mai multe clase.
• Definiție : Operația (metode) este un serviciu ce este asigurat de clasă. Ține de aspectul
comportamental.
Exemple. Clase sunt: PERSOANA, ANGAJAT , STUDENT, CATALOGUL_ AUTO,
CLIENT etc.
Obiecte sunt: < student. nume:”Ion Mocanu”, 09/01/2015>, <client. nume:”John Ursu”,
10/13/2014; vârsta:25;client.adresa,”Chișinău”>.
Atribute sunt: <nume, “Ion Mocanu”>, <vârsta, 25>,
Operații sunt: <calculează_notaMedie ()>
Subiectul 1. Asociere. Să se precizeze relațiile diagramei desenând elementele
lipsă.
uc MBancomat
Persoana
Angaj at Student
nume v arsta
adresa
Subiectul 2
• Clasa are următoarele elemente constructive:
1. Nume, care denumește clasa. Este scris cu majuscule.
2. Atribute - identifică proprietățile obiectelor , pe baza cărora este construită clasa.
3. Operațiile – definesc aspectul comportamental al obiectelor.
4. Specificatorii vizibilității atributelor după cu urmează: “+ “ – atribut public, “-” –
atribut privat, “#” – atribut protejat.
Reprezentarea grafică:
Client
+nume:string
-telefon:int
-adresa: string
#garant: string
+calcul_suma()
Subiectul 2
• Sunt trei tipuri de clase:
1. Clase entități (entity)- stochează valorile atributelor clasei.
2. Clase interfață (boundary) – asigură legătura între actori și cazurile de utilizarea în
modelul Use Case, de exemplu.
3. Clase de control (controller) – asigură alegere serviciilor pentru fiecare caz de
utilizare.
Subiectul 3
• Definiție : Relația este o conexiune între mai multe clase. Deoarece clasa este un
nume generic pentru mai multe obiecte de același tip, reiese că legătura se extinde
peste obiecte.
Există 4 tipuri de relații: asociere, dependență, generalizare, realizare.
• Asocierea are nume, rol, vizibilitate, multiplicitate și direcție.
Sunt doua cazuri particulare ale asocierii care au importanță: agregarea și
compoziția.
Agregarea permite din mai multe componente extinderea clasei. Este vorba de
relația “part of…”.
Compoziția a două sau mai multe clase creează o nouă clasă, care nu poate exista
în aceeași calitate fără aceste părți.
Exemplu.
1. Sala de studii poate exista fără proiector și ecranul de proiectare – agregare.
2. Automobilul fără roți nu are aceeași calitate ca și cel cu roți.
Class1 Class2
+Rol11 Asociatie +Rol12
bidirectionala Class13 Class14
0..1 * Generalizare
- first: int
Class3 Class4
Unidirectionala
Class5 Class6
Agregare
Class8
Class7
Compozitia
Class9 Class10
Dependenta
Class11 Class12
Realizare
Exemplu. Să se definească elementele lipsă de pe desen astfel ca desenul să
reprezinte o diagramă de clase.
uc Caz
Proiect
Baza de Date
Inginer Proiectant
Tipurile de
Proiecte
Proiecte Rezerv ă
Proiecte
Gestionate
Exemplu. Să se completeze elementele lipsă de pe desen astfel, încât să se
obțină o diagramă de clase reprezentând o organigramă.
uc Caz
Persoană
Postul ocupat
Resurse umane
Companie Departament
Legislație
Contabilitate
Subiectul 3
• Relația de dependență descriu interdependențele claselor.
Exemplu. Circulația trenului (deplasarea în timp) depinde de orarul rutei.
• Relația de generalizare asigură legătura între general și special.
Exemplu. Legătura între clasele ANGAJAT și PERSOANA de mai sus. În acest
caz clasa derivată moștenește (inheritance) atributele și operațiile clasei
generale. Sunt posibile ierarhii de clase .
• Relația de realizare desemnează relația de implementare, când o clasă
este implementată de alte clase. Implementarea este controlată de clasa a
fi implementată.
Exemplul.
uc UCpack
Vanzator
Client
Angaj at
Administrator
Firmei Asigurarea relatiei Asigurarea relatiei
Client-Firma Vanzare-Procurare
Operator
Exemplu.
«boundary»
Relatia
Vanzare-Procurare
«entity»
Ev identa Ev identa
Angaj atilor Angaj atilor
«control»
Relatia
Client-Vanzare-Procurare
«boundary»
«entity» Relatia
Ev identa
Client-Firma
Deserv irii Clintilor
Anexa 1 Agregare
• Exemplul 1. Agregare.
Anexa 2. Compoziție
Anexa 3. Asocieri
Student Courses
Player Team
School Department
Departament
Teacher Departament
Anexa 4. Asocieri
• Exemplu. Să se realizeze pe diagrame următoarele afirmații:
a) O facultate are mai mulți profesori, iar un profesor predă la mai multe
facultăți. Sunt profesori care predau la câteva universități.
b) Un student poate studia la mai multe facultăți. Studentul poate studia la
secția zi sau la secția cu frecvență redusă.
c) Un student poate frecventa mai multe cursuri și un curs poate fi frecventat de
mai mulți studenți. Un student poate avea cursuri la mai multe universități.
d) Compania are câteva sucursale, iar fiecare departament aparține sau
companiei sau sucursalei acestei companii.
e) Un calculator are două procesoare, două monitoare, memorie RAM și
memorie hard, iar imprimanta este partajată cu încă 3 calculatoare similare.
f) O echipă are 18 jucători, inclusiv un căpitan și un goal-keeper. Unii jucători
din lotul de bază pot aparține și lotului de juniori.
g) Un profesor poate preda cursuri la mai multe facultăți, aparținând unor
universități sau academii diferite.
h) O universitate are cel puțin 4 facultăți , 6 departamente, o contabilitate și o
secție cadre și poate partaja cantina cu alte universități.
Tema 6. Managementul aspectului comportamental
(dinamic) al unui produs program.
1. Modelul proiectării unui produs program:
componentele și regulile de interacțiune.
Interacțiunea sincronă și asincronă.
2. Compoziția secvențială a componentelor sistemului
soft. Reprezentarea compoziției în limbajul UML:
diagrama secvențială.
3. Fragmente combinate și operatori de interacțiune:
alt, break, par, critical.
4. Compoziția de comunicare a componentelor soft.
Conceptul de mesaj. Diagrama de comunicare.
Subiectul 1.
• Modelul proiectării definește nemijlocit etapa proiectării produsului
program și include:
1. Structura statică a produsului, descrisă anterior de modelul Use-Case (
cazuri de utilizare, actori și relații) și modelul de domeniu (clase, obiecte,
relații).
2. Dinamica produsului program, descrisă de diagramele de interacțiune.
Diagramele de interacțiune sunt diagrame bidimensionale: pe verticală se
depune timpul, iar pe orizontală sunt inserate componentele statice ale
produsului program. Liantul elementului static și al timpului (dinamic) este
reprezentat de metodele claselor din modelul static al produsului program.
Diagramele de interacțiune sunt de două tipuri:
1. Diagrame secvențiale, care implică nemijlocit timpul ca element al
expunerii.
2. Diagramele de comunicare, care implică mesajele ca factor de expunere.
Subiectul 1
• Diagrama secvențială include următoarele elemente: clasele, obiectele,
actorii, mesaje și relațiile.
Clasele, obiectele și relațiile sunt aceleași ca și pentru diagramele de clase.
Forma generală a mesajelor este:
[condiție] acțiune (lista de parametri)
Acțiunile sunt divizate pe tipuri: call, return, send, create, destroy etc.
Exemplu. Insert(name), <<destroy>>, type() etc.
Pentru a iniția proiectarea unei diagrame secvențiale este necesar:
1. De constituit clasele, pe baza cărora vor fi proiectate diagramele
secvențiale.
2. De precizat atributele fiecărei clase.
3. De precizat operațiile fiecărei clase.
4. De definit relațiile între clase.
5. Vom folosi în scopul proiectării modelul “Înregistrarea studenților la
cursuri.
Exemplu. Modelul “VanzareAuto”. Diagrama claselor.
class AutoVanzare
«entity»
«entity»
Tranzactie Client
Subiectul 2. Diagrama de clase cu relațiile definite
class VOPClase
«boundary» «boundary»
FormularR CatalogCurs
1
«entity» «entity»
«control» +Cursuri de Baza
0..* GraficStudent CursSem
ControlR
0..4
«entity»
StudentR
Subiectul 2. Diagrama claselor cu precizarea parțială a atributelor și a
operațiilor.
class VOPClase
«boundary» «boundary»
FormularR CatalogCurs
1
1 0..*
«entity» «entity»
«control»
GraficStudent +Cursuri de Baza CursSem
ControlR
- semestru: int
0..4 - num_stud: int
# creeaza_graficsem() : void
# creeaza_curssem() : void # adauga_student() : void
«entity»
StudentR
- nume: byte
- studentID: int
+ adauga_grafic() : void
Subiectul 2. Diagrama secvențială
sd Inregistrarea
«boundary» «control»
FormularR ControlR
Student
1.0 inregistrare_curs()
Crearea grafic;modificare
grafic;anuleaza grafic
Exemplu. Diagrama secvențială
sd InregCreare
1.0 creeaza_grafic()
1.1 obtine_cursurile()
1.2 cursuri_semestru()
1.3 obtine_curs()
1.4
afiseaza_cursuri()
1.5
afiseaz_graf_vid()
1.6 select_curs()
1.7
creeaza_gr_sem()
1.8
creeaza_graf()
1.9 ad_gr_student()
Subiectul 4.
• Diagrama de comunicare - pune accentul pe organizarea structurală
obiectelor care participă la interacțiune. Ilustrează mai bine ramificările
complexe, iterații și comportament concurent.
Poate conține: obiecte, clase, actori; legături între acestea; mesaje.
Exemple de mesaje
• Simple
• 2: display(x,y)
• Subapeluri, inclusiv valoarea de retur
• 1.3.1: p=find(specs)
• Condiționale
• 4 [x<0]: invert(x,color)
• Iterații
• 1 *[i=1..n]: update()
Subiectul 4. Exemplu. Diagrama de comunicare
sd Design Model
I(înregistrare_curs() I(accept_înregistrare()
accept_înregistrare()
da
I(creecreează grafic()
……
Subiectul 2. Exemplu. Diagrama de activități
Achitarea_facturiii
Inceput
Verifica Sfarsit
Contul? Respinge Plata
ActivityFinal
Contul Permite
Autorizarea Platii
Subiect 2. Diagrama de activități.
act Design M odel
Inceput
AlegeServ iciul
PreiaComanda
ProceseazaComanda
AchitaContul
ComandaProcesata
ComandaVerificata
AsiguraLiv rarea
PreiaM arfa
Sfarsi t
Subiectul 2. Diagrama de activități. “Swimlanes”.
act Design M odel
Inceput
AlegeServ iciul
PreiaComanda
ProceseazaComanda
AchitaContul
ComandaProcesata
ComandaVerificata
AsiguraLiv rarea
PreiaM arfa
Sfarsi t
Subiectul 3.
• Diagrama de stări este folosită pentru a modela comportamentul unui
singur obiect.
• Elementele unei diagrame de stări sunt: evenimentele, stările, acțiunile,
tranzițiile.
1. Evenimentele.
1.1. Evenimentele sunt entități atomice, care nu au durată în timp.
1.2. Evenimentele desemnează niște schimbări ce se produc în lumea
reală sau în fragmentele ei deja modelate.
1.3. Evenimentele au nume, care referă aceste schimbări.
Evenimentele pot fi clasificate:
1. În raport cu alte evenimente: sincrone – asincrone.
2. În raport cu contextul: interne sistemului –externe sistemului.
3. În raport cu obiectele:
a) semnale (signal event)- produse de un obiect și recepționate de
altul (asincron).
b) apelări de operații (call event) – un obiect cere executarea unei
operații aparținând altui obiect (sincron).
c) așteptarea scurgerii unui interval de timp (time event).
d) fixarea schimbării valorilor de true și false (change event).
Subiectul 3.
Starea este o situație în timp a unui obiect care: efectuează o acțiune;
așteaptă producerea unui eveniment, satisface unor condiții impuse din
exterior. Sunt două stări cu o destinație specială: starea inițială –
începutul modelării și starea finală – sfârșitul modelării.
Grafic stările se reprezintă astfel:
a) nume - stare
b) - starea inițială
c) - starea finală
S1 S S2
S1 S S2
Subiect 3.
• Forma generală a unei stări este:
Nume
• Entry/expresie acțiune
tranziții interne
Exit/expresie acțiune
Do/activitate
Include/diagrama sub-stări
Interfata
itemSelected()/highlightitem()
Entry/ displayitem()
Exit/hideitem()
Do/playSoundClip()
S1 S2
Subiect 3. Exemplu. Diagrama UML de stare
Start
Start Adaugare
digit(n) [numar.corect()]
+ entry / start in + entry / numadauga(string)
Initial + exit / stop out Final Final
Initial
digit(n)
Subiectul 4. Exemplu de diagramă de stare
stm Design Model
Initial
Initialization
+ exit / CourseRoster.create
+ do / initialyze
add_student/count=0
Open Close
[count=15]
+ exit / CourseRoster.addStudent(student)
+ entry / Register Student
cancel cancel
add_student [count<15]
Cancel
Final
+ exit / CourseRoster.delete
Subiectul 4. Diagrama de stare
stm Design Model
Initial
alege/nr_stud++
respinge respinge
sterge
Proiect ales
Proiect respins
proiect sters
sterge
alege[nr_stud==3]/nr_stud++
Final sterge
Proiect adjudecat
Final
Anexa 5. Etapele proiectării unui sistem informatic (abordarea RUP)
• I etapă: Formularea I-a etapă . Formularea problemei
problemei.
Conținutul: Prezentarea cerințelor (requirements) față de sistemul
Prezentarea
proiectat. cerințelor (requirements) față de sistem. Expunere verbală
Remarcă: Expunerea II-a verbală.
etapă. Perfectarea vocabularului
Vezi Tabel-UseCase
3 Utilizatorul: renunțare
Tabel FBE/FAE Perfectarea contractului
FBE :Perfectare_ contract
1 Sistemul: afișarea listei auto din stoc
2 Clientul: alege auto din stoc
3 Sistemul: caută auto în stoc/ FAE:1
4 Sistemul: creează contractul/FBE: Acceptare_ contract
FBE :Actualizare_contract
1 Sistemul: afișarea contractului curent/FAE:1
2 Sistemul: afișarea listei auto din stoc
3 Clientul: editarea contractului
4 Sistemul: actualizarea contractului/FBE: Acceptare_contract
FBE :Ștergerea_contract
1 Sistemul:afișarea contractului curent/FAE:1
2 Clientul: activarea ștergerii
3 Sistemul: ștergerea contractului
FAE : Evenimente de alternative
Tema 8. Diagramele de implementare: diagrama
de componente și diagrama de desfășurare
(deployment)
1. Elementele unei diagrame de componente.
2. Definirea relațiilor între componente: relația
de dependență și relația de realizare.
Artefactele.
3. Elementele unei diagrame de desfășurare.
4. Relațiile între elementele unei diagrame de
desfășurare (deployment)
Subiectul 1.
Raționamente preliminare.
1. Toate diagramele expuse și analizate până acum sunt instrumente
de proiectare (instrumentarul). Conceptele de actor, caz de
utilizare, clase, obiecte, relații etc. nu au puse în corespondență
elemente fizice ale unui sistem fizic, adică real.
2. Produsul program se consideră implementat, dacă elementelor
acestui sistem informatic sunt puse în corespondență elementele
unui sistem fizic,real și funcționabil. Totalitatea conceptelor
(elementelor) vehiculate la nivelul sistemului fizic formează
instrumentarul de implementare
3. La nivel de utilizare există o discrepanță între concepte vehiculate
de instrumentele de proiectare și conceptele instrumentarului de
implementare.
4. Pentru a contribui la lichidarea (atenuarea) acestei discrepanțe se
utilizează diagramele de implementare.
Subiectul 1.
• Diagrama de componente.
• Diagrama constă din următoarele elemente: componente, interfețe,
porturi și relații,
• Componentele
Componentele sunt reprezentate printr-un dreptunghi:
cmp RegisterComp
Register.exe
cmp RegisterComp
Register.exe
Register.exe:: Register.exe::
Class2 Class3
Subiectul 1.
:Register.exe
(următorul slide)
Subiectul 1.
Register.exe
Class2 Class3
Register.exe Idialog
Component12
Class2 Class3
Subiectul 2. Diagramă de componente.
cmp Component View
Booking
Port1
Trav elTrip
Port2 MakeReserv
«executable»
:Schedule Port3
Port4 UpdatePlans
Planner UserTrip
Port5 Port7 Port8
«delegate»
Port9
1. USER CONSOLE
Subiectul 3.
• Diagrama precedentă conține un element nou – portul. Portul
asigură procesul de imbricare (includere) a structurilor. Cu acest
scop se utilizează un conector de un tip special – „delegate”.
Diagrama de desfășurare (deployment) repartizează resursele
sistemului computațional (fizic prezent) componentelor din diagramele
de componente. Resurse sunt procesoarele, dispozitivele, unitățile
periferice etc.
Diagramele de desfășurare pot conține următoarele elemente:
1. Nodul (node) – semnifică resursa computațională a sistemului.
2. Conectivitatea – desemnează canalele de legătură.
3. Dispozitiv (device) – desemnează orice dispozitiv al sistemului
computațional.
4. Componentă – corespunde modulilor produselor program.
5. Artefact (artifact) – substituie fișierele executabile ale utilizatorilor
6. Relațiile de dependență, realizare, manifestare.
Subiectul 3.
• Exemple.
Nodul are nume, stereotip, elemente imbricate:
a)
deployment Deployment View
«server»
:RegistrationServ er
Nodul de mai sus are stereotipul „server”, nu are nume (anonim) și are
calitatea de obiect al clasei RegistrationServer.
Subiectul 3.
b)
deployment Deployment View
«LocalNet»
«processor» «processor»
Unix :NetWork
:Serv er :WorkStation
notes
{speed transfer
300Mb/sec}
«server»
:RegistrationServ er
«executable» «executable»
student.exe : schedule.exe :
Student Schedule
• Asociere unidirecțională
•
•
Generare de cod. Compoziție
• public class Body {
•
• Arm[ ] arms = new Arm[2];
• Leg[ ] legs = new Leg[2];
• Head head;
•
• Body(){
• head = new Head();
• arms[0] = new Arm();
• arms[1] = new Arm();
• legs[0] = new Leg();
• legs[1] = new Leg();
• }
•
• public static void main(String[] args) {
• Body b = new Body();
• }
•
• }
•
• class Head{ }
• class Leg{}
• class Arm{}
• }