6.14. Reverse inginerie - construirea diagramelor UML pentru clasele dezvoltate
Mediul NetBeans, cu pachetul NetBeans Enterprise Pack instalat, vă permite să creați diagrame UML utilizând codul sursă disponibil. Pentru aceasta, deschideți proiectul și faceți clic pe butonul din panoul principal al mediului de dezvoltare
Fig. 6.8. Buton "Reverse Engineering"
Se va afișa o formă de dialog pentru specificarea parametrilor proiectului creat, în care trebuie să schimbați numele proiectului într-unul semnificativ, prin care puteți să determinați cu ușurință la care proiect de Java aparține.
click pentru a mari imaginea
Fig. 6.9. Formular de dialog pentru specificarea parametrilor proiectului UML creat
Fig. 6.10. Parametrii proiectului UML care aparțin clasei Circle
Pentru clasa, constructorii și metodele obișnuite (nodul Operații) sunt afișate, precum și relațiile de moștenire și alte variante de relații (nodul Relații).
În proiectul UML, puteți genera diagrame UML făcând clic dreapta pe numele clasei corespunzătoare:
Fig. 6.11. Meniul de acțiune pop-up cu clasă în proiect UML
Dacă selectați "Creare diagrama din elementele selectate" și apoi selectați tipul diagramei "Diagrama de clasă"
Fig. 6.12. Selectarea tipului de diagramă ce urmează a fi creată
puteți obține o diagramă de acest fel:
Fig. 6.13. Grafic pentru clasa Cercului
Este mai bine să înlocuiți numele diagramei pe care o creați, de exemplu, cu diagrama Circle. Redenumirea se poate face mai târziu, făcând clic dreapta pe numele diagramei și selectând Rename ... din meniul pop-up care apare.
Dacă selectați Cerc, Dot, Figura. ScalableFigure, obținem o diagramă de mostenire, care poate fi numită Diagramă moștenire.
Fig. 6.14. Diagrama pentru Cerc, Dot, Figura, Imagine Scalabilă
Dacă selectați "Generați diagrama dependenței" din meniul pop-up pentru clasa Circle, vom obține următoarea diagramă:
Fig. 6.15. Diagrama dependenței pentru clasa Cerc
În diagrame, puteți adăuga sau elimina câmpuri și metode din clase, redenumi, schimbați modificatori. Iar modificările aduse oricarei diagrame sunt reflectate automat atât în alte diagrame ale proiectului UML, cât și în codul sursă al proiectului Java (acest design este Forward Enineering). Și invers - schimbările făcute în codul sursă Java. se aplică automat diagramelor UML (aceasta este ingineria inversă - Reverse Enineering).
În prezent, lucrul cu proiectele UML din NetBeans Enterprise Pack nu este complet depanat, uneori există "bug-uri" (erori minore). Dar sperăm că în viitorul apropiat deficiențele vor fi corectate.
Rezultatele rezumate
Erori tipice:
- În clasa MathUtil scrieți o subrutină pentru calculul factorialului factorial dublu factorial static (int n)
Modificatorul static marchează subrutina ca metodă de clasă. Aceasta înseamnă că vă permite să apelați metoda prin numele clasei fără a crea un obiect.
Reamintim că factorialul unui număr natural n este produsul tuturor întregurilor pozitive de la 1 la n:
În plus, 0! este considerată egală cu 1. Desemnarea factorialului în forma n! matematică, în Java simbolul "!" rezervate în alte scopuri. De asemenea scrieți subrutine pentru calcularea factorialiilor cu alte tipuri de valori returnate: static public long factorial_long (int n) și static public int factorial_int (int n)
Comparați activitatea subrutinelor cu n = 0,1,5,10,20,50,100. Explicați rezultatele.