UML Diagrams Presentation
UML Diagrams Presentation
Motivation Goals
Software growing larger & complex Provide a software blueprint
Difficult to describe and analyze Simple yet clear abstraction for software
System
Model 1 View 1
View 2
View 3
Model 2
1
Class Diagram Class Diagram
Represents (static) structure of system Class
Operations
2
Class Diagram Notation Java UML : Clock Example
UML notation Java Clock
Type type name preceded by colon : class Clock { // name
seconds : int
Visibility prefix symbol // state minutes : int
+ public private int seconds; hours : int
private private int minutes;
private int hours; + setTime( ) : void
Types of relationships
+ adjustTime( ) : void
Generalization // behavior
+ reset( ) : void
Inheritance public void setTime( );
Implementation public void adjustTime(int value);
Association public void reset( );
Dependency }
Java Code Class Diagram
Example
interface Lecturer teaches course
Laptop
DVDplayer Indicates relationship between Lecturer & Course
3
Association w/ Navigation Association w/o Navigation
Navigation information Undirected edge
Relationship between classes may be directional Relationship between classes may be bi-directional
Only class A can send messages to class B Direction of relationship may be unknown
Arrowhead indicates direction of relationship Examples
Example
class Course { class Lecturer {
class Course { class Lecturer { Lecturer TheBoss; Course [ ] class;
Lecturer TheBoss; } }
} }
A has a B A depends on B
4
UML Example Computer System UML Example Banking System
Try to read & understand UML diagram
Java
class Controller {
}
class SCSIController extends Controller { Java
} Design code using all available information in UML
5
UML Java : Computer System Java UML : Printing System
Java Java
class CPU { class Registry {
Controller myCtlrs[ ]; PrintQueue findQueue();
} }
class Controller { class PrintQueue {
CPU myCPU; List printJobs;
} Printer myPrinter;
class SCSIController extends Controller { Registry myRegistry;
DiskDrive myDrive[4]; void newJob();
} int length();
Class DiskDrive { Resources getResource();
SCSIController mySCSI; }
}
6
Amateras UML Editor Eclipse Plugin Violet UML Editor
Drag-n-drop classes
into UML diagram
Auto creates class w/
attributes & methods
Add links manually
No undirected
associations
Use directed
association in both
directions instead