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.

Topics - MattAdamson

Pages: [1]
General Board / SQL Script generation for SQL Compact Edition
« on: October 10, 2008, 09:16:49 pm »

This doesn't seem to be supported well i.e. the SQL file generated contains primary key indexes which are clustered. I don't expect EA to support this however is there any way through modification of the templates I can change this e.g. so I can create the index using simple CREATE INDEX rather than say CREATE CLUSTERED INDEX syntax.

This is just one example there are certainly a few more



General Board / New build of EA
« on: January 25, 2008, 11:45:41 am »

Any ideas when a new build will be forthcoming?

Usually there is one every 3 - 4 weeks and it's over 3 months now since the last one.

Not that I'm that concerned however it does strike me as rather odd and when we pay for subscription we would have thought some new features would have been added by now



General Board / Add in to reverse engineer web applications
« on: October 03, 2006, 05:17:15 am »

I've written an add in which reverse engineers ASP web applications into the appropriate classes as defined using the UML Web Extensions Jim Connolan produced, which are downloadable as a profile on the sparx website. The add in takes as input a server side ASP file and a corresponding static HTML file and produces the following classes

a) Server side pages - Contains server side functions and attributes.
b) Client side pages - Contains functions and attributes, included scripts.
c) Embedded forms together with input tags and stereotype for controls.

It also creates associations between elements in the model using the stereotypes

a. Builds - Server pages builds a client page
b. Submit - Links from embedded forms back to the server side page being posted to
c. Links - Href links from client pages
d. Redirect - Links from server side page
e. Include - Included pages from server side page
f. COM Object - Links to COM objects reverse engineered in the package.

I had a look at the Rational Rose web modeller add in and this doesn't provide a very comprehensive feature set at all. A lot less than I've produced in a few days of development.

I'd be interested to hear others thoughts on features they'd like to be incorporated into this.  Certainly extending this to support Java ASP and ASP.NET would be useful.

General Board / Integrating issues for multiple models i.e. priva
« on: November 01, 2006, 05:33:44 am »
Unfortunately we’ve had some developers creating their own separate EAP models rather than using a database shared model. They’ve create new sequence diagram using elements reverse engineered into their private models.  

I know we can simply import the EAP file into the database model however how should we best go about changing diagrams such as sequence / class diagrams to replace the elements reference to use the structure in the main database model rather than their private model e.g. if our central model has a root package Assemblies which contains nested package for each .NET assembly and they have created a package say NetCode and under that say “Changes” I’m sure you get the idea.

Is there an easy way to do this without having to re create all the diagrams from scratch?

General Board / Identifying model changes when reverse engineering
« on: October 04, 2006, 03:41:47 pm »

This partly relates to my previous post on tracking and generating documentation for model changes.;action=display;num=1159858777

For some new designs we need to reverse engineer a few classes and make modifications to them. A few of the developers will need to do this for different classes at the same time.

To track their changes I assume the only way to do this effectively would be

a) Get them to reverse engineer the existing source code first.
b) Check in the model at that point into source control
c) Check out and make the actual changes to the model.
d) Use the compare utility to track the changes they made.

Any thoughts?

General Board / Generating documentation for model changes
« on: October 02, 2006, 11:59:36 pm »
Does any know an effective way to produce RTF documentation which only documents changes to a model from one base line to another or the current model?

When were compiling designs for new changes to the application the key things we do are

1) Add / Remove classes from the model
2) Remove / Add / changes some existing methods / attributes on classes
3) Add / Remove some relationships from the model.

Rather than documentating say a full class and it's contents in the documentation which may span 10 pages, we'd rather just document the new methods added perhaps.

How do others handle this when they only want to document changes? This is key for us otherwise it will be all too easy for design reviewers to miss things if they can't focus on just the changes.

Uml Process / DDL Transformations from logical model to data mod
« on: December 08, 2006, 02:48:03 pm »
We’d like to use a transformation to go from our logical model to a data model however I’ve a few questions

1)       How are many to many associations handled i.e. typically to implement a many to many association between a class you’d have to use a link table in the table. If this isn’t possible out of the box can we extend the existing transformations to do this, and if so how? We’ve already written add ins for EA so could use add-in methods within the transformation if this would get us the results we need.

2)       In the example model transformation all the strings are converted to varchar(2), would we have any additional control on the length here, could we place the preferred length of a string attribute as a tagged value and then use this in the transformation perhaps?

Let me know your thoughts?

Automation Interface, Add-Ins and Tools / New Open Source EA Addin
« on: September 03, 2007, 12:39:06 pm »

I'm pleased to announce I've finally create my first open source project which is an add in for Enterprise Architect which allows users to reverse engineer ASP files into UML models.

The UML models are created according to the web modelling extensions published by Jim Conallen and for which a EA profile is available.

It uses some interesting techniques which you may find useful in developing an add in e.g. use of regular expression to parse source code and use of the IE object model to parse some of the web page content.




I was thinking of developing an addin to allow visual comparison of two models and would like your thoughts.

The tool was going to be used in conjuction with the standard compare utility to allow more detailed and structured differencing however I'd like the visual diagram differencing to focus on key things we notice change with design revisions namely

1) New elements
2) Elements removed
3) New / removed / changed attributes and operations to elements.
4) New / removed connections between classes

You can easily obtain the differences between two packages as an XML file. I was going to parse the XML file to extract the specific differences and then draw all the elements in the diagram and colour different elements / attributes / operations / connectors to indicate whether there were new / removed or changed.
If the notes had also changed for any of these types of elements it would also be indicated with a different colour.

As the automation model doesn't show elements which have been removed and also provides no support for colouring specific operations / attributes you can't use the EA object model to draw a new diagram. The only approach I was thinking of was drawing on a .NET user control embedded within a new tab created with AddTab

I thought this would be really useful for design reviews when most of the time changes focus on specific diagrams where it is useful to see the changes without having the traverse through the tree hierarchy of the compare utility.



I'm not overly happy with the inconsistent in the object model between methods throwing exceptions or using return values e.g. many Update methods contain a boolean flag. If this fails the documentation indicates GetLastError should be called to extract the error.

I've never had an issue with Update methods failed, only exceptions raised until now. I have the following code

EA.Connector sourceElementConnector = (EA.Connector)sourceElement.Connectors.AddNew("",
sourceElementConnector.SupplierID = ((EA.Element)targetElement).ElementID;
sourceElementConnector.Stereotype = stereotype;

       throw new ApplicationException(String.Format("Failed to associate elements and update source connector for source element name='{0}' Err='{1}'",

Has anyone else had this issue, is there any other way to extract error information here. Should I be accessing the GetLastError method on another object other than the one for which the Update method failed.

Automation Interface, Add-Ins and Tools / Using Sequence Diagrams elements
« on: November 01, 2006, 06:11:27 am »

Has anyone much experience reviewing the elements in sequence diagrams such as fragments and parts of fragments. I can't see an easy way to extract this, a fragment seems to be an Element type within the object model.

I've worked out how to find the connectors for a specific sequence diagram and detail such as the lifecycle attribute i.e. whether it's new or destroy and also information part of the message such as the parameters passed.

I would really like to be able to search for all sequence diagrams which show a specific method being used on an object.

This would be a great way to cross check that all new operations defined on a class had an appropriate sequence diagram to show how the method is used i.e. it's interaction with other classes / methods and other classes / methods interaction with itself.

I assume this would be possible with automation however it would be good to have the feature in the product too. Has anyone achieved this with automation.


I was thinking of developing an add in to automate the creation of a user interface model. The add in could automatically draw the user interface screen and it's component elements given a specific application.

Does anyone have ideas of features they'd like to see implemented?

Pages: [1]