Unit 5: UML
Table of Contents
UML
UML stands for Unified Modeling Language. UML diagrams are used by developers to repesent classes and relationships between classes. There are quite a bit of rules on how to make these diagrams, so we’ll just go over the basics.
Overall Structure
A UML diagram for a class is essentially a table with 3 rows. The 1st row contains the class name, the 2nd row contains the fields, and the 3rd row contains the methods.
Let’s start creating a UML diagram for the Human class.
public class Human {
    private String name;
    private int age;
    private String gender;
    public Human() {
        name = "Jane Doe";
        age = 18;
        gender = "female";
    }
    public Human(String name, int age, String gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }
    public void eat(String food) {
        System.out.println(name + " ate " + food);
    }
    public void walk(double miles) {
        System.out.println(name + " walked " + miles + " miles");
    }
    public void talk(String message) {
        System.out.println(name + " said " + message);
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
}
UML Diagram
| Human | 
|---|
| Fields will go here | 
| Methods will go here | 
Visibility Modifiers
When listing fields and methods, you should use special symbols to denote the visibility modifier associated with that field/method.
| Visibility Modifier | UML Diagram Symbol | 
|---|---|
| private | - | 
| default | n/a | 
| protected | # | 
| public | + | 
Static fields or methods are underlined.
Fields
To list a field, you need to specify its visibility, name, and type. For example:
| Human | 
|---|
| -name: String -age: int -gender: String | 
| Methods will go here | 
Methods
To list a method, you need to specify its visibility, name, parameter names, parameter types, and return type.
Note that for constructors, you don’t need to specify a return type. However, if a method returns void, you need to explicitly specify that in the diagram.
| Human | 
|---|
| -name: String -age: int -gender: String | 
| +Human() +Human(name: String, age: int: gender: String) +eat(food: String): void +walk(miles: double): void +talk(message: String): void +getname(): String +setName(name: String): void +getAge(): int +setAge(age: int): void +getGender(): String +setGender(gender: String): void | 
More UML Rules
If you want to learn more rules regarding UML diagrams, you can read this tutorial.