Upload
duane-brooks
View
215
Download
1
Embed Size (px)
Citation preview
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
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
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/
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
CRC Exercise
• 5 card draw• List objects / entities• Make one card for each• Walk through the game• Draw a UML diagram
StarUML
• Card• Deck• Hand• Players• Dealer• Game
StarUML Code Generation
• UML diagram generates code• Can reverse engineer• Link to Diagram• Link to Code