Always Learning

Data Structures and Software Development in an Object Oriented Domain, Java Edition
Jean-Paul TremblayUniversity of Saskatchewan
Grant A. ChestonUniversity of Saskatchewan

ISBN-10: 0137879539
ISBN-13:  9780137879533

Publisher:  Prentice Hall
Copyright:  2003
Format:  Cloth; 1200 pp
Published:  08/05/2002
Status: Out of Print


We're sorry, this product is no longer available.
Please contact your Pearson rep if you are using this product and need instructor resources.


Print this content

In this section:


Description

For one- or two-term Sophomore/Junior level courses in Data Structures and Software Design.

This text provides students with a strong introduction to basic data structures, object-oriented analysis and design, and fundamental software design concepts and principles. The authors begin with the traditional basic data structures and algorithms, with their Java implementation and analysis. Then, employing UML notation, a ten step process is given to design a large software system, including a case study designing a simple bank system. In the remainder of the book, intermediate-level data structures and software design techniques are given.


Features

  • Combination of data structures and software development.
    • Allows students to learn how to use data structures in context of object-oriented software development.

  • Basic software engineering concepts—Presented at a suitable level for second or third year students.
    • Teaches students real world software engineering skills they can later use in their careers.

  • Many concepts and techniques are introduced on an as-needed basis.
    • Makes the material less overwhelming for students.

  • Extensive use of UML diagrams—Includes inheritance, context, sequence, collaboration, class, high-level architecture, and subsystem.
    • Makes difficult concepts more accessible.

  • Abstract Data Types (ADTs) are discussed early—Presented from the axiomatic, constructive, and the postcondition approaches using an object-oriented notation.
    • Shows students how to use ADTs for object oriented software development.

    • Portrays software relationships to students.

  • Full chapter on software testing—Deals with traditional black box and white box test-case generation techniques, as well as testing techniques for object-oriented software.
    • Teaches students real-world software engineering technology.


Table of Contents



1. State of Software Development.

Introduction. Software Development Process. Assessing Software Quality. Principles of Software Design. Approaches to Software Design. Concluding Remarks.



2. Java Basics.

Introduction. Comments and White Space. Naming Conventions. Data Types. Literals and Constants. Operators. Basic Statements. Methods. Class Declaration. Java System. Objects. Inheritance. Argument Passing. Repairing Program Faults. I/O to Text Files. Java Virtual Machine. Graphical User I/O. Concluding Remarks.



3. Objects and Classes.

Introduction. Models and Modeling. Objects. Classes and Instances. Relationships to Describe Class Interactions. Concluding Remarks.



4. Arrays and Strings.

An Array Application and Analysis of the Problem. Arrays in Java. Problem Solution. Storage Structure, Assignment and Equality for Reference Types. Strings. StringBuffer Class. Concluding Remarks. New Java Constructs.



5. Array Algorithms and Their Analysis.

Algorithm Analysis. Searching. Sorting. Introduction to Object Comparison, Interfaces, and the Object Class. Array Dictionaries. Concluding Remarks. New Java Constructs.



6. Abstract Data Types and Their Implementation.

Introduction. Data Types. Specifying Abstract Data Types. Specifying and Implementing ADTs in Java. Assertion Checking and Exceptions. Visibility of Classes and Class Members. Introduction to Design by Contract. Concluding Remarks. New Java Constructs.



7. List Fundamentals.

A Simple List Application. List Abstract Data Type. Implementations. Examples of Linked Operations. Ordered Simple List. List Variations. Concluding Remarks. New Java Constructs.



8. Advanced List Concepts and the Uos Data Structure Library.

List Tools. Library of Dictionaries and List Data Structures. Applications. Polymorphism and Heterogeneous Lists. Concluding Remarks. New Java Constructs.



9. Stacks.

Introduction. Stack ADT. Implementations. Applications. Concluding Remarks.



10. Recursion.

Recursive Definitions from Mathematics. Recursive Methods. Developing and Verifying Recursive Methods. Timing Analysis for Simple Recursive Methods. Recursive List Methods. Concluding Remarks. New Java Constructs.



11. Queues and Priority Queues.

Queues. Priority Queues. Application: Discrete Simulation. Concluding Remarks. New Java Constructs.



12. Object-Oriented Development: An Example.

Introduction. Object-Oriented Development Life Cycle. Various Stakeholders in Software Development. An Object-Oriented Development Approach. A Simplified Banking Example. Design Caveat. Seamless Software Development. Benefits of the Object Model. Concluding Remarks. New Java Constructs.



13. Trees.

Introduction and Applications. Binary Tree Abstract Data Type. Binary Trees. General Trees. Applications. Concluding Remarks.



14. Elementary Problem Modeling and System Design.

Introduction. Modeling Static System Structure. Modeling System Behavior. Analysis and Architectural Design of a Student Registration System. Concluding Remarks.



15. Principles of Software Design.

Introduction. Design By Contract. Exception Handling. Class Design. Building Inheritance Taxonomies. Coupling and Cohesion in Object-Oriented Software. Using Patterns in Software Design. Subsystem Design. Detailed Design of a Student Registration System. Concluding Remarks.



16. Software Testing.

Fundamentals of Software Testing. Human Testing. Black Box Testing. White Box (Program-Based) Testing. Object-Oriented Testing. Locating and Repairing Dynamic Faults. Concluding Remarks.



17. Bags, Sets, and Dictionaries.

Introduction. Bit Vector Implementation. Hash Tables. Specialized Search Trees. Better Priority Queues. Concluding Remarks.



18 Sorting.

Introduction. Review of Basic Sorts. Recursive Merge Sort. Quicksort. Use of Recurrence Relations for Time Requirements. Heap Sort. Radix Sort. Address Calculation Sort. Concluding Remarks.



19. Graphs.

Introduction and Examples of Graph Modeling. Basic Definitions of Graph Theory. Graph ADT. Paths, Reachability, and Connectedness. Graph Representations. Computing Paths from a Matrix Representation of Graphs. Traversals of Undirected Graphs. Applications. Concluding Remarks.



20. Files.

Introduction. External Storage Devices. Definitions and Concepts. Persistent Storage Support in Java. Sequential Files. Direct Files. Indexed Sequential Files. B-Tree Files. Multiple-Key Access. Concluding Remarks.



Appendix A. Java Tutorial.

Java Syntax Charts. Comments and White Space. Names. Data Types. Expressions. Primaries. Statements. Methods. Classes. Interfaces. Packages and Access Modifiers. Input/Output. Exception Handling. Multi-Threading. Miscellaneous.



Appendix B. Analysis of Java Data Structures.


Appendix C. Math Primer.

Summation Notation. Logarithms. Cross Product and Function Notation. Mathematical Induction. Further Techniques for Recurrence Relations.



Bibliography.



Back to top

Print this content

In this section:


Author Bios

Jean-Paul Tremblay received the Ph.D. degree in Computer Science from Case Institute of Technology. He is currently a professor in the Department of Computer Science at the University of Saskatchewan. Professor Tremblay has co-authored several books in the McGraw-Hill Science Series and is also a co-author of Logic and Discrete Mathematics: A Computer Science Perspective, published by Prentice Hall. His research interests currently focus on CASE systems and automated software diagram layout tools.

Grant A. Cheston received the Ph.D. degree in Computer Science from the University of Toronto. He is currently a professor in the Computer Science Department at the University of Saskatchewan. Professor Cheston's research interests are in the graph algorithms area.


Backcover Copy

This Java data structures book provides a strong introduction to object-oriented programming. It features a comprehensive presentation of the fundamentals of algorithm analysis foralgorithm and data structure comparisons, along with basic software engineering principles for the object-oriented analysis and design of a large information system. It is the first data structures book to present an introduction to software design and development at an intermediate level.

Key Features
  • Data structure library: Lists, stacks, queues, trees, balanced trees, graphs, and files are discussed in detail and implemented in Java.
  • UML: Software analysis and modeling are presented using a subset of UML at a level accessible to second- or third-year students.
  • Timing analysis: Timing is extensively studied and used throughout.
  • Two case studies: Real examples illustrate the object-oriented development process for the analysis and design of a non-trivial system.
  • Electronic materials: All of the code included in the text and an example of a well-designed data structure library with implementations of all the standard data structures is provided for downloading.

Back to top

Log in to the Instructor Resource Center

Login name: 

  Password: 

Forgot login/password?  |  Need to redeem an access code?

        

Instructor Resource Center File Download

This work is protected by local and international copyright laws and is provided solely for the use of instructors in teaching their courses and assessing student learning. Dissemination or sale of any part of this work (including on the World Wide Web) will destroy the integrity of the work and is not permitted. The work and materials from this site should never be made available to students except by instructors using the accompanying text in their classes. All recipients of this work are expected to abide by these restrictions and to honor the intended pedagogical purposes and the needs of other instructors who rely on these materials.

Cancel     I accept, proceed with download

Print this content

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.

Back to top