OOP (Smalltalk) - Tueday, Week 6
- Year-Long Projects - Video, SS, Project Fair (20 min)
- Binary Tree Assignment (due today)
- Deep vs. Shallow Copy (cont) & Identity
- Sherri's lecture - Q&A....
- Thursday....
- Today's Lab (VW Tutorial Domain Model & HiHo GUI)
- Designing for Smalltalk - Finding the Objects
Identity Dictionary
shallowCopy & copy
- True and False - & vs. and - & is an evaluating form....
- Browser browseAllImplementorsOf: #=
- copy and shallowCopy| r1 r2 r3 |
OOD - Designing for Smalltalk
Given Requirements, Find the Objects....
- OOD vs. Conventional
structure of code & data -- together vs. separate
- OOD - iterative w/ rapid prototyping
waterfall or formal methods difficult to apply
- OOD for Smalltalk - not language independent
- Methodologies --
HP's Fusion
ParcPlace's Object Behavior Analysis and Design.
Design Tasks
- What procedures should I have?
- What are their inputs and outputs?
- Which class should this method be in?
- Should I subclass or encapsulate that class?
Design Considerations
- Benefits of good Design (some tradeoffs)....
- Consider interface separately from implementation.... (Hide Complexity)
- Minimize dependencies between classes.
- Separate the user-interface from the application logic.
- Factor out complex algorithms & complex variables (but don't spread behavior across classes....)
- Create as few special-purpose classes as possible.
- Have a class road-map in mind - you are extending the class library!
- Keep it simple!
Design Tasks
- Decide on the required functionality (scenarios?)
- Which objects provide that functionality?
- Are any objects really instances of the same class?
- How do the objects relate to each other?
- Design the interfaces to the classes.
- Design the implementation of the classes.
- Group the implementations using inheritance. (last)
Identifying the Objects
- Objects -
real-world entities,
computer world entities
files, windows....
processes
tasks, activities, operations, commands....
- Use smaller, simpler classes, wherever possible.
Relationships between Objects
- Associations
one-way - aGraduate has anAddress
two-way - aGraduate has aJob
eachFilledJob isFilledBy aGraduate
- Aggregation (Containers) - tescGraduates, anAirplane
When an object holds a collection of other objects
or, represents the sum of its parts
- Dependency - a special case of association.
- Inheritance
Thursday & Assignment
- Quiz - open book/open notes. No Computer - 10-11:15
- Project "Fair" 11:30-12:30 and 1:30-2:30.
- Read for Tuesday
Graphics media & objects (Ch. 19, 20)
Run Time Error handling & Debugging (Ch. 22, 23)
- Tuesday Lab -
If you've finished BinaryTree, Do: 19.5, 20.6, 20.9.
Demo your HiHo Domain Model
- Thursday - Guest lecture - Models of Inheritance
Turn in: Sherri's Workshop examples
Read: Classes & Metaclasses - Ch. 26.
Next Week's Seminar
Reading & Writing
(draft)
- Book - Microserfs
- Write a page on what you want from your project experience in SOS; This is like a self evaluation, in reverse....
Posted Nov 3, 1997 Pavan Auman
|