Data Structures and Software Development in an Object Oriented Domain, Eiffel Edition
Jean-Paul Tremblay, University of Saskatchewan
Grant A. Cheston, University of Saskatchewan

ISBN-10: 0137879466
ISBN-13: 9780137879465

Publisher: Prentice Hall
Copyright: 2001
Format: Paper; 1071 pp
Status: Out of Print

Suggested retail price: $109.00
This item is out of print and is no longer available for purchase.

For CS2/CS7 Data Structures courses. Also appropriate for first- and second-year Object Oriented Design courses where instructors also want to re-enforce data structures from an object-oriented perspective.

Using a unique parallel-coverage approach, this text 1) presents the fundamentals of data structures from arrays and lists to balanced trees, graphs, and files (including their design, use, implementation, and analysis); and 2) gives an introduction to object-oriented software engineering using UML (including the context diagram, use cases, sequence diagrams, architectural and detailed design, implementation, and testing). It can be used (a) to mostly present data structures with little software engineering, (b) to present both topics in parallel, or (c) to review data structures from an object-oriented perspective and then concentrate on software engineering at the first or second year level. The text uses Eiffel as the implementation language, an object-oriented language particularly well-suited to the clean presentation of data structures and software engineering concepts. Two case studies are included to illustrate the steps followed in an object-oriented development process for the analysis and design of non-trivial systems.

  • Unique integration of data structures, library design, and software principles into one package —Designed to help students absorb software engineering material while working with concrete techniques and data structures. Presents data structures and software engineering concepts in parallel by intermixing individual chapters on data structures and software engineering. Begins with simple software engineering concepts, and repeatedly uses them to develop applications throughout the book.
    • By gradually introducing more and more software design concepts while building up a data structures library, the text allows students to obtain a surprisingly good background in the analysis and design of software systems. Ex.___

  • As-needed coverage of selected concepts and techniques—e.g., the basics of the language Eiffel are presented in Ch. 2; subsequent chapters add various constructs—as they are needed for specific purposes. The same approach is used for timing analysis, and UML notation.
    • Avoids overwhelming students with a full treatment of a topic in a single chapter. Ex.___

  • Two case studies—Illustrate the steps followed in an object-oriented development process for the analysis and design of non-trivial systems (a simple banking system and a student registration system). Explains the selection of the most appropriate data structure. The full implementations of the case studies are given in the Solutions Manual.
    • Shows students how to deal with problem modeling and design issues, and how to use library classes in solving larger problems. Ex.___

  • Use of Eiffel as the implementation language—Uses only moderate amounts of code. An extensive reference for the Eiffel language is included in an appendix.
    • Eiffel's clean and simple syntax allows more advanced concepts, like exceptions, to be studied later without cluttering the simple concepts presented earlier. Ex.___

  • A simplified methodology for system development—Uses a subset of the UML to present the results of analysis and modeling; makes extensive use of diagrams using the UML to portray key aspects of the system design and software relationships (e.g., inheritance, context, sequence, class, high-level architecture, and subsystem diagrams); and uses the methodology to develop significant applications that use the data structures being developed in parallel. Focuses on software design issues and patterns related to producing loosely-coupled, cohesive systems.
    • Presents basic software engineering concepts at an accessible level. Ex.___

  • A judicious use of the UML graphical notation.
    • Gives visual representations of artifacts produced during the software development process (static and dynamic structure). Ex.___

  • Standard data structures—Developed, analyzed, applied, and placed in an extensive data structures library (e.g., lists, stacks, queues, trees, balanced trees, graphs, and files)—all presented along with their ADT's, appropriate applications, implementations and time and space analyses. Most of these data structures have iterators for traversing the data structures, and the library also has a number of implementations of keyed and non-keyed dictionaries.
  • Abstract Data Types—Presented from both the constructive and the axiomatic approaches using an object-oriented notation.
  • Extensive coverage of timing analysis—Coverage of the basics in Chapter 4, and then in later chapters, the analysis of recursive algorithms (first by counting the number of calls, and still later by recurrence relations).
  • A 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. Includes a discussion on how to deal with ADT's and inheritance.
  • Unique coverage of the modeling of the problem domain—To obtain a problem domain's static and dynamic structure. Models the static structure using types of relationships such as inheritance, aggregation and associations; models the dynamic structure with events, users (and actors), use cases, and object interaction diagrams. Omits the more advanced concepts of finite-state machines.
    • Allows students to tackle non-trivial object-oriented projects. Ex.___

  • Software contracting with assertions—(Preconditions, postconditions, class invariants, loop invariants and loop variants) to deal with correctness and robustness.
  • Review of basic mathematics—For handling summations, logarithms, and functions (in an appendix).
    • Provides a handy reference for those needing to get up to speed quickly. Ex.___

  • An extensive collection of problems and projects (case studies)—At section-ends and chapter-ends. Exercises deal with programming, analysis and design, testing, timing/space analysis of algorithms, algorithms to manipulate various data structures, using mathematical induction to prove properties of certain data structures such as trees. Solutions are included in the Solutions Manual.
    • Offers an abundance of hands-on practice with basic concepts and challenging opportunities to apply them. Ex.___

  • An accompanying CD—With all code for the text, the data structures library, an Eiffel compiler and associated environment.
    • Provides students/instructors with a convenient quick-access tool for hands-on applications of text material. Ex.___



1. State of Software Development.

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



2. Eiffel Basics.

Introduction. Comments and White Space. Naming Conventions. Data Types. Operations. Basic Instructions. Functions and Procedures. Class Declaration. Eiffel System. Objects. Inheritance. Argument Passing. Preparing Program Faults. I/O to Text Files. Concluding Remarks.



3. Objects and Classes.

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



4. Arrays and Algorithm Analysis.

An Array Application and Analysis of the Problem. Arrays in Eiffel. Problem Solution. Storage Structure, Assignment, and Copying for Reference Types. Dynamic Arrays. Algorithm Analysis. Computer Science Applications. Concluding Remarks. New Eiffel Constructs.



5. Abstract Data Types and Their Implementation.

Introduction. Data Types. Specifying Abstract Data Types. Implementation of ADTs in Eiffel. Concluding Remarks. New Eiffel Constructs.



6. Lists.

A List Application. List Abstract Data Type. Implementations. Examples of Linked List Operations. List Variations. List Tools. Design by Contract and Inheritance. Library of List Data Structures. Applications. Polymorphism and Heterogeneous Lists. Concluding Remarks. New Eiffel Constructs.



7. Dispensers: Stacks, Queues, and Priority Queues.

Stacks. Recursion. Queues. Priority Queues. Concluding Remarks. New Eiffel Constructs.



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



9. Trees.

Introduction and Applications. Binary Tree Abstract Data Type. Binary Trees. General Trees. Applications. Mathematical Induction. Concluding Remarks. New Eiffel Constructs.



10. Elementary Problem Modeling and System Design.

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



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



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



13. Bags, Sets, and Dictionaries.

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



14. Sorting.

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



15. Graphs.

Introduction and Examples of Graph Modeling. Basic Definitions 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.



16. Files.

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



A. Eiffel Appendix.

Eiffel Syntax Charts. Names. Data Types. Operators and Operations of Built-in Types. Instructions. Routines. Details of Routine Declaration. Class Declaration. Inheritance. Input/Output. Assertions. Typing. Clusters. Exceptions. Random Numbers. Eiffel System.



B. Math Primer.

Summation Notation. Logarithms. Cross Product and Function Notation.



Bibliography.


Index.

Designed for advanced first- and second-year computer science students, or professionals interested in Eiffel; this text presents all the key data structures and software engineering concepts for use in CS-2 or CS-7 level courses. The authors provide a comprehensive and thorough introduction to data structures using state-of-the-art object-oriented analysis and design. Centered around the implementation language, Eiffel, this text offers the full-featured Object-Oriented language specifically designed for developing large Object-Oriented systems. This book offers a unique blend of abstract data types, software design, engineering, and object-oriented testing in a highly accessible presentation.

FEATURES

  • Use of a subset of the UML—Shows how to use UML for analysis and modeling.
  • CD-ROM included—CD contains an Eiffel compiler and development environment, all the code for the text, and the data structures library.
  • Modeling of the Problem Domain—Absent in other texts, this book models the problem domain that an object-oriented project must begin with.
  • Two case studies—Illustrates the steps followed in an object-oriented development process for the analysis and design of non-trivial systems.
  • Extensive Data Structures Library—Consists of the standard data structures, including lists, stacks, queues, trees, balanced trees, graphs, and files.
  • Extensive Reference for the Eiffel language—A full-featured object-oriented language, Eiffel, specifically developed for large object-oriented systems.

View a Sample Chapter PDF:

  • Instructor's Resource CD
    Tremblay & Grant (Cheston)
    © 2001 | Prentice Hall | CD-ROM Only; 300 pages | Estimated Availability: 10/01/2001
    ISBN-10: 0130910074 | ISBN-13: 9780130910073


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 for pricing and ordering information.

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.


Copyright ©2008 Pearson Education. All rights reserved. Legal Notice | Privacy Policy | Permissions