Monday, September 3, 2007

Short Tutorials On UML and UML Class Diagram

UML Stands For Unified Modeling Language.

Class Diagram::

The purpose of the class diagram is to show the types being modeled within the system and there relationship.

In an object oriented application,
classes have attributes (member variables), operations (member functions) and relation-ships with other classes. The UML class diagram can depict all these things quite easily.


For Example, for the following public class Customer,

Class Customer{
public String name;
public String address;

public String creditRating(){

}


}

Class Diagram is as follows,

Figure 1: Class Diagram

The UML representation of a class is a rectangle containing three compartments stacked vertically, as shown in Figure 1. The top compartment shows the class's name. The middle compartment lists the class's attributes. The bottom compartment lists the class's operations. When drawing a class element on a class diagram, you must use the top compartment, and the bottom two compartments are optional.



Inheritance In Class Diagram:: Inheritance is represented using a solid line and a hollow triangular arrow.To model inheritance on a class diagram, a solid line is drawn from the child class (the class inheriting the behavior) with a closed, unfilled arrowhead (or triangle) pointing to the super class. Consider types of bank accounts: Figure 2 shows how both CheckingAccount and SavingsAccount classes inherit from the BankAccount class.


Figure 2: Inheritance In UML




Interfaces In Class Diagram: Interface looks much like inheritance, except that the arrow has a dotted like tail. For exmaple From Figure 3, we can say that both ProductGroup and Company implements Sortable Interface.




Figure 3:Interfaces


Associations:

UML associations are one of the most powerful abstractions in UML, a simple line between two classes can represent something that takes hundreds of lines of Java code to implement.
The most important aspects of associations are:
  • Multiplicity(Cardinality):The multiplicity of a role indicates how many objects can participate in the relationship. For example , a school has many students and each student attends only one school.

  Cardinality Of  One(*)
  public class Student{
School school;
...
}

Cardinality Of More Then One(*)

public class School{
List student;
...
}

  • Navigability: simply means weather given an instance of an object on one side of a association you can access an instance on the other side. If a association can only be traversed in one direction then this will be indicated with arrows. If there are no arrows then the association is bi-directional.

Types Of Association:

Aggregation:
An association with an aggregation relationship indicates that one class is a part of another class. In an aggregation relationship, the child class instance can outlive its parent class. To represent an aggregation relationship, you draw a solid line from the parent class to the part class, and draw an unfilled diamond shape on the parent class's association end.


Figure 4: Aggregation Association


Composition:
The composition aggregation relationship is just another form of the aggregation relationship, but the child class's instance lifecycle is dependent on the parent class's instance lifecycle


Figure 5: Composition Association

1 comment :

  1. Wonderful blog & good post.Its really helpful for me, awaiting for more new post. Keep Blogging!


    Function Point Estimation Training

    ReplyDelete