views:

421

answers:

4

Can anyone explain what the connectors mean?

alt text

What freeware can generate a diagram like this?

+1  A: 
  1. The dashed line with the open arrow head means a dependency. The Account class depends on a Person Class.

  2. Do you mean the diagram? Or generating code? Netbeans has a UML module that assist you in drawing class diagrams and can generate Java code from the class diagrams. Maybe that might help.

Vincent Ramdhanie
+5  A: 

The dashed (dotted) line is a dependency. It means that a class (source of the arrow) depends on another class (destination of the arrow). This is a very abstract kind of relationship, and is often annotated with further information in the form of stereotypes.

The diamond or rhombus means a whole/part relationship. In your example, a Transaction is made of Accounts. In UML, a white diamond is a weaker flavour of whole/part (aggregation), whereas a black diamond is a stronger variety, often called a composition. The semantics of these are poorly defined and have been shown to be flawed, though.

Triangles mean generalisation relationships. They mean that a collection of classes (sources of the triangle-pointed arrows) are specialisations of more generalised classes (destination of the triangle-pointed arrow). In your example, a Loan is a type of Product.

There are many tools that can draw structural or class diagrams. About free ones, have a look at Wikipedia here.

CesarGon
Take a look at UMlet and Violet, two very useful, simple UML editors without all the clutter of ambitious case tools like the Rational suite, Enterprise Architect and ArgoUML and Poseidon.
Adriaan Koster
+1  A: 

UML has a standard, however not all people adhere to it. At wikipedia look up Class_diagram

Visio is the Microsoft Office software to create them, and a quick google search for Eclipse (Java) brings this http://www.mvmsoft.de/content/plugins/slime/index.htm

Aequitarum Custos
+1  A: 

Adding to the already provided answers, applying the definitions to the provided class diagram:

An instance of Person would contain an instance of Account and since this is an
aggregation relation (represented by white diamond) it implies that an instance of
Account can exist independently of an instance of Person. Since the multiplicity details
are not provided it cannot be said how many instances of an Account a Person instance
can contain.

Similar explanation holds good for the relation between Transaction and Loan,
Person and Loan.

As answered Triangles define generalization relations and this implies inheritance.
For the provided class diagram this implies that classes Loan, ManagedFund, and Cash
are specializations of the class Product. An instance of Loan would contain attributes
that are defined in it (interest, lenders) and also would contain the
attributes name,description and managementFee that are defined in the parent class
Product.

sateesh