Archived

This topic is now archived and is closed to further replies.

lucalus

Any good UML or RUP experiences?

Recommended Posts

lucalus    122
I am a senior in Computer Science, and right now I am in a class called Software Project where we have been learning some basic UML and software design concepts while working on a project for our university. Our instructor has no experience in this field (he''s a business prof. with experience with relational databases), but he got Rational to donate a bunch of software and he has had some training in the use of Rational''s products. So far, we have made a Vision document, a Requirements document, and drawn some Use Case Diagrams, all of which took most of the semester for our instructor to teach (he tried to split up the Rational Suite Enterprise among our classmates so we would each learn an app and try to integrate that knowledge to help our project along). The problem we faced is the project we are working on is so small that if we had just sat around and coded it it would have taken a few weeks at most. The Requirements and Vision document helped a lot in giving us ideas of how to implement the design, but doing diagrams for the project proved to be a waste of time (eventually my classmates convinced him to just let us code the project, but we ran out of time in the semester and those of us coding have to work on other class work so we can graduate). Sorry for the lengthy intro (I was a Math/English double major before I transferred into COSC). So anyway the question I have is this: Has anyone had good experience with UML (possibly with Rational tools and RUP)? And is this method a good way to run a software project? I can see how it could be good on a larger project, but our project that the instructor picked was small enough that 3 people could have completed it from start to finish in half of a semester. I just want to know I haven''t wasted 4 credits (even though I had to have them to graduate) learning this stuff.

Share this post


Link to post
Share on other sites
lucalus    122
During the software project class, I learned a lot about the software design process (though most was learned from mistakes made). I would just like to learn some successful or unsuccessful projects and how they turned out or what caused them to fail. I think our problem was the inexperience of the class and the instructor. Thanks!

Share this post


Link to post
Share on other sites
shaft    126
I use rose on a semi-daily basis for my indie project. For any large scale project I definately recommend it. It keeps you well organized, and I definately get better results using UML than without it.

If you don''t hate UML (As many people do right off the bat) then you are a step ahead of the game. Try using it on any of your personal projects (that are of moderate size). Once you get used to it, it will improve your software design abilities.

Plus, you get a big fat salary hike when you say I''m a software architect, rather than a programmer.

Share this post


Link to post
Share on other sites
lucalus    122
Yah I actually enjoyed RUP and UML, and I think I understand it well enough to use it in a project. I am comfortable with Rational Rose. I am glad to hear you find UML and RUP useful.

Share this post


Link to post
Share on other sites
Kylotan    9860
As you might find from other UML threads in here recently, I am not much of a fan of UML in small projects, or indeed for game development. However, it is better than nothing. I think the best indicator of whether you need a diagram or not is whether someone can totally understand the system when you describe it to them verbally.

On the other hand, a streamlined version of the RUP really does benefit any type development in my opinion. Ever found yourself hacking away at 4am before a next-day deadline because your project doesn''t work at all, even though you know that a single fix - if you could find where to apply it - would make it all work? The RUP avoids that by ensuring that you have something deliverable at the earliest possible stage. But I am talking about taking the basic beliefs of the RUP and applying them, as opposed to working directly from the book in a ''high ceremony'' fashion.

[ MSVC Fixes | STL | SDL | Game AI | Sockets | C++ Faq Lite | Boost | Asking Questions | Organising code files ]

Share this post


Link to post
Share on other sites
Spencer    126
Also the spirit of UML is something like "if you dont need this diagram then don''t do it". RUP also has a more flexible development style than say the waterfall modell. In rup you can fix and add code if you like (sort of, there are som byrocratic issues ) but for medium to large projects RUP and UML is very good

--spencer

Share this post


Link to post
Share on other sites
Shannon Barber    1681
If RUP or ROPES, and UML don''t do it for you, take a look at this
XP

Magmai Kai Holmlor

"Oh, like you''ve never written buggy code" - Lee

[Look for information | GDNet Start Here | GDNet Search Tool | GDNet FAQ | MSDN RTF[L] | SGI STL Docs | STFW | Asking Smart Questions ]

[Free C++ Libraries | Boost | ACE | Loki | MTL | Blitz++ ]

Shamelessly ripped from Oluseyi

Share this post


Link to post
Share on other sites
lucalus    122
Yah. Our class convinced our instructor to drop the RUP and UML so we could just code, and from there it was very much like XP. Thanks to everyone who responded to this. It gave me some good thoughts and perspective on RUP and UML.

Share this post


Link to post
Share on other sites
Siebharinn    122
Skipping design and just coding is the reason that most software projects fail. Now I''m not saying that by not using Rose, you weren''t doing design. But the "just code" statement sort of implies that.

As for personal experience: I am finishing up a contract with a telecom company, and they''ve embraced RUP pretty completely. And it''s a huge pain in the butt. Not so much because of shortcomings in RUP, but because of the idiocy of the people implementing it.

On an indie project with one or two people, most of RUP is overkill. It''s a little easier to manage when you have all of the Rational tools, but still overkill.

UML, on the otherhand, is much more useful. Unless you''re doing something trivial, you will only benefit from having some diagrams. UML is basically a way of expressing your design, and if you don''t have *some* kind of diagrams (UML or whatnot), I would strongly suspect that you don''t have a design.

Take care,
Bill

Share this post


Link to post
Share on other sites
lucalus    122
Thank''s for the input Bill. Those are the conclusions I reached through completing the class (we presented our final and incomplete project to our stakeholders today). We used UML and made Use Case Diagrams of our project, which helped alot in the implementation in code, but if we would have sat down and done Sequence diagrams, class diagrams, and so on, we would never have gotten what we did done. The stakeholders weren''t surprised that we didn''t finish because most Software Project classes here don''t either, but it wasn''t the point of the class. Thanks for the input on RUP and UML!

Share this post


Link to post
Share on other sites
Sieggy    122
Design, particulary in large software projects, is critical. On my current project we spent considerable time working with the application architecture, design, and mapping out the various components. If you are a fan of object orientated programming this part of the process can really help you determine how all the pieces of your application fit together. In the end you want something that is easy to extend, fix, and hopefully be developed faster.

Ironically, on larger projects going in and "just coding" can take you more time as you try and retrofit bad code and design to accomodate some need you hadn''t initially considered or had not been given. Ask any developer who has spent time maintaining code and you will hear the lament of those unfortunate enough to have had pick up the pieces of someone who felt that they "just needed to code."

Large projects evolve even during the lifecycle of your first version. Seldom do you have all the requirements and even if you do the users will love to change their mind or ask you to add something else. An example my project was accomadating data sources from multiple areas. We knew that we would have to draw data from other applications and databases, some still in development, and others from sources that could possibly change. We took careful design into making our code as flexible as possible in dealing with our current data sources and allow for the easy addition of others. We could not have done this without solid design. As new data sources have been added our migration effort has been incredibly easy and painless.

On several of my efforts, particulary when I was still pretty new to UML/OO/Architecture/etc I went with the just coding philosophy. However, I often found myself hitting a brick wall when I had gotten to the point where I was spending more time sorting through my code''s complexity rather than adding new features. For short, simple projects where is no intent or hope of code reuse/life some of these items may not apply or apply as much. For software development in general though, good design is your foundation of your code. Neglecting it, in the long run, can seriously hamper your efforts.

Share this post


Link to post
Share on other sites
lucalus    122
I agree that planning is very important, esp. with large systems or projects. There is a class called Software Engineering that is a 2 semester class that is similar to the Software Project class. The first semester is supposed to be design, and the second semester is supposed to be implementation (with minor revisions to the design as needed). One group in the class was doing well, but then decided to make a subtle change in their design that negated 6 weeks of coding by one individual in the group. I don''t think they use UML or RUP in that class (I am not sure what they use) or if they do, then they aren''t accountable to provide project updates. Anyway, proper planning is imperative for project success at any level.

Share this post


Link to post
Share on other sites