Should I learn UML 2.0?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Should I learn UML 2.0?
# 1  
Old 11-30-2006
Should I learn UML 2.0?

I'm a non-programmer but I built a computer with FreeBSD and have been learning that operating system and I plan on studying the other *ixs. Also, I am teaching myself Python in hopes of becoming a programmer and I wonder if I need to learn UML 2.0 at the same time? I'm not brand new to programming--having taken FORTRAN & Pascal in the late 1970s and early 1980s--but I'm effectively at skill-level zero. After I learn Python, I hope to learn (or at least gain working knowledge) shell, Perl, C/C++, Java, and LISP. My long-term goal is a software engineering career and I wonder if UML is a prerequisite?

Thanks for any advice.
# 2  
Old 11-30-2006
For software engineering, yes, at least most people will say yes. For software development, yes and no. To communicate with those software engineers who do use UML, yes. To use tools which require UML, yes. To make those pillow-thick specifications full of design diagrams as demanded by some large companies, yes. Otherwise, no.

But considering UML is just a way, albeit commonly agreed, to modeling, provided you can communicate your design to others, I see no reason to reject any usage of some variations of UML or even something totally different for representation.

I'm somewhat a software engineer. I have not formally learned UML (actually I have scratched the surface - that was when I was still in university some years ago) but over time I found myself not totally adhering to UML most of the time. Frankly I don't do diagrammatic modeling and design that much. Most of the time, I just build class interfaces as prototypes directly and then fill in the code without using any modeling tools (I don't have money to ever touch any of them). I may also choose to prototype in a language that I know best (that will most likely be some scripting language such as PHP or Perl), and then porting that design eventually to the platform I need to support (such as Java, or C[++]).

If one day you somehow get the chance to use some RAD toolts like Rational Rose, then UML will be a must because that's what it uses.
# 3  
Old 12-04-2006
Another question

Thanks for the detailed reply. This might be a subjective question, but is software engineering encapsulated within software development or are they separate disciplines?
# 4  
Old 12-04-2006
Quote:
Originally Posted by Aaron Van
This might be a subjective question, but is software engineering encapsulated within software development or are they separate disciplines?
That sounds a good question to me. Not totally sure whether my understanding is correct (then I will need to scour for those dust-covered software engineering textbooks for that), but here is my interpretation of some terminologies:

- Programming is the action of assembling instructions to realize some desired functionality, the exact instructions and syntax of which depending on the language and environment involved.

- Software development is a process which spans the entire software lifecycle, in which some software is built as deliverables as part of the process. Programming is the most important part of the process, but is just one part of the process. Planning, testing etc. are also part of the software development process. Post-development such as customer support, post-development reviews and maintenance are usually considered part of the software lifecycle, and thus should be considered part of the software development process as well.

- Software engineering refers to the application of engineering principles to the software development process, to result in software whose functionalities meeting the prescribed specifications, whose quality can be objectively quantized, and development costs can be within budget. It is just like the process of constructing a house. You won't leave until you have started the process and find that the bricks cannot support the walls. For software, identically, some engineering planning process precedes the implementation stage to ensure that the process may result in software that is implemented correctly, on time and within budget.

So software engineering is usually seen as a more "scientific" or "systematic" means to build software, as opposed to a more ad-hoc fashion as amateur developers usually do.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

4 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

UML on MAC OSX

Hey guyz, Is it possible to build user-mode linux kernel on MAC OSX? Please I need a reply asap as I have an assignment that I need to do. Thanks! Adel (1 Reply)
Discussion started by: aje02
1 Replies

2. Programming

Learn C or C++

Hi, Apologies if this question has been asked before. I would like to know which language is better to learn in terms of programming in unix? is C dying out and being replaced by C++ or is it a combination of the 2 or just mainly C? Thanks C19 (2 Replies)
Discussion started by: c19h28O2
2 Replies

3. UNIX for Dummies Questions & Answers

I want to learn!

Hiya, yes im new to all of this! But want to learn how to use Unix etc, iv been thinking about doin a course but desided im better off learning by my self with help from the people who really no what there doin...you guys! I can install Linux, like redhat, mandrake, susie server edition and so... (5 Replies)
Discussion started by: epic.admin
5 Replies

4. UNIX for Dummies Questions & Answers

Where to Learn About HP-UX

can someone give me the link to any site that deals on HP-UX system administration?? Please do not refer me to buy or borrow any books, i just need a free site to learn some quick info from (1 Reply)
Discussion started by: TRUEST
1 Replies
Login or Register to Ask a Question