There are many reasons why we might build models of our code. The main
reason is the same as the reason why we model buildings before we build
them. Models abstract complex ideas (like the ideas we find in code) so that
the important aspects can be easily communicated. The cost of drawing a UML
diagram of a Word Processor will be hundreds of times less than building
one, and such a model would reveal many aspects of the design that would be
hard to spot in the code itself (like circular references, or unnecessary
dependancies). Also, the model gives us a common language for talking to
business analysts, testers and project managers - try getting them to
discuss a Java listing in your next design meeting...
I like visual models that are supported by precise and simple
meta-languages - which currently UML is not (though I'm told to expect good
things in UML 2.0) - because then there is semantically no difference
between the UML model and the code (and the tests, and the documentation).
Have a look on the OMG website for details of model-driven architecture.
Precise modeling languages also remove the possibility of misinterpretation
that currently
dogs the UML.
Without the UML (or similar notation) we would have trouble "seeing the big
picture", and - as with buildings, cars, mobile phones and a million other
engineering products - we would likely end up building systems that have
serious design flaws that show up far too late.
Hope this helps
Jason Gorman
http://www.precisexp.org
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Dan Lupu
Sent: 18 June 2001 12:43
To: Rose Forum
Subject: (ROSE) Why do we build UML models ?
Hi all,
One of our developers asked me: "Why do we need to build a UML model of the
software?. Why not to go straight to the code?"
I have two different answers for this:
1. Build a UML model of the software in order to execute it and this way
check the software architecture.
2. Build a UML model of the software in order to have a road map for
understanding the system(for new developers to the project).
The first answer implies maintaining the model in sync with the code. (this
is a problem in Rose!)
The second answer implies that you can stop modeling at a specific level of
detail and let the developers learn more from the code.
So, why do you use a model? What is the point of it?
Many thanks,
Dan Lupu
SQA manager, Email: [EMAIL PROTECTED]
************************************************************************
* Rose Forum is a public venue for ideas and discussions.
* For technical support, visit http://www.rational.com/support
*
* Admin.Subscription Requests: [EMAIL PROTECTED]
* Archive of messages:
http://www.rational.com/products/rose/usergroups/rose_forum.jtmpl
* Other Requests: [EMAIL PROTECTED]
*
* To unsubscribe from the list, please send email
*
* To: [EMAIL PROTECTED]
* Subject:<BLANK>
* Body: unsubscribe rose_forum
*
*************************************************************************
************************************************************************
* Rose Forum is a public venue for ideas and discussions.
* For technical support, visit http://www.rational.com/support
*
* Admin.Subscription Requests: [EMAIL PROTECTED]
* Archive of messages:
http://www.rational.com/products/rose/usergroups/rose_forum.jtmpl
* Other Requests: [EMAIL PROTECTED]
*
* To unsubscribe from the list, please send email
*
* To: [EMAIL PROTECTED]
* Subject:<BLANK>
* Body: unsubscribe rose_forum
*
*************************************************************************