>> So, why do you use a model? What is the point of it?

I think the following three paragrpahs from Martin Fowler's paper "Is Design
Dead" sum up the point *very* well...

"In its common usage, evolutionary design is a disaster. The design ends up
being the aggregation of a bunch of ad-hoc tactical decisions, each of which
makes the code harder to alter. In many ways you might argue this is no
design, certainly it usually leads to a poor design. As Kent puts it, design
is there to enable you to keep changing the software easily in the long
term. As design deteriorates, so does you ability to make changes
effectively. You have the state of software entropy, over time the design
gets worse and worse. Not only does this make the software harder to change,
it also makes bugs both easier to breed and harder to find and safely kill.
This is the "code and fix" nightmare, where the bugs become exponentially
more expensive to fix as the project goes on.

Planned Design is a counter to this, and contains a notion born from other
branches of engineering. If you want to build a doghouse, you can just get
some wood together and get a rough shape. However if you want to build a
skyscraper, you can't work that way - it'll just collapse before you even
get half way up. So you begin with engineering drawings, done in an
engineering office like the one my wife works at in downtown Boston. As she
does the design she figures out all the issues, partly by mathematical
analysis, but mostly by using building codes. Building codes are rules about
how you design structures based on experience of what works (and some
underlying math). Once the design is done, then her engineering company can
hand the design off to another company that builds it.

Planned design in software should work the same way. Designers think out the
big issues in advance. They don't need to write code because they aren't
building the software, they are designing it. So they can use a design
technique like the UML that gets away from some of the details of
programming and allows the designers to work at a more abstract level. Once
the design is done they can hand it off to a separate group (or even a
separate company) to build. Since the designers are thinking on a larger
scale, they can avoid the series of tactical decisions that lead to software
entropy. The programmers can follow the direction of the design and,
providing they follow the design, have a well built system"

Regards

Colin Gourlay




----- Original Message -----
From: "Dan Lupu" <[EMAIL PROTECTED]>
To: "Rose Forum" <[EMAIL PROTECTED]>
Sent: Monday, June 18, 2001 12:43 PM
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
*
*************************************************************************

Reply via email to