Today, I made a new attempt to start working with Enterprise Architect. It is still quite hard to find out what it can do for me.
My background:
Developer of database applications.
.Net, SQL databases.
Client server and web based.
Some knowledge of UML.
10 years of experience in software development.
Expectations
I hope Enterprise Architect is a tool that will help me generate (and update) programming code and DDL. This would make it a lot more useful than some other drawing tools that still need a human to transfer all information to the software being built.
Goal
My first goal is to generate data models for SQL Server 2005 from an Enterprise architect project, rather than designing it in SQL Server.
Experiences
First problem: what models to use?
Supposedly, Data model would be a good one.
What objects to use?
Supposedly, Entity.
Well, let me first Import a DB schema from ODBC.
My tables have become classes in the model!?
Well let's continue that way.
Question: which of the properties are needed to actually generate a useful data model and which are for documentation purposes only? Not a clue from the tool.
Let's add some relations. The relations have been reversed engineered as associations. The stereotype is not specified. Relationship is one option, shouldn't it be that?
The Direction property Source -> Destination. Could it be any other way? Probably these concepts are different from what my intuition tells me.
Etc., etc.
Conclusions
Enterprise Architect cannot be learned by experimenting.
The user interface is intimidating and asks me for many properties I do not understand.
The help does not explain anything in depth. Example help for aggregation property of an association: Select the type of aggregation that this role uses.
Also, it is absolutely not clear what will be the effects of settings on the generation of code and DDL.
I am not blaming Enterprise Architect for all this. I think I might need to spend a lot more time to get anywhere, but it may be useful for you to know how a new user experiences the tool.
Recommendations
Improve help by explaining not only how to fill out property forms, but also why the properties are relevant and what they will do during code generation (if anything at all).
Add some information about the model objects and their code counterparts.
Define the minimal sub set of models, objects and properties, needed to be able to generate code.