Books: Pragmatic Unit Testing in Java, Agile Java, Modern C++ Programming with TDD, Essential Java Style, Agile in a Flash. Contributor, Clean Code.
Originally posted by Jim Henessey:
I'd like to start working with UML, but would like to avoid having to purchase Rational Rose or other high-end UML programs. Does anyone here have recommendations for a professional caliber UML editor that they've worked with which is either inexpensive or free/open source?
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Rian Fergusson:
it is fantasic at generation java quickly and easily.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
42
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Rian Fergusson:
My primary reason for this is to completely define requirements.
During analysis if modeling is undertaken with a UML CASE tool without the intention of generating code then the modeling process seems less relevant in relation to the systems implementation, but provides a stagnate period of documentation.
example, if I am modeling using a UML CASE and I have a rough idea how I will design the system (which most designers have) and I have no intention of generating code, then the process of modeling is only a documentation task because if the model was complete then a skeleton code could be created (why wouldn�t you use a code generator if it will basically produced the same code that you will be forced to write).
Moreover, modeling without the intention of generation will lead to undefined requirements because the actual code is not affected by the model.
If code generation does not occur your model doesn�t need to be complete (for system creation).
I bet if you compared a model which was not generated with a complete reengineered model of the same system there would be great differences, differences alot more noticeable than with a generated code skeleton.
Generated code when used properly will provide a framework for the whole system. A framework which fulfills requirements is a lot more difficult to modify than no framework,
after all the framework will be basically perfect because design problems and requirements were nutted out in the pre-development stages
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Patrick Nolan:
If you need to communicate your architecture to outside consultants or to the rest of your internal team, it pays to have a commercial tool that can do the job well.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
I believe the idea is to communicate both ways with a UML model, which both can edit, instead of drawing from scratch every time.Originally posted by Ilja Preuss:
Seriously, I don't see how a UML program helps much in communicating in a team.
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
If your team is 3,000 miles (or even 300 miles) away, a white board isn't going to be much help. Also, writing code is very labor intensive and carries a much higher cost than doing design. When you are working with teams (especially teams who are inexperienced in good design) having a design tool like Rational is extremely helpful as it allows the designer to build a framework easily for the developers to use as a model. While the developers work on that, the designer can go on to other projects. This may not be relevant in your experience but it is extremely relevant in my experience. Ilja, you really need to get over the idea that Agile methodologies work in every environment. They don't.Originally posted by Ilja Preuss:
Seriously, I don't see how a UML program helps much in communicating in a team.
Associate Instructor - Hofstra University
Amazon Top 750 reviewer - Blog - Unresolved References - Book Review Blog
Yes, the person who said "the code is the documentation" should be taken out and shot. That is nothing but an excuse for not doing documentation. UML provides an easy way for programmers to get their arms around an application without trying to read code. But even more, UML provides a way for non-programmers to get their arms around an application.Originally posted by Patrick Nolan:
I respecfully disagree I think UML diagrams are ALL (or at least mostly) about communication. What is one of the first things you do when you are asked to add features to an application with which you have no prior experience? I believe the first thing most of us would do is study the class diagrams and the sequence diagrams for that application. The diagrams are clearly a form of communication - the original developer is communication his design via UML to the rest of his/her team.
Associate Instructor - Hofstra University
Amazon Top 750 reviewer - Blog - Unresolved References - Book Review Blog
Associate Instructor - Hofstra University
Amazon Top 750 reviewer - Blog - Unresolved References - Book Review Blog
I would suggest you get a copy of "Enterprise Java with UML" by CT Arrington.Originally posted by Ilja Preuss:
I would suggest to get a copy of Robert Martin's "Agile Software Development - Principles, Patterns, and Practices".
Associate Instructor - Hofstra University
Amazon Top 750 reviewer - Blog - Unresolved References - Book Review Blog
Originally posted by Patrick Nolan:
I think UML diagrams are ALL (or at least mostly) about communication.
What is one of the first things you do when you are asked to add features to an application with which you have no prior experience? I believe the first thing most of us would do is study the class diagrams and the sequence diagrams for that application. The diagrams are clearly a form of communication - the original developer is communication his design via UML to the rest of his/her team.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Originally posted by Thomas Paul:
If your team is 3,000 miles (or even 300 miles) away, a white board isn't going to be much help.
Also, writing code is very labor intensive and carries a much higher cost than doing design.
When you are working with teams (especially teams who are inexperienced in good design) having a design tool like Rational is extremely helpful as it allows the designer to build a framework easily for the developers to use as a model. While the developers work on that, the designer can go on to other projects.
Ilja, you really need to get over the idea that Agile methodologies work in every environment. They don't.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
You have obviously never worked with a carpenter. What do you think he does for his apprentice?Originally posted by HS Thomas:
A seasoned wood ( ) craftsman wouldn't draw diagrams for himself to take apart an old chair and put it together with a new design. It's in his head.
Associate Instructor - Hofstra University
Amazon Top 750 reviewer - Blog - Unresolved References - Book Review Blog
Associate Instructor - Hofstra University
Amazon Top 750 reviewer - Blog - Unresolved References - Book Review Blog
Originally posted by Thomas Paul:
You have obviously never worked with a carpenter. What do you think he does for his apprentice?
IBM's work with Rational XDE is part of a broader endeavor to fuse the IBM Rational XDE product family into IBM WebSphere Studio, Eclipse and Microsoft Visual Studio .NET. The goal is to bring design and testing closer together to encourage developers to model, develop and test applications in the same independent development environment to minimize errors and find bugs.
Originally posted by Thomas Paul:
And Rational Rose is going to help much in which way? (Serious question - I don't have any idea how that would work.)
Simple. The designs are done in rational by the designer working with the business analyst who passes them on to the development team. The design team can then review, add comments, make any changes that are required. it becomes an iterative process between the design team and the development team which in the end produces good dcumentation that can be used for the next development team that works on the application as well as the QA team that needs to build test scripts.
It isn't always possible that the designers can interact with the developers easily.
I have worked in many applications where this was the case. But UML can be used to pass design issues back and forth between the design team and the development team.
Agility is not about a family of methodologies. It's about a mind set. There are certainly environments in which it's hard to apply that mind set - but that's more a matter of culture than of needs.
I disagree strongly with this. There are many projects where agile methods will cause more trouble than they are worth.[/QB]
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Books: Pragmatic Unit Testing in Java, Agile Java, Modern C++ Programming with TDD, Essential Java Style, Agile in a Flash. Contributor, Clean Code.
Originally posted by HS Thomas:
I believe the Eclipse Modeling Framework EMF is based on a model driven architecture. I'm not sure how that puts Java guys out of a job ? IBM's pool of Java developers must have increased simultaneously. And the number of plug-ins keep growing.
Horses for courses, I'd say.
Books: Pragmatic Unit Testing in Java, Agile Java, Modern C++ Programming with TDD, Essential Java Style, Agile in a Flash. Contributor, Clean Code.
Originally posted by Jeff Langr:
I still recommend producing UML sketches in XP iteration planning meetings, as needed, to get everyone on the same page. Or when starting out a new task. I also recommend producing them at the end of a day or an iteration to communicate any significant design changes to the system. Yes, you can demonstrate these changes with the code, but often a quick sketch is more effective. And we're talking minutes here, not hours, days, or weeks of producing detailed design pictures.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Associate Instructor - Hofstra University
Amazon Top 750 reviewer - Blog - Unresolved References - Book Review Blog
I like to take it to sequence diagrams because the developers can clearly see what their classes are expected to do and how they interact with other classes. I have found that even inexperienced developers can produce good quality code very rapidly from sequence diagrams.Originally posted by Ilja Preuss:
I am curious: how detailed will such a design be before you start to code it?
Associate Instructor - Hofstra University
Amazon Top 750 reviewer - Blog - Unresolved References - Book Review Blog
I have been part of a project which inherited a huge piece of crappy, undocumented code, with no UML diagrams. Honestly, I would've preferred a reasonable set of unit tests over any UML diagrams the original developers could've drawn. Why? Because I could find my way through the package structure (10000 files, most of it Java code) without UML, but changing anything was close to a death wish... If the code is crappy, the UML diagrams probably won't be any better.Originally posted by Thomas Paul:
Not to the developers who follow in your footstep. UML makes much better documentation than code. As I said, the fool who said, "the code is the documentation" shoudl be forced to make business critical enhancements to an application with 2,000 Java classes and no documentation.
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
Rational is a powerful tool and is not meant to be used by someone just fooling around with it anymore than you would allow someone to code your payroll application after fooling around with Java for a weekend. Rational is an architect's tool. It is meant to make the design process easier which allows the development process to go smoother with no surprises. The applications I developed with Rational were on-time and on-budget because we knew exactly what we were developing before we wrote a line of code.Originally posted by HS Thomas:
Not everyone will be able to afford Rational, not everyone who can afford it would use it wisely, IMHO. I haven't had the privilege of trying it but would expect that only those who know how to use it effectively should be allowed to.
I inherited a huge, well-written application with no documentation. Unit tests were useless because trying to figure out the flow between several thousand classes was nearly impossible. I spent a week grepping through scores of directories to figure out what a single change would do to the application (and I inherited a backlog of changes that the previous developers hadn't been able to do). We documented the application with UML and the resulting diagrams made it easy to figure out the implications of any change. Fortunately Rational has a reverse engineering tool.Originally posted by Lasse Koskela:
I have been part of a project which inherited a huge piece of crappy, undocumented code, with no UML diagrams. Honestly, I would've preferred a reasonable set of unit tests over any UML diagrams the original developers could've drawn.
Associate Instructor - Hofstra University
Amazon Top 750 reviewer - Blog - Unresolved References - Book Review Blog
Originally posted by Thomas Paul:
I spent a week grepping through scores of directories to figure out what a single change would do to the application (and I inherited a backlog of changes that the previous developers hadn't been able to do).
If the codebase was thousands of classes, how long did it take for you to clean up those reverse engineered spider webs? I am constantly amazed at how poorly all reverse engineering tools I've tried have performed in terms of intelligent diagram layout.Originally posted by Thomas Paul:
We documented the application with UML and the resulting diagrams made it easy to figure out the implications of any change. Fortunately Rational has a reverse engineering tool.
Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
Originally posted by Jim Henessey:
Hello,
[...] Does anyone here have recommendations for a professional caliber UML editor that they've worked with which is either inexpensive or free/open source?
Much appreciated.
If you settle for what they are giving you, you deserve what you get. Fight for this tiny ad!
Gift giving made easy with the permaculture playing cards
https://coderanch.com/t/777758/Gift-giving-easy-permaculture-playing
|