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 - dirc

Pages: [1] 2 3 4
Suggestions and Requests / Multiple Document Windows
« on: October 18, 2006, 04:45:28 am »
I am modelling a set of entities and their underlying data models. I generated the data model by the DDL transformation. Now, this transformation hasn't been very clever about a lot of things, so I need to manually change the data model based on my class diagram.

I am also using dual screens so it would be useful for me to be able to be able to see the two side by side so that I can check the validity of the two.

Currently, I can only switch between tabbed diagrams.

I would like to be able to undock windows into a MDI application and even unhook windows and display them on another screen.

Suggestions and Requests / SUGGESTION:  Include Version in filename
« on: June 05, 2006, 03:07:41 am »
For the download, could you please include details of the version and build in the filename?

Since new builds come out so frequently, I download them and put them in a central location for our users to install. Currently, I rename the file on download each time so that users know what the version and build is.

eg. Current version currently called easetupfull.exe.

Suggested name:
eg: ea_full_6.1_248.exe

We use html output a lot, great for visibility within the project.

  • Rather than do the whole model every time, (which is time consuming with a large model, even if I have only made one change!), I only output certain packages, but I have to configure them every time.
  • Futher to this, I have a lot of framework classes imported into my model, and I don't want to generated these every time, since they do not change.

I would like to be able to create and configure html documentation sets as follows: (Probably also applicable to RTF doc)

  • Have the ability to output each package to a configured location.
  • Within a documentation set, have the ability to enable/disable the generation of each package.
  • For each package, have the ability to only re-generate the documentation if there have been changes since that last time it was output.
  • Finally, for each documentation set, have the option to regenerate completely.

Suggestions and Requests / Inconsistent code generation paths
« on: March 10, 2006, 07:48:46 am »
When I try to generate code for a package from my model, I choose a folder.

Package Name: Package1
eg: C:\projects\MyProject\MyFolder

However, the path actually used is the folder name plus the package name, and I have no control over this:


I would actually prefer to put the code in the folder I actually requested.

For example, I will have created a folder into which to place my skeleton code.  Either the generated files are put into another path or I have to remember to set the folder for export to be different to the one I actually want... this can be confusing!


XSLT has longer learning curve, there is no doubt. And there is no need to take a survey for usability and other things - template language is easier to use, maybe not so powerfull as XSLT would be

IT is a special region of human activity, where learning through the life is exposed mostly - you are forced to learn new things, new languages - it's a price to pay for what you, I and others choose

1) I think most developers/architects would know XSLT, surely? It has been core to what we do for years!

2) Constant learning is one thing, indeed my personal motto has always been "Eternal yearning for eternal learning". However, my boss has another viewpoint and keeps asking me when I am going to get the design complete.. it is a commercial requirement that the software be quick to learn and easy to use. No other tools that I have used over the past few years has required me to use a proprietry and quirky 'language'. Rather, you get the ability to extend through a language of your choice, or at least through a language that most people know or, if you don't know it, at least it would be useful if you did learn it, because the skills would be re-usable. And that is core to my requirement.

With the code generation and transformation functionality now available, our lives are being transformed by the ability to automate large chunks of our work and that is a good thing. With the ideas behind MDA (.. and I don't agree with all those concepts, but that's another discussion...) this code generation/transformation is going to be a big part of what we do. I just think it would be worthwhile re-thinking the approach.

I have had to bit the bullet and spend some time getting the templates to work.

The real problem I am coming across is that it is really limited and not extensible. For instance, I want a function to change the captialisation of a method, but this does not exist in the code generation templates. (It does in the transformation templates however... why the difference?)

This means that the developers of the template macros have to try to guess what everyone wants up front, which, as we know is impossible.

If we have to keep this template approach (and I'm not a fan) could we at least have some way of extending it by writing our own macros/functions?

Otherwise, could we have the code generation/transformation piece exposed in the API so that we can extend bits in a language of our choice?

1) Have you tried a usability study for the templates and documentation?

Documentation usually makes sense to those who wrote it!

2) Documentation should be task focussed, not feature focussed.

As a user, I would like a walkthrough telling me how to do each stage of the process.

3) Understanding of how to use a library is best learnt through examples.

I would like to see a lot more examples.


It might be easy to learn if you are using it constantly, but I would suspect that most users would use it more intermittently. How often does a user typically write transformations? If it is not on a daily basis, then any new 'language ' is going to be hard to absorb. As an architect, I have something of an information overload and having to learn a new language is cumbersome.

In this respect, I think that it would be useful to implement the code generation templates in a standard language. I used Select Component Architect with my previous company and all code generation could be done through VBScript and the object model provided. This was ideal and was quick to implement. ( I still hate Select though..) At least XSLT is widely understood.

Now, if we could do this in a strongly typed language and have the full object model available we would be in heaven.

So, bearing this in mind, I think I might do transformations by writing add-ins... the idiom is a lot easier to understand and I can do it in a language of my choice... well, one day, when I get the time!

and the long answer?

Would it not have been easier to implement the code generation templates as XSLT? I for one am loath to learn yet another language and way of working.

I am aiming to do a lot of code generation using MDA but the templates are somewhat obtuse to say the least and the documentation is dire! I just don't have the time to do this, but it seems to be a necessary evil. At least if were XSLT most developers would get a head start.

Suggestions and Requests / Version Control for Code Templates
« on: January 20, 2006, 12:23:22 am »
I see us using the Transformations quite heavily in the future and I would like to be able to version these using source control.

At the moment, it is quite risky to do changes without an easy rollback mechanism.

Could you not do the same with the templates that you do with packages.. ie export to file and apply source control to that file?

Currently, I can get associations in my class model to generate the code for the roles. I can set the scope of the generated field.

However, what I really want to do is to generated the field as a private field and then create a Property and then have the option to have make it read only... This would be an extension of the Property dialog used for explicitly created attributes.

I currently have to do this manually, and make sure to change the property if I change any associations, which kind of defeats the point of dynamic code generation.

My scenario: (C#)

I have a series of associated classes with multiplicity greater than one. So I have set it to use a collection class to generate the field. Best design says that I should make the collection a read only property so that users cannot just swap the collection.

I have a complex domain model with lots of relationships that I have in one diagram and I have put the package in Source Control.

I made a major change which I later decided to revert to a previous version. Now, I had spent a long time getting the connectors just right using custom connectors and lots of bends.
However, reverting to the previous version kept the class layout but not the connectors... they were all recreated as direct connectors which made the whole diagram unreadable!

Could we please store this information in Source Control too so that we can completely recreate the diagram?

Suggestions and Requests / Linked Sequence diagram from a class operation
« on: November 23, 2005, 09:43:43 am »
I've had to use Select Component Architect for some time due to company policy.

CA is terrible to use and very buggy, but it did have one very useful feature:

In your class diagram, if you right mouse clicked on an operation, you could choose to generate a sequence diagram for that operation. Once it was saved, the sequence diagram could then be accessed directly from the operation in the class.

What's more, you could then output the details from your sequence diagram straight into your generated code as comments... which is damn useful when generating code for other developers to complete and saves a hell of a lot of developer time since they don't have to keep looking at different diagrams!

Suggestions and Requests / Reverse Enginering of Type Libraries
« on: August 14, 2003, 02:04:13 am »
We all use system libraries or third party libraries or even our own compiled libraries in our applications, but cannot import them into our models for use in diagrams, so we have to spend time recreating the class model for these libraries if we want to include them in our diagrams.

As a .NET user, another alternative would be to at least have a model of the .NET namespace available to import... although this would be rather large  :)

I used to use this extensively in Rose :-/

Suggestions and Requests / Re: Support for Web Services
« on: August 14, 2003, 01:39:29 am »
Definitely... WebService support would be an excellent Unique Selling Point for EA!  ;D

Pages: [1] 2 3 4