Best of
Software

1996

Smalltalk Best Practice Patterns


Kent Beck - 1996
    This author presents a set of patterns that organize all the informal experience successful Smalltalk programmers have learned the hard way. When programmers understand these patterns, they can write much more effective code. The concept of Smalltalk patterns is introduced, and the book explains why they work. Next, the book introduces proven patterns for working with methods, messages, state, collections, classes and formatting. Finally, the book walks through a development example utilizing patterns. For programmers, project managers, teachers and students -- both new and experienced. This book presents a set of patterns that organize all the informal experience of successful Smalltalk programmers. This book will help you understand these patterns, and empower you to write more effective code.

Inside the C++ Object Model


Stanley B. Lippman - 1996
    Aimed at the beginner/intermediate C++ programmer who wants to understand the semantic implications of the C++ object model and how the model affects their programs, Inside the C++ Object Model explains where overhead costs reside, and what they actually consist of.

Concurrent Programming in Java(tm): Design Principles and Pattern


Doug Lea - 1996
    Thread programming enables developers to design applications that are more responsive to user demands, faster, and more easily controlled. This book offers comprehensive coverage of this vital aspect of the Java language. The book is completely up-to-date with the new thread model that is now incorporated into the most recent version of the Java Virtual Machine. All Java programmers interested in doing concurrent programming must understand these new concepts. The book approaches the topic from a design pattern point of view. It introduces and summarizes Java's concurrency support, shows readers how to initiate, control, and coordinate concurrent activities, and offers numerous recipe-like techniques for designing and implementing Java structures that solve common concurrent programming challenges. Specifically, the book presents important strategies for avoiding the inconsistencies that can crop up in multi-threaded programs, addresses the concept of liveness-how to ensure that all threads in use are kept active simultaneously, examines state-dependent action, and demonstrates effective methods for handling user requests in a multi-threaded environment.

Audio Power Amplifier Design Handbook


Douglas Self - 1996
    Author Douglas Self covers all the issues of distortion and linearity, power supplies, protection, reliability and layout. He also tackles unusual forms of compensation and unexpected sources of distortion such as capacitors and fuses. This much expanded and updated Fifth Edition includes four NEW chapters, one of them dedicated to the XD crossover-displacement principle, invented by the author, and used by Cambridge Audio. The book has a wealth of new material on four-stage amplifier architectures, current-mirrors, power transistors with internal sensing diodes, amplifier bridging, subtle distortion mechanisms, input stage common-mode distortion, double input stages, amplifier stability, output stages with gain, transformers and hum fields, inrush current suppression, DC servo design, thermal protection, the subtleties of cooling fan control, advanced line input stages, ultra-low-noise design, high and low-pass filtering, testing and safety, infra-red control, signal activation, 12V trigger, level indication and much more. There is significantly expanded material on professional power amplifiers as used in sound reinforcement and PA applications.This book is a must-have for audio power amplifier professionals and audiophiles, amateur constructors and anyone with intellectual curiosity about the struggle towards technical excellence.

Distributed Algorithms


Nancy A. Lynch - 1996
    She directs her book at a wide audience, including students, programmers, system designers, and researchers.Distributed Algorithms contains the most significant algorithms and impossibility results in the area, all in a simple automata-theoretic setting. The algorithms are proved correct, and their complexity is analyzed according to precisely defined complexity measures. The problems covered include resource allocation, communication, consensus among distributed processes, data consistency, deadlock detection, leader election, global snapshots, and many others.The material is organized according to the system model--first by the timing model and then by the interprocess communication mechanism. The material on system models is isolated in separate chapters for easy reference.The presentation is completely rigorous, yet is intuitive enough for immediate comprehension. This book familiarizes readers with important problems, algorithms, and impossibility results in the area: readers can then recognize the problems when they arise in practice, apply the algorithms to solve them, and use the impossibility results to determine whether problems are unsolvable. The book also provides readers with the basic mathematical tools for designing new algorithms and proving new impossibility results. In addition, it teaches readers how to reason carefully about distributed algorithms--to model them formally, devise precise specifications for their required behavior, prove their correctness, and evaluate their performance with realistic measures.

Object-Oriented Design Heuristics


Arthur J. Riel - 1996
    This book offers insight into object-oriented design improvement. The more than sixty guidelines presented in this book are language-independent and allow you to rate the integrity of a software design.

Just Java 2


Peter van der Linden - 1996
    Fully updated and revised, this sixth edition is more than an engaging overview of Java 2 Standard Edition (J2SE 1.5) and its libraries: it's also a practical introduction to today's best enterprise and server-side programming techniques. Just Java(TM) 2, Sixth Edition, reflects both J2SE 1.5 and the latest Tomcat and servlet specifications. Extensive new coverage includes:New chapters on generics and enumerated typesNew coverage of Web services, with practical examples using Google and Amazon Web servicesSimplified interactive I/O with printf()Autoboxing and unboxing of primitive typesStatic imports, foreach loop construct, and other new language features Peter van der Linden delivers expert advice, clear explanations, and crisp sample programs throughout--including dozens new to this edition. Along the way, he introduces:The core language: syntax, objects, interfaces, nested classes, compiler secrets, and much moreKey libraries: date and calendar, pattern matching, network software, mapped I/O, utilities and generic collectionsServer-side technology: network server systems, a complete tiny HTML Web server, and XML in JavaEnterprise J2EE: Sql and JDBC(TM) tutorial, servlets and JSP and much moreClient-side Java: fundamentals of JFC/Swing GUI development, new class data sharing details Companion Web Site All the book's examples and sample programs are available at http: //afu.com.

What Every Programmer Should Know about Object-Oriented Design


Meilir Page-Jones - 1996
    Partial ContentsChapter 1: What Does It Mean to Be Object-Oriented, Anyway?1.1 Encapsulation1.2 Information/Implementation Hiding1.3 State Retention1.4 Object Identity1.5 Messages1.6 Classes1.7 Inheritance1.8 Polymorphism1.9 GenericityChapter 2: Object-Orientation--Who Ordered That?Chapter 3: The Basic Notation for Classes and MethodsChapter 4: Inheritance and Aggregation DiagramsChapter 5: The Object-Communication DiagramChapter 6: State-Transition DiagramsChapter 7: Additional OODN DiagramsChapter 8: Encapsulation and ConnascenceChapter 9: Domains, Encumbrance, and CohesionChapter 10: Properties of Classes and SubclassesChapter 11: The Perils of Inheritance and PolymorphismChapter 12: Class InterfacesAppendix A: Checklist for an Object-Oriented Design WalkthroughAppendix B: The Object-Oriented Design Owner's ManualAppendix C: Blitz Guide to Object-Oriented Terminology

Distributed Algorithms


Nancy Lynch - 1996
    She directs her book at a wide audience, including students, programmers, system designers, and researchers. "Distributed Algorithms" contains the most significant algorithms and impossibility results in the area, all in a simple automata-theoretic setting. The algorithms are proved correct, and their complexity is analyzed according to precisely defined complexity measures. The problems covered include resource allocation, communication, consensus among distributed processes, data consistency, deadlock detection, leader election, global snapshots, and many others. The material is organized according to the system model-first by the timing model and then by the interprocess communication mechanism. The material on system models is isolated in separate chapters for easy reference. The presentation is completely rigorous, yet is intuitive enough for immediate comprehension. This book familiarizes readers with important problems, algorithms, and impossibility results in the area: readers can then recognize the problems when they arise in practice, apply the algorithms to solve them, and use the impossibility results to determine whether problems are unsolvable. The book also provides readers with the basic mathematical tools for designing new algorithms and proving new impossibility results. In addition, it teaches readers how to reason carefully about distributed algorithms-to model them formally, devise precise specifications for their required behavior, prove their correctness, and evaluate their performance with realistic measures.

API Design for C++


Martin Reddy - 1996
    It is the only book that teaches the strategies of C++ API development, including interface design, versioning, scripting, and plug-in extensibility. Drawing from the author's experience on large scale, collaborative software projects, the text offers practical techniques of API design that produce robust code for the long term. It presents patterns and practices that provide real value to individual developers as well as organizations.API Design for C++ explores often overlooked issues, both technical and non-technical, contributing to successful design decisions that product high quality, robust, and long-lived APIs. It focuses on various API styles and patterns that will allow you to produce elegant and durable libraries. A discussion on testing strategies concentrates on automated API testing techniques rather than attempting to include end-user application testing techniques such as GUI testing, system testing, or manual testing. Each concept is illustrated with extensive C++ code examples, and fully functional examples and working source code for experimentation are available online.This book will be helpful to new programmers who understand the fundamentals of C++ and who want to advance their design skills, as well as to senior engineers and software architects seeking to gain new expertise to complement their existing talents. Three specific groups of readers are targeted: practicing software engineers and architects, technical managers, and students and educators.

Practical Guide to Software Quality Management


John Horch - 1996
    In non-technical langauge, the author identifies the eight components of QM programmes, analyzes each one in detail, and explains how to combine them to build or strengthen your programme.

A Theory of Objects


Martín Abadi - 1996
    An innovative and important approach to the subject for researchers and graduates.

Delphi Component Design


Danny Thorpe - 1996
    The book explores the options for design-time property and component editors and experts. The companion CD-ROM contains all the code in the book.

The Internet Strategy Handbook: Lessons from the New Frontier of Business


Mary J. Cronin - 1996
    The author presents the Internet experiences of six Fortune 500 companies through real-world examples of Digital, Dow Jones Information Systems, Genentech, Lockheed, Millipore Corporation and Schlumberger.

Mathematica (R) in Theoretical Physics: Selected Examples from Classical Mechanics to Fractals


Gerd Baumann - 1996
    A translation of the highly successful German language book published by Springer-Verlag in 1993, this title includes over one hundred new pages containing more examples in classical mechanics. Non-trivial examples in electrodynamics, quantum mechanics, and general relativity are also provided. The author also includes the derivation of scaling solutions in non-linear physics and has added an introduction to Mathematica specifically designed for physicists and engineers - expanding and strengthening the original work. The diskette contains program code in Mathematica Notebook format.

Mastering Access 97


Alan Simpson - 1996
    The last portion of the book focuses on creating and distributing an application designed by the reader. Beginners also learn how to create fully-fledged custom applications complete with switchboards, dialog boxes, toolbars and menus. In addition, intermediate users will find tips and tricks, including macro development, introductory VBA, OLE, DLL and DDE.

Building Secure and Reliable Network Applications


Kenneth P. Birman - 1996
    Not only are hospitals, air traffic control systems, and telephone systems becoming more networked, but business applications are increasingly based on the open world of the internet. Stability in the face of minor accidents, software or hardware failures, or outright attack has become vital. This book provides a structured description of the technologies currently available for building reliable solutions to these problems.