Ir al contenido principal

Metamorph: How to create the Hello World’s state Diagram in Enterprise Architect

In order to use a State Diagram modeled in Enterprise Architect you have to do following steps:

  • Create a new Enterprise Architect project or open an existing one.
  • Create two new packages called HelloWorld and Turnstile.

1.StateMachinePackage

  • The results should look like this (ignoring any other project packages):

2.ResultingTree

  • Right click Turnstile Package and click on add a new element.

3.CreateElement

  • Choose the StateMachine type from the drop down list.

4.CreateStateMachineElement

  • Write Turnstile in the name field and click Ok.

5.ChooseName

  • Double click on the Turnstile StateMachine Diagram:

6.ResultingTree

  • Add an Initial State from the toolbox.

7.CreateInitialState

  • Add a state from the toolbox and type Locked in the name field.

8.FirstState

  • Add the Unlocked state by following the same step as above, the results should look like this:

9.AllStates

  • Add the transitions as shown in the following diagram:

10.AllTransitions

  • Double click on the transition that goes from Locked to Unlocked and type “coin” in the Link name field.

11.TransitionName

  • Do the same for the other transitions as shown in the following diagram:

12.AllTransitionNames

  • Double click on the transition called coin and type Metamorph.Examples.HelloWorld.UnlockCondition in the guard field and Metamorph.Examples.HelloWorld.UnlockAction in the effect field.

13.TransitionActionCondition

  • Do the same for the following transitions:
Source Target Transition Action
Locked Locked pass Metamorph.Examples.HelloWorld.SoundAlarmAction
Unlocked Locked pass Metamorph.Examples.HelloWorld.LockAction
Unlocked Unlocked coin SendMessageAction

The results should look like this:

14.AllTransitionActionsConditions

  • Select the Turnstile Package created earlier and click on the Export package to XMI file menu item

15.SelectExport

  • Type the file name and folder in the Filename field. The dialog box should look like this:

16.Export

Click on the Export button.

  • Finally we need to convert the StateMachine.xmi to a format that Metamorph undestands. In order to do this one final step is required.
    • Find the Uml2Xml Converter console application located in the Metamorph distribution under Support Tools.
    • Execute the following command line: Uml2XmlConverter C:\ StateMachine.xmi StateMachine.xml

OK. We are good to go :D

Entradas populares de este blog

Creating a Docker container for a NodeJs application: Express + Mongo + Docker Compose

This is a Docker tutorial for creating a NodeJs container using expressjs and mongoose, above is the vid and below you will find the steps followed.
StepsPre-reqsHave node.js installedAnd docker installed (make sure you have docker-compose as well)Create an simple node app using expressjs and mongooseModify your container and create a docker-compose fileBuild and Run your new container Create your simple node appInitialize the node appnpm initInstall the dependencies for our appnpm install --save express mongoose Create the database.jsCreate the index.js Create a dockerfileInclude container with node preinstalled: FROM nodeCreate default/working directory: WORKDIR /usr/src/appCopy package.json to workdir and install dependencies (which we will need in this case😊): COPY package.json .RUN npm install Copy the rest of the app (just the index.js file in this case)COPY . .Expose the port required for reaching our expressjs appEXPOSE 3000Add a command to run when this container is star…

Creating a Mongo replicaset using docker: Mongo replicaset + Nodejs + Docker Compose

This is a Docker tutorial for creating a Mongo replica set using docker compose and also a couple more containers to experiment with the replica set, above is the vid and below you will find some of the steps followed.
StepsPre-reqsHave node.js installedAnd docker installed (make sure you have docker-compose as well)Create a container for defining configurations for a mongo instanceCreate a container for setting up the replica setCreate a simple node app using expressjs and mongoose (A modified version from the previous video)Create a docker-compose file with the mongo and setup containers and two additional containers for experimenting with the replica setBuild, Run and experiment with your new containers Create a dockerfile for the first mongo container (not really needed but you could configure more stuff if needed)Include container with mongo preinstalled: FROM mongoCreate default/working directory: WORKDIR /usr/src/configsCopy mongo's configurations file into the container
C…

How to organize your clientlibs JavaScript files by Integrating Adobe Experience Manager and System.Js

Some simple steps to organize your clientlibs javascript files using System.js

Repository with the final code
Pre-requisitesAn Adobe Experience Manager (AEM) InstanceJava  MavenSystemJs Creating the appAEM project archetypeCreating your first Adobe Experience Manager 6.2 Project using Adobe Maven Archetype 10Assuming you that have maven in the path, if not change "mvn" to for example "c:\program files\maven3.3.9\bin\mvn"
mvn archetype:generate -DarchetypeGroupId=com.adobe.granite.archetypes -DarchetypeArtifactId=aem-project-archetype -DarchetypeVersion=10 -DarchetypeRepository=https://repo.adobe.com/nexus/content/groups/public/ -DgroupId=AEM62App -DartifactId=echo62 -Dversion=0.1.0-SNAPSHOT -Dpackage=com.aem.community -DappsFolderName=AEM62App -DartifactName=AEM62App -DcomponentGroupName=AEM62 -DcontentFolderName=AEM62App -DcssId=AEM62CSS -DpackageGroup=AEM62App  -DsiteName=AEM62App Add the import-package element with javax.inject;version=0.0.0,* inside the instruc…