Ada 95: The Craft of Object-oriented Programming is a beginner's introduction to Ada 95 which uses an example-driven approach that gradually develops small trivial programs into large case studies. The main emphasis of this exciting new publication is on using object-oriented technology to write maintainable, extensible programs. Program design concepts are introduced throughout the text, using maintenance scenarios to highlight shortcomings and produce improved designs. Practical issues such as debugging techniques are tackled, and important Ada features not found in other languages are dealt with early in the text. These include exception handling, user-defined types, procedures, functions, packages and child packages. Ada 95: The Craft of Object-oriented Programming is essential reading for anybody who requires a comprehensive guide to the Ada 95 programming language. Key features: Example-driven approach with examples developed gradually throughout the text, emphasis upon maintenance and maintainability of programs, in-chapter problems and end-of-chapter exercises, and worked examples and case studies throughout the text to aid student learning.
Ada 95 is the first fully object-oriented programming language to be internationally standardized. John Barnes was a key member of the language's design team, and this is a new edition of his definitive text and reference for the Ada 95 language.
This textbook provides an in depth course on data structures in the context of object oriented development. Its main themes are abstraction, implementation, encapsulation, and measurement: that is, that the software process begins with abstraction of data types, which then lead to alternate representations and encapsulation, and finally to resource measurement. A clear object oriented approach, making use of Booch components, will provide readers with a useful library of data structure components and experience in software reuse. Students using this book are expected to have a reasonable understanding of the basic logical structures such as stacks and queues. Throughout, Ada 95 is used and the author takes full advantage of Ada's encapsulation features and the ability to present specifications without implementational details. Ada code is supported by two suites available over the World Wide Web.
A major feature of the Ada programming language is the facilities it provides for concurrent programming. Alan Burns and Andy Wellings provide here a thorough and self-contained account of concurrent programming in Ada, and so show users, even beginners, how to harness the full power of the whole language. After giving an overview of the non-concurrent features of Ada, the authors proceed to examine in detail the uses of concurrent programming and the inherent difficulties in providing inter-process communication. The Ada tasking model is then introduced; the way it deals with these and related matters is explained in a number of separate chapters, covering system programming, real-time issues, distribution, object-oriented programming and re-use. This is the first book which deals with concurrent features in the new Ada standard, and it offers practical advice to the programmer needing to use it for embedded systems, while those interested more broadly in the development of programming languages will find many otherwise inaccessible issues probed in depth. It will thus be of value to professional software engineers and advanced students of programming alike; indeed, every Ada programmer will find it essential reading and a primary reference work. For the paperback edition the authors have made revisions throughout the text, updating and correcting where appropriate.
An intermediate level book designed for the programmer who is familiar with at least one programming language and is looking for more information on object-oriented construction and design.
More than ever, mission-critical and business-critical applications depend on object-oriented (OO) software. Testing techniques tailored to the unique challenges of OO technology are necessary to achieve high reliability and quality. "Testing Object-Oriented Systems: Models, Patterns, and Tools" is an authoritative guide to designing and automating test suites for OO applications. This comprehensive book explains why testing must be model-based and provides in-depth coverage of techniques to develop testable models from state machines, combinational logic, and the Unified Modeling Language (UML). It introduces the test design pattern and presents 37 patterns that explain how to design responsibility-based test suites, how to tailor integration and regression testing for OO code, how to test reusable components and frameworks, and how to develop highly effective test suites from use cases. Effective testing must be automated and must leverage object technology. The author describes how to design and code specification-based assertions to offset testability losses due to inheritance and polymorphism. Fifteen micro-patterns present oracle strategies--practical solutions for one of the hardest problems in test design. Seventeen design patterns explain how to automate your test suites with a coherent OO test harness framework. The author provides thorough coverage of testing issues such as: The bug hazards of OO programming and differences from testing procedural code How to design responsibility-based tests for classes, clusters, and subsystems using class invariants, interface data flow models, hierarchic state machines, class associations, and scenario analysis How to support reuse by effective testing of abstract classes, generic classes, components, and frameworks How to choose an integration strategy that supports iterative and incremental development How to achieve comprehensive system testing with testable use cases How to choose a regression test approach How to develop expected test results and evaluate the post-test state of an object How to automate testing with assertions, OO test drivers, stubs, and test frameworks Real-world experience, world-class best practices, and the latest research in object-oriented testing are included. Practical examples illustrate test design and test automation for Ada 95, C++, Eiffel, Java, Objective-C, and Smalltalk. The UML is used throughout, but the test design patterns apply to systems developed with any OO language or methodology. 0201809389B04062001
Provides examples of clear, correct, efficient, well-structured, and easily maintainable codes. This also includes handy file I/O utilities, portable user interfaces, and many math and conversion utilities.
Computer Organization and Design Fundamentals takes the reader from the basic design principles of the modern digital computer to a top-level examination of its architecture. This book can serve either as a textbook to an introductory course on computer hardware or as the basic text for the aspiring geek who wants to learn about digital design. The material is presented in four parts. The first part describes how computers represent and manipulate numbers. The second part presents the tools used at all levels of binary design. The third part introduces the reader to computer system theory with topics such as memory, caches, hard drives, pipelining, and interrupts. The last part applies these theories through an introduction to the Intel 80x86 architecture and assembly language. The material is presented using practical terms and examples with an aim toward providing anyone who works with computer systems the ability to use them more effectively through a better understanding of their design.