Curs: Introducere în programarea orientat pe obiect - C#€¦Curs: Introducere în programarea...

10
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

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