Objects and Systems Principled Design with Implementations in C++ and Java

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 b...

Full description

Bibliographic Details
Main Author: Zeigler, Bernard P.
Format: eBook
Language:English
Published: New York, NY Springer New York 1997, 1997
Edition:1st ed. 1997
Series:Undergraduate Texts in Computer Science
Subjects:
Online Access:
Collection: Springer Book Archives -2004 - Collection details see MPG.ReNa
Table of Contents:
  • 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
  • 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
  • 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
  • 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