
Objects and Systems
Principled Design with Implementations in C++ and Java
Bernard P. Zeigler(Author)
Springer (Publisher)
Published on 4. October 2012
Book
Paperback/Softback
XXI, 221 pages
978-1-4612-7335-6 (ISBN)
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.
More details
Series
Edition
Softcover reprint of the original 1st ed. 1997
Language
English
Place of publication
New York
United States
Target group
Lower undergraduate
Illustrations
XXI, 221 p.
Dimensions
Height: 254 mm
Width: 178 mm
Thickness: 14 mm
Weight
474 gr
ISBN-13
978-1-4612-7335-6 (9781461273356)
DOI
10.1007/978-1-4612-1912-5
Schweitzer Classification
Other editions
Additional editions

Book
01/1997
Springer
€53.49
Shipment within 5-7 days
Content
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.