Integrating Graph Transformations and Modal Sequence Diagrams for Specifying Structurally Dynamic Reactive Systems Sabine Winetzhammer 1 , Joel Greenyer 2 and Matthias Tichy 3 1 Chair of Applied Computer Science 1 - Software Engineering, Bayreuth University, Germany 2 Software Engineering Group, Leibniz Universit¨ at Hannover, Germany. 3 Software Engineering Division, Chalmers | University of Gothenburg, Sweden. September 29th, 2014 Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (1/15)
What’s happening...? warehouse1 warehouse2 from itemKind issuedJobs :Job request access assignedTo robot2 transport issueBy robot1 system assign job control order item to robot3 assembly1 assembly2 assembly3 worker1 worker2 Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (2/15)
What’s happening...? warehouse1 warehouse2 from itemKind issuedJobs :Job request access assignedTo robot2 issueBy transport robot1 system assign job control order item to robot3 assembly1 assembly2 assembly3 worker1 worker2 Multiple physically distributed mechatronic components Interaction between these components Changes in physical and logical structure Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (2/15)
What’s happening...? warehouse1 warehouse2 from itemKind issuedJobs :Job request access assignedTo robot2 issueBy transport robot1 system assign job control order item to robot3 assembly1 assembly2 assembly3 worker1 worker2 Multiple physically distributed mechatronic components Interaction between these components Changes in physical and logical structure ⇒ Structurally dynamic (distributed) reactive system Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (2/15)
Class Diagram CD FactorySystem 0..1 0..1 ItemKind kind Factory itemKind ... +name:String ... Job Item 0..1 (container) carriedItem assignedTo 0..1 0..1 0..n created- issued- Job Jobs 0..1 fromLoc Agent Location +doJob(job:Job) 0..1 toLoc 0..1 +arrived(newLoc:Location) isAt isAt 0..1 AssemblyStation Warehouse Robot Worker +orderItem(ik:ItemKind) +loadItem(ik:ItemKind) +itemNotAvailable() controledRobots 0..n 0..n warehouses Environment StorageManagement TransportSystemControl +move(loc:Location) +orderItem(ik:ItemKind) +loadItemOnRobot( 0..1 +createJob(itemKind:ItemKind, r:Robot, ik:ItemKind) issuedBy fromLoc:Location, 0..1 toLoc:Location) transportSystemControl Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (3/15)
Object System wh1 fromLoc ik1 itemKind assignedTo issuedJobs isAt j1:Job r1 toLoc tsc issueBy a1 w OS SmallFactory fromLoc itemKind wh1:Warehouse j1:Job ik1:ItemKind name = “Valve” issuedJobs isAt issuedBy assignedTo r1:Robot tsc:TransportSystemControl controledRobots toLoc a1:AssemblyStation w:Worker env:Environment isAt isAt Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (4/15)
Modal Sequence Diagrams MSD WorkerOrdersItem w:Worker Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (5/15)
Modal Sequence Diagrams MSD WorkerOrdersItem w:Worker a:AssemblyStation Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (5/15)
Modal Sequence Diagrams MSD WorkerOrdersItem w:Worker a:AssemblyStation orderItem(itemKind) (c/m) Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (5/15)
Modal Sequence Diagrams MSD WorkerOrdersItem sm := a.factory. storageManagement w:Worker a:AssemblyStation sm:StorageManagement orderItem(itemKind) (c/m) orderItem(itemKind) (h/e) Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (5/15)
Modal Sequence Diagrams MSD WorkerOrdersItem sm := a.factory. tsc: = sm. storageManagement transportSystemControl w:Worker a:AssemblyStation sm:StorageManagement tsc:TransportSystemCtrl orderItem(itemKind) (c/m) orderItem(itemKind) (h/e) createJob(itemKind, (h/e) fromLoc, a) Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (5/15)
Modal Sequence Diagrams MSD WorkerOrdersItem sm := a.factory. tsc: = sm. storageManagement transportSystemControl w:Worker a:AssemblyStation sm:StorageManagement tsc:TransportSystemCtrl orderItem(itemKind) (c/m) orderItem(itemKind) (h/e) alt createJob(itemKind, (h/e) fromLoc, a) Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (5/15)
Modal Sequence Diagrams MSD WorkerOrdersItem sm := a.factory. tsc: = sm. storageManagement transportSystemControl w:Worker a:AssemblyStation sm:StorageManagement tsc:TransportSystemCtrl orderItem(itemKind) (c/m) orderItem(itemKind) (h/e) alt createJob(itemKind, (h/e) fromLoc, a) itemNotAvailable (h/e) itemNotAvailable (h/e) Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (5/15)
Modal Sequence Diagrams MSD WorkerOrdersItem sm := a.factory. tsc: = sm. storageManagement transportSystemControl w:Worker a:AssemblyStation sm:StorageManagement tsc:TransportSystemCtrl orderItem(itemKind) (c/m) orderItem(itemKind) (h/e) alt createJob(itemKind, (h/e) fromLoc, a) itemNotAvailable (h/e) itemNotAvailable (h/e) Requirements Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (5/15)
Modal Sequence Diagrams MSD WorkerOrdersItem sm := a.factory. tsc: = sm. storageManagement transportSystemControl w:Worker a:AssemblyStation sm:StorageManagement tsc:TransportSystemCtrl orderItem(itemKind) (c/m) orderItem(itemKind) (h/e) alt createJob(itemKind, (h/e) fromLoc, a) itemNotAvailable (h/e) itemNotAvailable (h/e) Requirements Assumptions Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (5/15)
Modal Sequence Diagrams MSD WorkerOrdersItem sm := a.factory. tsc: = sm. storageManagement transportSystemControl w:Worker a:AssemblyStation sm:StorageManagement tsc:TransportSystemCtrl orderItem(itemKind) (c/m) orderItem(itemKind) (h/e) alt createJob(itemKind, (h/e) fromLoc, a) itemNotAvailable (h/e) itemNotAvailable (h/e) Requirements Assumptions Simple structural changes Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (5/15)
Modal Sequence Diagrams MSD WorkerOrdersItem sm := a.factory. tsc: = sm. storageManagement transportSystemControl w:Worker a:AssemblyStation sm:StorageManagement tsc:TransportSystemCtrl orderItem(itemKind) (c/m) orderItem(itemKind) (h/e) alt createJob(itemKind, (h/e) fromLoc, a) itemNotAvailable (h/e) itemNotAvailable (h/e) Requirements Assumptions Simple structural changes & Play-out Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (5/15)
Modal Sequence Diagrams MSD WorkerOrdersItem sm := a.factory. tsc: = sm. storageManagement transportSystemControl w:Worker a:AssemblyStation sm:StorageManagement tsc:TransportSystemCtrl orderItem(itemKind) CUT (c/m) orderItem(itemKind) (h/e) alt createJob(itemKind, (h/e) fromLoc, a) itemNotAvailable (h/e) itemNotAvailable (h/e) Requirements Assumptions Simple structural changes & Play-out Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (5/15)
Modal Sequence Diagrams MSD WorkerOrdersItem sm := a.factory. tsc: = sm. storageManagement transportSystemControl w:Worker a:AssemblyStation sm:StorageManagement tsc:TransportSystemCtrl orderItem(itemKind) (c/m) orderItem(itemKind) (h/e) CUT alt createJob(itemKind, (h/e) fromLoc, a) itemNotAvailable (h/e) itemNotAvailable (h/e) Requirements Assumptions Simple structural changes & Play-out Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (5/15)
Graph Transformation Rules GT arrived_a(newLoc:Location) LHS RHS Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (6/15)
Graph Transformation Rules GT arrived_a(newLoc:Location) LHS RHS newloc:Location agent:Agent isAt assignedTo oldLoc:Location job:Job Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (6/15)
Graph Transformation Rules GT arrived_a(newLoc:Location) LHS RHS newloc:Location newloc:Location agent:Agent agent:Agent isAt isAt assignedTo oldLoc:Location oldLoc:Location job:Job Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (6/15)
Graph Transformation Rules GT arrived_a(newLoc:Location) short-hand notation: GT arrived(newLoc:Location) LHS RHS newloc:Location newloc:Location agent:Agent agent:Agent ++ isAt newloc:Location isAt isAt agent:Agent assignedTo oldLoc:Location oldLoc:Location -- isAt --assignedTo job:Job --job:Job oldLoc:Location Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (6/15)
Graph Transformation Rules GT arrived_a(newLoc:Location) ++ isAt newloc:Location agent:Agent -- isAt --assignedTo oldLoc:Location --job:Job Sabine Winetzhammer (Uni Bayreuth) Integrating GTRs and MSDs September 29th, 2014 (6/15)
Recommend
More recommend