In review of the discussion, I would say that if you are developing using a
small team (1->10 people) and do not see a long term support problem for
the code then Rose being totally in sync with the code may provide less
benifit then the effort required to maintain.   However, if you have either
(1) a larger team, (2) maintence is required over a long period of time,
(3) you have a large group monitoring your progress, (4) you have a complex
system (5) code and documentation will be maintained by another group, or a
combination of these factors like we do, then the maximum effort is needed
to maintain model/code syncronization to support current/future
understanding of the effort.  In large complex systems, tools which help
provide a coherent picture of the complex interactions are essential and
keeping those tools in sync with the actual code is a must.


                                                                                       
                                                  
                      Margus Freudenthal                                               
                                                  
                      <[EMAIL PROTECTED]>          To:      "Styve, Arne" 
<[EMAIL PROTECTED]>                                      
                      Sent by:                   cc:      Richard Chrenko 
<[EMAIL PROTECTED]>, [EMAIL PROTECTED]              
                      owner-rose_forum@r         Subject: Re: (ROSE) who uses rational 
rose                                              
                      ational.com                                                      
                                                  
                                                                                       
                                                  
                                                                                       
                                                  
                      06/25/02 12:12 AM                                                
                                                  
                      Please respond to                                                
                                                  
                      Margus Freudenthal                                               
                                                  
                                                                                       
                                                  
                                                                                       
                                                  





"Styve, Arne" wrote:
>
> > In my opinion, Rose is
> > not very good editor for writing C++ (or Java) classes, this is better
> > done directly in C++. In addition, if you refine your model far enough
> > so that you can generate code from it, it becomes very complex and
loses
> > it's point - model should help you get overview of your class
structure,
> > focusing on important points and leaving out unimportant ones. If your
> > model is as complex as your code, you might as well use a good class
> > browser to navigate that.
>
> I'm not sure that I agree with your view here. In my opinion, the ideal
> solution would be that your model was 100% in synch with your code.

In an ideal world I'd be lying on a beach, coding some stuff for fun.
But until then, we are stuck with reality. :)

I agree that you could have model and code 100% in sync, even using
today's tools. The question is: is it worth it? If you have C++ code
that contains all the information, then you should create another,
parallel representation of exactly the same information only if you have
good reason to do so. In my opinion, having exactly the same classes in
Rose, doesn't help much, because there are better tools for browsing
classes, methods, etc. than Rose. Therefore, I choose not to invest
effort in round-trip engineering and spend this time doing more useful
things (coding).

>                                                            If you
> think of it, neither the model nor the code IS the system. Both the model
> and the code are in fact a model of your system, one described as a
> UML-model, the other described as a C++ model.....
> I agree that the support given by Rose is not good enough to achieve
this,
> but in my opinion, the overall goal should be to make your model as
complete
> and accurate as possible. Then be selective about how you PRESENT your
model
> through your diagrams.

This is a good point, but you should remember that creating diagrams
that present good overviews of your system, including important parts
and leaving out unimportant parts, takes time. Since we do not have very
large teams (max 10 persons/team), formal communication is not that
important and we can go much lighter about models and diagrams.

> By the way, what is a complex model ? If you feel your model is very
complex
> since it is 100% in synch with your code, then isn't the code just as
> complex ?

Since code is more precise than model, the code is more complex.

>  In which "domain" would you rather work to solve complex systems ?
> Directly in the code, or in the model ?
>
It depends on the nature of complexity. If the system has complicated
architecture, I'll probably use Rose to model processes, nodes,
components etc. If particular interaction between classes is complex,
I'll probably draw some diagrams - most likely by hand. Alternatively, I
can just start coding and refactoring and see what shape the design will
take. If I have to parse complex data format or interact with complex
protocol or device, I'll solve it directly in code with maybe some
throwaway state charts or sequence diagrams for better understanding.


When summarizing my point of view, I'd say that since today the most
precise representation of the software system *is* the source code, then
everything else (models, design documentation, etc.) should only be
created if they sypport creating the code. One should'nt confuse between
end and means to an end.


--
Margus
************************************************************************
* Rose Forum is a public venue for ideas and discussions.
* For technical support, visit http://www.rational.com/support
*
* Post or Reply to: [EMAIL PROTECTED]
* Subscription Requests: [EMAIL PROTECTED]
* Archive of messages:
*    http://www.rational.com/support/usergroups/rose/rose_forum.jsp
* 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
*
* Post or Reply to: [EMAIL PROTECTED]
* Subscription Requests: [EMAIL PROTECTED]
* Archive of messages:
*    http://www.rational.com/support/usergroups/rose/rose_forum.jsp
* 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