Master your Minecraft
 
 

Special Offers see all

Enter to WIN a $100 Credit

Subscribe to PowellsBooks.news
for a chance to win.
Privacy Policy

Tour our stores


    Recently Viewed clear list


    New Favorites | November 25, 2014

    Powell's Staff: IMG Our Favorite New Favorites of 2014



    Every week, we gather together a small pile of newly released titles that we agree should be on everyone's radar. We deem these titles our New... Continue »

    spacer
Qualifying orders ship free.
$30.00
Used Trade Paper
Ships in 1 to 3 days
Add to Wishlist
Qty Store Section
1 Burnside Computer Languages- C++

More copies of this ISBN

Large-Scale C++ Software Design (Addison-Wesley Professional Computing)

by

Large-Scale C++ Software Design (Addison-Wesley Professional Computing) Cover

 

Synopses & Reviews

Publisher Comments:

Developing a large-scale software system in C++ requires more than just a sound understanding of the logical design issues covered in most books on C++ programming. To be successful, you will also need a grasp of physical design concepts that, while closely tied to the technical aspects of development, include a dimension with which even expert software developers may have little or no experience.

This is the definitive book for all C++ software professionals involved in large development efforts such as databases, operating systems, compilers, and frameworks. It is the first C++ book that actually demonstrates how to design large systems, and one of the few books on object-oriented design specifically geared to practical aspects of the C++ programming language.

In this book, Lakos explains the process of decomposing large systems into physical (not inheritance) hierarchies of smaller, more manageable components. Such systems with their acyclic physical dependencies are fundamentally easier and more economical to maintain, test, and reuse than tightly interdependent systems. In addition to explaining the motivation for following good physical as well as logical design practices, Lakos provides you with a catalog of specific techniques designed to eliminate cyclic, compile-time, and link-time (physical) dependencies. He then extends these concepts from large to very large systems. The book concludes with a comprehensive top-down approach to the logical design of individual components. Appendices include a valuable design pattern "Protocol Hierarchy" designed to avoid fat interfaces while minimizing physical dependencies; the details of implementing an ANSI C compatible C++ procedural interface; and a complete specification for a suite of UNIX-like tools to extract and analyze physical dependencies. Practical design rules, guidelines, and principles are also collected in an appendix and indexed for quick reference.

0201633620B04062001

Book News Annotation:

The topic is of prime importance to software professionals involved in large development efforts such as databases, operating systems, compilers, and frameworks. This volume explains the process of decomposing large systems into physical (not inheritance) hierarchies of small, manageable components. Concepts and techniques are illustrated with "war stories" from the development firm, Mentor Graphics, as well as with a large-scale example comprising some 12,000 lines of code.
Annotation c. Book News, Inc., Portland, OR (booknews.com)

Description:

Includes bibliographical references (p. 833-834) and index.

About the Author

John Lakos works at Mentor Graphics, a company that has written more large scale C++ programs than most other software companies and was among the first companies to attempt truly large-scale C++ projects. Lakos has been programming professionally in C++ since 1987, and in 1990 developed Columbia University's graduate course in object-oriented programming which he continues to teach.

0201633620AB04062001

Table of Contents

Preface.

0. Introduction.

From C to C++.

Using C++ to Develop Large Projects.

Reuse.

Quality.

Software Development Tools.

Summary.

I. BASICS.

1. Preliminaries.

Multi-File C++ Programs.

typedef Declarations.

Assert Statements.

A Few Matters of Style.

Iterators.

Logical Design Notation.

Inheritance versus Layering.

Minimality.

Summary.
2. Ground Rules.

Overview.

Member Data Access.

The Global Name Space.

Include Guards.

Redundant Include Guards.

Documentation.

Identifier-Naming Conventions.

Summary.

II. PHYSICAL DESIGN CONCEPTS.

3. Components.

Components versus Classes.

Physical Design Rules.

The DependsOn Relation.

Implied Dependency.

Extracting Actual Dependencies.

Friendship.

Summary.
4. Physical Hierarchy.

A Metaphor for Software Testing.

A Complex Subsystem.

The Difficulty in Testing “Good” Interfaces.

Design for Testability.

Testing in Isolation.

Acyclic Physical Dependencies.

Level Numbers.

Hierarchical and Incremental Testing.

Testing a Complex Subsystem.

Testing versus Tested.

Cyclic Physical Dependencies.

Cumulative Component Dependency (CCD).

Physical Design Quality.

Summary.
5. Levelization.

Some Causes of Cyclic Physical Dependencies.

Escalation.

Demotion.

Opaque Pointers.

Dumb Data.

Redundancy.

Callbacks.

Manager Class.

Factoring.

Escalating Encapsulation.

Summary.
6. Insulation.

From Encapsulation to Insulation.

C++ Constructs and Compile-Time Coupling.

Partial Insulation Techniques.

Total Insulation Techniques.

The Procedural Interface.

To Insulate or Not to Insulate.

Summary.
7. Packages.

From Components to Packages.

Registered Package Prefixes.

Package Levelization.

Package Insulation.

Package Groups.

The Release Process.

The main Program.

Start-Up Time.

Summary.

III. LOGICAL DESIGN ISSUES.

8. Architecting a Component.

Abstractions and Components.

Component Interface Design.

Degrees of Encapsulation.

Auxiliary Implementation Classes.

Summary.
9. Designing a Function.

Function Specification.

Fundamental Types Used in the Interface.

Special Case Functions.

Summary.
10. Implementing an Object.

Member Data.

Function Definitions.

Memory Management.

Using C++ Templates in Large Projects.

Summary.
Appendix A. Protocol Hierarchy.

Appendix B. Implementing an ANSI C-Compatible C++ Interface.

Appendix C. A Dependency Extractor/Analyzer Package.

Appendix D. Quick Reference.

Index. 0201633620T04062001

Product Details

ISBN:
9780201633627
Author:
Lakos, John
Publisher:
Addison-Wesley Professional
Location:
Reading, Mass. :
Subject:
Programming Languages - C
Subject:
Programming Languages - General
Subject:
C (computer program language)
Subject:
Technology
Subject:
Data processing
Subject:
C plus plus (computer program language)
Subject:
Programming - Software Development
Subject:
Computer software
Subject:
Computer software -- Development.
Subject:
Language, literature and biography
Subject:
C
Subject:
Software Development & Engineering - General
Subject:
Software Engineering-General
Copyright:
Edition Description:
Trade paper
Series:
Addison-Wesley professional computing series
Series Volume:
1948
Publication Date:
July 1996
Binding:
TRADE PAPER
Grade Level:
Professional and scholarly
Language:
English
Illustrations:
Yes
Pages:
896
Dimensions:
9.24x7.48x1.30 in. 2.85 lbs.

Other books you might like

  1. Expert C Programming
    New Trade Paper $41.25
  2. Scientific and Engineering C++: An... Used Hardcover $35.00
  3. Effective C++ 2ND Edition 50... Used Trade Paper $15.95
  4. More Effective C++ (Addison-Wesley... New Trade Paper $49.99
  5. Framework-Based Software Development... New Trade Paper $83.75
  6. Think and Grow Rich
    Used Trade Paper $3.95

Related Subjects

Computers and Internet » Computer Languages » C++
Computers and Internet » Networking » General
Computers and Internet » Software Engineering » General
Languages » ESL » General

Large-Scale C++ Software Design (Addison-Wesley Professional Computing) Used Trade Paper
0 stars - 0 reviews
$30.00 In Stock
Product details 896 pages Addison-Wesley Professional - English 9780201633627 Reviews:
spacer
spacer
  • back to top

FOLLOW US ON...

     
Powell's City of Books is an independent bookstore in Portland, Oregon, that fills a whole city block with more than a million new, used, and out of print books. Shop those shelves — plus literally millions more books, DVDs, and gifts — here at Powells.com.