4. References
• Agile Software Development: Principles, Patterns,
and Practice ( : )
by Robert C. Martin
• Fundamental Object Oriented Programming
by Hsuan-Tien Lin
5. References
• Agile Software Development: Principles, Patterns,
and Practice ( : )
by Robert C. Martin
• Fundamental Object Oriented Programming
by Hsuan-Tien Lin
•
by Teddy Chen
6. References
• Agile Software Development: Principles, Patterns,
and Practice ( : )
by Robert C. Martin
• Fundamental Object Oriented Programming
by Hsuan-Tien Lin
•
by Teddy Chen
• Essential Object-Oriented Programming
by Josh Ko
15. Good Modules make good System
• Easy to debug
• Easy to maintain/ manage
16. Good Modules make good System
• Easy to debug
• Easy to maintain/ manage
• Easy to modify/ update
17. Good Modules make good System
• Easy to debug
• Easy to maintain/ manage
• Easy to modify/ update
• Easy to reuse
18. Good Modules make good System
• Easy to debug
• Easy to maintain/ manage
• Easy to modify/ update
• Easy to reuse
19. Good Modules make good System
• Easy to debug
• Easy to maintain/ manage
• Easy to modify/ update
• Easy to reuse
Modularization: Save time in the future
39. OO Levels
• OO Analysis:
what the system does
• needs -> models
40. OO Levels
• OO Analysis:
what the system does
• needs -> models
• Software Engineering
41. OO Levels
• OO Analysis:
what the system does
• needs -> models
• Software Engineering
• OO Design:
how the system dose it
42. OO Levels
• OO Analysis:
what the system does
• needs -> models
• Software Engineering
• OO Design:
how the system dose it
• model -> class diagrams
43. OO Levels
• OO Analysis:
what the system does
• needs -> models
• Software Engineering
• OO Design:
how the system dose it
• model -> class diagrams
• Design Pattern
44. OO Levels
• OO Analysis:
what the system does
• needs -> models
• Software Engineering
• OO Design:
how the system dose it
• model -> class diagrams
• Design Pattern
• OO Programming
how to implement it
45. OO Levels
• OO Analysis:
what the system does
• needs -> models
• Software Engineering
• OO Design:
how the system dose it
• model -> class diagrams
• Design Pattern
• OO Programming
how to implement it
• class diagrams -> implementations
46. OO Levels
• OO Analysis:
what the system does
• needs -> models
• Software Engineering
• OO Design:
how the system dose it
• model -> class diagrams
• Design Pattern
• OO Programming
how to implement it
• class diagrams -> implementations
• OOP, this one
84. • Separate implementation and use
• Don’t trust other people including you(3 months after)
Encapsulation
85. • Separate implementation and use
• Don’t trust other people including you(3 months after)
• Hide unnecessary details
Encapsulation
86. • Separate implementation and use
• Don’t trust other people including you(3 months after)
• Hide unnecessary details
• One more oz
Encapsulation
87. • Separate implementation and use
• Don’t trust other people including you(3 months after)
• Hide unnecessary details
• One more oz
Encapsulation
88. • Separate implementation and use
• Don’t trust other people including you(3 months after)
• Hide unnecessary details
• One more oz
Think about incorrect use about your class
Encapsulation
89. As a designer,
you should avoid giving the users of your
code too much freedom to do bad and/or
make bugs