Bu66le has started a very interesting discussion in "How to convince my boss? " on usage of UML with the reference to Craig Larman's note. As it was slightly tangential to the original point , and important I have opened a new topic on it.
My attraction to UML and a good process is the attraction of focus on requirements management and design which is decoupled from implementation. So many times in the past I have experienced requirements and design evolving in the coding leading to spaghetti resulting in decreased robustness, maintenance difficulties and increased enhancement times due to badly thought out architecture.
A formal process/UML approach enables/forces one to develop a comprehensive understanding of the domain before comitting to code. My backgorund is in ER modelling and we always spent a lot of time creating the ER Model, and then from this forward engineering the physical database. This was brilliant. Why should application design be different???
So my vision, and probably question, is why can one not aim to use a tool such as EA to do a comprehensive design and use this to forward engineer an application?
Therefore I would be looking to model the UI (Class diagrams??), Application layer (Class diagrams etc.) and Data Layer (Class diags...)
Also how can one enhance component reuse via a tool such as EA. For example Select Component Factory (
www.selectbs.com) enables cataloging and resuse. This would enable one to have a catalogue of pretested components with documented interfaces, ready and and waiting for use.
Another question to ask is where does Service Oriented Development Architecture (SODA) fit into this? I have been prototyping an XML declarative approach for orchestrating Component services such as ADO, Forms, Email etc. to implement application logic with success. The XML is very much STEPS and ACTIVITIES so not much different to activity diagrams. Does EA's forward engineering template functionality have a role here.
Sorry about all the words, but I am passionate about the potential of UML/Process and related technologies to create applications more quickly and effectively.
Any opinions really appreciated.
Sam