I am new to web development, Ruby on Rails, and UML as well. I was wondering if there were any free tools available for UML design. There is a list of free tools on wikipedia under UML tools, but I don't understand if I need a tool that supports the ruby language. If anyone uses a free UML tool for designing Ruby on Rails apps, please let me know what you use.
Late last night I have come to realize that UML is probably not used by most Rails developers.
Remember I am new to web development, but just out of curiosity: I want to build an application that has very strict business rules such as the strictness of a site like ebay. I know rails is meant to be agile, through iterative development, but the business rules I have are very exact and I feel the modeling must be done prior to development. I have created some rough ideas of the rules on paper, but I know I am missing somethings. I was thinking the UML would be a good way to cover everything, and I did come across the ICONIX process.
What I am asking: Rails follows the MVC architecture. How would the UML apply to MVC and rails development?
If anyone has suggestions of methods they use to model strict rules prior to coding, please let me know what works for you.
Regards
I'm not getting you here - unless your business rules specify an architecture (or whatever it is you're hoping to model with UML), then the 2 concerns are orthogonal.
Well yes, my business rules specify an architecture. Can you elaborate on what you mean by "the 2 concerns are orthogonal."
he means they are perpendicular +
I understand that he means perpendicular. So are you suggesting to only do things in parallel, and because my business rules specify an architecture, does that mean you are suggesting that I do use the UML in parallel? The point made has been unclear and confusing.
Orthogonality in this context means that they are independent. Your architecture should not have to change if the business rules change, and vice versa - they are othogonal. If they are not, changes in your business rules (which will invariable happen, on every project) will require refactoring and architectural changes, which is not a good thing. If business rules change, some redevelopment or additional development can be expected, but this should not have to occur at the architectural level.
As you haven't given any examples of the kind of business rules you are dealing with, it's impossible to advise on whether parts of UML could be appropriate to model the rules.
I find it hard to unambiguously express complex business processes in UML, but some of the useful things you can do is to design a rich domain model and support that with sequence diagrams for the main interactions between your model classes.
BTW, a nice (free as in beer) modelling tool is the community edition of Poseidon (www.gentleware.com).
You should not expect to find any UML modelling tools that can generate or reverse engineer ruby code though.
Cheers, Max
lambo4jos wrote:
Late last night I have come to realize that UML is probably not used by most Rails developers.
Most RoR developers (may I have a show of hands?) use Developer Centric Testing, leading up to TDD.
Remember I am new to web development, but just out of curiosity: I want to build an application that has very strict business rules such as the strictness of a site like ebay.
So you need zillions of unit tests that test the snot out of your Model and Controller classes - in isolation from the GUI. Then the Views will know any data they get is clean, and any inputs they send to the Model are guarded.
I know rails is meant to be agile, through iterative development, but the business rules I have are very exact and I feel the modeling must be done prior to development.
The great thing about a good design is you can add anything after you start coding, including a better design.
The great thing about unit tests is you can change the design without afflicting the existing behavior. So TDD makes your first design less important. You have more than just one chance to get it right.
I have created some rough ideas of the rules on paper, but I know I am missing somethings. I was thinking the UML would be a good way to cover everything, and I did come across the ICONIX process.
Another feature you should try is literate acceptance tests, like those at http://fitnesse.org .
I have a question for anyone with the stamina to read my post this far: What's the closest FitNesse can get to Rails? I currently am trying FitNesse -> RubyFit -> Longboard (an example of integration) -> Watir -> the RoR site, end-to-end.
If I try for another test suite, with FitNesse -> RubyFit -> the RoR test folder stuff, is there a module or sample out there to make this easy? (Or, as usual for RoR, just freaking instant?)
Has anyone used rSpec here?
http://rspec.rubyforge.org/tools/rails.html
Is there a benefit to going FitNesse -> Something -> rSpec -> Rails? Would that make things more literate?
What I am asking: Rails follows the MVC architecture. How would the UML apply to MVC and rails development?
That part appears to be finished for you!
Has anyone used rSpec here?
I don't know if rSpec adds more than just renaming test to specification and making it explicit to test behaviour instead of methods.
Has anyone used Zentest? Does anyone have any links for beginners? I have already read the Linux journal article. I am looking for something that covers all features of Zentest. TIA.
Look into selenium. The ruby integration is significant, and it works very much like FIT.
Roderick van Domburg wrote:
Indeed a lot of attention is drawn to TDD, but usually, I digress. Tests aren't what drives my own business or that of my client, and so I feel the very name of the approach doesn't fit my intents. Personally I favor Feature Driven Development (FDD) with doing as much as I can to ensure quality. ...[snipped]
You're comparing apple and oranges here Can TDD/BDD be used in
the build phase of FDD? If you're not already, then you should
I've not personally utilized FDD so my understanding of it is mostly textbook, but isn't FDD more of a development process/methodology (bigger) and TDD is more of a technique (smaller). I have a lot more experience with TDD in an XP process so I'd say FDD is more comparable to XP than TDD.
Check this out: http://tesugen.com/archives/02/06/understanding-xpthrough-fdd
lambo4jos wrote:
I am new to web development, Ruby on Rails, and UML as well. I was wondering if there were any free tools available for UML design. There is a list of free tools on wikipedia under UML tools, but I don't understand if I need a tool that supports the ruby language. If anyone uses a free UML tool for designing Ruby on Rails apps, please let me know what you use.
I think the best idea is a open soure and multi plaftorm CASE tools I guess you work in linux or maybe mac.. so try this: http://case-tools.org/ I recommend you to take a simple tools for single user, are easier to learn and more usable (generally)
regards,