Curs: Introducere în programarea orientat pe obiect - C#€¦Curs: Introducere în programarea...
-
Upload
duongtuong -
Category
Documents
-
view
214 -
download
0
Transcript of Curs: Introducere în programarea orientat pe obiect - C#€¦Curs: Introducere în programarea...
Curs: Introducere în programarea orientată pe obiect - C#
Modul: Proiectarea orientată pe obiect
Unitate: Analiza cerinţelor
adresa:
http://visualstudiogallery.msdn.microsoft.com/237f823c-45b4-4f1f-b9e
2-607fe66eaae7/
Cazurile de utilizare ale programului Bibliotecă
Vom enumera cazurile de utilizare în ordinea lor firească, în felul în
care sunt gândite de utilizator. În primul meniu File, elementele care
corespund diferitelor cazuri de utilizare vor fi ordonate în ordinea lor
tradiţională, dar puţin diferită.
© Copyright Link group 15 / 24
Curs: Introducere în programarea orientată pe obiect - C#
Modul: Proiectarea orientată pe obiect
Unitate: Analiza cerinţelor
Fluxuri de evenimente pentru cazuri individuale de
utilizare
Cazul de utilizare Adaugă cartea
Use Case Adaugă cartea se iniţiază atunci când utilizatorul dă clic pe
butonul Add, în fereastra principală. Apare un dialog box intitulat Carte
nouă, care conţine câmpurile pe care utilizatorul le va completa cu
datele cărţii noi (titlul, numele autorului şi celelalte informaţii).
Dialogul se poate închide prin clic pe OK sau Cancel. Dacă selectăm
butonul OK, cartea nouă se adaugă la sfârşitul bibliotecii, iar titlul cărţii
© Copyright Link group 16 / 24
Curs: Introducere în programarea orientată pe obiect - C#
Modul: Proiectarea orientată pe obiect
Unitate: Analiza cerinţelor
se adaugă la finalul listei de titluri din fereastra principală. Dacă
utilizatorul dă clic pe butonul Cancel, modificările făcute nu se introduc
nici în bibliotecă, nici în fereastra principală.
Cazul de utilizare Editează cartea
Cazul de utilizare Editează cartea se iniţiază atunci când utilizatorul
selectează un titlu din lista din fereastra principală şi dă clic pe Edit.
Un alt mod este atunci când utilizatorul dă dublu clic pe titlul cărţii. În
ambele cazuri apare un dialog box intitulat Editare/titlul cărţii/, care
conţine informaţiile actuale despre cartea selectată (în afară de titlul
cărţii care se vede doar în titlu). Atunci utilizatorul poate să editeze
anumite câmpuri. Dialogul se poate închide prin clic pe OK sau pe
Cancel. Dacă se dă clic pe butonul OK, în bibliotecă se actualizează
elementul cărţii selectate pentru a prezenta toate schimbările făcute
de utilizator. Dacă a fost selectat butonul Cancel, nu se fac schimbări
în bibliotecă.
Cazul de folosire Şterge cartea
Acest Use Case se iniţiază atunci când utilizatorul selectează o carte
din lista cu titluri din fereastra principală, după ce dă clic pe butonul
Delete. Apare un dialog box care cere de la utilizator confirmarea
ştergerii acestei cărţi. Dialogul se poate închide prin clic pe OK sau pe
Cancel. Dacă dăm clic pe OK, elementul bibliotecii pentru cartea
selectată se şterge şi titlul cărţii se şterge din lista titlurilor din
fereastra principală. Dacă utilizatorul dă clic pe Cancel, nu se fac
schimbări nici în bibliotecă, nici în fereastra principală.
Cazul de utilizare Sortează lista după titluri
Acest caz de utilizare se iniţiază atunci când utilizatorul dă clic pe
butonul Sortează lista după titluri, în fereastra principală. Elementele
bibliotecii sunt ordonate în ordine alfabetică după titlurile cărţilor, iar
lista din ferestra principală este actualizată pentru a afişa această
ordine.
Cazul de utilizare Sortează lista după autori
Use Case Sortează lista după autori se iniţiază atunci când utilizatorul
dă clic pe butonul Sortează după autori, în fereastra principală.
Elementele bibliotecii sunt ordonate în ordine alfabetică, după numele
© Copyright Link group 17 / 24
Curs: Introducere în programarea orientată pe obiect - C#
Modul: Proiectarea orientată pe obiect
Unitate: Analiza cerinţelor
autorilor cărţilor, iar lista din fereastra principală este actualizată
pentru a afişa ordinea aceasta.
Cazul de utilizare Imprimă elementele
Cazul de utilizare Imprimă elementele se iniţiază atunci când
utilizatorul selectează comanda Print din meniul File. Se afişează
dialogul Save File, iar utilizatorul poate să selecteze fişierul care va fi
printat. (Dacă utilizatorul selectează Cancel în dialog, operaţiunea
Print este abandonată). Conţinutul curent al bibliotecii este imprimat în
fişierul dorit (în ordinea curentă) folosind formatul stabilit. Datele din
program nu se shimbă.
Cazul de utilizare Creează o bibliotecă nouă
Acest Use Case se iniţiază atunci când utilizatorul selectează comanda
New din meniul File. Dacă conţinutul bibliotecii curente a fost modificat
de la ultima operaţie New, Open, Save sau Save As... efectuată, se
iniţiază extensia Ofertă pentru salvarea schimbărilor. Dacă utilizatorul
nu abandonează această operaţie, se deschide o nouă bibliotecă vidă
care o înlocuieşte pe cea curent deschisă. Ca rezultat, lista titlurilor din
fereastra principală se goleşte, fişierul curent devine nedefinit, iar titlul
ferestrei principale devine Biblioteca nouă. (NOTĂ: Condiţiile acestea
vor fi valabile şi când programul se iniţiază pentru prima dată.)
Cazul de utilizare Deschide biblioteca existentă
Acest caz de utilizare se iniţiază atunci când utilizatorul selectează
comanda Open din meniul File. Dacă conţinutul bibliotecii curente a
fost modificat de la ultima operaţie New, Open, Save sau Save As...
efectuată, se iniţiază extensia Ofertă pentru salvarea schimbărilor.
Dacă utilizatorul nu anulează operaţia, se afişează dialogul pentru
încărcarea fişierului, iar utilizatorul poate să selecteze o bibliotecă.
După ce utilizatorul selectează biblioteca, biblioteca curentă se
înlocuieşte cu biblioteca încărcată. Ca rezultat, lista titlurilor din
fereastra principală se înlocuieşte cu datele încărcate, fişierul deschis
devine fişierul curent, iar titlul ferestrei principale devine titlul fişierului
deschis. (Dacă utilizatorul selectează Cancel în dialog sau dacă citirea
fişierului rezultă cu eroare, biblioteca curentă rămâne neschimbată.
Dacă rezultatul anulării este o eroare la citirea bibliotecii, se afişează
un dialog box care avertizează utilizatorul despre eroarea respectivă.)
© Copyright Link group 18 / 24
Curs: Introducere în programarea orientată pe obiect - C#
Modul: Proiectarea orientată pe obiect
Unitate: Analiza cerinţelor
Cazul de utilizare Salvează biblioteca
Cazul de utilizare Salvează biblioteca se iniţiază când utilizatorul
selectează Save din meniul File. (Opţiunea Save este anulată (de
culoare gri), dacă nu au fost făcute schimbări în bibliotecă de la ultima
operaţie New, Open, Save sau Save As...). Dacă există un fişier curent,
biblioteca curentă se salvează în el. (Dacă tentativa scrierii în fişier
rezultă în eroare, se afişează un dialog box de avertisment pentru
utilizator). Dacă nu este niciun fişier curent, se iniţiază în schimb Use
Case Salvează biblioteca sub formă de... În orice caz, biblioteca
curentă şi lista cu titlurile rămân neschimbate.
Cazul de utilizare Salvează biblioteca sub formă de...
Use Case Salvează biblioteca sub formă de... se iniţiază atunci când
utilizatorul selectează comanda Save As... din meniul File. (Opţiunea
Save As... este mereu disponibilă). Se afişează dialogul pentru
salvarea fişierului şi utilizatorul poate să selecteze titlul fişierului în
care vrea să salveze biblioteca. (Dacă utilizatorul selectează Cancel în
dialog, operaţia este anulată.) Biblioteca curentă se salvează în fişierul
selectat, fişierul în care a fost salvată devine fişierul curent şi titlul
acestuia se afişează ca titlu al ferestrei principale. (Dacă tentativa
salvării în fişier rezultă în eroare, se afişează un dialog box de
avertisment pentru utilizator, iar fişierul curent şi titlul ferestrei
principale nu se schimbă.) În orice caz, biblioteca curentă şi lista cu
titlurile rămân neschimbate.
Cazul de utilizare Închide programul
Acest Use Case se iniţiază atunci când utilizatorul selectează Quit din
meniul File sau când dă clic pe butonul de închidere din fereastra
principală. În orice caz, dacă s-au făcut schimbări în bibliotecă de la
ultima operaţie New, Open, Save sau Save As..., apare extensia Ofertă
pentru salvarea schimbărilor. Dacă utilizatorul nu anulează operaţia,
progamul se închide.
Extensia Ofertă pentru salvarea schimbărilor
Ofertă pentru salvarea schimbărilor se iniţiază în cadrul cazurilor de
utilizare Creează biblioteca nouă, Deschide biblioteca existentă sau
Închide programul, dacă s-au făcut schimbări în biblioteca curentă de
la ultima operaţie New, Open, Save sau Save As.... Se afişează un
© Copyright Link group 19 / 24
Curs: Introducere în programarea orientată pe obiect - C#
Modul: Proiectarea orientată pe obiect
Unitate: Analiza cerinţelor
dialog box care înştiinţează utilizatorul că există schimbări care nu au
fost salvate şi îi dă posibilitate să le salveze, să nu le salveze sau să
anuleze operaţia. Dacă utilizatorul selectează salvarea schimbărilor, se
execută cazul de utilizare Salvează biblioteca (ceea ce poate să ducă
la executarea cazului de utilizare Salvează biblioteca sub formă de...,
dacă nu este definit niciun fişier curent). Dacă utilizatorul selectează
să nu salveze schimbările, pur şi simplu se continuă operaţia originală.
Dacă utilizatorul selectează anularea operaţiei (sau anulează salvarea
fişierului în dialog), operaţia originală este anulată.
Analiză
O aplicaţie atât de simplă nu necesită dispunerea obiectelor în straturi,
dar vom vedea cum se poate face o astfel de stratificare. Revizuirea
cazurilor de utilizare indică faptul că următoarele elemente vor face
parte din sistem:
Obiectul care reprezintă interfaţa dintre sistemul bibliotecii şi
utilizator – clasa LibraryGUI. Aplicaţia Biblioteca are doar o
singură formă a interfeţei de utilizator, motiv pentru care aceasta
reprezintă întregul strat de prezentare (presentation layer).
Stratul logicii de afaceri (Library Business Layer) conţine clasele
care reprezintă esenţa programului aplicaţiei. Le putem sorta în
două grupuri sau substraturi (sublayer):
În substratul Workflow putem grupa clasele care conţin
fluxul de executare a programului. În acest caz, acesta va fi
obiectul controler care execută cazuri de utilizare, ca
răspuns la comenzile trimise de utilizator prin interfaţa de
utilizator - clasa LibraryController. Pentru un program atât
de simplu, un singur controler este suficient.
© Copyright Link group 20 / 24
Curs: Introducere în programarea orientată pe obiect - C#
Modul: Proiectarea orientată pe obiect
Unitate: Analiza cerinţelor
Sublayer Entities conţine obiectele „de lucru” ale aplicaţiei
sau entităţile. Pe baza analizei cererinţelor şi a cazurilor de
utilizare, putem concluziona că avem nevoie de două
obiecte de acest tip. Unicul obiect care reprezintă biblioteca
curentă, cu care lucrează programul este clasa Library. De
asemenea, avem nevoie şi de un număr arbitrar de
entităţi/obiecte, fiecare dintre ele reprezentând câte o carte
din biblioteca curentă – clasa Book.
Data layer conţine clasele care comunică cu locul fizic de stocare
a datelor aplicaţiei. Programul Biblioteca înregistrează datele
într-un fişier, pe hard disk-ul calculatorului, iar noi vom depune
toată funcţionalitatea de citire, scriere şi actualizare a datelor
într-o singură clasă - LibraryDataAccess.
© Copyright Link group 21 / 24
Curs: Introducere în programarea orientată pe obiect - C#
Modul: Proiectarea orientată pe obiect
Unitate: Analiza cerinţelor
Diversele cazuri de utilizare lucrează cu următoarele obiecte:
În cazul de utilizare Adaugă cartea obţinem toate informaţiile noi
de la utilizator, după care spunem obiectului Library să includă
noua carte în colecţia sa, cu ajutorul acestor informaţii.
În cazul de utilizare Editează cartea afişăm informaţiile curente
despre cartea selectată (obţinută din bibliotecă), iar apoi
permitem utilizatorului să introducă informaţii noi în diverse
câmpuri, după care spunem obiectului Library să efectueze
© Copyright Link group 22 / 24
Curs: Introducere în programarea orientată pe obiect - C#
Modul: Proiectarea orientată pe obiect
Unitate: Analiza cerinţelor
schimbările.
În cazul de utilizare Şterge cartea, cerem de la utilizator să
confirme ştergerea, după care spunem obiectului Library să
elimine acest volum din colecţia sa.
În cazul de utilizare Sortează lista după titlu, spunem obiectului
Library să reordoneze colecţia sa după titlurile cărţilor.
În cazul de utilizare Sortează lista după autor, spunem obiectului
Library să reordoneze colecţia sa după numele autorilor cărţilor.
În cazul de utilizare Creează bibliotecă nouă, creăm un nou obiect
Library.
În cazul de utilizare Deschide biblioteca existentă, obţinem de la
utilizator datele despre fişier, după care spunem obiectului
LibraryDataAccess să încarce obiectul Library din acest file.
În cazul de utilizare Salvează biblioteca, trebuie să stabilim dacă
obiectul Library curent conţine informaţia despre fişierul din care
a fost încărcat, respectiv în care a fost salvat ultima dată. Dacă
informaţia există, spunem obiectului LibraryDataAccess să
salveze obiectul curent Library în acest file. (Dacă informaţia nu
există, se execută cazul de utilizare Salvează biblioteca sub
formă de...)
În cazul de utilizare Salvează biblioteca sub formă de... obţinem
de la utilizator datele despre fişier, după care spunem obiectului
LibraryDataAccess să salveze obiectul curent Library în acest
fişier.
© Copyright Link group 23 / 24
Curs: Introducere în programarea orientată pe obiect - C#
Modul: Proiectarea orientată pe obiect
Unitate: Analiza cerinţelor
În cazul de utilizare Imprimă elementele, spunem obiectului
Library să imprime colecţia sa în ordinea propusă.
Cazul de utilizare Închide programul nu include niciun alt obiect.
Extensia Ofertă pentru salvarea schimbărilor poate să includă
executarea cazului de utilizare Salvează biblioteca.
Powered by TCPDF (www.tcpdf.org)
© Copyright Link group 24 / 24