UML (Unified Modeling Language)

Download Report

Transcript UML (Unified Modeling Language)

UML (Unified Modeling Language)

Sources: 1. UML Toolkit. Eriksson, Hans-Erik; Penker, Magnus. John Wiley & Sons, INC. 1998.

2. Program Development in Java. Liskov, Barbara; Guttag, John. Addison-Wesley. 2001.

UML Tools

  http://www.objectsbydesign.com/tools/um ltools_byCompany.html

is a good source of tools available TJHSST has “Dia”, which will be utilized.

Software Life Cycle

       Requirements

Architecture Design Detailed Design

Implementation (Coding) Testing Deployment Maintenance UML is concerned with these two phases.

The Class Diagram

 Drawn with a rectangle, divided into 3 compartments    Name compartment Attribute compartment (Instance variables) Operations compartment (Methods)

Class Diagram Example

  Consider a Polynomial class (Poly)  Form: a 1 x 0 +a 2 x 1 2 + …. A n x n-1 n Key attributes – terms and degree   Instance Variables : - means private variable; + means public variable Underlined instance variables – static.

Name of class

Poly

Instance Variables - trms[] : int - deg : int Methods will go here

Poly using “Dia”

Poly methods

 Common things done to polynomials       return degree return coefficient of corresponding exponent Subtract two polynomials Add two polynomials Multiply two polynomials Take the negative of a polynomial

Poly Class Diagram

Basic syntax: visibility name (parameter-list): return-type-expression {property string}

Poly

- trms[] : int - deg : int + degree(): int + coeff (d: int): int + sub (thePoly: Poly): Poly + minus (): Poly + add (thePoly: Poly): Poly + mul (thePoly: Poly): Poly Name of class Instance Variables Methods will go here

Poly Implementation

public class Poly { private int[] trms; private int deg; public Poly () { // constructor goes here } public int degree { } public int coeff (int d) { } public Poly sub (Poly thePoly) { } public Poly minus (Poly thePoly) { } public Poly add (Poly thePoly) { } public Poly mul (Poly thePoly) { }

Class Diagram Relationships

    Association Generalization Dependency Refinement

Class Diagram Relationships

    Association Generalization Dependency Refinement

  

Associations

A connection between classes.

Usually classes “know” about each other (bidirectional.) Name of association necessary (“Uses” in below case.) Uses Author Computer Specifically, an author uses a computer; hence, Author has an association with Computer.

More Normal Associations

Owned by Person 1..

* Car Owns 0..

* • A person owns 0-many cars. A car is owned by 1 to many people.

• If relationships are not specified, then it assumed to be 1-1.

• Relationships can begin and end with any number …. i.e. – can have 5..11 or 19..25. • Relationships can be a multiple list – (1,4,6,8..12)

Another Normal Association Example Insurance Company 1 has 0..* Refers to Insurance Policy Insurance Contract 0..* 0..1

1 1..* Customer

Object Diagram

 A class diagram, but with a specific instantiation Author name: String age: Integer 0..* Use 1..* Computer name: String mem: Integer Bob: Author name = “Bob J” age = 32 Bob’s PC: Computer name = “Dell 466” mem= 64

Recursive Association

  Class that calls itself.

Example: Network Nodes (Class Diagram) * Node * Connects

“Node” Object Diagram

Node1 Node2 Node3 Node4 Node5 Node6 Node7 Node8

Roles in Association

 An association can have roles connected to each class involved in the association.

Car * Company car drives * driver Person

Qualified Association

  Used with one-to-many or many-to-many associations.

Qualifier distinguishes among the set of objects at the “many end” of an association.

Canvas figure id * Figure Describes a unique identification for each figure (figure id)

“Or” Association

  Occurs when all combinations in a model are not valid.

Example:    A person can have an insurance contract with an insurance company A company can have an insurance contract with an insurance company A person and a company CANNOT have the same insurance contract with an insurance company.

“Or” Association Diagram

1 0..* Insurance Company Insurance Contract 0..* 0..* {or} 1..* Person 1..* Company

Ordered Association

  Links may have an implicit order.

Associations are unordered by default.

Standardized Insurance Contract 0..* {ordered} 1..* Customer

Association Class

   A class is attached to an association.

Not connected at any of the ends of the associations.

Has attributes and operations also.

Association Class

 Association “Queue” class.

4 Elevator *

 

Ternary Association

More than 2 classes can are associated with each other.

Shown with a large diamond.

Insurance Company 1 insurer 0..* Insurance Contract 0..* 0.. 1 Insurance Policy 1..* policyholder Person

Aggregation

    Special case of association Relationship between classes is some sort of “whole-part.” Example: A CAR consists of 4 wheels, engine, chassis, gear box, etc.

Shown as a line with a hollow diamond on the end of it.

Aggregation Example

Navy Contains * Warship Excerpt from UML Toolkit: The navy contains warships. Warships can be added or removed, but you still have a Navy. The hollow diamond shows aggregation.

Shared Aggregation

 The parts may be parts in any wholes Team * * Person Members A team has members. A person may be a member of many teams.

Remix * {ordered} * Contains Sound Clips A remix has many sound clips; the same soundtrack could be a part of many remixes.

Composition Aggregation

  An aggregation that owns it parts.

I.E. – “Strong” ownership.

Window * * * Text Listbox The window contains (is aggregated of) many menus, button, listboxes, and texts.

Button * Menu

Composite Aggregation

Window Contains * * * Text Listbox Button * Menu A different view of the same diagram on the previous slide.

Composition Aggregation (Yet Another View)

Window

Text Listbox Button Menu * * * *

Class Diagram Relationships

    Association Generalization Dependency Refinement

Generalization

     Definition in UML: “A taxonomic (taxonomy is the science of classification) relationship between a more general element and a more specific element.

More specific element is fully consistent with more general element More specific element contains more information.

Also known as Inheritance.

“Is-a” relationship.

Normal Generalization

    Subclass inherits everything from superclass.

Attributes, operations, and all associations are inherited.

Private members will be inherited, but not visible to the subclass.

Protected members – accessible only by subclass.

Class Hierarchy Diagram

Vehicle Car Boat Truck

Another Class Hierarchy Diagram Vehicle Car Boat Truck

Abstract Classes

   Not allowed to have objects.

Used only for inheritance Described common attributes and behavior for other classes.

Abstract Class Hierarchy Diagram Vehicle {abstract} drives * Person color drive () {abstract}

Car

drive ()

Boat

drive ()

Another Abstract Class Hierarchy Diagram Figures * Figure {abstract} # position: Pos draw () {abstract}

Group

draw ()

Polygon

draw ()

Java Implementation

Abstract public class Figure { abstract public void draw(); protected Pos position; } public class Group extends Figure { public void draw () { for (int i= 0; i < consist_of.size(); i++) { consist_of[i].draw(); } private FigureVector figures; /* FigureVector is a specialized class of the standard Vector class that implements a dynamic array. FigureVector adds hard type checking */ }

Java Implementation (cont)

public class Polygon extends Figure { public void draw () { // draw polygon code } }

Overlapping and Disjoint Generalizations   Overlapping – Further subclasses inheriting from the subclasses in the inheritance relationship can inherit more than one of the subclasses (This is not supported in Java – basically multiple inheritance.) Disjoint – Subclass are not allowed to be specialized into a common subclass.  Is the default

Complete and Incomplete Generalization   Complete – All subclasses have been specified (i.e. – Final in Java) Incomplete – Subclasses may be added later on.

  Generally the norm The default

Example Complete Generalization Person {complete} Man Women

Class Diagram Relationships

    Association Generalization Dependency Refinement

Dependency Relationship

   Semantic connection between 2 model elements – one independent and one dependent Changes in the independent element will affect the dependent.

Examples  One class takes an object of another class (Composition)   One class accesses a global object of another class One class calls a class-scope operation in another class.

Example Dependency Diagram

<< friend >> Class A Class B •The dependency is shown as a dashed line with an arrow •The type of dependency is called a stereotype – in this case, it is a friend dependency

Refinement

  Relationship between two descriptions of the same thing, but at different levels of abstraction.

Can be between a type and class that realizes it  Called a realization Analysis class Design class Shown with a dashed line and a hollow triangle

Interfaces

     Described as abstract operations.

In Java – the way to sneak around the inability for multiple inheritance.

Shown as a small circle with a name.

Connected to its model element via a solid line.

A class that uses the interface as implemented in a specific class is connected via a dependency relationship to the interface circle.

Interface Diagram Example

Storable Class A Class B Runnable <> Runnable {abstract} <> Storable {abstract} Class C Runnable run() {abstract} load() {abstract} save() {abstract} Class A implements the interfaces Runnable and Storable. Class C implements the interface Runnable. Class B uses the interface Runnable and Storable from A, and Runnable from C. The interfaces are specified as classes with the stereotype <> and contain the abstract operations that the implementing classes must implement.