Stressing design and the discipline needed for developing complex software systems, the authors take an "objects first" approach to programming and software design. Using Java as the vehicle, they show you how to model problems with sound software engineering principles and concepts. Step by step, with numerous examples and exercises,, they provide you with the practice you need to acquire real proficiency in the design and construction of software systems. By the time you are done, you will have developed the fundamental skills and a grasp of system design that will prove as useful in constructing large systems as in building small components.
Updates and enhancements that make the Third Edition the best yet include:
- A continued focus on an objects–first approach,presenting the use of basic data types and control structures, method definition and invocation, and complete simple system implementation.
- The use of the "programming by contract" paradigm and an emphasis on testing and test–driven implementation.
- New examples and exercises to improve the presentation format.
- comprehensive coverage of arrays in a completely rewritten chapter.
- Detailed examination of generics and wildcard types, newly added.
- Optional, interactive exercises using the latest version of the DrJava integrated development environment (IDE).
- An introduction to the Unified modeling Language (UML) and how it′s employed for denoting objects, object relationships, and system dynamics
- Java usage compatible with Java 6.0
Chapter 1. Data abstraction: introductory concepts.
Chapter 2. Defining a simple class.
Chapter 3. Designing interacting classes.
Chapter 4. Conditions.
Chapter 5. Programming by contract.
Chapter 6. Testing.
Chapter 7. Building a text–based user interface.
Chapter 8. The software life cycle: building a complete system.
Chapter 9. Specifying clients: interfaces.
Chapter 10. Class extension and inheritance.
Chapter 11. Modeling with abstraction.
Chapter 12. Lists.
Chapter 13. Arrays.
Chapter 14. Sorting and searching.
Chapter 15. Failures and exceptions.
Chapter 16. Stream i/o.
Chapter 17. Building a graphical user interface.
Chapter 18. Integrating user interface and model: the Model–View–Controller pattern.
Chapter 19. Recursion.
Chapter 20. Generic structur5es.
Chapter 21. Implementing lists: linked implementations.
Chapter 22. Iterators.
Supplement a. Systems and software.
Supplement b. Programming errors.
Supplement C. Applets.
Supplement d. Enumerations types: the rest of the story.
Appendix i. Compiling, executing, and documenting.
Appendix ii. DrJava.
Appendix iii. Controls and basic Latin: the first 128 Unicode characters.
Frederick A. Hosch is Professor Emeritus at the University of New Orleans.