1: Introduction to Object Orientation.- 1. Introduction To Object Orientation.- 1.1 Introduction.- 1.2 Programming paradigms.- 1.
3 Revolution versus evolution.- 1.4 History /pedigree of object oriented languages.- 1.5 Fundamentals of object orientation.- 1.6 The four catechism of object orientation.- 1.
7 Encapsulation.- 1.8 Inheritance.- 1.9 Abstraction.- 1.10 Polymorphism.- 1.
11 Summary.- 1.12 Further reading.- 2. Elements of Object Orientation.- 2.1 Introduction.- 2.
2 Terminology.- 2.3 Types of hierarchies in object orientation.- 2.4 Why bother?.- 2.5 The move to object technology.- 2.
6 Summary.- 2.7 Exercises.- 2.8 Further reading.- 3. Constructing an Object Oriented System.- 3.
1 Introduction.- 3.2 The application: windscreen wipe simulation.- 3.3 Where do we start?.- 3.4 Identifying the objects.- 3.
5 Identifying the services/methods.- 3.6 Refining the objects.- 3.7 Bringing it all together.- 3.8 Summary.- 3.
9 Exercises.- 3.10 Further reading.- 2: The Smalltalk Language.- 4. An Introduction to Smalltalk.- 4.1 Introduction.
- 4.2 What is Smalltalk.- 4.3 Objects in Smalltalk.- 4.4 History.- 4.5 The Smalltalk environment.
- 4.6 Further reading.- 5. A Little Smalltalk.- 5.1 Introduction.- 5.2 The Workspace.
- 5.3 Inspectors.- 5.4 Notifiers.- 5.5 Error processing.- 5.6 Some Smalltalk.
- 5.7 Working with Smalltalk.- 5.8 Summary.- 5.9 Further reading.- 6. Smalltalk Building Blocks.
- 6.1 Introduction.- 6.2 The basics of the language.- 6.3 Classes.- 6.4 Method definitions.
- 7. Smalltalk Constructs.- 7.1 Introduction.- 7.2 Numbers and operators.- 7.3 Characters and strings.
- 7.4 Assignments.- 7.5 Variables.- 7.6 Messages and message selectors.- 7.7 Summary.
- 7.8 Further reading.- 8. An Example Smalltalk Class.- 8.1 Introduction.- 8.2 The class Person.
- 8.3 Defining methods.- 8.4 Creating an instance.- 9. Control and Iteration.- 9.1 Introduction.
- 9.2 Cascading.- 9.3 Blocks.- 9.4 Control structures.- 9.5 Summary.
- 9.6 Further Reading.- 10. The Collection Classes.- 10.1 Introduction.- 10.2 The Collection class hierarchy.
- 10.3 Choosing a Collection class.- 10.4 The Collection class.- 10.5 Bag.- 10.6 Set.
- 10.7 OrderedCollection.- 10.8 Stack and queue classes in Smalltalk.- 10.9 Summary.- 10.10 Further reading.
- 11. Further Collection Classes.- 11.1 Introduction.- 11.2 SortedCollection.- 11.3 List.
- 11.4 Intervals.- 11.5 Array.- 11.6 Multi dimensional arrays.- 11.7 Dictionaries.
- 11.8 Strings.- 11.9 Iterating over collections.- 11.10 Inserting into a collection.- 11.11 Conversion.
- 12. An Object Oriented Organizer.- 12.1 Introduction.- 12.2 The Organizer.- 12.3 The class definition.
- 12.4 The initialize-release protocol.- 12.5 A class side method.- 12.6 The private-updating protocol.- 12.7 The accessing protocol.
- 12.8 The Financial Manager project.- 13. Streams and Files.- 13.1 Introduction.- 13.2 Streams.
- 13.3 ASCII files.- 13.4 The Binary Object Streaming Service.- 13.5 Using files with the Financial Manager.- 13.6 Summary.
- 14. The Magnitude Class Hierarchy.- 14.1 Introduction.- 14.2 The class Magnitude.- 14.3 The class Date.
- 14.4 The class Time.- 14.5 The class Character.- 14.6 Further reading.- 15. Some More Tools of the Trade.
- 15.1 Introduction.- 15.2 Errors and breakpoints.- 15.3 File in/file outs.- 15.4 Change list.
- 15.5 Working with projects.- 15.6 Summary.- 3: Object Oriented Design.- 16. Object Oriented Analysis and Design.- 16.
1 Introduction.- 16.2 The Unified Modeling Language.- 16.3 Object oriented design methods.- 16.4 Object Oriented Analysis.- 16.
5 The Booch method.- 16.6 The Object Modeling Technique.- 16.7 The Objectory method.- 16.8 The Fusion method.- 16.
9 Summary.- 17. The Unified Modeling Language.- 17.1 Introduction.- 17.2 The UML infrastructure.- 17.
3 Use case diagrams.- 17.4 The object model.- 17.5 Packages.- 18. UML: Dynamic Modeling and Deployment.- 18.
1 Introduction.- 18.2 Dynamic modeling facilities.- 18.3 Deployment diagrams.- 18.4 Summary.- 19.
The Object Modeling Technique.- 19.1 Introduction.- 19.2 The OMT methodology.- 19.3 Analysis phase.- 20.
More Object Modeling Technique.- 20.1 Introduction.- 20.2 Dynamic models.- 20.3 Design phase.- 20.
4 Implementation phase.- 20.5 Summary.- 21. Frameworks and Patterns for Object Oriented Design.- 21.1 Introduction.- 21.
2 Patterns and frameworks.- 21.3 An introduction to HotDraw.- 21.4 Where do you start?.- 21.5 BoxDrawFigure.- 21.
6 Summary.- 4: Testing and Style.- 22. Testing Object Oriented Systems.- 22.1 Introduction.- 22.2 Why is testing object oriented systems hard?.
- 22.3 Inheritance.- 22.4 Abstract superclasses.- 22.5 Encapsulation.- 22.6 Polymorphism.
- 22.7 Additional Smalltalk specific features.- 22.8 Summary.- 22.9 Further reading.- 23. Method and Class Testing.
- 23.1 Introduction.- 23.2 Object integration testing.- 23.3 System testing.- 23.4 Self testing.
- 23.5 Summary.- 23.6 Further reading.- 24. Smalltalk Style Guidelines.- 24.1 Introduction.
- 24.2 Variables.- 24.3 Classes.- 24.4 Methods.- 24.5 Naming message protocols.
- 24.6 Further reading.- 5: Graphical Interfaces in Smalltalk.- 25. The Perform and Dependency Mechanisms.- 25.1 Introduction.- 25.
2 The Perform mechanism.- 25.3 The Dependency mechanism.- 25.4 Summary.- 26. The Model-View-Controller Architecture.- 26.
1 Introduction.- 26.2 The MVC architecture principles.- 26.3 The MVC with the statement model.- 26.4 Views and subviews.- 26.
5 The controller hierarchy.- 26.6 Summary.- 26.7 Further reading.- 27. Graphical User Interface Construction Tools.- 27.
1 Introduction.- 27.2 What is a user interface builder?.- 27.3 VisualWorks window painting tools.- 27.4 Window specification and creation.- 27.
5 Application models versus domain models.- 27.6 Defining a window''s functionality.- 27.7 Initialization.- 27.8 Resource Finder.- 27.
9 ValueHolders.- 27.10 The on ChangeSend: to: message.- 27.11 Visual reuse.- 27.12 Method of working with the UI builder.- 27.
13 Summary.- 28. A Visual Organizer.- 28.1 Introduction.- 28.2 VisualOrganizer class.- 28.
3 The AddressBook class.- 28.4 Summary.- 28.5 The visual Financial Manager application.- 29. Using a View Within a Window.- 29.
1 Introduction.- 29.2 The custom view widget.- 29.3 The structure of the application.- 29.4 The interactions between objects.- 29.
5 The classes involved.- 29.6 Add a delete widget option.- 29.7 Summary.- 29.8 Further reading.- 6: Further Smalltalk.
- 30. Memory Management and Garbage Collection.- 30.1 Introduction.- 30.2 Why have automatic memory management?.- 30.3 VisualWorks memory management.
- 30.4 Garbage collection and memory compaction.- 30.5 Placing objects in PermSpace.- 31. Concurrency in Smalltalk.- 31.1 Introduction.
- 31.2 Concurrent processes.- 31.3 Processes in Smalltalk.- 31.4 A concurrent Smalltalk example.- 31.5 Further reading.
- 32. The Metaclass Framework.- 32.1 Introduction.- 32.2 What are classes?.- 32.3 Classes and metaclasses.
- 32.4 ClassDescription and Behavior.- 32.5 The metaclass concept goes recursive!.- 32.6 Further reading.- 7: The Future.- 33.
The Future for Object Technology.- 33.1 Introduction.- 33.2 The Smalltalk language.- 33.3 Object oriented development toolkits.- 33.
4 The internet and objects.- 33.5 Object oriented databases.- 33.6 Smalltalk as a training environment.- 33.7 Object technology: the next five years.- Appendix A: The Smalltalk Language Syntax.