plantuml
DESCRIPTION
Brief introduction to PlantUML.TRANSCRIPT
![Page 1: PlantUML](https://reader034.vdocuments.mx/reader034/viewer/2022052619/555a444cd8b42ae1398b504e/html5/thumbnails/1.jpg)
PlantUML
2014-7, Leo Liang
![Page 2: PlantUML](https://reader034.vdocuments.mx/reader034/viewer/2022052619/555a444cd8b42ae1398b504e/html5/thumbnails/2.jpg)
actor useruser -> access ++ : getInfo() access -> access : authentication() access -> backend ++ : getInfo() backend -> dataStore : query() returnreturn
WriteDraw
![Page 3: PlantUML](https://reader034.vdocuments.mx/reader034/viewer/2022052619/555a444cd8b42ae1398b504e/html5/thumbnails/3.jpg)
› Writing is sometimes easy than drawing– Keyboard typing is faster than mouse dragging– Copy and paste– Auto layout on generation
› Text is manageable than binary– Keep UML source inside code (javadoc) or document (slides etc.)
› Convenient for update afterward
– Track change by version control system› Merge is possible
– Integrate with other system, e.g. IDE, content management system.
Why Text Based?
![Page 4: PlantUML](https://reader034.vdocuments.mx/reader034/viewer/2022052619/555a444cd8b42ae1398b504e/html5/thumbnails/4.jpg)
› Support all common UML diagrams– Sequence diagram Most Useful
– Class/object diagram Limitation in big diagram
– Use case diagram– Activity diagram / flow chart– Component diagram– State diagram
Yet Powerful
![Page 5: PlantUML](https://reader034.vdocuments.mx/reader034/viewer/2022052619/555a444cd8b42ae1398b504e/html5/thumbnails/5.jpg)
Sequence
actor userboundary accessparticipant backenddatabase dataStore
user -> access ++ : getInfo() access -> access : authentication() note right: HTTP Basic or Digest access -> backend ++ : getInfo() loop for info categories backend -> dataStore : query() end returnreturn
![Page 6: PlantUML](https://reader034.vdocuments.mx/reader034/viewer/2022052619/555a444cd8b42ae1398b504e/html5/thumbnails/6.jpg)
Class
hide empty fieldshide empty methods
class InvocationHistoryAspect <<aspect>>
class InvocationHistoryRecorder { + start(methodName): InvocationContext}
class InvocationContext { + finished(): void}
interface SamplingPolicyclass TimeBasedSampling implements SamplingPolicyclass NumberBasedSampling implements SamplingPolicy
InvocationHistoryRecorder .> InvocationContextInvocationContext ..> InvocationHistoryInvocationHistoryAspect --> InvocationHistoryRecorderInvocationHistoryInterceptor --> InvocationHistoryRecorderInvocationHistoryRecorder --> SamplingPolicy
![Page 7: PlantUML](https://reader034.vdocuments.mx/reader034/viewer/2022052619/555a444cd8b42ae1398b504e/html5/thumbnails/7.jpg)
Activity
start
if (graphviz installed?) then (yes) :process all diagrams;else (no) :process only sequence and activity diagrams;endif
stop
![Page 8: PlantUML](https://reader034.vdocuments.mx/reader034/viewer/2022052619/555a444cd8b42ae1398b504e/html5/thumbnails/8.jpg)
Component
node "Exposure" { PxMessaging -- [Messaging] PxLocation -- [Location] [Property Access CF][Messaging] -> [Property Access CF][Location] -> [Property Access CF]} node "Biz Admin" { GProvI -- [Provisioning]}
database "MySql" { folder "SIG-DB" { [Common Entities] }}
[Provisioning] --> [Common Entities][Property Access CF] --> [Common Entities]
![Page 9: PlantUML](https://reader034.vdocuments.mx/reader034/viewer/2022052619/555a444cd8b42ae1398b504e/html5/thumbnails/9.jpg)
State
[*] --> NotShooting
state NotShooting { [*] --> Idle Idle --> Configuring : EvConfig Configuring --> Idle : EvConfig}
state Configuring { [*] --> NewValueSelection NewValueSelection --> NewValuePreview : EvNewValue NewValuePreview --> NewValueSelection : EvRejected NewValuePreview --> NewValueSelection : EvSaved state NewValuePreview { State1 -> State2 }}
![Page 10: PlantUML](https://reader034.vdocuments.mx/reader034/viewer/2022052619/555a444cd8b42ae1398b504e/html5/thumbnails/10.jpg)
› Project home: document, download– http://www.plantuml.com/
› Online editor– http://www.plantuml.com/plantuml/form– http://www.planttext.com/planttext
› Integration– Eclipse: http://www.plantuml.com/eclipse.html– Jekyll: https://github.com/yjpark/jekyll-plantuml – More… http://www.plantuml.com/running.html
Resources