I am new to EA and was planning to explore the use of EA as a modeling tool for a couple of our upcoming projects. However I have some questions with regards to code engineering (forward, reverse as well as round-trip synchronization)
Here is the context
I understand that EA allows this capability and this is one of the reasons for me to recommend this tool for our project but I need to set up realistic expectation for my management. Let’s say we follow the ICONIX process and start modeling with a subset of UML diagrams as we move towards development, developers will most likely add functions/classes, some functions/classes will be provided as a part of the programming languages like (.NET classes or JEE classes which comes as a part of the core libraries), Now lets say I have a Use Case Diagrams, Robustness Diagrams, Class Diagrams and sequence Diagram (following the ICONIX process).
Question 1
If I try to sync-up the Sequence Diagram, Class Diagram will it not be cluttered with some of these language specific classes and functions and will it not make the sequence diagram a bit complex to maintain as it results in too much info. Can some one advise what they have done to avoid this or do we have to live with this.
Question 2
If we decide to use a framework which is say Struts2, Hibernate, Spring, NHibernate, ER Framework or whatever; will that framework not result in representation in the Sequence Diagram, Class Diagram and then add more complexity to the already complex class diagram/Sequence Diagram which now has all those programming language specific classes. Can some one advise what they have done to avoid this or do we have to live with this.
Question 3
Should the assumption that you model till your detailed design phase and then forward engineer the model to create code stubs as a starting point and then leave everything else out of sync once we start coding; a good one to make, I know EA supports round-trip engineering but if we do that then do we not add complexity to the model thereby losing its main appealing aspect which is a model that is not that cluttered with infrastructure specifics(the language classes, the framework we select like struts2, spring etc), Now I do understand that that’s how the code is but is there a silver bullet here.
Question 4
This is really not that important, but what happens as frameworks and programming languages mature over the years; we already got some major releases coming in .NET, JEE world which would cause some ripple effects. Can someone provide me with details of what framework support comes out of the box from EA and does it provide a smother transition to never versions of the frameworks.