Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class...

19
Class Diagrams Curt Clifton Rose-Hulman Institute of Technology Q1

Transcript of Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class...

Page 1: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

Class DiagramsCurt Clifton

Rose-Hulman Institute of Technology

Q1

Page 2: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

Plan for the Day

Pre-break course evaluations

Quick overview on class diagram notation

Not much detail since pre-course exam showed solid understanding of this

Design exercise that should help with homework 4

Page 3: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

Help Me Help You

Pre-break course evaluation on ANGEL

Please take 10 minutes or so to help me improve the course

Page 4: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

UML Class Diagrams

Page 5: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

Class DiagramsDo Double Duty

Call them domain modelswhen used for analysis at the conceptual level

Call them design class diagramswhen used for design

Design model includes: design class diagrams, package diagrams, and interaction diagrams

Q2

Page 6: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

UML Class Diagram BoxRecall the Standard Parts

addItem(lineIterm)

time: DateTime

Sale

Name

Attributes

Operations

Page 7: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

Attributes Three Ways

Q3

Use for data types

Use for other types

Redundant, blech

Page 8: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

Association Style in DCDsDiffers from Domain Models

Navigability arrowMultiplicity only at target end

Role name only at target end

No association name

Page 9: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

Example

id: Int

Register

time: DateTime

Sale

address: Address

phone:

PhoneNumber

Store

1

1

location

currentSale

Q4

Page 10: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

Showing Collection Attributes

Q5

Multiplicities

Constraints

Page 11: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

Operations

Syntax:

visibility name(paramName:type, …) : returnType {properties}

+ getPlayer(name:String) : Player {exception IOException}

Can also use syntax of implementation language

public Player getPlayer(String name) throws IOException

Operation vs. operation contract vs. method

Page 12: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

Cartoon of the Day

http://www.brickfetish.com/toys/duck.html http

://x

kcd.

com

/537

/

Page 13: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

Keywords CategorizeModel ElementsKeyword Meaning Example Usage

«actor»

«interface»

{abstract}

{ordered}

{leaf}

classifier is an actor shows that classifier is an actor without getting all xkcd

classifier is an interface «interface»MouseListener

can’t be instantiated follows classifier or operation

set of objects has defined order

follows role name on target end of association

can’t be extended or overridden

follows classifier or operation

Page 14: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

Generalization

In domain model:

Says that the set of all NumberCards is a subset of the set of all Cards

In DCD:

Says that, and that NumberCard inherits from Card

Card

NumberCard

FaceCard

Page 15: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

Dependencies

updatePriceFor(productDescription)…

Sale

……

SalesLineItem

……ProductDescription

1..*

lineItems

{ordered}Attribute lines are solid

Dependency lines are dashed

Use dependency lines when a more specific line type doesn’t apply.

Q6Can label dependency arrows:

e.g. «call», «create»

Page 16: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

Interfaces

Q7

Page 17: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

Composition

More powerful than an attribute arrow

Describes whole-part relationship

Implies

Instance of part belongs to only one composite at a time

Part always belongs to a composite

Composite creates/deletes parts

Q8

40

{ordered}Board Square

Common to omit association or role name with compositions

Page 18: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

Interaction Diagrams and Class Diagrams

Interaction diagrams show dynamic behavior

Class diagrams show static behavior

Tips:

Draw concurrently

Use two adjacent whiteboards, one for static and one for dynamic

Sketch communication diagrams, document using sequence diagrams

Page 19: Class Diagrams - Rose–Hulman Institute of Technology · Design model includes: design class diagrams, package diagrams, and interaction diagrams Q2. UML Class Diagram Box ... Showing

Example…Guideline: Avoid having anything

depend on something less stable than itself

Q9,10

Domain Model