UML

Started by
7 comments, last by Durfy 16 years, 8 months ago
For a beginner is learning UML with c++ useful, it seems as though this system will limit how I think when programming, this system may be more structured as my reading tells me, but does it limit anything? Is it useful?
_________________________Quest to become a PROgrammer
Advertisement
I'd say forget about it until you feel like you've mastered C++. Then once you've done that you still may not make use of it.
Thanks, it seemed like I was getting in over my head when I started reading this material about UML. Have any good c++ readings more suited to becoming a "master of c++"?
_________________________Quest to become a PROgrammer
Code Complete seems to be the standard text. Maybe Design Patterns.
[TheUnbeliever]
Quote:Original post by fpsgamer
I'd say forget about it until you feel like you've mastered C++. Then once you've done that you still may not make use of it.

Personnally, I'd say 'forget about C++, learn to design first'.

It shall be noted that UML is not software design. UML is an object oriented modeling language, and as such is ideally suited to replace C++ (or C#, or Java, or Smalltalk, or whatever object oriented language you want to use) in your learning phase. It has been proved that UML can be compiled to a working program (although this is tricky, as the language has not been designed to do that; I don't know any easily available UML compiler, and the work to create a working program is way more important than the work to create the same program in C++). C++ is only yet another language - ie, yet another syntax. Knowledge in OO design is independant of the underlying supporting syntax, so whether your use UML or C++ should not matter. But UML being graphical, it's really easier to use - up to a certain point.

The system does not limit you - it forces you to adhere to the OO paradigm. And UML is quite useful, yes - that's how you can share your design ideas with fellow programmers.
Heres the question though , is it better to

1. Learn a syntax(ed) language of sorts (c++, c, Java, VB,c#, Etc)?

2. Learn UML?

3. Somehting more advanced users know to do could metion here.

This is all geared tword learning to learn to be an object oriented programmer,


Or could this Learning i am seeking just like the chicken and the egg, it doesnt matter which you do first?
_________________________Quest to become a PROgrammer
Quote:Original post by Emmanuel Deloget
Personnally, I'd say 'forget about C++, learn to design first'.


Honestly I'd say that learning UML is more troublesome than learning an actual programming language, and you can't write any code with it to boot (realistically speaking). Even once you've learned it you've got to hope that you work with other people are are as proficient with it as you are.

In the end some hack-y, semi-made-up UML diagrams scribbled on a white board is good enough if you've got good programmers on hand.

However I do agree with your emphasis on design, but I feel that can be learned by reading books like Effective C++ and Design Patterns.

[edit]
I actually am more of a fan of using IDE features that convert already written code to UML ... I actually find that to be the best way to use it.
[/edit]

[Edited by - fpsgamer on August 7, 2007 11:07:42 PM]
Quote:Original post by fpsgamer
I'd say forget about it until you feel like you've mastered C++. Then once you've done that you still may not make use of it.


Wow. That has got to be the complete opposite viewpoint from me [wink]

UML is about architecture and design... the big picture. It can also be applied and useful to *any* programming language. Helps organise your thoughts, and be able to communicate to other developers fair quicker about some things then reading through tons of C++ - which is all about implementation detail.

I would also suggest finding out about CRC cards. Properly dividing and assigning responsibility is perhaps the most important part of designing a decent architecture. Other then writing tests first. [wink]

I would suggest learning that at the same time as a programming language. Some tools allow you to do round-trip visits between UML and code. I think Visual C# Express has this, though it might be a pro thing. Certainly Java tools such as Together have it. And I'm pretty sure someone else would be able to point to a C++ round-trip C++ tool.

Round-trip meaning Diagrams that create code, and code that is engineered back in to diagrams.
Anything posted is personal opinion which does not in anyway reflect or represent my employer. Any code and opinion is expressed “as is” and used at your own risk – it does not constitute a legal relationship of any kind.
UML is a useful tool for designing. It would not be harmful to learn... Just another tool in the toolbox. Many programming tracts for school teach you UML first so you understand the concepts of programming such as conditionals, loops, variables etc.

I'd say look at it for a while if you can't understand it leave it and come back after looking at some BASIC code or something. It shouldn't be too tough to understand.
Hope this helps,
DURFY

This topic is closed to new replies.

Advertisement