|
|
|||
|
|
15/03/2009 |
|
|
|
|
|
In aceasta lucrare de laborator vor fi
acoperite urmatoarele probleme:
- Crearea diagramelor UML ale cazurilor de
utilizare in NetBeans 6
- Crearea diagramelor UML de clase
in NetBeans 6
- Studiu de caz - diagrama UML de
clase
Atentie: La
inceputul laboratoarelor stergeti
mai intai toate proiectele existente (click dreapta pe
nodul proiectului in fereastra Projects,
selectati Delete si confirmati ca doriti sa fie
sterse
sursele in cazul proiectelor Java). La
finalul laboratoarelor stergeti proiectele create.
In continuare veti invata cum sa folositi caracteristicile UML ale IDE-ului NetBeans pentru a crea o
diagrama UML a cazurilor de utilizare (Use
Case) simpla. Folosind modelul diagramei Use Case, veti arata relatia dintre actori (entitatile
externe) si cazurile de utilizare in
cadrul unei aplicatii. Diagrama Use Case pe care o creati urmareste diferitele functii si entitatile care
interactioneaza cu acele functii in cadrul unei aplicatii bancare
teoretice.
O diagrama Use Case este folositoare
atunci cand descrieti cerintele unui sistem in stadiile de analiza, proiectare
(design), implementare si
documentare. Scopul acestui tutorial este de a prezenta diagramele UML ale cazurilor de utilizare in IDE-ul NetBeans, fara
a insista pe conceptele UML sau limbajul de programare Java (vezi si http://www.netbeans.org/kb/60/uml/index.html).
În această secțiune, veti crea proiectul
UML si diagrama cazurilor de utilizare pentru aplicatie.
1. Creati un nou director numit UMLTutorial pe drive-ul D:
in directorul \isw, in subdirectorul cu numarul grupei, (de
exemplu: D:\isw\441E\UMLTutorial).
2. Din meniul principal, selectați File> New Project și apoi faceți următoarele în New Project Wizard:
Sub Categories, selectati UML.
Sub Projects, selectati Java-Platform Model.
Faceti Click pe Next.
Se va deschide caseta de dialog New Java-Platform Model.
3. In campul Project Name, scrieti UMLTutorialProject.
Observati ca atunci cand scrieti Project Name, IDE-ul va sugereaza
automat acest nume.
4. Pentru campul Project Location, faceti click pe Browse.
5. In casuta de dialog a Select Project Location, selectati UMLTutorial, care este directorul pe
care l-ati creat in pasul 1.
6. Faceti click pe Open pentru a elimina casuta de
dialog.
7. In pagina Name and Location, click Finish.
IDE-ul creaza proiectul UML si se deschide New Wizard si afiseaza
casuta de dialog Create New Diagram.
8. In lista Diagram Type, selectati Use Case Diagram.
9. In campul Diagram Name, scrieti UseCaseDiagram.
10. Lasati UMLTutorialProject in campul Namespace si click Finish.
IDE-ul face urmatoarele:
Creaza nodul UseCaseDiagram sub nodul Model
Afiseaza noua diagrama in editorul diagramei (diagrama este goala in acest
moment)
Deschide (Modeling) Palette
In aceasta sectiune veti adauga elementele
Use
Case (caz de utilizare) folosind Palette in IDE-ul NetBeans.
1. Din sectiunea Basic a ferestrei
Palette, selectati pictograma Use Case si
faceti click o singura data in partea de sus stanga a editorului de diagrame.
Acesta actiune plaseaza un element Use Case in diagrama.
2. Deselectati pictograma facand click-drepta oriunde in editorul de
diagrame sau apasand tasta ESC.
3. Daca nu este deja selectat, selectati noul element adaugat facand click
pe el o data.
4. Scrieti Withdraw Money si apasati Enter.
Acesta eticheteaza elementul cu textul Withdraw Money.
5. Selectati pictograma Use Case din nou si plasati inca 7 elemente Use Case in diagrama.
Plasati elementele in patru randuri continand cate doua elemente in fiecare
rand.
6. Deselectati pictograma facand click-drepta oriunde in editorul de diagrame.
7. Selectati elementul Use Case aflat sub Withdraw Money.
8. Scrieti Withdraw Cash from ATM si apasati Enter.
9. Etichetati elementele Use Case ramase dupa cum urmeaza:
Deposit Money
Process a Loan
Apply for Loan
Deposit Cash at ATM
Service ATMs
Update Customer Database
Observatie: Cand ati adaugat si etichetat elementele diagramei, le puteti redimensiona dupa nevoie facand click-dreapta pe element si selectand Resize to Element to Contents din pop-up menu.
Diagrama ar trebuie sa se asemene cu figura urmatoare.
Acum veti adauga elementele cazurilor de
utilizare folosind Palette in IDE-ul NetBeans.
1. Din sectiunea Basic a ferestrei Palette,
selectati pictograma Actor .
2. Faceti click o data in dreapta elementului
caz de utilizare Apply
for a Loan pentru a
plasa elementul Actor in diagrama. Un element Actor nedenumit este plasat in editorul de diagrame.
3. Faceti click pe ESC pentru a deselecta pictograma.
4. Selectati elementul Actor
pe care tocmai l-ati plast in diagrama, scrieti Customer si apasati Enter. Elementul Actor
este astfel etichetat.
Observatie: Cand ati adaugat mai
multe elemente diagramei,
faceti click pe butonul Fit To Window din
bara de instrumente (toolbar-ul) Diagram pentru a rearanja diagrama
astfel incat sa puteti vedea intreaga diagrama in editorul de diagrame.
5. Plasati inca 5 elemente Actor
sub actorul Customer in editorul de diagrame.
6. Deselectati pictograma Actor facand click oriunde in
editorul de diagrame.
7. Etichetati noile adugate elmente Actor dupa cum urmeaza:
Employees
Bank Teller
Loan Officer
Technician
Bank Computer
8. Click-dreapta pe tab-ul UseCaseDiagram
si alegeti Save Document din pop-up menu.
Diagrama ar trebui sa se asemene cu figura urmatoare.
In aceasta sectiune veti lega elementele Actor
intre ele folosind Generalization.
1. Din sectiunea Basic a ferestrei Palette,
selectati pictograma Generalization .
2. Faceti click pe elementul Bank Teller,
apoi click pe elementul Employees.
Apare o legatura (link) intre
cele doua elemente Actor. Informatiile legate de relatia Generalization apar in
fereastra Properties.
3. Faceti click-drepta oriunde in editorul de diagrame pentru a deselecta
pictograma Generalization.
4. In editorul de diagrame, selectati legatura Generalization.
5. In fereastra Properties, faceti click pe butonul proprietatii Stereotypes
.
Apare expertul Stereotypes.
6. Faceti click pe Add, apoi faceti click in campul gol
Name
si scrieti implementation.
7. Click pe OK. :egatura este etichetata <<implementation>>.
8. Adaugati legaturi Generalization pentru urmatoarele:
Loan
Officer to Employees
Technician to Employees
In aceasta sectiune veti lega elementele Actor
intre ele folosind Association.
1. Din sectiunea Basic a ferestrei Palette,
selectati pictograma Association .
2. Faceti click pe elementul Customer, apoi
click pe elementul Withdraw
Cash from ATM.
Apare o legatura (link) intre Actor
si Use
Case.
3. Faceti click-drepta oriunde in editorul de diagrame pentru a deselecta
pictograma Association.
4. Cu noua legatura Association inca selectata plasati
cursorul in mijlocul liniei ce reprezinta legatura si faceti click dreapta
Nota: Cand legatura este selectata, aceasta devine
albastra. Poate fi riscant sa tineti cursorul pe link. Daca cursorul este pozitionat in spatiul alb cand faceti
click-dreapta, ati putea vedea meniul pop-up pentru editorul de diagrame mai
degraba dacat meniul pop-up pentru legatura. Daca se intampla asta incercati din nou, asigurandu-va ca legatura este
albastra, click-dreapta si ar trebui sa vedeti meniul pop-up corect pentru
legatura, dupa cum se arata in figura urmatoare.
5. Alegeti Labels > Link Name din meniul pop-up. Legatura este etichetata cu textul Unnamed, care este evidentiat.
6. Scrieti textul uses si apasati Enter. Legatura este etichetata acum cu textul uses.
7. Din sectiunea Basic a ferestrei Palette, selectati pictograma Association si adaugati inca 7 legaturi, conectand Actori si Use Cases facand click pe elementul Actor intai, si apoi facand click pe elementul Use Case dupa cum urmeaza:
Customer la Deposit Cash to ATM
Customer la Apply for Loan
Bank Teller la Withdraw Money
Bank Teller la Deposit Money
Bank Computer la Update Customer Database
Technician la Service ATMs
Loan Officer la Process a Loan
8. Deselectati pictograma Association.
O legatura Extend arata relatia dintre un Use Case si altul, specificand felul in care comportamentul definit pentru cazul de utilizare extins poate fi inserat in comportamentul definit pentru cazul de utilizare de baza.
1. Din sectiunea Basic a ferestrei Palette,
selectati pictograma Extend .
2. Faceti click o singura data pe
elementul Withdraw Cash From ATM, si click din nou pe elmentul Withdraw Money.
O legatura etichetata <<extend>> este desenata cu o sageata ce arata spre
elementul Withdraw Money.
3. Repetati pasii 1 si 2 pentru a desena legaturi Extend intre urmatoarele Use
Cases:
Deposit Cash at ATM > Deposit Money
Process a Loan > Apply for Loan
4. Click-drepta oriunde in editorul de diagrame pentru a deselecta pictograma Extend Link.
5. Pentru a rearanja diagrama, faceti click pe butonul Orthogonal Layout din bara de instrumente (toolbar-ul) Diagram si click Yes in casuta de avertisment Layout.
Oservatie: Ar putea fi necesar sa extindeti diagrama pentru a vedea butonul Orthogonal Layout din toolbar. Pentru a face aceasta, faceti dublu-click pe tab-ul UseCaseDiagram.
Puteti deasemenea sa faceti click-dreapta in editorul de diagrame si sa alegeti Layout > Orthogonal din meniul pop-up. IDE-ul rearanjeza diagrama UseCaseDiagram intr-un stil dreptunghiular de asezare (layout).
Diagrama terminata ar trebui sa se asemene cu figura urmatoare. Diagrama poate avea insa un layout usor diferit. Atata timp cat relatiile si elementele sunt corect reflectate, orice diferenta usoara de format este normala.
6. Apăsați Ctrl+S oriunde în
editorul de diagrama pentru a salva modificările făcute in model.
In acest tutorial ati invatat sa creati o diagrama Use Case pentru o simpla
aplicatie bancara. Ati invatat cum sa efectuați următoarele activități:
Sa creați un proiect UML
Sa creați o diagrama Use Case
Să folosiți pictogramele UML din
Palette pentru a crea cazuri de utilizare si actori
Să conectati cazurile de utilizare
si actorii pentru a arata functiile
aplicatiei
În continuare veti invata cum sa folositi caracteristicile UML ale IDE-ului NetBeans pentru a crea diagrame
UML de clase. Acest material va arata diferite tehnici de creare a
elementelor unei diagrame de clase si cum sa generati un cod de sursa Java
pentru diagrama. Scopul este de a va prezinta cateva dintre functionalitatile IDE-ului dedicate modelarii UML cu
diagrame de clase.
O diagrama
de clase este o reprezentare vizuala
a unei aplicatii care ii arata clasele
si relatiile dintre acele clase. Cand deschideti o diagrama de clase,
IDE-ul afiseaza o selectie specifica de pictograme ale elementelor UML in (Modeling) Palette. Folosind modelul
diagramei de clase, veti descrie
structura statica a elementelor din aplicatia dorita. IDE-ul va permite sa creati grafic diagrame ce contin
clase. Clasele sunt aranjate in ierarhii
care impart structura comuna si
comportamentul si sunt asociate cu
alte clase.
Clasele definesc atributele elementelor instanta precum si operatiile
pe care fiecare element le executa sau le suporta. Cand reprezentati o
clasa intr-un model UML, puteti sa realiza urmatoarele:
Crearea elementului ce reprezinta clasa
Denumirea clasei
Definirea atributelor clasei
Definirea operatiilor clasei
Descrierea legaturilor si a asociatiilor
Adaugarea documentatiei
Sectiunile
urmatoare descriu cum se creaza o
digrama de clase simpla pentru o aplicatie bancara ipotetica. Dupa ce ati
parcurs pas cu pas procedurile schitate in acest material, digrama de clase ar
trebui sa arate ca in figura urmatoare. Diagrama este prezentata doar pentru referinta.
Folositi instructiunile incepand cu sectiunea
urmatoare pentru a desena propria diagrama de clase.
În această secțiune veti crea diagrama de
clase a aplicatiei.
1. Daca e necesar, porniti NetBeans
IDE si deschideti proiectul creat anterior UMLTutorialProject.
2. In fereastra Projects, expandati nodul UMLTutorialProject si apoi
faceti right-click pe nodul Model.
3. Selectati Add > Diagram din meniul pop-up. Se va
deschide New Wizard si va afisa pagina Create New Diagram.
4. In lista Diagram Type, selectati Class Diagram.
5. In campul Diagram Name, scrieti ClassDiagram.
6. Lasati setarea implicita in campul Namespace si apasati Finish.
NetBeans IDE face urmatoarele:
Creeaza nodul ClassDiagram
sub nodul Model
Afiseaza noua diagrama in editorul de
diagrame (diagrama este goala in acest moment)
Deschide Modeling Palette
Acum veti adauga elementele claselor
folosind Palette in IDE-ul NetBeans.
1. Din sectiunea Basic a Modeling Palette, selectati pictograma Class
si faceti
click in editorul de diagrame. Aceasta actiune plaseaza un element Class
pe diagrama.
2. Deselectati pictograma prin right-click oriunde in editorul de diagrame.
Observatie: De fiecare data cand selectati o pictograma,
puteti plasa instante multiple ale acelui element in editorul de diagrame
apasand click de mai multe ori.
3. Daca nu este inca selectat, selectati noul element Class apasand o data pe
el.
4. Scrieti EntryStation si apasati
Enter.
NetBeans IDE face urmatoarele:
Atribuie elementului Class denumirea EntryStation
Creeaza o metoda publica numita EntryStation()
constructor al clasei EntryStation
Afiseaza proprietatile clasei in fereastra Properties
Adauga un element Class cu numele EntryStation in fereastra Projects sub nodul Model
Acum veti adauga atributele clasei EntryStation.
1. Daca nu este selectat, selectati elementul EntryStation in editorul de diagrame.
2. Faceti Right-click pe cuvantul Attributes si alegeti Insert
Attribute din meniul pop-up.
O linie editor se deschide și afișează
următoarele informații:
visibility
type name[ranges]=initialValue{name=value} |
3. Scrieti stationID
si apasati Enter. Un atribut numit stationID de tip int
apare in clasa EntryStation, si
urmatoarele operații sunt create pe clasa:
public int getStationID() public void setStationID (int val) |
Observatie: metodele get()
si set() sunt create pentru ca ati
pastrat setarile implicite.
Acum veti adauga alte operatii clasei EntryStation.
1. In editorul de diagrame selectati elementul clasa numit EntryStation.
2. Right-click pe cuvantul Operations
si alegeti Insert Operation din meniul pop-up. O linie editor se
deschide și afișează următoarele informații:
visibility
returnType name(parameter) {properties...} |
3. Scrieti validateEntryStation si
apasati Enter. NetBeans IDE creeaza o noua metoda.
Cand faceti double-click pe un atribut sau o operatie a unei clase, o
fereastra editor combo se deschide ca in figura urmatoare.
Pe masura ce faceti
click pe fiecare parte a atributului sau operatiei, eticheta acelei parti apare
evidentiata cu bold in fereastra combo. Daca e posibil, partea
selectata a operatiei sau atributului are o lista drop-down de valori.
De exemplu:
1. Faceti double-click pe atributul stationID in clasa EntryStation.
2. Faceti click pe cuvantul private.
Observati faptul ca visibility apare evidentiat cu bold.
3. Apasati Ctrl + down arrow. O
lista drop-down se deschide si sunt afisate valorile pe care le puteti selecta
pentru atributul visibility.
4. Alegeti o noua valoare din lista drop-down si apasati Enter.
Atributul este actualizat cu noua valoare.
Observatie: Puteti scrie direct noua valoare in editor. Daca
nu vedeti ceea ce aveti nevoie in lista drop-down, folositi tastele right si
left arrow pentru a pozitiona cursorul si a scrie valoarea corespunzatoare.
5. Pentru acest material folositi valoarea private si apasati Enter
pentru a inchide editorul.
Acum trebuie sa
adaugati mai multe clase pentru a completa diagrama de clase pentru aplicatia din
domeniul bancar. Dupa ce adaugati clasele, le denumiti si adaugati atribute si
metode dupa cum apar mai jos folosind tehnicile pe care le-ati invatat pana
acum in acest tutorial.
1. Din sectiunea Basic a Modeling Palette, selectati pictograma Class si apasati de
5 ori in editorul de diagrame pentru a plasa elemente aditionale de tip clasa
dupa cum se vede in figura de mai jos.
2. Deselectati pictograma Class printr-un right-click oriunde in editorul de diagrame.
Observatie: Puteti selecta si trage noile elemente de tip
clasa pentru a le aranja asa cum apar in figura precedenta, pentru a putea fi
distinse una de cealalta in mod clar.
3. Selectati primul element fara nume de tip clasa de sub elementul EntryStation si denumiti-l ATM.
4. Avand elementul clasa ATM inca selectat, adaugati un atribut dupa cum urmeaza:
private float cashOnHand |
5. Adaugati un al doilea atribut clasei
ATM si definiti-l dupa cum urmeaza:
private
float dispensed |
Atributele apar in diagrama de clase.
Observatie: Pe masura ce adaugati atribute si metode claselor,
marimea elementelor clasa se mareste. Pentru a imbunatati aspectul diagramei
mutati elementele de tip clasa astfel incat fiecare sa se vada in mod clar.
Cand realizati acest lucru aveti grija sa selectati elementul Class,
si nu un atribut sau o metoda a acesteia.
6. Selectati primul element de tip clasa situat sub clasa ATM si denumiti-l Consortium.
7. Adaugati o metoda in clasa Consortium. Adaugarea metodelor este
similara cu adaugarea atributelor. Right-click pe cuvantul Operations si selectati Insert
Operations.
8. Scrieti validateAccountInfo si apasati Enter. NetBeans IDE creeaza o noua metoda dupa cum urmeaza:
public
void validateAccountInfo() |
9. Selectati elementul Class din dreapta clasei ATM si denumiti-l CashierStation.
10. Adaugati 2 metode pentru aceasta clasa
dupa cum urmeaza:
public int verifyCard() public float verifyAmountAvailable() |
11. Denumiti cele 2 clase ramase Branch si User. Pentru clasa User nu exista atribute sau metode.
12 Pentru clasa Branch, adaugati un atribut dupa cum urmeaza:
private
char connected |
Aceasta sectiune prezinta modul in care puteti genera codul sursa
Java pentru diagrama de clase pe care ati creat-o in sectiunea precedenta.
Dupa ce ati creat modelul UML, puteti genera codul corespunzator Java pentru
acesta. Daca modificati modelul, puteti
genera din nou codul Java folosind facilitatea UML numita Generate
Code.
Puteti sa modelati aplicatia Java in UML
si apoi sa generati codul Java corespunzator. Pentru a genera codul sursa
trebuie sa creati un proiect Java pentru a stoca codul generat din proiectul
UML.
1. Din meniul principal, alegeti File > New Project si apoi
realizati urmatoarele actiuni:
La Categories selectati General.
La Projects selectati Java Application.
Apasati Next.
2. In campul Project Name, alegeti JavaPrj1.
3. Pentru Project Location apasati Browse si selectati directorul \UMLTutorial.
4. Deselectati casutele Set
as Main Project si Create Main Class.
5. Apasati Finish. O fereastra de dialog care arata progresul va aparea. Cand
proiectul JavaPrj1
este creat, el va aparea in fereastra Projects.
6. In fereastra Projects, dati
right-click pe nodul UMLTutorialProject
si alegeti Generate Code din meniul pop-up.
7. In fereastra de dialog Generate Code, apasati Browse.
8. In fereastra de dialog Choose the Target Source Folder, localizati directorul sursa pentru proiectul JavaPrj1 pe care tocmai l-ati creat.
De exemplu: D:\isw\441E\UMLTutorial\ JavaPrj1\src
9. Apasati Open.
10. Inapoi in fereastra de dialog Generate Code, deselectati casuta Backup Existing Source Files si
apasati OK.
11. NetBeans IDE genereaza codul sursa Java iar fereastra Output
afiseaza progresul operatiei de generare a codului.
12. In fereastra Projects expandati nodul JavaPrj1 > Source Package si faceti double-click pe nodul <default package> .
Observati ca folderul contine fisierele
sursa Java care sunt denumite in mod similar cu elementele clasa pe care le-ati
creat in modelul ClassDiagram.
Acum, adaugati un alt atribut clasei EntryStation folosind Source
Editor. Dupa ce modificati fisierul sursa Java, veti folosi facilitatea
Reverse
Engineer pentru a reflecta aceasta schimbare in elementul modelului UML
corespunzator.
1. In fereastra Projects, expandati nodul UMLTutorialProject si nodul Model
daca e necesar.
2. Right-click pe nodul EntryStation
si alegeti Navigate To Source din meniul pop-up. Un nou tab al Source
Editor numit EntryStation.java apare
si afiseaza codul sursa al clasei.
3. In Source Editor, scrieti urmatorul cod
sub primul atribut:
private boolean isOperating; |
4. Apasati Ctrl-S pentru a salva modificarea.
5. Right-click in Source Editor si alegeti Reverse
Engineer din meniul pop-up. Fereastra de dialog Reverse
Engineer apare.
6. Selectati Use Existing UML Project
in fereastra de dialog Reverse Engineer si alegeti UMLTutorialProject ca proiect tinta.
7. Apasati OK pentru a initia procesul de inginerie inversa.
8. In fereastra de dialog Model
Element Overwrite Authorization, apasati Yes pentru a
suprascrie modelul existent pentru clasa EntryStation.
9. Apasati tab-ul ClassDiagram pentru a va intoarce la editorul de diagrame. Atributul isOperating apare in elementul clasa numit EntryStation.
Observatie: Apasati butonul Fit to Window de pe
bara Diagram
pentru a centra diagrama in fereastra. Acest buton va permite sa ajustati
nivelul de Zoom daca e necesar pentru a citi etichetele elementelor sau
pentru a plasa alte elemente pe diagrama.
Puteti utiliza diferite metode pentru a
localiza rapid obiecte intr-o diagrama sau in fereastra Projects. Toate
atributele si operatiile pe care le adaugati elementelor Class in editorul de
diagrame apar in fereastra Projects. Atributele sunt
reprezentate de pictograma atribut . Operatiile sunt reprezentate de pictograma
operatie .
In fereastra Projects, dati
double-click pe nodul EntryStation.
In editorul de diagrame elementul de tip clasa
numit EntryStation este selectat si
centrat.
In editorul de diagrame selectati clasa Consortium si dati right-click pe ea. Alegeti Select in Model din meniul pop-up. In fereastra Projects,
numele obiectului tinta este subliniat.
Exista 3 metode diferite dintre care puteti alege
atunci cand doriti sa introduceti o documentatie descriptiva pentru clase, atribute, metode si diagrame.
Procedurile (care nu fac obiectul acestui laborator) pot fi gasite la adresa http://www.netbeans.org/kb/60/uml/class-diagram.html#enterdoc
O asociere descrie un grup de legaturi care impart o
structura si o semantica (un inteles) comune. Multiplicitatea specifica
numarul de instante ale unei clase care se pot corela cu o instanta a clasei
asociate. Multiplicitatea limiteaza numarul total de componente corelate.
Aceasta sectiune
contine urmatoarele proceduri:
1. Din sectiunea Association a Modeling Palette,
selectati pictograma Aggregation .
2. Faceti click in interiorul elementului ATM, si apoi dati click pe elementul Consortium.
O legatura apare intre cele doua clase.
3. Efectuati right-click oriunde in editorul de diagrame pentru a deselecta pictograma. Relatia este reprezentata in fereastra Projects asa cum apare mai jos:
4. Selectati legatura Aggregation dintre ATM and Consortium. Cand legatura este selectata, culoarea ei va deveni
albastra.
5. Pozitionati cursorul in apropierea mijlocului liniei selectate si faceti
right-click.
6. Alegeti Labels > Link Name din meniul pop-up.
7. Scrieti AccountVerification in
campul Name si apasati Enter. Legatura primeste o eticheta
dupa cum apare in figura urmatoare.
8. Din sectiunea Association
a Modeling Palette, selectati pictograma Association si desenati
o legatura intre CashierStation si Branch.
9. Efectuati right-click oriunde in editorul de diagrame pentru a deselecta pictograma.
O asociere calificata coreleaza doua clase
si un calificator. Calificatorul este un atribut special care reduce
multiplicitatea efectiva a asocierii. Puteti descrie o asociere calificata ca
fiind o casuta la capatul liniei de asociere in apropierea clasei pe care o
califica. Urmatorul pas va arata cum puteti crea o asociere calificata intre
clasa ATM si clasa Consortium.
Efectuati right-click pe legatura Aggregation unde uneste clasa Consortium si alegeti Show Qualifier. Un calificator se va atasa de elementul clasa Consortium ca in figura.
In mod implicit etichetele de
multiplicitate sunt ascunse.
Pentru a stabiliti multiplicitatea unei
asocieri trebuie sa urmati pasii de mai jos pentru a afisa etichetele pe
legatura de asociere corespunzatoare.
1. Faceti right-click pe legatura dintre Consortium si ATM si
alegeti Labels > Both End Multiplicities. Meniul
pop-up se inchide si apar etichetele pentru legatura.
2. Faceti right-click pe micul romb din partea superioara a legaturii de
agregare (in apropierea elementului ATM
) si alegeti Set Multiplicity.
Observatie: Daca
aveti dificultati in a face sa apara meniul pop-up corect, lungiti sageata de
agregare mutand elementul Consortium mai departe de elementul ATM.
3. Selectati 1..*
Observati ca portiunea inferioara a legaturii este etichetata 1 dupa cum apare in figura
4. Executati
aceeasi procedura si setati multiplicitatea pentru legatura de asociere intre CashierStation si Branch dupa cum apare in figura urmatoare.
Generalizarea este relatia
dintre o clasa si una sau mai multe versiuni extinse ale acelei clase. Clasa care va fi extinsa se numeste superclasa iar fiecare versiune extinsa va fi numita subclasa.
Atributele si metodele din superclasa pot fi
utilizate in subclase, si
astfel, fiecare subclasa se spune ca
mosteneste toate facilitatitle
superclasei. Puteti organiza clasele folosind mostenirea astfel incat
acestea sa aiba o structura comuna. O legatura de generalizare semnifica faptul
ca o clasa poate mosteni o multime de atribute si metode de la clasa parinte.
1. Din sectiunea Basic a Modeling Palette,
selectati pictograma Generalization .
2. Faceti click in interiorul elementului
clasa ATM , si apoi click pe
elementul clasa EntryStation.
Va aparea fereastra de dialog Select Methods to Redefine.
3. Bifati casuta de langa nodul ATM pentru a selecta toate metodele si apasati OK.
Metodele selectate sunt adaugate
elementului clasa ATM si apare o
legatura de generalizare intre cele 2 clase.
4. Desenati inca o legatura de
generalizare apasand intai pe CashierStation,
si apoi pe EntryStation.
5. In fereastra de dialog Select
Methods to Redefine, bifati casuta de langa nodul CashierStation
pentru a selecta toate metodele si apoi apasati OK.
6. Faceti right-click oriunde in editorul
de diagrame pentru a deselecta pictograma Generalization.
7. Diagrama finala ar trebui sa arate ca in figura urmatoare
Executati urmatorii pasi pentru a salva
diagramele si a actualiza fisierele sursa Java pentru aceste diagrame.
1. Dupa ce
terminati diagrama dati right-click pe tab-ul ClassDiagram
si alegeti Save Document din meniul pop-up. Meniul se inchide si diagrama de
clase este salvata.
2. In fereastra Projects, faceti
right-click pe nodul UMLTutorialProject
si alegeti Generate Code din meniul pop-up.
3. In fereastra de dialog Generate
Code acceptati directorul sursa implicit JavaPrj1
si executati backup la fisierele sursa existente. Optional, puteti apasa Browse
pentru a localiza si folosi alt director sursa.
4. Apasati OK.
NetBeans IDE
genereaza codul si fereastra Output afiseaza progrsul operatiei
de generare a codului. Directorul sursa Java pentru proiectul JavaPrj1
ar trebui sa fie actualizat cu schimbarile pe care le-ati facut la diagrame.
Observatie: Directorul sursa pentru proiectul JavaPrj1
ar putea include si fisierele de backup care au fost create daca ati bifat casuta Backup
Existing Source Files in fereastra de dialog Generate Code si ati ales
sa folositi acelasi director sursa. Fisierele de backup sunt denumite in
acelasi mod cu fisierele originale, dar extensiile fisierelor contin numere. De
exemplu, ATM.java
are un fisier de backup numit ATM.java1
In acest material
ati invatat sa creati o diagrama de
clase pentru o aplicatie bancara simpla. Ati invatat cum sa realizati
urmatoarele lucruri:
Crearea unei diagrame de clase
Utilizarea pictogramelor din Pallete pentru a adauga elemente in
diagrama
Adaugarea si definirea atributelor si metodelor pentru elementele de tip
clasa
Descrierea legaturilor si asocierilor intre elementele clasa
Generarea codului sursa Java pentru diagrame
Sa se reia pasii anteriori din sectiunea 2.2 pentru
a crea urmatoarea diagrama UML de clase
Atentie: La
finalul laboratoarelor stergeti proiectele create
(click dreapta pe nodul proiectului in
fereastra Projects,
selectati Delete si confirmati ca doriti sa fie
sterse sursele
in cazul Java)