An edition of Program development in Java (2000)

Program development in Java

abstraction, specification, and object-oriented design

  • 2.0 (1 rating)
  • 3 Want to read
  • 1 Currently reading
  • 1 Have read

My Reading Lists:

Create a new list

  • 2.0 (1 rating)
  • 3 Want to read
  • 1 Currently reading
  • 1 Have read

Buy this book

Last edited by MARC Bot
July 11, 2024 | History
An edition of Program development in Java (2000)

Program development in Java

abstraction, specification, and object-oriented design

  • 2.0 (1 rating)
  • 3 Want to read
  • 1 Currently reading
  • 1 Have read

This work doesn't have a description yet. Can you add one?

Publish Date
Publisher
Addison-Wesley
Language
English
Pages
443

Buy this book

Previews available in: English

Edition Availability
Cover of: Program development in Java
Program development in Java: abstraction, specification, and object-oriented design
2001, Addison-Wesley
in English
Cover of: Program development in Java
Program development in Java: abstraction, specification, and object-oriented design
2001, Addison-Wesley
in English
Cover of: Program Development in Java
Program Development in Java: Abstraction, Specification, and Object-Oriented Design
January 15, 2000, Addison-Wesley Professional
in English

Add another edition?

Book Details


Table of Contents

Preface
Page xv
Acknowledgments
Page xix
1. Introduction
Page 1
1.1. Decomposition and Abstraction
Page 2
1.2. Abstraction
Page 4
1.2.1. Abstraction by Parameterization
Page 7
1.2.2. Abstraction by Specification
Page 8
1.2.3. Kinds of Abstractions
Page 10
1.3. The Remainder of the Book
Page 12
Exercises
Page 13
2. Understanding Objects in Java
Page 15
2.1. Program Structure
Page 15
2.2. Packages
Page 17
2.3. Objects and Variables
Page 18
2.3.1. Mutability
Page 21
2.3.2. Method Call Semantics
Page 22
2.4. Type Checking
Page 24
2.4.1. Type Hierarchy
Page 24
2.4.2. Conversions and Overloading
Page 27
2.5. Dispatching
Page 29
2.6. Types
Page 30
2.6.1. Primitive Object Types
Page 30
2.6.2. Vectors
Page 31
2.7. Stream Input/Output
Page 32
2.8. Java Applications
Page 33
Exercises
Page 35
3. Procedural Abstraction
Page 39
3.1. The Benefits of Abstraction
Page 40
3.2. Specifications
Page 42
3.3. Specifications of Procedural Abstractions
Page 43
3.4. Implementing Procedures
Page 47
3.5. Designing Procedural Abstractions
Page 50
3.6. Summary
Page 55
Exercises
Page 56
4. Exceptions
Page 57
4.1. Specifications
Page 59
4.2. The Java Exception Mechanism
Page 61
4.2.1. Exception Types
Page 61
4.2.2. Defining Exception Types
Page 62
4.2.3. Throwing Exceptions
Page 64
4.2.4. Handling Exceptions
Page 65
4.2.5. Coping with Unchecked Exceptions
Page 66
4.3. Programming with Exceptions
Page 67
4.3.1. Reflecting and Masking
Page 67
4.4. Design Issues
Page 68
4.4.1. When to Use Exceptions
Page 70
4.4.2. Checked versus Unchecked Exceptions
Page 70
4.5. Defensive Programming
Page 72
4.6. Summary
Page 74
Exercises
Page 75
5. Data Abstraction
Page 77
5.1. Specifications for Data Abstractions
Page 79
5.1.1. Specification of IntSet
Page 80
5.1.2. The Poly Abstraction
Page 83
5.2. Using Data Abstractions
Page 85
5.3. Implementing Data Abstractions
Page 86
5.3.1. Implementing Data Abstractions in Java
Page 87
5.3.2. Implementation of IntSet
Page 87
5.3.3. Implementation of Poly
Page 89
5.3.4. Records
Page 90
5.4. Additional Methods
Page 94
5.5. Aids to Understanding Implementations
Page 98
5.5.1. The Abstraction Function
Page 99
5.5.2. The Representation Invariant
Page 102
5.5.3. Implementing the Abstraction Function and Rep Invariant
Page 105
5.5.4. Discussion
Page 107
5.6. Properties of Data Abstraction Implementations
Page 108
5.6.1. Benevolent Side Effects
Page 108
5.6.2. Exposing the Rep
Page 111
5.7. Reasoning about Data Abstractions
Page 112
5.7.1. Preserving the Rep Invariant
Page 113
5.7.2. Reasoning about Operations
Page 114
5.7.3. Reasoning at the Abstract Level
Page 115
5.8. Design Issues
Page 116
5.8.1. Mutability
Page 116
5.8.2. Operation Categories
Page 117
5.8.3. Adequacy
Page 118
5.9. Locality and Modifiability
Page 120
5.10. Summary
Page 121
Exercises
Page 121
6. Iteration Abstraction
Page 125
6.1. Iteration in Java
Page 128
6.2. Specifying Iterators
Page 130
6.3. Using Iterators
Page 132
6.4. Implementing Iterators
Page 134
6.5. Rep Invariants and Abstraction Functions for Generators
Page 137
6.6. Ordered Lists
Page 138
6.7. Design Issues
Page 143
6.8. Summary
Page 144
Exercises
Page 144
7. Type Hierarchy
Page 147
7.1. Assignment and Dispatching
Page 149
7.1.1. Assignment
Page 149
7.1.2. Dispatching
Page 150
7.2. Defining a Type Hierarchy
Page 152
7.3. Defining Hierarchies in Java
Page 152
7.4. A Simple Example
Page 154
7.5. Exception Types
Page 161
7.6. Abstract Classes
Page 161
7.7. Interfaces
Page 166
7.8. Multiple Implementations
Page 167
7.8.1. Lists
Page 168
7.8.2. Polynomials
Page 171
7.9. The Meaning of Subtypes
Page 174
7.9.1. The Methods Rule
Page 176
7.9.2. The Properties Rule
Page 179
7.9.3. Equality
Page 182
7.10. Discussion of Type Hierarchy
Page 183
7.11. Summary
Page 184
Exercises
Page 186
8. Polymorphic Abstractions
Page 189
8.1. Polymorphic Data Abstractions
Page 190
8.2. Using Polymorphic Data Abstractions
Page 193
8.3. Equality Revisited
Page 193
8.4. Additional Methods
Page 195
8.5. More Flexibility
Page 198
8.6. Polymorphic Procedures
Page 202
8.7. Summary
Page 202
Exercises
Page 204
9. Specifications
Page 207
9.1. Specifications and Specificand Sets
Page 207
9.2. Some Criteria for Specifications
Page 208
9.2.1. Restrictiveness
Page 208
9.2.2. Generality
Page 211
9.2.3. Clarity
Page 212
9.3. Why Specifications?
Page 215
9.4. Summary
Page 217
Exercises
Page 219
10. Testing and Debugging
Page 221
10.1. Testing
Page 222
10.1.1. Black-Box Testing
Page 223
10.1.2. Glass-Box Testing
Page 227
10.2. Testing Procedures
Page 230
10.3. Testing Iterators
Page 231
10.4. Testing Data Abstractions
Page 232
10.5. Testing Polymorphic Abstractions
Page 235
10.6. Testing a Type Hierarchy
Page 235
10.7. Unit and Integration Testing
Page 237
10.8. Tools for Testing
Page 239
10.9. Debugging
Page 242
10.10. Defensive Programming
Page 249
10.11. Summary
Page 251
Exercises
Page 252
11. Requirements Analysis
Page 255
11.1. The Software Life Cycle
Page 255
11.2. Requirements Analysis Overview
Page 259
11.3. The Stock Tracker
Page 264
11.4. Summary
Page 269
Exercises
Page 270
12. Requirements Specifications
Page 271
12.1. Data Models
Page 272
12.1.1. Subsets
Page 273
12.1.2. Relations
Page 274
12.1.3. Textual Information
Page 278
12.2. Requirements Specifications
Page 282
12.3. Requirements Specification for Stock Tracker
Page 286
12.3.1. The Data Model
Page 286
12.3.2. Stock Tracker Specification
Page 289
12.4. Requirements Specification for a Search Engine
Page 291
12.5. Summary
Page 298
Exercises
Page 298
13. Design
Page 301
13.1. An Overview of the Design Process
Page 301
13.2. The Design Notebook
Page 304
13.2.1. The Introductory Section
Page 304
13.2.2. The Abstraction Sections
Page 308
13.3. The Structure of Interactive Programs
Page 310
13.4. Starting the Design
Page 315
13.5. Discussion of the Method
Page 323
13.6. Continuing the Design
Page 324
13.7. The Query Abstraction
Page 326
13.8. The WordTable Abstraction
Page 332
13.9. Finishing Up
Page 333
13.10. Interaction between FP and UI
Page 334
13.11. Module Dependency Diagrams versus Data Models
Page 336
13.12. Review and Discussion
Page 338
13.12.1. Inventing Helpers
Page 339
13.12.2. Specifying Helpers
Page 340
13.12.3. Continuing the Design
Page 341
13.12.4. The Design Notebook
Page 342
13.13. Top-Down Design
Page 343
13.14. Summary
Page 344
Exercises
Page 345
14. Between Design and Implementation
Page 347
14.1. Evaluating a Design
Page 347
14.1.1. Correctness and Performance
Page 348
14.1.2. Structure
Page 353
14.2. Ordering the Program Development Process
Page 360
14.3. Summary
Page 366
Exercises
Page 367
15. Design Patterns
Page 369
15.1. Hiding Object Creation
Page 371
15.2. Neat Hacks
Page 375
15.2.1. Flyweights
Page 375
15.2.2. Singletons
Page 378
15.2.3. The State Pattern
Page 382
15.3. The Bridge Pattern
Page 385
15.4. Procedures Should Be Objects Too
Page 386
15.5. Composites
Page 390
15.5.1. Traversing the Tree
Page 393
15.6. The Power of Indirection
Page 399
15.7. Publish/Subscribe
Page 402
15.7.1. Abstracting Control
Page 403
15.8. Summary
Page 406
Exercises
Page 407
Glossary
Page 409
Index
Page 427

Edition Notes

Includes index.

Published in
Boston

The Physical Object

Pagination
xix, 443 p. :
Number of pages
443

Edition Identifiers

Open Library
OL18140655M
ISBN 10
0201657686
LCCN
00036277
OCLC/WorldCat
43729077
LibraryThing
1032299
Goodreads
574740

Work Identifiers

Work ID
OL5106018W

Community Reviews (0)

No community reviews have been submitted for this work.

Lists

Download catalog record: RDF / JSON