Cunoștințe, prelegere, informații inițiale despre programarea obiectului

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

Cunoștințe, prelegere, informații inițiale despre programarea obiectului


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.

Cunoștințe, prelegere, informații inițiale despre programarea obiectului


click pentru a mari imaginea
Fig. 6.9. Formular de dialog pentru specificarea parametrilor proiectului UML creat

Cunoștințe, prelegere, informații inițiale despre programarea obiectului


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:

Cunoștințe, prelegere, informații inițiale despre programarea obiectului


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ă"

Cunoștințe, prelegere, informații inițiale despre programarea obiectului


Fig. 6.12. Selectarea tipului de diagramă ce urmează a fi creată

puteți obține o diagramă de acest fel:

Cunoștințe, prelegere, informații inițiale despre programarea obiectului


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.

Cunoștințe, prelegere, informații inițiale despre programarea obiectului


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ă:

Cunoștințe, prelegere, informații inițiale despre programarea obiectului


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

  • Folosind instrumentele Reverse Engineering, puteți crea scheme UML de clase și dependențe de clasă. După crearea proiectului UML care însoțește proiectul Java, modificările aduse codului sursă Java se aplică automat diagramei UML. și invers.
  • 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.

    Articole similare