9
CSC480 Class Design Pepper

CSC480 Class Design Pepper. Goals How to design classes StarUML Code Generation

Embed Size (px)

Citation preview

Page 1: CSC480 Class Design Pepper. Goals How to design classes StarUML Code Generation

CSC480 Class Design

Pepper

Page 2: CSC480 Class Design Pepper. Goals How to design classes StarUML Code Generation

Goals

• How to design classes• StarUML• Code Generation

Page 3: CSC480 Class Design Pepper. Goals How to design classes StarUML Code Generation

How to Design Classes

What objects to choose to solve a given problem? •– What classes will we need to implement a system that meets our requirements?•– What fields and methods will each class have?•– How will the classes interact with each other?

http://www.yyu.edu.tr/abis/admin/dosya/5637/files/UML%20Tasar%C4%B1m.pdf

Page 4: CSC480 Class Design Pepper. Goals How to design classes StarUML Code Generation

Good Class Design

• Cohesive – only one abstraction

• No unnecessary coupling – No printing to a specific device such as screen

scanner

• Related data in the same class

Page 5: CSC480 Class Design Pepper. Goals How to design classes StarUML Code Generation

Class UML Diagram• Each class box: – Name / state / behavior

• Relations– Has a– Knows a– Uses a– Is a

• Great Explanation matched to code– http://www.cse.buffalo.edu/faculty/adrienne/

ClassResources/ClassDiagramsInANutshell/

Page 6: CSC480 Class Design Pepper. Goals How to design classes StarUML Code Generation

CRC cards

• One per noun / entity / object• Class: Noun is the class name on the top• Responsibility: List responsibilities on the left • Collaboration: List collaborating objects on the

right – If a class is being used in a collaboration, its card

will not show the collaboration – the user shows the collaboration

Page 7: CSC480 Class Design Pepper. Goals How to design classes StarUML Code Generation

CRC Exercise

• 5 card draw• List objects / entities• Make one card for each• Walk through the game• Draw a UML diagram

Page 8: CSC480 Class Design Pepper. Goals How to design classes StarUML Code Generation

StarUML

• Card• Deck• Hand• Players• Dealer• Game

Page 9: CSC480 Class Design Pepper. Goals How to design classes StarUML Code Generation

StarUML Code Generation

• UML diagram generates code• Can reverse engineer• Link to Diagram• Link to Code