Author Topic: How to include existing libraries in the UML class  (Read 627 times)

alenb

  • EA Novice
  • *
  • Posts: 5
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
How to include existing libraries in the UML class
« on: November 13, 2007, 08:06:38 pm »
Hi all, I just stared playing around with UML for my Flex / Actionscript 3 work. The problem I encountered is when I have to extend or use classes from the default library. They are in nature very huge with about 50 or more members with a huge chain of inheritance.

My questions are:

- Should I include all of them with all the members and all the classes in the chain?

- If not, what should I include, which classes and which members?

I think it would be an overkill to include all, furthermore reverse engineering wouldn't work in most of the cases because some of the classes are defined as MXML files which is XML like syntax. Having to retype all of it doesn't seem like a good idea.

Thanks for help.
 






«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: How to include existing libraries in the UML c
« Reply #1 on: November 14, 2007, 04:25:28 am »
I don't think EA will reverse engineer the ActionScript default library for you.

[At least not yet, but there's hope. Make a feature request to Sparx. If they see enough interest this could get onto their radar.]

Meanwhile, search the forum for posts dealing with the Import Binary feature of EA. While this is currently scoped to Java and .Net only, there is some (limited) information about how people have approached partitioning these libraries - which also share the problems associated with large size and complex hierarchies. You may get some ideas on what to look for as you attempt to do a limited import.

BTW, given that you have MXML to work with, consider writing an add-in. This could be a routine that parses the metadata in these files, checks a few option settings (such as whether to import private features), and then creates the corresponding EA elements, complete with hierarchy and namespaces. I suspect (entirely without proof) that you'd get good return on the amount of front-end effort involved.

David

Ever so Subtle hint: If you do follow the above route, and you're in a position to share the output, you could be a real hero and publish the resulting model (say in XMI form) to the EA Wiki. You'll find directions in the footer of the first post of the top thread in the Automation section.
No, you can't have it!

alenb

  • EA Novice
  • *
  • Posts: 5
  • Karma: +0/-0
  • I love YaBB 1G - SP1!
    • View Profile
Re: How to include existing libraries in the UML c
« Reply #2 on: November 14, 2007, 08:31:25 pm »
Let's forget that reverse engineering option for now. That was just my noobish stab in the dark. But I'm sure going to give it a go.  

If RE is not an option and I have a diagram of 20 classes of my own and I also use 5 classes from existing libraries with lots of members and deep hierarchy, then modeling those 5 classes will take much more space and time then modeling those 20, that are the most important to be modeled with the UML. In this case I would spend most of my time reinventing the wheel instead of solving application problems.

There has to be some way of handling this. I'm sure Java architects, when they model the new application, they don't go and remodel all the Swing components, I don't know if they even include that as classes. Same goes for my problem with MXML and Flash library.

Cheers





«Midnight»

  • EA Guru
  • *****
  • Posts: 5651
  • Karma: +0/-0
  • That nice Mister Grey
    • View Profile
Re: How to include existing libraries in the UML c
« Reply #3 on: November 15, 2007, 07:42:26 am »
That's why the Java (or .Net) folks might want to do an Import Binary Module to get EA to build these models for them. They could keep the results in a reference project, then export the appropriate package trees via XMI and import them into projects where they needed to reference the libraries.

But... As I mentioned, this feature is not (at least not yet) available outside of .Net and Java modules.

David
No, you can't have it!