Hi,
I totally agree with you Ronald. But, as Margus pointed out: non (or at least very few) of the tools on the market today does provide a good enough support for 100% roundtrip engineering. As long as you have to maintain the model in one tool and the code in a separate tool, you will allways have problems reaching the 100% synch-level. Or do you have experience from other tools than Rose where this does work today ? Just a comment to Margus to clearify what my point was in my last posting: I'm very well aware of the UML tools not beeing good enough today. My point was to describe how I would like tools to be in the (hopefully very near) future. I would much rather prefere to work with- and from the models, and the models only, than having to go to the code (no, I don't mind hacking along in C++). However, this is not wishfull dreaming only. In 1996 I worked for a department within Siemens in Norway where they used SDL (Specification and Description Language) with a very good tool (Telelogic SDT). For those of you not familiar with SDL: SDL is both a method and a language developed for the telecom industry where you model your system as a set of processes/statemachines that communicate with signals. (SDL is also one of the major contributing languages in the next UML-release). In 1992 the devision I worked for decided to go 100% model and 100% code generation (not roundtrip, since it wasn't needed). All the functional requirements of the systems to be made were designed and "implemented" in SDL without writing one single line of code. Then the system was tested by "executing" the model. When these tests were passed, THEN the target code (C/C++) was generated 100% complete. No additional coding was performed on the generated code (hence no need for roundtrip-engineering). The C/C++-files where compiled and the system tested. The only parts neede to be written in C/C++ were low-level drivers to access the HW. This worked for SDL since a state-machine is a very well defined concept, and it works as long as your system can be designed as statemachines, and statemachines only (almost..). By moving to 100% codegeneration, the systems delivered where of a much higher quality (due to bugs beeing detected very early, and you didn't have to be jammed by memory-leaks and pointer-type-of-bugs related to C/C++) and delivered on time :-) My point is: In my opinion, the only way to deal with increasingly complex SW-systems, is for us to move to a higher abstraction level than today, hence above the code-level and to the model-level. This, combined with increasingly use of more abstract concepts like patterns (architectural s well as design patterns) etc., will hopefully lead us to create better SW-systems much faster than today :-) Then we could all ".... be lying on a beach, coding some stuff for fun." :-) Regards Arne > -----Original Message----- > From: Ronald W Townsen [mailto:[EMAIL PROTECTED]] > Sent: Tuesday, June 25, 2002 3:46 PM > To: Margus Freudenthal > Cc: Styve, Arne; [EMAIL PROTECTED]; Richard Chrenko; > [EMAIL PROTECTED] > Subject: Re: (ROSE) who uses rational rose > > > > 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 > ************************************************************** > *********** > > > > > > This email, its content and any attachments is PRIVATE AND CONFIDENTIAL to TANDBERG Television. If received in error please notify the sender and destroy the original message and attachments. ************************************************************************ * 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 *************************************************************************
