Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - astradss

Pages: [1]
1
Suggestions and Requests / Eclipse integration: setup is project based
« on: August 14, 2009, 05:55:44 pm »
In EA the path to the Eclipse exe file that it in the directory where you installed the integration/link features, is done via "Add-Inns/Eclipse/Options" menu. The link (and host IP/port) is stored as a global setting, which means that when I have set it to for example an Eclipse/CDT directory for doing C++ development, and then opens a new project for PHP development, the setting has to be changed globally, if the Eclipse root directory for the PHP tool chain is different from the CDT tool chain (this is very common I believe).

Proposal: let the Eclipse integration "setup options" be stored on a per project basis instead of globaly.

One thing to think about: If this is accepted there is still one scenario that are not covered. If you have multiple Eclipse versions as explained and one EA model is covering a multi-language environment, then a setup of Eclipse integration per project would not work, since you link to one Eclipse directory in a specific project. The workaround for that is to combine all your Eclipse installations into one huge Eclipse installation supporting "all" languages and then let the EA project be setup to that directory. Another option could be that since a package is linked to an Eclipse project, the setup option (like the path to Eclipse) could also be stored on a per package basis. This would enable support for one EA model to link with multiple Eclipse installations supporting several different target languages.

br,
astradss

2
Suggestions and Requests / Eclipse integration installer changes
« on: August 14, 2009, 05:35:04 pm »
If one is using multiple Eclipse versions (for example a PHP tool chain and a C++ toolchain) together with EA, the installer for the Eclipse integration/link only allows installation into one Eclipse directory. If another version is needed and you start the installation process then you are forced to remove the "old" installation, which you still need and use, before the integration/link can be installed in the new Eclipse directory.

Proposal: The installer allows installation into a new Eclipse directory every time you start the installation process.

- I don't know where it keeps the record of where it is installed (registry?) , but it could keep track of all installations by itself so if the repair mode of the installer is activated, it could ask for the Eclipse root directory one would like to repair, or if it does not keep track at all, the user is prompted for the Eclipse root directory when doing a remove/repair operation.

I belive it is very normal to have several Eclipse installations and therefore I think it is important for the Eclipse integration installation process to support that.

br,
Martin

3
General Board / EA and Eclipse integration: some hints
« on: August 14, 2009, 07:04:27 am »
This explains (maybe this has common interest, so therefore I started this thread):
1. How to add EA integration into multiple Eclipse instances
2. How to solve path issues in model if the Eclipse workspace is changed

I have been using EA and Eclipse together in a dual screen setup. EA on one screen and Eclipse on the other. No matter if I change the model or the code, the other is updated in realtime. Very nice.

But I run many different versions of Eclipse for various reason. The MDG Eclipse integration installer only supports one install to a specific Eclipse directory, and if you try to run the installer again you are forced to remove the integration before a new Eclipse version can be installed to.

I needed in the first place to have the integration working with a Eclipse PHP version and 3 different Java versions. I had an old Eclipse for mobile development and would like to try if the integration was working with the lastest Eclipse Pulsar Galileo version. So I had to install the integration manually. I did following:
a. copy all "org.sparx.*" files from the Eclipse plugin directory where you originally installed the MDG Eclipse integration, to the new Eclipse plugin directory.
b. copy the "manifests" directory from the original Eclipse directory (placed in "eclipse\configuration\org.eclipse.osgi") to the new Eclipse directory in the same relative path.
c. start the new Eclipse and a new menu called "Enterprise Architect" is available etc.

I have just tried this with the new "Pulsar for Mobile Java Developers" (Galileo) and it seems to be working without problems. Still more testing is needed, but real-time code/model update is working and I can jump from model to code without problem.

The next problem I encountered was that with the new Eclipse installation (Pulsar) I also used a new working directory for various reasons. So when I started EA and Eclipse I could jump from the model to code, but the model was initially not updated when I change the code and the other way around. I then re-imported the code from the new workspace directory, without deleting the old classes in the model. The net result was two of each class in the model and I could create a class diagram with two classes (not instances) from the same package and with the same name. No matter which of the two classes I selected, a "view source" or F12 jump to the right code in the correctly new workspace (so both classes jump to the code in the same workspace). But when I change the code only one of the classes was updated with the new code and also if I changed the model only one of the classes resulted in changes in the code. This was solved by doing following:
a. my model is in an eap file which is version controlled. I reverted to the latest version in the trunk (which is the last checked in model from the old workspace).
b. I went into the menu "settings/local paths" and defined a new local path ID with the absolute path set to the old workspace.
c. in the same menu, after the local path was defined, I applied that path (all absolute paths in the model was now replaced with the local path ID).
d. I then changed the local path ID to be associated with the absolute path to the new workspace directory and saved that (I did not use the apply button in this case).
e. after this the code sync in both direction was working with real-time update again.

Why is this important? If a user checks out the model from subversion to another absolute workspace directory, the path is updated in the local path menu (again no "apply" or "Expand Path", just save the new path after changing it.

I hope this information can help other people with similar problems.

I found some problems with the EA/Eclipse integration that could result in improvements I and will document those in the feature request part of the forum. The basic problem is that EA link to Eclipse via a global setting and not per project and per package, which means that you have to have one single Eclipse installation active at the time, but you can switch globally.

br,
astradss

4
Bugs and Issues / State machine simulation not UML conformant
« on: November 03, 2013, 08:03:00 am »
Hi,
with my understanding and interpretation of UML standard the state machine simulation does not follow the standard when it comes to choice points.

Example (textual, since pictures can not be uploaded?):
InitialState -> State1 (transition from initial to State1 set testVar=0)
State1 -> ChoicePoint1 (transition increments testVar with one, it is fired by event1)
ChoicePoint1 -> State2 (transition have guard: testVar ==1)
ChoicePoint1 -> State3 (transition have guard: testVar != 1)

So when State1 is active, after coming from InitalState, testVar = 0.
When event1 fires compound transition from State1 to ChoicePoint1, testVar is incremented to 1 before the ChoicePoint is reached. But the simulation transitions to State3, hence it takes the transition where the guard is testVar != 1, but testVar = 1 when ChoicePoint1 is reached. Hence the transition to State2 should have been taken.

Why do I think this? A choice point in UML is a dynamic decision point, and guards after it should be evaluated at the choice point, and not as usual, before the compound transition is taken (so the choice point is semantically implemented as a junction / static branch in the EA state machine semantic) =>

From UML standard:
---
Guards
In a simple transition with a guard, the guard is evaluated before the transition is triggered.
In compound transitions involving multiple guards, all guards are evaluated before a transition is triggered, unless there are choice points along one or more of the paths. The order in which the guards are evaluated is not defined.
If there are choice points in a compound transition, only guards that precede the choice point are evaluated according to the above rule. Guards downstream of a choice point are evaluated if and when the choice point is reached (using the same rule as above). In other words, for guard evaluation, a choice point has the same effect as a state.
Guards should not include expressions causing side effects. Models that violate this are considered ill-formed.
---
Question: Do you agree with my interpretation and understanding of choice points - and hence the EA state machine semantic is non-conformant with UML?

Pages: [1]