Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Education

Better UML Modeling Tools? 29

PimpBot writes: "I'm taking a class in software engineering. To model our project, we're using UML, but I'm running into a problem - the software we're using, TogetherJ, is written in Java. The program has obscene memory requirements (128MB RAM min, 512 recommended), and being a poor college student, my box isn't close to supporting that. Are there any UML modeling clients out there that are dirt cheap, and don't use Java?"
This discussion has been archived. No new comments can be posted.

Better UML Modeling Tools?

Comments Filter:
  • I'd also like to hear what the "absolute best software engineers" use. Extra points if you can throw in some journal citations.
  • by StandardDeviant ( 122674 ) on Saturday February 10, 2001 @11:09PM (#440842) Homepage Journal

    One: memory is dirt cheap right now. seriously. a 128mb stick of pc100 is like $40 where I live. see pricewatch.com [pricewatch.com] for more US prices. If you live somewhere else I don't know if this point would be relevant. So you could probably at least approach the "ok performance" range, especially if you have family that would be sympathetic for your school-related need of an upgrade.

    Two: argoUML, a GPLd and reasonably decent java UML program. (argouml.org [argouml.org]) It performs just fine on my machine (450mhz, 128 mb of pc100 ram).

    Three: TCM [utwente.nl], the toolkit for conceptual modelling. Haven't played with it much but it looks pretty nifty. Also it isn't in Java. Again it runs fine on my machine. Does stuff besides UML too, I'm new to this whole modeling/specifying bit, so some of the functionality didn't make much sense to me.


    --
    Fuck Censorship.
  • I'll have to agree with the guy recommending ArgoUML. I've tried it and it's pretty zippy on my 400MHz, 96MB machine, despite the Java.

    I'll also have to point you to KUML [fh-hamburg.de], which is for KDE2. It should run even faster, but is not as full featured.
  • For anyone else looking at kUML, I took a quick at their site, but I'm guessing its not under active development any more...its been about 5 months since their last site update...

    Thanks for the suggestion, though...
    --------------------------
  • I used to Argo on a PII 266 with 64Mb of PC66 Ram - it worked perfectly and reasonably quickly
  • by geophile ( 16995 ) <jao@geo p h i l e . c om> on Sunday February 11, 2001 @05:16AM (#440846) Homepage
    Yes, I know this is off-topic, and please don't take this as a flame, but I'm really interested in the answer to this question: Why are they teaching UML? The absolute best software engineers I've known disdain UML. On projects where I've seen UML applied, it's been, at best, a minor distraction, and at worst, a project destroyer.

    What do you have to do to apply UML successfully, and what does it buy you that you couldn't get from simply thinking carefully about things up front?

  • A few years ago when I was taking software engineering in college, we used xfig. It was simple but it worked. If you're familiar with xfig at all, you know that all you can do with it is create the graphical representation of the model -- no round-trip engineering, no validation, none of the other good features you'll find in a real object modelling tool. But it's one of the lightest weight tools you can find and it's free. When you can afford it, I would strongly recommend looking at some higher end tools such as Rational Rose or Together/J.
  • For smaller-scale UML diagrams on an underpowered machine, dia works just fine, and it couldn't be faster.

    ---
    My opinions are mine -- not those of my employer.
  • And there is a program that will convert Dia UML diagrams into code: http://dia2code.sourceforge.net/ [sourceforge.net].

    From the website:

    Features
    • Reads UML diagrams.
    • Can handle UML - Generalization, UML - Realization and UML - Implements.
    • Selective code generation.
    • User-defined output directory.
    • Stereotype handling: interfaces, abstract classes.
    • "Import" and "include" based on the parent classes, the type of attributes and return type of methods iff they're declared in the same diagram.
    • Support for JavaBeans(tm): will create automagically methods to access and modify each attribute.

    What isn't here yet

    • Template handling.
    • UML - Dependencies, UML - Association
  • If you use Dia, also check out Dia2Code [sourceforge.net], which turns Dia UML diagrams into source code. Dia's nice, but UML isn't really its main focus. Personally, I have 256 megs of RAM and I enjoy working with TogetherJ. It's really nice of them to put out a high-quality free edition, especially for us students. Definitely look into buying that RAM. . . --JRZ
  • At the risk of sounding like a PHB, one of its goals is to provide a standard way to show your system's behavior and structure (in particular, from a fairly high level of abstraction).

    I don't know if this is the answer that you're looking for, but here's an idea. Professors need some model to teach in software engineering, software process and modeling courses. They could roll their own modeling language, pick a random one from a barrel or a pick something that is a bit of a standard and has some industry acceptance. What the student should be able to take out of the course is the ability to apply modeling techniques to any system, regardless of the representation. UML offers a large number of views, each with their own purpose. A subset of these are likely to be used in any large object design, so why not use UML? (Devil's advocate: one could also argue that it's waaay to many diagrams).

    I have yet to meet someone who really understands UML. I believe that designs (and learning how to design) are iterative processes. If you stick to a relatively well-defined standard language, your first designs might be somewhat broken. But as you learn where the minefields are in the previous try, your future designs are likely to be better. I think that its strength is that it offers you a standard toolset for thinking carefully about things up front. It doesn't make you think any better, but (if you play by the rules) it will allow other people to understand what you were thinking.

  • GnomeOffice Dia [gnome.org] is a UML-based diagramming and vector graphics app. You can extend it with XML/UML (and conforms to the full UML spec as defined by its XML DTD) and it supports a plethora of standard graphics formats for inport and export. There are numerous documents on the web that use Dia as an example of learning XML/UML programming to a DTD spec.

    -- Bryan "TheBS" Smith

  • I saw updates to the Thorn UML modeller [xaan.com] rather frequently over the last few weeks on Freshmeat [freshmeat.net]. It is written in Java, stores models using XML, uses Jython as a scripting language and is released under the GNU GPL.
  • Upgrading my machine is a bad thing at this point - mostly because I have no money I can throw at something like this, and I'm going to graduate in ~4 months, so I'd rather get a new computer when I get a job.

    Thanks much for your suggestions - I'm definately going to give them a try...
    --------------------------
  • From my experience, some kind of diagramming syntax rules are needed as soon as you get more than two people designing the same piece of software.

    The main reason for UML is its wide adoption by the software community (at least, it's more widely accepted than any other notation). That helps people to be able to understand others' design when they see it, not having to learn (and misunderstand) a new design notation for every project they work on or team they work with.
    -----

  • Last time I checked, Rose was several thousand dollars. Not exactly dirt cheap.

    And last time /I/ checked there was a free (but limited, IIRC) version for students.

  • One package to check out is MagicDraw [magicdraw.com]. I used it a little bit during my OO software engineering class recently and it works pretty well. It's written in Java, but it ran well on my machines (566 Celeron/192M RAM and 500 Celeron/128M RAM). The nicest thing about MagicDraw is the trial period, which is usually around 4 months. That's long enough to take you through the remainder of the semester.
  • [Warning: I'm just a student here and I'm still beginning to understand UML, so my answers may not be 100% correct]

    Why are they teaching UML?
    As my professor says, its the best thing she knows of out there right now. I don't really know of any other modeling techniques to challange her on that.

    What do you have to do to apply UML successfully, and what does it buy you that you couldn't get from simply thinking carefully about things up front?
    First, one must realize that UML is not the solution to software engineering. Its only a tool that assists in designing a system. From what I understand, if you use UML, set yourself some hard limits on when you will stop drawing diagrams, and start getting your teams to build and communicate. My guess/fear is that people think UML is just this magic patch for a project, and after playing with it for a bit, I can definately say it isn't.

    UML is basically about thinking about things hard up front - but its more like doing it in a standard language. This is mostly to reduce the time it takes to communicate your model to someone just coming in on the project.
    --------------------------
  • If not UML, then what? What do people in industry use to design and model systems? Like the poster, I'm only a student, but from the little that I have seen in industry, it's either no design or UML. I'd be interesting in hearing about alternatives.
  • MagicDraw will also generate DDL (and I think also C codes in its pro version), read Rational Rose 98 [rational.com] files, and it is using XML as their file format. So even after the software is expired, one can still port the project data somewhere else. Very cool.

    The one problem I found is that sometimes if you let MagicDraw idle for about an hour or so, the memory usage stacks up a bit. I don't know why, but probably because the program is using jvm.

    ============

  • by Anonymous Coward
    This is funny because although I didn't like learning UML for a course I took, I just realized that I basically drew a UML class diagram as I was planning out my computer graphics assignment. Useful after all. So my comment on your question is: you're going to draw some box and arrow diagrams anyway when you're planning your programs. UML just provides a syntax for doing that so you can get more information into them and so other people will understand them too. Now I think you shouldn't attach too much more importance than that, but that might just be my limited experience.
  • we use color pencils, they're cheap, fun to use and they force you to think hard before you draw a line.
    BTW, my kids watercolor them. bjootiful!
  • You can try Rational Rose [rational.com] from www.rational.com [rational.com]. You can download the program from here [rational.com]. They have Windows and Unix versions.

    ============

  • What do you have to do to apply UML successfully, and what does it buy you that you couldn't get from simply thinking carefully about things up front?

    Well there are many things. First off all, using UML is worth only when using Object Oriented methods (not necessary languages). After that, there are plenty good things in using UML. Think about Reuse for example. How to model frameworks, reusable specs and reuseable components without unified modelling language? I mean you CAN write it all down in English, but who's going to read it?-) About Reuse, I don't mean copy-paste. Wiser man than I, have said that Don't reuse code without reusing specs. And I'm begining to believe that. Of course if none of those are't your goals, how about maintaining systems? Wouldn't it be nice to have unified specs for systems that you have to maintain? Modeling is HARD, it's harder than coding, because you have to think everything. When coding, compiler tells you some mistakes you make. However you have to model system to some level before coding. Without that it's really hard to make complex system without inconsistency. I'm not saying that coding is easy. Good modeller knows what kind of problems there are in implementation, that is knows how to code. Implementation isn't trivial phase in the process, but it IS easier when you have precise specs.
  • I'd like to hear what the absolute best software engineers use as an alternative to UML & OOD for large projects.

    I've been architecting large-oid client-server & distributed systems for quite a while. Before UML, Booch was used. No real complaints with it, either.

    In my experience, UML (and OOD in general) had been a good thing. Not a distraction, no destroyed projects. Quite the opposite, in fact.

  • Also, there's dia2code, which is supposed to generate c/c++/java code from dia UML diagrams.

    http://dia2code.sourceforge.net

  • Last time I checked, Rose was several thousand dollars. Not exactly dirt cheap.
  • Just a side note, I think that argoUML can do this as well. I don't know how full featured it is. :-) Hey, options are good!


    --
    Fuck Censorship.
  • At $4795 [gdpro.com] for the UNIX version and $959 for one year's maintenance, I don't think this qualifies as "dirt cheap" either.

A list is only as strong as its weakest link. -- Don Knuth

Working...