Real World PlantUML
BobBobAliceAlice1Authentication Request2Authentication Response15Another authentication Request16Another authentication Response40Yet another authentication Request50Yet another authentication Response
SEQUENCE DIAGRAM
6084542192418816
:ConfigurableClientList:CacheConfig:ZoneTableSegment(Mapped)seg1:MemorySegment(Mapped):ZoneTablela:LoadActionzw:ZoneWriterzd:ZoneDataseg2:MemorySegment(Mapped):b10-memmgr:b10-memmgr:ConfigurableClientList:CacheConfig:ZoneTableSegment(Mapped)seg1:MemorySegment(Mapped)seg2:MemorySegment(Mapped):ZoneTablela:LoadActionzw:ZoneWriterzd:ZoneDatanew/initial config(datasrc cfg)<<construct>>:ConfigurableClientListconfigure(cfg)<<construct>> (cfg):CacheConfig<<construct>>:ZoneTableSegment(Mapped)isWritable()Segment not writablewhen not resetfalsegetStatus()DataSourceStatus[]loop[for each datasrc with mapped segment]resetMemorySegment(datasrc_name,READ_WRITE,segmentparam)reset(READ_WRITE,segmentparam)<<construct>>seg1:MemorySegment(Mapped)<<construct>>:ZoneTablegetZoneTableAccessor(datasrc_name,cache=true)ZoneTableAccessorloop[for each zone given by ZoneTableIterator]getCachedZoneWriter(zone_name)getLoadAction()<<construct>>la:LoadActionla<<construct>> (la)zw:ZoneWriterzwload()(funcall)<<construct>> via helperszd:ZoneDatazdinstall()addZone(zd)NULL (no old data)command tomodules(datasrc_name,segmentparam)ack from allmodulesresetMemorySegment(datasrc_name,READ_WRITE,segmentparam)reset(READ_WRITE,segmentparam)<<destroy>><<construct>>seg2:MemorySegment(Mapped)load zonefor each zonegiven byZoneTableIterator
SEQUENCE DIAGRAM
6087763954761728
Swimlane1foo1foo4Swimlane2foo2foo3foo5
ACTIVITY DIAGRAM
6095597975109632
Use case 1userUse case 2
COMPONENT DIAGRAM
6098414131478528
User«Human»Main Database«Application»«One Shot»Start«Main»Use the application
USE CASE DIAGRAM
6099963943583744
DesignRequirementMRDPRDFeasibility_Report
STATE DIAGRAM
6102375970373632
FirstClassfirstField : intsecondField : boolchar * firstMethod ( )long * secondMethod ( firstParameter : int)FirstStructurefirstField : intsecondField : boolchar * firstMethod ( )long * secondMethod ( firstParameter : int)
CLASS DIAGRAM
6104960198508544
net.sourceforge.plantumlUser
CLASS DIAGRAM
6106665837395968
Class01Class02ClassSubclass
CLASS DIAGRAM
6117191728496640
StageTimeoutstage: Stageconstructor:function(cfg)timeout:function(ctx)overdue:function(ctx)
CLASS DIAGRAM
6118084544823296
Transform Jobs Workers (Successful Block Copy or FFmpeg transcoding)OrchestraOrchestraStorageStorageTransformTransformStartup (celeryd -Q queue_name)<< get next transform job from queue >><< next transform job is ... >>concurrency_valuejobs can be threatedsimultaneously (multithreading)alt[if job encoder_name is 'copy']Launch new block copy<< read input media from medias path >><< read block 1/N from input media >><< write block 1/N to output media >><< update job status & statistics ... >><< read block 2/N from input media >><< write block 2/N to output media >><< read block N/N from input media >><< write block N/N to output media >><< end of file >><< update job status & statistics ... >>[job encoder_name is 'ffmpeg' or 'dashcast']Launch new FFmpeg / DashCast instance<< read input media from medias path >><< FFmpeg / DashCast read input media >><< FFmpeg / DashCast write output media >><< update job status & statistics ... >><< FFmpeg / DashCast read input media >><< FFmpeg / DashCast write output media >><< FFmpeg / DashCast read input media >><< FFmpeg / DashCast write output media >><< end of file >><< update job status & statistics ... >>POST /transform/callback {"job_id": "<uuid_of_job>", "status": "SUCCESS"}Set media status=READY into MongoDBOK 200{"status": 200, value="Your work is much appreciated, thanks !"}
SEQUENCE DIAGRAM
6120602737836032
AliceAliceBobBobAuthentication RequestAuthentication ResponseAnother authentication Requestanother authentication Response
SEQUENCE DIAGRAM
6121211817885696
UserUserAppAppServerServerDatabaseDatabaseregistermakePostRequest()registerNewUser()ResultSetalt[email is unique]HTTP Response(success:true)[else]HTTP Response(success:false)
SEQUENCE DIAGRAM
6129861345148928
ClassAClassAClassBClassBClassCClassCClassDClassDWe do outside-in if westart with ClassAWe do inside-out if westart with ClassD
SEQUENCE DIAGRAM
6135265487749120
User Pulls newest changes of documentsUserUserPullClientPullClientPsychicOctoRobotServerPsychicOctoRobotServerGitServerGitServerNode.js server which serves thewebpages requested by the user.requests page forpulling new revisionsweb page forPullClientThe PullClient is aJavascript client made of js-gitand our code bundled with browserifyreads local "git"directory to checkfor repositoriespresentDisplays documentsthat are trackedin repositories locallyselects documentrepository to pullalt[Contact GitServer Directly]Requests new revisions for repositoryNew revisions for repository[get updates through PsychicOctoRobotServer]Sends request new revisions of repoRequests new revisions for repositoryNew revisions for repositoryNew revisions for repositoryDisplays message notifying user of success/failure
SEQUENCE DIAGRAM
6136375468359680
Statisticsmean(unit : TimeUnit) : doublestdev(unit : TimeUnit) : doubleelements() : intStopWatchreset() : voidstart() : voidstop() : voidsplit() : voidgetTime() : longreport() : Statistics
CLASS DIAGRAM
6136528208134144
UserUserAppAppServerServerDatabaseDatabasecomment on reviewmakePostRequest()putComment()ResultSetalt[login key is correct]alt[review is found]HTTP Response(success:true)[else]HTTP Response(success:false)[else]HTTP Response(success:false)
SEQUENCE DIAGRAM
6138859167416320
PostgresTomcatDatabaseHtml/JavascriptHttp/RESTWebClientServerJDBC
COMPONENT DIAGRAM
6143141652463616
LatticeNodedata: DataContainerindex : int[3]from_node(node: LatticeNode): LatticeNode {copy}classmethods
CLASS DIAGRAM
6145561061228544
Test11void Test11 ( )void ~Test11 ( )int function ( a : int , b : int)void getVoidDefnitionInClass ( a : int , b : int)
CLASS DIAGRAM
6149483171676160
userdummyLeftdummyRightdummyUpdummyDown
COMPONENT DIAGRAM
6156396189974528