2007-06-29

UMLet, let you scribble your UML in no time

I like Object-oriented software design a lot. Ever since the first time I learnt about it in my old university days, I fell in love with it. But I am not a big fan of almost all UML case tools that I have used. I have used Rational Rose and loved it, but it is too expensive and too big. I used Enterprise Architect and passionately hated it. Not only is it slow, big and very very expensive, it is also very difficult to use. I have to admit that both software have excellent features. They can generate different types of code, do reverse engineering well, can be exported to different formats, very well suited for group development and enterprise environment. But most of times, all I want is to document a piece of OO design in UML quickly without too much hassle.

That's where UMLet comes into my sight, and that is exactly what it does the best.
  1. UMLet has a very simple user interface.
    The picture speaks for itself.
    You can see from the picture that there is a menu bar, 2 drop-down lists on the top, three panels on the right and on the left is the big drawing board where you can put your creative work in.

    The menu bar has 3 menus, namely File, Edit, Help. Each of them contains the usual menu items. E.g. you can find Open, Close etc. in the File menu. Copy, Cut etc. in the Edit menu and Help is quite self-explanatory :-)

    There are also 2 drop-down lists at the top:

    The "insert custom elements" lists contains all custom elements created by you (we will talk about how to do this in a moment)

    The "Palettes" list contains different groups of UML elements you can use to create your design. Those elements are grouped by the type of UML diagrams they will be used in. E.g. there are Class palettes, and Activity Diagram palettes. And of course, these are customizable .

    The majority of the screen is occupied by the paint area where you create your diagrams. You add elements to your diagram by double click on the elements in the palettes panel. (drag'n drop will just move the element around in the palette panel).

    On the right side of the paint area, you have 3 panels. The top panel is the "palettes" panel, where UML elements reside (mind you, it can contain anything that you have created not just these UML elements). Below this panel, there is a text panel, where you edit your UML element by editing some plaint text pseudo code (this is the best part of UMLet, I will talk about it in the next paragraph), let's call it the "editing panel". Below the text panel, there is another text panel, where you can use to implement your own UMLet elements (custom elements).

  2. UMLet let you create your diagrams in a very simple way.

    And this has to be the thing I love the most about it. With any other UML case tools that I have come across, if you want to add attributes or operations to Class, you need at least a few mouse clicks plus entering text in a lot of pop-up dialog boxes. Not with UMLet. With UMLet, you add your class on your canvas and edit your class by editing some plaint text pseudo code in the "editing panel".

    For example, you need to create Class A with attributes XXX, YYY and operations getZZZ. all you have to do in UMLet is add a simple class in your canvas (by double clicking on the "simple class" element on the palette panel. and then write the following text in the "editing panel"

    ClassA
    --
    XXX: String
    YYY: Long
    --
    getZZZ(id: Long): void

    and that's it. You will get a class looks like this on the canvas.To make this an abstract class, you do

    /ClassA/
    --
    XXX: String
    YYY: Long
    --
    getZZZ(id: Long): String
    /+getABC(): Long/


    To define a lationship like this
    You type:

    lt=-
    m1=0..1
    m2=0..n
    relationship


    Of course, there are many other things you can define in UMLet without dialog boxes popping up all the time, actually, there is no dialog box in UMLet at all.

  3. UMLet lets your define your own UML elements ... in JAVA
    You can define your own custom UML elements or any other elements you care by adding a custom elements from the "insert custom elements" drop-down list. UMLet will prompt you to enter an Element name, and when you click on your element on the canvas, you can see the Java code for that element showing in the text panel below the "element definition" panel. Basically, your custom elements need to extend the com.umlet.element.base.Entity, there is a compile button, you can use to compile and add your custom element into your collection.
I found UMLet a pleasure to use when drawing simple class diagrams (and few other diagrams). It lacks most of the power user functions provided by other OO case tools. But it does one thing extremely well ... that is drawing a class diagram in UML to illustrate your design ideas quickly. And that is the reason I love it so much and recommend it for all to try it out.

Powered by ScribeFire.

2007-06-20

Webware top 100 awards 2007

The image “http://www.webware.com/i/ww/100/2007/win/ww_100_win_hed_640x70.jpg” cannot be displayed, because it contains errors.





CNET has just released Webware top 100 awards.



More than 5,000 web applications were nominated by the webware.com community. The (loosely) categorized those into 10 groups:



Browsing: Fundamental Web access tools: Browsers, extensions, widgets, and security.



Communications: Person-to-person communications platforms: E-mail, chat, voice.



Community: Online gathering places and group-powered content.



Data: Tools for finding online info, and storing and sharing files.



Entertainment:Tools for taking time off: Games and contests.



Media: Places to consume and share videos, photos, and music.



Mobile: Products that make your mobile phone a Web 2.0 appliance.



Productivity and Commerce: Sites for getting things done and doing online business.



Publishing: Tools for producing your own site: Blogging and Web content services.



Reference: Fonts of knowledge--from history to movies to maps.



I am not sure if I totally agree with how they categorized those websites. But here you can, you can find the list of the winners here.



A lot of the web applications (a.k.a. web sites) I have never heard of. But I do use most of the number one web applications in each category, so it shows they are not the top ones for no reason. :-)



Most of those web applications are considered web 2.0 applications (which I hope are not the new dot-coms).  However, with google-gear released and few other companies are moving the web 2.0 content off-line, I am hoping web 2.5 will give us some really really cool apps that we can really start to use online or otherwise.





Powered by ScribeFire.

2007-06-19

Learn some English (should they be Latin, French) words.



This article from dailywritingtips.com does exactly what I wanted to do a while ago. I was writing a report and was not sure how to use some of those expressions described in the article. Particularly the usage of "per" and "per se". I did a bit of research and figured out how to use them and thought about writing a blog to share the knowledge with my other friends, for whom English is not their first language. So read this article and learn about "De Facto", "Vis-à-Vis", "Status quo", "Cul-de-sac", "Per se" and "Ad hoc".

http://www.wordfiles.info/scribe-cabinet-Trans.gif




I have only one thing to add to this article ... the usage of "per".

E.g. Changes have been made as per our earlier arrangement.

Search on Answers.com shows the following results

per (pûr) pronunciation

prep.
  1. To, for, or by each; for every: Gasoline once cost 40 cents per gallon.
  2. According to; by: Changes were made to the manuscript per the author's instructions.
  3. By means of; through.
adv. Informal.
  1. For each one; apiece: sold the cookies for one dollar per.
  2. Per hour: was driving at 60 miles per.
[Latin.]

So, the example above can also be written as

"Changes have been made according to our earlier arrangement."

I remember vividly the first time i encountered this word. It was in a uni assignment, where we were required to write a program "per requirements". Before this, I only knew "per" used in "$10 per kilogram", so I thought that we needed to write a program "for each of the requirements" ... luckily, it was a group assignment and one of my group members is a native English speaker ...

Another site that is very helpful for learning English is

http://www.wsu.edu/~brians/errors/errors.html