Objects and systems : principled design with implementations in C++ and Java
Author(s)
Bibliographic Information
Objects and systems : principled design with implementations in C++ and Java
(Undergraduate texts in computer science)
Springer, c1997
Available at 22 libraries
  Aomori
  Iwate
  Miyagi
  Akita
  Yamagata
  Fukushima
  Ibaraki
  Tochigi
  Gunma
  Saitama
  Chiba
  Tokyo
  Kanagawa
  Niigata
  Toyama
  Ishikawa
  Fukui
  Yamanashi
  Nagano
  Gifu
  Shizuoka
  Aichi
  Mie
  Shiga
  Kyoto
  Osaka
  Hyogo
  Nara
  Wakayama
  Tottori
  Shimane
  Okayama
  Hiroshima
  Yamaguchi
  Tokushima
  Kagawa
  Ehime
  Kochi
  Fukuoka
  Saga
  Nagasaki
  Kumamoto
  Oita
  Miyazaki
  Kagoshima
  Okinawa
  Korea
  China
  Thailand
  United Kingdom
  Germany
  Switzerland
  France
  Belgium
  Netherlands
  Sweden
  Norway
  United States of America
Note
Includes index
Description and Table of Contents
Description
The author's aim in this textbook is to provide students with a clear understanding of the relationship between the principles of object-oriented programming and software engineering. Professor Zeigler takes an approach based on state representation to formal specification. Consequently, this book is unique through its - emphasis on formulating primitives from which all other functionality can be built; - integral use of a semi-formal behaviour specification language based on state transition concepts; -differentiation between behaviour and implementation; -a reusable heterogeneous container class library; -ability to show the elegance and power of ensemble methods with non-trivial examples. As a result, students studying software engineering will find this a distinctive and valuable approach to programming and systems engineering.
Table of Contents
1. Object Orientation and State Systems.- 1.1 Finite State Machine Example: Binary Counter.- 1.2 Problems with Nonobject-Oriented Programming.- 1.3 Benefits of Object Orientation: Binary Counter C++ Implementation.- 1.4 Access Restrictions in C++.- 1.5 Instance Generation, Information Hiding, and Restricted Access in OOPS.- Problems.- 2. Object Behavior Specification: Software Blueprints.- 2.1 Object Behavior Specification.- 2.2 Simulating an Object Behavior Specification.- 2.3 Definition of Behavior.- Problems.- 3. Lists: Behavior Specification, Models and Implementations.- 3.1 Domain Restrictions and Legal Sequences.- 3.2 An Abstract Model for the List Specification.- 3.3 Implementations and Models of Lists.- 3.4 Parallel Implementations of Lists.- 3.5 Proving and Testing Correctness.- Problems.- 4. Inheritance Hierarchies and Hierarchical Construction.- 4.1 Specifying and Implementing an and-gate.- 4.2 General Switching Functions.- 4.3 Inheritance and Derived Classes in C++.- 4.4 Using Inheritance for Alternative Implementations.- 4.5 Hierarchical Construction.- 4.6 Summary.- Problems.- 5. Containers: An Object Behavior Specification.- 5.1 Class entity.- 5.2 Container Base Class.- 5.3 Ensemble Methods.- 5.4 Container Subclasses: Unordered.- Problems.- 6. C++ Implementation of a Heterogeneous Container Class Library.- 6.1 HCCL Implementation Strategy.- 6.2 Ensemble Methods in C++.- 6.3 A Macro Approach to Ensemble Methods.- Appendix 1: Ensemble Method Macros.- Appendix 2: C++ Typing Rules That Arise From Inheritance.- Problems.- 7. Testing Based on Behavior Specification.- 7.1 The Look-and-See Method.- 7.2 Testing Rudiments.- 7.3 Blueprint-Based Testing.- 7.4 Constructing Behavior Samples.- 7.5 Testing Constructors for Correct Initialization.- 7.6 State Transition-based Testing.- 7.7 Transition-Based Test Methodology.- 7.8 Transition-Based Testing: More Considerations.- 7.9 Combining the Approaches.- Problems.- 8. Constructing Inheritance Class Hierarchies.- 8.1 How to Construct Inheritance Hierarchies.- 8.2 Class Hierarchy Example: Investments.- 8.3 Portfolio Selection and Rating Specification.- 8.4 Implementing the Investment System.- 8.5 Polymorphism and Dynamic Binding.- 8.6 Extensibility.- Problems.- 9. Ensemble-Based Implementation of Containers.- 9.1 More Ensemble Methods.- 9.2 Implementing Container Classes by Ensemble Methods.- 9.3 Lessons Learned.- Problems.- 10. Ordered Containers and Their Implementation.- 10.1 Class Order.- 10.2 Stacks and Queues.- 10.3 List as a Subclass of Order.- Problems.- Appendix: Specifying list as a Subclass of order.- 11. More Useful Concepts for Containers.- 11.1 Logic Ensemble Methods.- 11.2 Container Equality.- 11.3 Inclusion, Union, Intersection, and Difference.- 11.4 Conversion.- 11.5 Container Comparison.- Problems.- Appendix: Specifying and Implementing Set Theory Operations.- 12. Design Based on Hierarchical Decomposition and Ensemble Methods.- 12.1 Trees as Hierarchical Containers.- 12.2 Tree Computations with Ensemble Methods.- 12.3 A Class of Graphics Puzzles.- 12.4 General Approach to 00 Software Development.- 12.5 Alarming a Building.- 12.6 Summary.- Problems.- Appendix: Specifying a Graphics Puzzle.- 13. Java and Threaded Containers.- 13.1 Basic Java.- 13.2 Distinctive Java Features.- 13.3 Ensemble Methods in Java.- 13.4 General Approach to Ensemble Methods in Java.- 13.5 Synchronization.- 13.6 Hierarchical Graphics Construction in Java.- 13.6 Summary.- Problems.
by "Nielsen BookData"