Real World PlantUML
JobsetMapperClass(cls)setCombinerClass(cls)setReducerClass(cls)waitForCompletion(verbose): booleanMappersetup(context)cleanup(context)map(key, value, context)run(context)MapContextReducersetup(context)cleanup(context)reduce(key, values, context)run(context)TaskInputOutputContextwrite(key, value)ReduceContextJobContext
CLASS DIAGRAM
5246541191184384
h2o-zookeeper.jarh2o-zookeeper.jar (1)h2o-zookeeper.jar (2)zookeeper.jaruseruserwater.zookeeper.h2odriverwater.zookeeper.h2odriverwater.zookeeper.h2oworker (1)water.zookeeper.h2oworker (1)water.H2O (1)water.H2O (1)water.zookeeper.h2oworker (2)water.zookeeper.h2oworker (2)water.H2O (2)water.H2O (2)zookeeperzookeeperUser starts a new H2O cloud1User starts driver processUser specifies zkConnectionString: a.b.c.d:eUser specifies zkRoot: /zk/path/h2o-uuidUser specifies numNodes: 2java -jar h2o-zookeeper.jar water.zookeeper.h2odriver-zk a.b.c.d:e-zkroot "/zk/path/h2o-uuid"-nodes 2-startEstablish root ZNode for this cloud2Driver creates zkRootcreate("/zk/path/h2o-uuid", (PERSISTENT))ZNode data: { "numNodes" : 2 }User is responsible for providinga unique cloud name (h2o-uuid).3OK4Driver creates zkRoot/nodescreate("/zk/path/h2o-uuid/nodes", (PERSISTENT))5OK6OKStart workers7Start H2O node 1java -jar h2o-zookeeper.jar water.zookeeper.h2oworker-zk a.b.c.d:e-zkroot "/zk/path/h2o-uuid"-nodes 2[plus other H2O options]8Start H2O node 19H2O node 1 port chosen10Worker creates ZNodecreate("/zk/path/h2o-uuid/nodes/", (PERSISTENT, SEQUENCE))ZNode data: { "ip" : "n1a.n1b.n1c.n1d", "port" : n1e, "pid" : pid1 }11OK12Start H2O node 2java -jar h2o-zookeeper.jar water.zookeeper.h2oworker-zk a.b.c.d:e-zkroot "/zk/path/h2o-uuid"-nodes 2[plus other H2O options]13Start H2O node 214H2O node 2 port chosen15Worker creates ZNodecreate("/zk/path/h2o-uuid/nodes/", (PERSISTENT, SEQUENCE))ZNode data: { "ip" : "n2a.n2b.n2c.n2d", "port" : n2e, "pid" : pid2 }16OKPoll for nodes started17Poll for all nodes startedgetChildren("/zk/path/h2o-uuid/nodes")18OK"/zk/path/h2o-uuid/nodes/1"{ "ip" : "n1a.n1b.n1c.n1d", "port" : n1e, "pid" : pid1 }"/zk/path/h2o-uuid/nodes/2"{ "ip" : "n2a.n2b.n2c.n2d", "port" : n2e, "pid" : pid2 }19Poll for all nodes startedgetChildren("/zk/path/h2o-uuid/nodes")20OK(Same as above)H2O nodes request flatfile from workers21Request flatfile22Worker provides flatfile to H2O23Request flatfile24Worker provides flatfile to H2OH2O nodes find each other and notify workers25H2O nodes form a cloud26H2O nodes form a cloud27cloud size 228cloud size 2Workers create a master (sentinal) ZNode (only one create succeeds)29Create cloud ready ZNodecreate("/zk/path/h2o-uuid/master", (PERSISTENT))ZNode data: { "ip" : "n1a.n1b.n1c.n1d", "port" : n1e, "pid" : pid1 }30OK31Create master ZNode (cloud ready)create("/zk/path/h2o-uuid/master", (PERSISTENT))ZNode data: { "ip" : "n2a.n2b.n2c.n2d", "port" : n2e, "pid" : pid2 }32KeeperException.NodeExistsThis is OK, exactly one node wins the raceUser polls for cloud up33User polls for cloud upjava -jar h2o-zookeeper.jar water.zookeeper.h2odriver-zk a.b.c.d:e-zkroot "/zk/path/h2o-uuid"-wait34Poll for master node ip and port of the new H2O cloudgetData("/zk/path/h2o-uuid/master")35OK{ "ip" : "n1a.n1b.n1c.n1d", "port" : n1e, "pid" : pid1 }36Master node ip, portUser interacts with H2O cloud37Point browser to H2O Web UI
SEQUENCE DIAGRAM
5253001895739392
Simpleexampleof titleObjectArrayList
CLASS DIAGRAM
5253209396346880
Sequence diagram of Libera Tango Device Server objectstango_dbtango_dbLiberaBrilliancePlusLiberaBrilliancePlusLiberaClientLiberaClientLiberaAttrLiberaAttrLiberaSignalLiberaSignalSignalSignalinit_deviceget_device_propertyCreateloop[All attribute and signal nodes]AddScalarCreateAddSignalCreateConnectloop[All configured signals]InitializeOpenset_state(ON)operating in state ONpar[Attribute update thread]Readdata valueatribute pointer is directly updated[Signal reading thread]Readdata bufferchanges are kept in signal buffer[allways_executed_hook call]GetDatadata value arrays
SEQUENCE DIAGRAM
5253989201346560
Simplecommunication exampleon several linesAliceAliceBobBobAuthentication RequestAuthentication Response
SEQUENCE DIAGRAM
5258524686811136
networknetworkuserRobot FrameworkPSTTCheck LibraryTest CaseSend...OnRecv...Get DataCheckScriptSend...Recv...Get DataScriptSend...Recv...Get DataReportData1Data2Data...ReportData1Data2Data...Check ListCheck1Check2ResultPassFailError
USE CASE DIAGRAM
5262240907264000
HTTP Request Parsing StatesRequestLineParse HTTPrequest lineHeadersParse HTTPheadersErrorHostCheck hostheader is presentLengthCheck if required,valid & sizeChunkedParse HTTPchunk headerOkFailureOkFailureNot chunkedChunkedFailureFailureEntity Too LargeOkFailureOk
STATE DIAGRAM
5270249679093760
ClientSSOServerHadoopService1. credentialstokens2. access tokenrequested resource
SEQUENCE DIAGRAM
5273659614691328
:ConfigurableClientList:CacheConfig:ZoneTableSegment(Mapped)seg1:MemorySegment(Mapped)seg2:MemorySegment(Mapped):b10-auth:b10-auth:ConfigurableClientList:CacheConfig:ZoneTableSegment(Mapped)seg1:MemorySegment(Mapped)seg2:MemorySegment(Mapped)new/initial config(datasrc cfg)<<construct>>:ConfigurableClientListconfigure(cfg)<<construct>> (cfg):CacheConfig<<construct>>:ZoneTableSegment(Mapped)isWritable()Segment not writablewhen not resetfalsegetStatus()DataSourceStatus[]subscribe tomemmgr groupcommand frommemmgr(datasrc_name,segmentparam)resetMemorySegment(datasrc_name,READ_ONLY,segmentparam)reset(READ_ONLY,segmentparam)<<construct>>seg1:MemorySegment(Mapped)command frommemmgr(datasrc_name,segmentparam)resetMemorySegment(datasrc_name,READ_ONLY,segmentparam)reset(READ_ONLY,segmentparam)<<destroy>><<construct>>seg2:MemorySegment(Mapped)reload(zonename)getCachedZoneWriter(zone_name)isWritable()Segment not writableas it is READ_ONLYfalseCACHE_NOT_WRITABLE
SEQUENCE DIAGRAM
5276177807704064
Transact24ResellerResellerCardDirectorAPICardDirectorAPIPrepare messageSign messageSend message(JSON POST request via HTTPS)Verify message's signatureProcessing (it's a long process)Prepare interim response messageSign interim response messageReturn interim response message (JSON) with status: processingVerify response message's signaturePrepare final response messageSign final response messageSend final response message (status code: success or fail) to reseller's callback URL(JSON POST request via HTTPS)Verify response message's signature
SEQUENCE DIAGRAM
5276786887753728
StageTimeoutstage: Stageconstructor:function(cfg)timeout:function(ctx)overdue:function(ctx)
CLASS DIAGRAM
5277808553099264
AliceAliceBobBobAuthentication RequestAuthentication Response
SEQUENCE DIAGRAM
5282543486107648
la:LoadActionzw:ZoneWriterzd_new:ZoneDatanew:MemorySegment(Mapped):b10-memmgr:b10-memmgr:ConfigurableClientList:ConfigurableClientList:CacheConfig:CacheConfig:ZoneTableSegment(Mapped):ZoneTableSegment(Mapped)existing:MemorySegment(Mapped)existing:MemorySegment(Mapped)new:MemorySegment(Mapped):ZoneTable:ZoneTablezw:ZoneWriterla:LoadActionzd_existing:ZoneDatazd_existing:ZoneDatazd_new:ZoneDatareload(zonename)getCachedZoneWriter(zone_name)isWritable()truegetLoadAction()<<construct>>la:LoadActionla<<construct>> (la)zw:ZoneWriterzwload()(funcall)<<construct>> via helperszd_new:ZoneDatazd_newinstall()addZone(zd_new)zd_existing (old data)cleanup()<<destroy>>command tomodules(datasrc_name,segmentparam)ack from allmodulesresetMemorySegment(datasrc_name,READ_WRITE,segmentparam)reset(READ_WRITE,segmentparam)<<destroy>><<construct>>new:MemorySegment(Mapped)(repeat thesame sequencefor loading to theother segment)getCachedZoneWriter(zone_name)
SEQUENCE DIAGRAM
5287730464423936
installupgrade systeminstall GlusterFS serverexit 1create & configuremedias volumeexit 2-3expose GlusterFSokNookNo
ACTIVITY DIAGRAM
5290840557617152
Usersid: intname: stringe_mail: stringRmvUsers(user_id)Profileuser_id: intusername: stringChangeProfilePic(path: string)ChangeBackGround(path: string)messageuser_id: intmessage_id: intmessage_content: stringrecipient_id: intSendMessage(user_id,message,recipient_id)deleteMessage()Followeruser_id: intfollowing: int[]followers: int[]listFollower()listFollowing()Twitstwit: string[]id:intAddTwit(text: string, id: int)RemoveTwit()EditTwit(text: string, id: int)ShowAllTwit()1110..n10..n10..n
CLASS DIAGRAM
5291950538227712
ClientsidClientnomEtudiantsidEtudiantnomdateNaissance
CLASS DIAGRAM
5292103278002176
Elementowner : Elementvisibility : booleanselectRelationsOfTyperelationship queriesNamedElementname : SymbolProjectPackagemodelspackagesrelationship queriesAttributetype : Symbolsize : IntegerisRequired : BooleanMethodModelalias superclass, ownerattributesmethodssubclassespackagesrelationship queriesThe relationship queries method groupscall selectRelationshpOfTypeAm looking at making a relationshipcalled Superclass and a separaterelationship called Subclass.Yet these two are intimately connected.How should this symbiotic relationshipbe modeled?relationships0..*
CLASS DIAGRAM
5293709058899968
net.fooPerson
CLASS DIAGRAM
5294434237284352
Commandexecute()CashRegistertotaladdCash()getTotal()PurchasecashRegisteramountexecute()PurchaseInvokerexecutedPurchasesreplayPurchases()has apassed to
CLASS DIAGRAM
5296785597661184
Very simple componentdiagramData AccessFirst ComponentHTTPuse
COMPONENT DIAGRAM
5305177426886656
Application WebServeur PlayUtilisateurUtilisateur«Contrôleur formulaire»formMeeting.js«Contrôleur formulaire»formMeeting.js«Contrôleur formulaire»Meeting.java«Contrôleur formulaire»Meeting.java«Email»Mails.java«Email»Mails.javasubmitMeeting()getParameters()result = checkFields()alt[result]formMeeting(fields)result = checkFields()alt[result && Security.isConnected]User user = User.getUser(Security.connected)Meeting meeting = new Meeting(fields,user)meeting.url = meeting.generateURL()meeting.save()alt[meeting == prive]saveParticipants()sendEmailToParticipants(particpants)renderJSON(0)display information[!result || !Security.isConnected]renderJSON(1)display error[!result]display error
SEQUENCE DIAGRAM
5311971259842560