Graphical editor for the Metropolis meta-modelOverview of the projectDesign methodologySlide 4InfrastructureGraphical editorStructure of the editorJava programmingHow it worksSlide 10Slide 11Netlist generationAcknowledgmentGraphical editor for the Metropolis meta-modelJiagen Ding and Hongjing ZouFall 2001Overview of the projectMetropolis meta-modelGraphical editorUserMouse click, keyboard inputImmediate and relevant feedbackabout properties of the systemIn our presentationReview the Metropolis meta-modelPresent the structure of the graphical editorDemo the editorDesign methodologyHigh level abstraction of a systemFunctional decomposition – into a set of processesP1P2P3Behavior adaptation – modeled as processesCommunication – by defining media nodeCommunication refinement – refine media nodeP1P2P3P’P’’P1P2P3P’P’’M2M1M3M4refineMiMM’MiPP’Computation and communication are separated!Design methodologySystemFunctionSystemArchitectureMappingMapping – Function and architecture are separated.RefineImplementation of systemsOptimization – get better implementationInfrastructurecoordination• constraints on concurrent actions• algorithms to enforce the constraintsschedulercomputation• f: X Z• firing ruleprocessprocess P1{port pX, pZ;thread(){ // condition to read X // an algorithm for f(X) // condition to write Z}}communication• state• methods to - store data - retrieve datamediummedium M{ int[] storage; int space; void write(int[] z){ ... } int[] read(){ ... }}P1.pZ.write() P2.pX.read()P1P2MSpXpZ pX pZM’M’Graphical editorFunctions of the editor:Manipulation on three kinds of nodes (process, media, and scheduler)Create, modify, and deleteConnection and netlist generationRefinementRequirement for the editor:Dynamic and interactiveP1P2MSpXpZ pX pZM’M’Structure of the editorUserViewControllerModelRenderers Mouse clicksDisplayFigureMouseClicksAddModifyDeleteNotify withEventsCreate figuresJava programmingKey classesBasicGraphModel, GraphEvent, GraphListenerProcessRenderer, MediumRenderer, SchedulerRendererJGraph, GraphPane, SchematicGraphController, BasicNodeController, EdgeControllerHow it worksUserViewControllerModelRenderers Click on a nodeDisplay figure been selectedSend the click to the controllerCreate figuresHow it worksUserViewControllerModelRenderers Press ‘P’ for propertyDisplay a dialog showing the property for corresponding nodeSend the press to the controllerCreate figuresSend command to ModelSend the property information of the selected nodeHow it worksUserViewControllerModelRenderers Change the code for the nodeDisplay modified codeSend the changes to the controllerCreate figuresModify the code stored in the model databaseOKOKNetlist generationObjects of process, medium, scheduler, and their derived types belong to netlist.Create node – addcomponent(NodeObject, NetlistOblect);A connection between two objects is always through a port.Port specification for node– connect(SrcObject, SrcPortName, DestObject);P1P2MSM’M’for each process node and scheduler node{ for each port{ connect(SrcObject, SrcPortName, DestObject); }}AcknowledgmentThanks to our mentorsYosinori Watanabe and Luciano Lavagno And thanks toStephen Andrew Neuendorfferfor help on
View Full Document