UML Cheatsheet Class Elements multiplicity association Package::AbstractClass -Attribute : Type 1 -ClassAttribute : Type Parent Child parent child* +Operation(Arg:Type):Type #AbstractOperation * role Association generalization Class visibility 0..1 info

<> Note ChildInfo SubClass Interface

realizes qualified association dependency T 1 Interface ParameterizedClass Value key Implementor Operation(Arg: T) Operation2(): T

Sequence Diagram Elements Object : Class Object2 object creation

call(obj) new incoming message Object3

selfCall callback

interaction frame return object destruction loop / alt / opt delete

frame type {constraint} callUnderConstraint

{alternative} callUnderAlternative

(cc) 2006 Lou Franco - Some Rights Reserved - Attribution-NonCommercial-ShareAlike 2.5 (cc) 2006 Lou Franco - Some Rights Reserved - Attribution-NonCommercial-ShareAlike 2.5 http://creativecommons.org/licenses/by-nc-sa/2.5/ http://creativecommons.org/licenses/by-nc-sa/2.5/ Package Diagram Elements

dependency Data

View Model SQLServer Oracle

Object Diagram Elements John : Child name = "John" parent: Parent Mary : Child name = "Mary"

Use Case Diagram Elements system boundary

1 Library checkout 1 Membership <> Common return start : Date Role Use Case renewal : Date * LendRecord Role Lendable due : Date <> id 1 returned : Boolean newArrival : Boolean * LendRecord(lendable, member, date) calcDueDate(member): Date isDue() : Boolean Use Case Use Case renew(Date) * Role Book CD 1 Role * Member DVD

(cc) 2006 Lou Franco - Some Rights Reserved - Attribution-NonCommercial-ShareAlike 2.5 (cc) 2006 Lou Franco - Some Rights Reserved - Attribution-NonCommercial-ShareAlike 2.5 (cc) 2006 Lou Franco - Some Rights Reserved - Attribution-NonCommercial-ShareAlike 2.5 http://creativecommons.org/licenses/by-nc-sa/2.5/ http://creativecommons.org/licenses/by-nc-sa/2.5/ http://creativecommons.org/licenses/by-nc-sa/2.5/ Sample Class

Component +bg : Color DrawingContext +fg : Color drawRect +pos: Point drawLine +size: Dimension drawEllipse +Paint(dc) * children loop

1 parent

Button EditBox Panel Container

LineItem Product Invoice quantity : int 1 * price : Money +calcTotal() : Money

TV Radio

checkout(lendable, member)

1 Library checkout 1 Membership return start : Date renewal : Date * LendRecord Lendable due : Date opt id 1 returned : Boolean newArrival : Boolean * LendRecord(lendable, member, date) calcDueDate(member): Date isDue() : Boolean renew(Date) * 1 Book CD * Member DVD

(cc) 2006 Lou Franco - Some Rights Reserved - Attribution-NonCommercial-ShareAlike 2.5 (cc) 2006 Lou Franco - Some Rights Reserved - Attribution-NonCommercial-ShareAlike 2.5 (cc) 2006 Lou Franco - Some Rights Reserved - Attribution-NonCommercial-ShareAlike 2.5 http://creativecommons.org/licenses/by-nc-sa/2.5/ http://creativecommons.org/licenses/by-nc-sa/2.5/ http://creativecommons.org/licenses/by-nc-sa/2.5/ Sample Sequence Diagrams

aPanel child : Component dc : DrawingContext

paint(dc)

loop paint(dc) drawOperation(args) { forEach child }

: Library aMember aLendable

checkout(lendable, member)

1 Library canBorrow(lendable) Membership checkout 1 numOut(member) return start : Date renewal : Date * LendRecord Lendable due : Date opt calcDueDate(member) id 1 returned : Boolean * LendRecord(lendable, member, date) { canBorrow == true } newArrival : Boolean dueDate calcDueDate(member): Date isDue() : Boolean renew(Date) record * new aLendRecord 1 Book CD * Member DVD

(cc) 2006 Lou Franco - Some Rights Reserved - Attribution-NonCommercial-ShareAlike 2.5 (cc) 2006 Lou Franco - Some Rights Reserved - Attribution-NonCommercial-ShareAlike 2.5 http://creativecommons.org/licenses/by-nc-sa/2.5/ http://creativecommons.org/licenses/by-nc-sa/2.5/