CodeGym /ื‘ืœื•ื’ Java /Random-HE /ืชืจืฉื™ื ื›ื™ืชื” UML
John Squirrels
ืจึธืžึธื”
San Francisco

ืชืจืฉื™ื ื›ื™ืชื” UML

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”

ืžื‘ื•ื

ืื ื™ ื—ื•ืฉื‘ ืฉื›ื•ืœื ืฉืžืขื• ืืช ื”ืžืฉืคื˜ "ืžื“ื•ื“ ืคืขืžื™ื™ื, ื—ืชื•ืš ืคืขื ืื—ืช". ื–ื• ืขืฆื” ืืžื™ืชื™ืช ื‘ืชื›ื ื•ืช. ืชืžื™ื“ ืขื“ื™ืฃ ืœื—ืฉื•ื‘ ืขืœ ื”ื™ื™ืฉื•ื ืœืคื ื™ ืฉืืชื” ืžืงื“ื™ืฉ ื–ืžืŸ ื›ืœืฉื”ื• ืœื‘ื™ืฆื•ืขื•. ื‘ืžื”ืœืš ื”ื™ื™ืฉื•ื, ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืืชื” ืฆืจื™ืš ืœื™ืฆื•ืจ ื›ื™ืชื•ืช ื•ืœื—ืฉื•ื‘ ืื™ืš ื”ื ื™ืชืงืฉืจื•. ื™ื™ืฆื•ื’ ื—ื–ื•ืชื™ ืฉืœ ื”ื›ืœ ื™ื›ื•ืœ ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืœืขื–ื•ืจ ืœืš ืœืžืฆื•ื ืืช ื”ืคืชืจื•ืŸ ื”ื ื›ื•ืŸ ื‘ื™ื•ืชืจ. ื–ื” ื”ืžืงื•ื ืฉื‘ื• ื“ื™ืื’ืจืžืช ื”ื›ื™ืชื” ืฉืœ UML ื‘ืื” ืœืขื–ืจืชื ื•.

ืžื” ื–ื” UML?

ืื ืชืกืชื›ืœ ืขืœ ืชืžื•ื ื•ืช ืจืœื•ื•ื ื˜ื™ื•ืช ื‘ืžื ื•ืขื™ ื—ื™ืคื•ืฉ, ืชืจืื” ืฉืœ-UML ื™ืฉ ืงืฉืจ ืœื“ื™ืื’ืจืžื•ืช, ื—ื™ืฆื™ื ื•ืžืจื•ื‘ืขื™ื. ืืชื” ืฆืจื™ืš ืœื“ืขืช ืฉ-UML ืจืืฉื™ ืชื™ื‘ื•ืช ืฉืœ Unified Modeling Language. ืžืื•ื—ื“ ื”ื™ื ื”ืžื™ืœื” ื”ื—ืฉื•ื‘ื” ื›ืืŸ. ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉื”ืชืžื•ื ื•ืช ืฉืœื ื• ื™ื•ื‘ื ื• ืœื ืจืง ืœื ื•, ืืœื ื’ื ืœื›ืœ ืžื™ ืฉืžื›ื™ืจ ืืช UML. ื–ื•ื”ื™ ื”ืฉืคื” ื”ืฆืจืคืชื™ืช ืœืฆื™ื•ืจ ื“ื™ืื’ืจืžื•ืช.

ืœืคื™ ื•ื™ืงื™ืคื“ื™ื”,

"UML ื”ื™ื ืฉืคืช ืžื•ื“ืœื™ื ืœืžื˜ืจื•ืช ื›ืœืœื™ื•ืช, ื”ืชืคืชื—ื•ืชื™ื•ืช, ื‘ืชื—ื•ื ื”ื ื“ืกืช ืชื•ื›ื ื” ืฉื ื•ืขื“ื” ืœืกืคืง ื“ืจืš ืกื˜ื ื“ืจื˜ื™ืช ืœื”ืžื—ื™ืฉ ืืช ื”ืขื™ืฆื•ื‘ ืฉืœ ืžืขืจื›ืช."
ื”ื“ื‘ืจ ื”ืžืขื ื™ื™ืŸ ื‘ื™ื•ืชืจ, ืฉืœื ื›ื•ืœื ื™ื ื—ืฉื•, ื”ื•ื ืฉืœ-UML ื™ืฉ ืžืคืจื˜ื™ื. ื•ื™ืฉ ืืคื™ืœื• ืžืคืจื˜ UML 2. ืžื™ื“ืข ื ื•ืกืฃ ืขืœ ื”ืžืคืจื˜ ื–ืžื™ืŸ ื‘ืืชืจ ืงื‘ื•ืฆืช ื ื™ื”ื•ืœ ืื•ื‘ื™ื™ืงื˜ื™ื . ืœืžืขืฉื”, ืงื‘ื•ืฆื” ื–ื• ืžืคืชื—ืช ืืช ืžืคืจื˜ื™ UML. ืžืขื ื™ื™ืŸ ื’ื ืฉ-UML ืื™ื ื• ืžื•ื’ื‘ืœ ืœืชื™ืื•ืจ ืžื‘ื ื” ื”ืฉื™ืขื•ืจื™ื. ื™ืฉื ื ืกื•ื’ื™ื ืจื‘ื™ื ืฉืœ ื“ื™ืื’ืจืžื•ืช UML. ื‘ื•ื•ื™ืงื™ืคื“ื™ื” ื™ืฉ ืชื™ืื•ืจ ืงืฆืจ ืฉืœ ืกื•ื’ื™ื ืฉื•ื ื™ื ืฉืœ ื“ื™ืื’ืจืžื•ืช UML: ื“ื™ืื’ืจืžื•ืช UML . ืื ื ื—ื–ื•ืจ ืœื“ื™ืื’ืจืžื•ืช ืžื—ืœืงื•ืช UML, ื›ื“ืื™ ืœื”ื–ื›ื™ืจ ืืช ื”ืกืคืจ "Head First Design Patterns" , ืžืฉืชืžืฉ ื‘ื“ื™ืื’ืจืžื•ืช UML ื›ื“ื™ ืœื”ืžื—ื™ืฉ ื“ืคื•ืกื™ ืขื™ืฆื•ื‘. ื”ืฉื•ืจื” ื”ืชื—ืชื•ื ื” ื”ื™ื ืฉื‘ืืžืช ืžืฉืชืžืฉื™ื ื‘-UML. ื•ืžืกืชื‘ืจ ืฉืœื”ื›ื™ืจ ืืช ื–ื” ื•ื”ื‘ื ื” ืื™ืš ืœื”ืฉืชืžืฉ ื–ื” ื“ื™ ืฉื™ืžื•ืฉื™.

ื™ื™ืฉื•ื

ื‘ื•ืื• ื ื‘ื™ืŸ ืฉืื ื—ื ื• ื™ื›ื•ืœื™ื ืœืขื‘ื•ื“ ืขื UML ื‘-IDE. ืื ื• ื ืฉืชืžืฉ ื‘-IntelliJ IDEA ื›-IDE ืฉืœื ื•. ืื ืืชื” ืžืฉืชืžืฉ ื‘-IntelliJ IDEA Ultimate, ืื– ื™ื•ืชืงืŸ ืœื ื• ืืช ื”ืชื•ืกืฃ "ืชืžื™ื›ื” UML" "ืžื—ื•ืฅ ืœืงื•ืคืกื”". ื–ื” ืžืืคืฉืจ ืœืš ืœื™ืฆื•ืจ ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ื“ื™ืื’ืจืžื•ืช ืžื—ืœืงื•ืช ื™ืคื•ืช. ืœื“ื•ื’ืžื”, ื”ืฉืชืžืฉ ื‘-Ctrl+N ืื• ื‘ืคืจื™ื˜ ื”ืชืคืจื™ื˜ "ื ื•ื•ื˜" -> "Class" ื›ื“ื™ ืœืขื‘ื•ืจ ืœืžื—ืœืงื” ArrayList. ื›ืขืช ื‘ืชืคืจื™ื˜ ื”ื”ืงืฉืจ ืฉืœ ืฉื ื”ื›ื™ืชื”, ื‘ื—ืจ "ื“ื™ืื’ืจืžื”" -> "ื”ืฆื’ ื“ื™ืื’ืจืžื” ืงื•ืคืฆืช". ื›ืชื•ืฆืื” ืžื›ืš, ืื ื• ืžืงื‘ืœื™ื ืชืจืฉื™ื ื™ืคื”. UML: ืžื”ืชื™ืื•ืจื™ื” ืœืคืจืงื˜ื™ืงื” - 2 ืื‘ืœ ืžื” ืื ืืชื” ืจื•ืฆื” ืœืฆื™ื™ืจ ืืช ื”ื“ื™ืื’ืจืžื” ื‘ืขืฆืžืš? ื•ืžื” ืื ืื™ืŸ ืœืš ืืช ื’ืจืกืช ื”-Ultimate? ื‘ืืžืฆืขื•ืช IntelliJ IDEA Community Edition, ืื™ืŸ ืœื ื• ื‘ืจื™ืจื” ืื—ืจืช. ืื– ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื”ื‘ื™ืŸ ืื™ืš ืžืื•ืจื’ืŸ ื“ื™ืื’ืจืžืช UML. ืจืืฉื™ืช, ืขืœื™ื ื• ืœื”ืชืงื™ืŸ ืืช Graphviz . ื–ื•ื”ื™ ืงื‘ื•ืฆื” ืฉืœ ื›ืœื™ื ืœื”ื“ืžื™ื” ืฉืœ ื’ืจืคื™ื. ื”ืชื•ืกืฃ ื‘ื• ื ืฉืชืžืฉ ืชืœื•ื™ ื‘ื•. ืœืื—ืจ ื”ื”ืชืงื ื”, ืขืœื™ืš ืœื”ื•ืกื™ืฃ ืืช ืกืคืจื™ื™ืช bin ืžืกืคืจื™ื™ืช ื”ื”ืชืงื ื” ืฉืœ Graphviz ืœืžืฉืชื ื” ื”ืกื‘ื™ื‘ื” PATH. ืœืื—ืจ ืžื›ืŸ, ื‘- IntelliJ IDEA, ื‘ื—ืจ ืงื•ื‘ืฅ -> ื”ื’ื“ืจื•ืช ื‘ืชืคืจื™ื˜. ื‘ื—ืœื•ืŸ "ื”ื’ื“ืจื•ืช", ื‘ื—ืจ ื‘ืงื˜ื’ื•ืจื™ื™ืช "ืชื•ืกืคื™ื", ืœื—ืฅ ืขืœ ื›ืคืชื•ืจ "ืขื™ื•ืŸ ื‘ืžืื’ืจื™ื", ื•ื”ืชืงืŸ ืืช ื”ืคืœืื’ื™ืŸ ืœืฉื™ืœื•ื‘ PlantUML . ืžื” ื›ืœ ื›ืš ื˜ื•ื‘ ื‘-PlantUML? ื”ื•ื ืžืชืืจ UML ื‘ืืžืฆืขื•ืช ืฉืคืช ืชื™ืื•ืจ ื’ืจืฃ ื”ื ืงืจืืช "ื ืงื•ื“ื”", ืžื” ืฉื”ื•ืคืš ืื•ืชื” ืœื™ื•ืชืจ ืื•ื ื™ื‘ืจืกืœื™ืช, ืžื›ื™ื•ื•ืŸ ืฉืฉืคืช ื”ื ืงื•ื“ื•ืช ืžืฉืžืฉืช ื™ื•ืชืจ ืžืืฉืจ ืจืง PlantUML. ื™ืชืจื” ืžื›ืš, ื›ืœ ืžื” ืฉืื ื• ืขื•ืฉื™ื ืœืžื˜ื” ื™ื›ื•ืœ ืœื”ื™ืขืฉื•ืช ืœื ืจืง ื‘-IDE, ืืœื ื’ื ื‘ืื™ื ื˜ืจื ื˜ ื‘- planttext.com . ืœืื—ืจ ื”ืชืงื ืช ื”ืคืœืื’ื™ืŸ PlantUML, ื ื•ื›ืœ ืœื™ืฆื•ืจ ื“ื™ืื’ืจืžื•ืช UML ื‘ืืžืฆืขื•ืช "ืงื•ื‘ืฅ" -> "ื—ื“ืฉ". ื‘ื•ืื• ื ื™ืฆื•ืจ ื“ื™ืื’ืจืžืช "ืžื—ืœืงื” UML". ืคืขื•ืœื” ื–ื• ืชื™ืฆื•ืจ ืื•ื˜ื•ืžื˜ื™ืช ืชื‘ื ื™ืช ืขื ื“ื•ื’ืžื”. ืื ื• ื ืžื—ืง ืืช ื”ืชื•ื›ืŸ ืฉืœื• ื•ื ื•ืกื™ืฃ ืืช ื”ืชื•ื›ืŸ ืฉืœื ื•. ื›ื“ื™ ืœื”ื‘ื™ืŸ ื›ื™ืฆื“ ืœื™ื™ืฆื’ ื–ืืช ื‘ื˜ืงืกื˜, ืขื™ื™ืŸ ื‘ืžื“ืจื™ืš PlantUML: plantuml class-diagram. UML: ืžืชื™ืื•ืจื™ื” ืœืคืจืงื˜ื™ืงื” - 3ื‘ื”ืกืชืžืš ืขืœ ื—ื•ืžืจื™ื ืืœื”, ื‘ื•ืื• ื ืชื—ื™ืœ ืœื™ืฆื•ืจ ื“ื™ืื’ืจืžืช UML ืฉืœื ื•. ื”ื•ืกืฃ ืืช ื”ืชื•ื›ืŸ ื”ื‘ื, ื”ืžืชืืจ ืฉืชื™ ืžื—ืœืงื•ืช:

@startuml
class ArrayList {
}
class LinkedList {
}
@enduml
ื›ื“ื™ ืœืจืื•ืช ืืช ื”ืชื•ืฆืื” ื‘-IDEA, ื‘ื—ืจ "ืชืฆื•ื’ื”" -> "ื›ืœื™ Windows" -> "PlantUML". ืื ื—ื ื• ืžืงื‘ืœื™ื ืจืง ืฉื ื™ ืจื™ื‘ื•ืขื™ื ืฉืžื™ื™ืฆื’ื™ื ื›ื™ืชื•ืช. ืื ื• ื™ื•ื“ืขื™ื ืฉืฉืชื™ ื”ืžื—ืœืงื•ืช ื”ืœืœื• ืžื™ื™ืฉืžื•ืช ืืช ืžืžืฉืง List . ืžืขืจื›ืช ื™ื—ืกื™ื ืžืขืžื“ื™ืช ื–ื• ื ืงืจืืช ืžื™ืžื•ืฉ. ืงืฉืจ ื–ื” ืžื™ื•ืฆื’ ื‘ืืžืฆืขื•ืช ื—ืฅ ืขื ืงื• ืžืงื•ื•ืงื•. ื‘ื•ืื• ื ืฆื™ื™ืจ ืืช ื–ื”:
interface List
List <|.. ArrayList
List <|.. LinkedList
ืจืฉื™ืžื” ื”ื™ื ืื—ื“ ืžื™ืœื“ื™ ื›ื™ืชืช ืื•ืกืฃ . ื›ืœื•ืžืจ, ื”ื•ื ื™ื•ืจืฉ ืืช Collection . ืงืฉืจ ื–ื” ื ืงืจื ื”ื›ืœืœื”. ื–ื” ื ืจืื” ื›ืžื• ื—ืฅ ืขื ืงื• ืจืฆื™ืฃ ืจื’ื™ืœ. ื‘ื•ืื• ื ืฆื™ื™ืจ ืืช ื–ื”:
interface Collection
Collection <|-- List
ืœืกื•ื’ ื”ืงืฉืจ ื”ื‘ื, ื”ื•ืกืฃ ืœืชื™ืื•ืจ ื”ืžื—ืœืงื” ArrayList ืขืจืš ืขืœ ืžืขืจืš ืืœืžื ื˜ื™ื ืคืจื˜ื™ ืฉืœ ื—ื‘ื™ืœื” :
~Object[] elementData
ื›ืขืช ืื ื• ืจื•ืฆื™ื ืœื”ืจืื•ืช ืฉ- ArrayList ืžื›ื™ืœ ื›ืžื” ืื•ื‘ื™ื™ืงื˜ื™ื. ื‘ืžืงืจื” ื–ื”, ื™ื”ื™ื” ืงืฉืจ ืฆื‘ื™ืจื”. ArrayList ื”ื•ื ืื’ืจื’ื˜, ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ืžื›ื™ืœ ืื•ื‘ื™ื™ืงื˜ื™ื ืื—ืจื™ื. ืื ื• ืื•ืžืจื™ื ืฆื‘ื™ืจื” ื›ื™ ื”ืื•ื‘ื™ื™ืงื˜ื™ื ืฉืœ ื”ืจืฉื™ืžื” ื™ื›ื•ืœื™ื ืœื”ืชืงื™ื™ื ืœืœื ื”ืจืฉื™ืžื”: ื”ื ืื™ื ื ื—ืœืงื™ื ืื™ื ื˜ื’ืจืœื™ื™ื ืžื”ืจืฉื™ืžื”. ืžืฉืš ื”ื—ื™ื™ื ืฉืœื”ื ืื™ื ื• ืงืฉื•ืจ ืœื›ืœ ื”ื—ื™ื™ื ืฉืœ ื”ืจืฉื™ืžื”. ื”ืžื™ืœื” "ืžืฆื˜ื‘ืจ" ืžื’ื™ืขื” ืืœื™ื ื• ืžืœื˜ื™ื ื™ืช ื•ืžืชื•ืจื’ืžืช ื›"ื”ืจื›ื‘ื”", ื›ืœื•ืžืจ ืžืฉื”ื• ืฉืžื•ืจื›ื‘ ืžืžืฉื”ื•. ืœืžืฉืœ, ื‘ื—ื™ื™ื ื™ืฉ ืœื ื• ืžื›ืœื•ืœ ืžืฉืื‘ื” (ืื’ืจื’ื˜), ื”ืžื•ืจื›ื‘ ืžืžืฉืื‘ื” ื•ืžื ื•ืข. ืืช ื”ืžื›ืœื•ืœ ืขืฆืžื• ื ื™ืชืŸ ืœืคืจืง, ื•ื ื•ื›ืœ ืœื”ืฉืื™ืจ ื—ืœืง ืžืžืจื›ื™ื‘ื™ื• ืœื‘ื“. ืœืžืฉืœ, ืœืžื›ื•ืจ ืื• ืœื”ื›ื ื™ืก ืœื”ืจื›ื‘ื” ืื—ืจืช. ื–ื” ืื•ืชื• ื“ื‘ืจ ื‘ืจืฉื™ืžื”. ื–ื” ืžืชื‘ื˜ื ื‘ืžืขื•ื™ืŸ ืจื™ืง ื‘ืฆื‘ื™ืจื” ื•ื‘ืงื• ืจืฆื™ืฃ. ื ืฆื™ื’ ื–ืืช ื‘ืื•ืคืŸ ื”ื‘ื:
class Object{
}
ArrayList o- Object
ื›ืขืช ืื ื• ืจื•ืฆื™ื ืœื”ืจืื•ืช ืฉื‘ื ื™ื’ื•ื“ ืœ-ArrayList , ื”ืžื—ืœืงื” LinkedList ืžื›ื™ืœื” Node s - ืงื•ื ื˜ื™ื™ื ืจื™ื ืฉืžืคื ื™ื ืœื ืชื•ื ื™ื ื”ืžืื•ื—ืกื ื™ื. ื‘ืžืงืจื” ื–ื”, Node s ื”ื ื—ืœืง ืž- LinkedList ื•ืื™ืŸ ืœื”ื ืงื™ื•ื ืขืฆืžืื™. Node ืื™ื ื• ื”ืชื•ื›ืŸ ืขืฆืžื• . ื”ื•ื ืžื›ื™ืœ ืจืง ื”ืชื™ื™ื—ืกื•ืช ืœืชื•ื›ืŸ. ืœื“ื•ื’ืžื”, ื›ืืฉืจ ืื ื• ืžื•ืกื™ืคื™ื ืžื—ืจื•ื–ืช ืœ- LinkedList , ืื ื• ืžื•ืกื™ืคื™ื Node ื—ื“ืฉ ื”ืžื›ื™ืœ ื”ืคื ื™ื” ืœืžื—ืจื•ื–ืช, ื›ืžื• ื’ื ืงื™ืฉื•ืจ ืœ- Node ื”ืงื•ื“ื ื•ื”ื‘ื . ืžืขืจื›ืช ื™ื—ืกื™ื ื–ื• ื ืงืจืืช ืงื•ืžืคื•ื–ื™ืฆื™ื”. ื”ื•ื ืžืชื•ืืจ ืขืœ ื™ื“ื™ ืฆื™ื•ืจ ืงื• ืจืฆื™ืฃ ืขื ืžืขื•ื™ืŸ ืžืœื ืขืœ ื”ืžืจื•ื›ื‘ (ืžืฉื”ื• ื”ืขืฉื•ื™ ืžื—ืœืงื™ื ืžืจื›ื™ื‘ื™ื). ื›ืขืช ื ืฆื™ื’ ืืช ื”ืงืฉืจ ื›ื˜ืงืกื˜:
class Node{
}
LinkedList *-- Node
ื•ืขื›ืฉื™ื• ืืชื” ืฆืจื™ืš ืœืœืžื•ื“ ืื™ืš ืœืชืืจ ืกื•ื’ ื—ืฉื•ื‘ ื ื•ืกืฃ ืฉืœ ืžืขืจื›ืช ื™ื—ืกื™ื: ืชืœื•ืช. ื”ื•ื ืžืฉืžืฉ ื›ืืฉืจ ืžื—ืœืงื” ืื—ืช ืžืฉืชืžืฉืช ื‘ืžื—ืœืงื” ืื—ืจืช, ืืš ื”ืžื—ืœืงื” ืื™ื ื” ืžื›ื™ืœื” ื•ืื™ื ื” ื™ื•ืจืฉืช ืืช ื”ืžื—ืœืงื” ื”ืžืฉื•ืžืฉืช. ืœื“ื•ื’ืžื”, LinkedList ื•- ArrayList ื™ื•ื“ืขื™ื ืœื™ืฆื•ืจ ListIterator . ืื ื• ืžื™ื™ืฆื’ื™ื ื–ืืช ื›ื—ืฆื™ื ืขื ืงื• ืžืงื•ื•ืงื•:
class ListIterator
ListIterator <... ArrayList : create
ListIterator <... LinkedList : create
ืœืื—ืจ ืฉืขืฉื™ื ื• ืืช ื›ืœ ื–ื”, ืื ื• ืžืงื‘ืœื™ื: UML: ืžืชื™ืื•ืจื™ื” ืœืคืจืงื˜ื™ืงื” - 4ืืชื” ื™ื›ื•ืœ ืœื”ื•ืกื™ืฃ ื›ืžื” ืคืจื˜ื™ื ืฉืฆืจื™ืš. ื›ืžื•ื‘ืŸ, ืื™ืŸ ืฉื•ื ื“ื‘ืจ ืขืœ ื˜ื‘ืขื™ ื‘ืฆื™ื•ืจ ืชืจืฉื™ื ื›ื–ื”. ื›ืฉืืชื” ืขื•ื‘ื“ ืขืœ ื”ืžืฉื™ืžื•ืช ืฉืœืš, ืืชื” ื™ื›ื•ืœ ืœืฆื™ื™ืจ ืืช ื–ื” ื‘ืžื”ื™ืจื•ืช ื‘ื™ื“. ื–ื” ื™ืขื–ื•ืจ ืœืš ืœืคืชื— ืืช ื”ื™ื›ื•ืœืช ืœื—ืฉื•ื‘ ื“ืจืš ืืจื›ื™ื˜ืงื˜ื•ืจืช ื”ืืคืœื™ืงืฆื™ื” ื•ืœื–ื”ื•ืช ื—ืกืจื•ื ื•ืช ื‘ืžื‘ื ื” ื”ื›ื™ืชื” ื‘ืฉืœื‘ ืžื•ืงื“ื, ืœื ืœืื—ืจ ืฉื›ื‘ืจ ื‘ื™ืœื™ืช ืืช ื”ื™ื•ื ื‘ื™ื™ืฉื•ื ื”ืžื•ื“ืœ ื”ืœื ื ื›ื•ืŸ. ื–ื” ื ืจืื” ื›ืžื• ืกื™ื‘ื” ื˜ื•ื‘ื” ืœื ืกื•ืช ืืช ื–ื”, ืœื? :)

ืื•ื˜ื•ืžืฆื™ื”

ื™ืฉื ืŸ ื“ืจื›ื™ื ืฉื•ื ื•ืช ืœื™ืฆื•ืจ ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ื“ื™ืื’ืจืžื•ืช PlantUML. ืœื“ื•ื’ืžื”, ืœ-IDEA ื™ืฉ ืืช ื”ืคืœืื’ื™ืŸ SketchIT , ืื‘ืœ ื”ื•ื ืœื ืžืฆื™ื™ืจ ื“ื™ืื’ืจืžื•ืช ื‘ืฆื•ืจื” ื ื›ื•ื ื” ืœื—ืœื•ื˜ื™ืŸ. ื ื ื™ื— ืฉื”ื™ื™ืฉื•ื ืฉืœ ืžืžืฉืงื™ื ืžืฆื•ื™ืจ ื‘ืฆื•ืจื” ืฉื’ื•ื™ื” (ื”ื•ื ืžื•ืฆื’ ื‘ืชื•ืจ ื™ืจื•ืฉื”). ื‘ืื™ื ื˜ืจื ื˜ ื™ืฉ ื“ื•ื’ืžืื•ืช ื›ื™ืฆื“ ืœืฉืœื‘ ื–ืืช ื‘ืชื”ืœื™ืš ื”ื‘ื ื™ื™ื” ืฉืœ ื”ืคืจื•ื™ืงื˜ ืฉืœืš. ืœื“ื•ื’ืžื”, ืืชื” ื™ื›ื•ืœ ืœืžืฆื•ื ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘-uml-java-docklet ืขื Maven. ื›ื“ื™ ืœื”ื“ื’ื™ื, ื ืฉืชืžืฉ ื‘- Maven Archetype ื›ื“ื™ ืœื™ืฆื•ืจ ื‘ืžื”ื™ืจื•ืช ืคืจื•ื™ืงื˜ ืฉืœ Maven. ืœึธืจื•ึผืฅ

mvn archetype:generate
ื‘ืชื’ื•ื‘ื” ืœื‘ื—ืจ ืžืกืคืจ ืื• ื”ื—ืœ ืžืกื ืŸ, ื”ืฉืืจ ืืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ - ืคืฉื•ื˜ ื”ืงืฉ Enter. ื–ื” ืชืžื™ื“ ื™ื”ื™ื” "maven-archetype-quickstart". ื‘ื—ืจ ืืช ื”ื’ืจืกื” ื”ืขื“ื›ื ื™ืช ื‘ื™ื•ืชืจ. ืœืื—ืจ ืžื›ืŸ, ื ืขื ื” ืขืœ ื›ืžื” ืฉืืœื•ืช ื•ื ืกื™ื™ื ืœื™ืฆื•ืจ ืืช ื”ืคืจื•ื™ืงื˜: UML: ืžืชื™ืื•ืจื™ื” ืœืคืจืงื˜ื™ืงื” - 5Maven ืื™ื ื• ื”ื ื•ืฉื ืฉืœ ืžืืžืจ ื–ื”, ื›ืš ืฉืชื•ื›ืœ ืœืžืฆื•ื ืชืฉื•ื‘ื•ืช ืœืฉืืœื•ืชื™ืš ืขืœ Maven ื‘ืžืจื›ื– ื”ืžืฉืชืžืฉื™ื ืฉืœ Maven . ื‘ืคืจื•ื™ืงื˜ ืฉื ื•ืฆืจ, ืคืชื— ืืช ืงื•ื‘ืฅ ืชื™ืื•ืจ ื”ืคืจื•ื™ืงื˜, pom.xml, ืœืขืจื™ื›ื”. ืื ื• ื ืขืชื™ืง ืืช ื”ืชื•ื›ืŸ ืžืชื™ืื•ืจ ื”ืชืงื ืช uml-java-docklet ืœืงื•ื‘ืฅ ื–ื”. ืœื ื ื™ืชืŸ ืœืžืฆื•ื ืืช ื”ื—ืคืฅ ื”ืžืฉืžืฉ ื‘ืชื™ืื•ืจ ื‘ืžืื’ืจ ื”ืžืจื›ื–ื™ ืฉืœ Maven. ืื‘ืœ ื”ื“ื‘ืจื™ื ื”ื‘ืื™ื ืขื‘ื“ื• ืขื‘ื•ืจื™: https://mvnrepository.com/artifact/com.chfourie/uml-java-doclet/1.0.0 . ื‘ืžื™ืœื™ื ืื—ืจื•ืช, ื‘ืชื™ืื•ืจ ืืชื” ืคืฉื•ื˜ ืฆืจื™ืš ืœื”ื—ืœื™ืฃ ืืช groupId ืž-"info.leadinglight" ืœ-"com.chfourie" ื•ืœื”ื’ื“ื™ืจ ืืช ื”ื’ืจืกื” ืœ-"1.0.0". ืœืื—ืจ ืžื›ืŸ, ื ื•ื›ืœ ืœื”ื•ืฆื™ื ืืช ื”ืคืงื•ื“ื•ืช ื”ื‘ืื•ืช ื‘ืกืคืจื™ื™ื” ืขื ื”ืงื•ื‘ืฅ pom.xml:

mvn clean install
ื•

mvn javadoc: javadoc
ืื ื ืคืชื— ื›ืขืช ืืช ื”ืชื™ืขื•ื“ ืฉื ื•ืฆืจ (explorer target\site\apidocs\index.html), ื ืจืื” ืืช ื“ื™ืื’ืจืžื•ืช ื”-UML. ืื’ื‘, ืงืฉืจ ื”ื™ื™ืฉื•ื ืžื•ืฆื’ ื›ืขืช ื›ื”ืœื›ื” :)

ืกื™ื›ื•ื

ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, UML ืžืืคืฉืจ ืœืš ืœื“ืžื™ื™ืŸ ืืช ืžื‘ื ื” ื”ื™ื™ืฉื•ื ืฉืœืš. ืื‘ืœ UML ื™ื›ื•ืœ ืœืขืฉื•ืช ื”ืจื‘ื” ื™ื•ืชืจ. ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘-UML ื›ื“ื™ ืœืชืืจ ืชื”ืœื™ื›ื™ื ืฉื•ื ื™ื ื‘ืชื•ืš ื”ื—ื‘ืจื” ืฉืœืš ืื• ื›ื“ื™ ืœืชืืจ ืืช ื”ืชื”ืœื™ืš ื”ืขืกืงื™ ืฉืžืงื™ืฃ ืคื•ื ืงืฆื™ื” ืฉืืชื” ื›ื•ืชื‘ ืขื‘ื•ื“ื•ืช. ืชืฆื˜ืจืš ืœื”ื—ืœื™ื˜ ื‘ืขืฆืžืš ืขื“ ื›ืžื” UML ืฉื™ืžื•ืฉื™ ืขื‘ื•ืจืš ื‘ืื•ืคืŸ ืื™ืฉื™, ืื‘ืœ ืœื ืžืฉื ื” ืžื” ืชื—ืœื™ื˜, ื–ื” ื™ืขื–ื•ืจ ืœืžืฆื•ื ืืช ื”ื–ืžืŸ ืœืœืžื•ื“ ืขื•ื“ ืขืœ ื–ื”.
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION