|
UML and RUP, are both tools that tend to be made into "silver bullets" i.e. their easy to point to and say this will solve our problems and make every thing better. I don't think that this it the case. Often Designers/Architects worry about problems that are not relevant to the code/system/OS and will replicate existing functionality.
Another thought is that with "Use Cases", it seems that there should be a prebuilt, expandable library of standard/generic cases. Currently we're writing a bunch of use cases that are supposed to help us identify our objects... I'm not overally impressed with the effort as identifing objects is fairly easy...
|
|
|
|
|
Designers and architects are usually good at using UML or whatever to make pretty presentation slides for management or people who don't really work on the projects. Developers can't depend on these things, because they tend to be much more complicated than necessary and they don't solve any real problems. In other words, they are useless most of the times.
At work we used to require the use of UML for every project, but no developer (even new developer) ever look at the generated documents, even for the purpose of understanding the projects. One reason is that they never get updated when the design changes.
|
|
|
|
|
If the output from architects and designers aren't being used, that's a problem. If the architects and designers are truly creating useless models, that's an even bigger problem.
No matter how skilled the developer, s/he will never catch everything. I won't say that every architect/designer will, but if the architect/designer is good, then they will most likely point out a few things that are important to the survivability of the system. If they don't, then the system is probably trivial.
Architects and designers should never hand over a design for developers to implement. That is the most misunderstood intention of architects/designers. If architects/designers are trying to run a dictatorship, then they are close-minded and aren't worth whatever ammount they're getting paid. As a matter of fact, if they're free, ask them to pay you some money for wasting your time.
Architects and designers are a must for any system that needs to have a high chance of survivability. So many things can happen to a project that even the most experienced developers will not catch. Architects/designers are brought up on these issues, and if they aren't able to point them out, then there's a problem.
Bottom line is, the software industry, especially developers, need to fully understand what architects and designers are here to do. I've met a lot of great developers, but none come close to a good architect/designer. I'm not saying dump your best developer for a good architect/designer, though. I'm saying that you need both - they each provide a unique skill. Most importantly, try to have a good architect and a good developer. The designers role can be taken care of by these two individuals, in a lot of cases. Inexperience, ignorance, and pride are usually the causes for developers (among others) claiming that architects/designers don't provide much benefit.
Michael Flanakin
Web Log
|
|
|
|
|
Flanakin wrote:
No matter how skilled the developer, s/he will never catch everything. I won't say that every architect/designer will, but if the architect/designer is good, then they will most likely point out a few things that are important to the survivability of the system. If they don't, then the system is probably trivial.
I am not suggesting getting rid of architects/designers, there are usually too many non-technical problems involved in a project the developers cannot solve or don't care. What I am saying is that the various formal documents generated by architects/designers do not help the developers (most of the times) to understand the projects, they are only useful for general presentation purposes.
Architeccts/designers tend to make trivial systems look a lot more complicated, which is not necessarily a bad thing (complicated systems get more funding, etc.).
|
|
|
|
|
I'm probably just being an idealist, but if architects/designers are creating output that only goes to presentations, then that should stop. Presentations may be nice, but they don't solve problems - I'm sure you agree.
The main output of an architect should be the Software Architecture Document (SAD). This document should be read by any and all architects, designers, and lead developers. The designers' output should go directly to developers (and may not be in a document form). But, above all, nobody should be working on any of these things by themselves. When the SAD is published, the rest of the team should be able to pick it up and say, "Yep, that's what we agreed on."
Again, this is all "in the perfect world" stuff. I try to work this way and would hope that others do the same. A good architecture is only good if it gets implemented by the specs. To do that, you have to have buy-in from the developers. And, if you go into a project and try to tell the developers how to do their job, you'll never get the architecture implemented correctly.
Michael Flanakin
Web Log
|
|
|
|
|
UML adds an extra layer of obfuscation to any design. Why not just use the design tools, FSMs, MSCs, or whatever, that are appropriate to the particular problem. The 3 books I’ve seen on UML, all in the Addison-Wesley Object Technology Series, and so presumably endorsed by the Three Amigos, are full of mistakes, inconsistencies, contradictions, and confusing ideas that do not help with designing anything. I think UML is an example of the Emperor’s New Clothes.
|
|
|
|
|
You point out the true!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
I don't think UML can present the design idea in a simple, straight way!
|
|
|
|
|
You point out the truth!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
I don't think UML can present the design idea in a simple, straight way!
|
|
|
|
|
and so presumably endorsed by the Three Amigos, are full of mistakes, inconsistencies, contradictions, and confusing ideas that do not help with designing anything. I think UML is an example of the Emperor’s New Clothes.
Who are the Three Amigos??
The Rational's Three Amigos?
However, if I can make $$$$$$$ that just carate a dream for my "fans", I would like to be the "King".
BTW, if you never walk (or running) in beach/street without cloth, you should try sometime.... (Just remember to hide your face.)
|
|
|
|
|
I won't say UML is rubbish in common. But it is rubbish for me. I have to learn a complete new way of thinking in the diagrams...
In the projects I designed there was no UML whatsoever and these work just as fine as any other project
And there's another thing why you shouldn't use UML. In C# with the properties n stuff it's of no use any way.
Greetings....
|
|
|
|
|
WillemM wrote:
And there's another thing why you shouldn't use UML. In C# with the properties n stuff it's of no use any way.
Huh?
--
Futue te et ipsum caballum.
|
|
|
|
|
Properties are actually functions... you don't only set variables with values, but you can also launch events or start functions in your properties....
Last time I used visio UML to make my program, it didn't support this.
Greetings....
|
|
|
|
|
WillemM wrote:
Last time I used visio UML to make my program, it didn't support this.
Yep, I had the same problem.
|
|
|
|
|
We've used UML quite deeply in the past; and have largely discarded it as an encumbrance that doesn't map particularly well to actual software design.
Anybody know if Rational Rose is better these days? That piece must have been the most honking incompetent user interface piece of crud on the planet. Imagine navigating the most cluttered awkward dialog with shifting multi-line tabs to set your most basic cardinality of an association.
And then there are the examples. Weather Station is a fine example of requirement mismatch, arbitrary design and sheer incompetence for what is a *trivial* system. My work on the other hand requires useful tools and techniques to be effective - not obstructive - on actual *difficult* problems.
Ah well, it will all be obsolete in 10 years, things are looking good on the Java side and with the Eclipse extensible open-source IDE, there's a lot of power going to come out of this kind of area.
Cheers,
Thomas
|
|
|
|
|
true enough
Greetings....
|
|
|
|
|
I designed the last system I wrote using UML, with Microsoft Visio. Altho it was very good for designing, and really helped me sort out a lot of issues at the design stage, I find Visio very hard to use. I don't think this is Visio itself, but UML tools per se. As an experiment, I designed a minor system on paper, using UML, then wrote the classes with methods shells, Interfaces and properties, but no implementation, and reverse engineered via Visual Studio.Net into UML. I found this to be a much faster process, as I am more of a coder than a graphic tool person. The design process was still the same, I wrote a lot of notes on paper during the design process before writing the classes. I think I would still use this approach on future projects. I know there are tools that exist that sit inside the development environment that will change the UML as the code changes and vise versa. I think these have a lot more potential of adoption.
I also am not particularly keen on the code generated out of Visio. I think it is a tool that has a long way to go.
On a bigger team, where there are architects who don't code, only use modelling tools, I think it would be a lot more successful. On a smaller team like ours, where I need to be architect, build engineer, write unit tests, write documentation etc, I think the overhead means that I would still prefer to create a class without the method implementation, and reverse engineer into UML, than to do it UML to code.
Being in a minority of one, doesn't make you insane George Orwell However, in my case it does
|
|
|
|
|
Sometimes (in our design docs) and always in our documentation (gen'd by Doxygen).
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
Only the system designer will use UML, but the rest of the team has to know how to read it. UML is useful and can desribe situations that the english language has a hard time doing.
We use Rational Rose, and follow our specific SDLC.
|
|
|
|
|
I don't know, just like I don't know what is "full software life cycle".
These are on the required skill list of my current job (must have, according to the job ad), but I guess they don't matter because I am still getting paid every two weeks without knowing them. I have been with this company for more than 3 years.
P.S. I lied in my interview to get my job. I suspect the managers and technical leads who were at the interview don't know these things either.
|
|
|
|
|
I don't know what UML is either. It used to be "Unified Modeling Language", i.e. a cross between the Booch and OMT notations, but now I think it has become to mean the use OO tools like Rational Rose (even though Rational Rose allows you to use all three notations)
|
|
|
|
|
You're right. UML, or Unified Modeling Language, is just a way to communicate ideas to other software development personnel. Whether it be top-down (architects-designers-developers), bottom-up (developers-designers-architect), or just from person to person within the same role, UML is meant to convey software design in a visual manner.
UML can be used without any tools. Honeslty, that was part of the original intent - to have a "language" so easy to use, that you could write it on a piece of paper. Therefore, no tools are required. The tools just help make UML modeling easier.
Michael Flanakin
Web Log
|
|
|
|
|
I've always wanted to learn it. Never really had the time.
So any recommendations on good books for learning UML. (For a 15+ year C/C++ developer)
Michael
But you know when the truth is told,
That you can get what you want or you can just get old,
Your're going to kick off before you even get halfway through.
When will you realise... Vienna waits for you? - "The Stranger," Billy Joel
|
|
|
|
|
There are tons of online docs, check out Rational's site at http://www.ibm.com
Also Java Software Solutions is a basic intro nook that covers general UML.
I don't know of any one person who uses all the possible diagrams that can be displayed in UML.
|
|
|
|
|
I've read up on UML with the intention to learn it, but it's like everything: if you don't use it, you lose it... especially if it's something as tedious like UML.
Regards,
Alvaro
Give a man a fish, he owes you one fish. Teach a man to fish, you give up your monopoly on fisheries.
|
|
|
|
|
You won't need a book, Michael. Check out this downloadable tutorial.
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|