I’m a week off starting a new Metastorm project that takes an existing system that has had its fair share of issues and we are essentially re-architecting it to be more stable and provide a whole load more usability. This project is not the subject of my post however, it’s the tool we’re using to model it… Sparx Enterprise Architect. This is my number 1 tool for creating models when I’m in the planning stage of a development project and in fact at the end of a project when I need to model a database that is at final release or re-engineer types for release documentation.
In my opinion, Sparx EA is the best modelling tool I have used to date, because it does everything I need and miles more. For me personally I tend to draw up mostly Use Case, Class/Object/Component, Activity and Sequence Diagrams and EA is great for this. Not only that, it’s a great tool for representing your entity/data models using the UML class diagram. I use EA to reverse engineer my data tier objects (including procedures) because it’s literally as simple as selecting your ODBC data provider, the db objects you wish to model and then blam, EA reads your database object structures and loads the selected objects into a nice class diagram that illustrates PK-FK relationships, column default values and of course data types. I use the EA boundary element to group together my tables into logical groups or schemas. I modelled the data model from my current project and grouped the tables in 20 minutes:
As for your diagrams, you can organise them into projects and packages within those projects so handy for keeping all of your project diagrams in an easy to understand structure. Diagrams are available for UML (structural, behavioural etc), Archimate, BPMN , Mind Mapping, SOMF, SPEM, Flow Chart, Org Chart and SoaML so if you can’t decide on a particular modelling framework, you have a choice. I do use UML and BPMN (for process modelling) the most.
The coolest feature in my opinion is the model driven development/architecture (MDA). You can use forward and reverse engineering of code for popular languages like C#, VB.NET, Java and C++ (even WSDL and XSD Schemas). I’m using 7.5 and its more than enough for my modelling needs. Version 8 is the current release and you can download a trial from the Sparx website – here.
Honestly between Sparx EA and Notepad++, in terms of tools for supporting software and process development, I don’t need much more.