Student Originated Software 1997-1998
Fall Quarter

A Software Engineering Course at
The Evergreen State College

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


For more information contact
[ Evergreen Home Page | Academic Programs ]


Created by: SoSwEbGrOuP
E-mail: ringert@evergreen.edu