
Large-Scale C++ Software Design
by Lakos, John-
This Item Qualifies for Free Shipping!*
*Excludes marketplace orders.
Buy New
Rent Textbook
Used Textbook
We're Sorry
Sold Out
eTextbook
We're Sorry
Not Available
How Marketplace Works:
- This item is offered by an independent seller and not shipped from our warehouse
- Item details like edition and cover design may differ from our description; see seller's comments before ordering.
- Sellers much confirm and ship within two business days; otherwise, the order will be cancelled and refunded.
- Marketplace purchases cannot be returned to eCampus.com. Contact the seller directly for inquiries; if no response within two days, contact customer service.
- Additional shipping costs apply to Marketplace purchases. Review shipping costs at checkout.
Summary
Author Biography
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 | |
Introduction | |
From C to C++ | |
Using C++ to Develop Large Projects | |
Reuse | |
Quality | |
Software Development Tools | |
Summary | |
Basics | |
Preliminaries | |
Multi-File C++ Programs | |
Typedef Declarations | |
Assert Statements | |
A Few Matters of Style | |
Iterators | |
Logical Design Notation | |
Inheritance versus Layering | |
Minimality | |
Summary | |
Ground Rules | |
Overview | |
Member Data Access | |
The Global Name Space | |
Include Guards | |
Redundant Include Guards | |
Documentation | |
Identifier-Naming Conventions | |
Summary | |
Physical Design Concepts | |
Components | |
Components versus Classes | |
Physical Design Rules | |
The Depends on Relation | |
Implied Dependency | |
Extracting Actual Dependencies | |
Friendship | |
Summary | |
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 | |
Levelization | |
Some Causes of Cyclic Physical Dependencies | |
Escalation | |
Demotion | |
Opaque Pointers | |
Dumb Data | |
Redundancy | |
Callbacks | |
Manager Class | |
Factoring | |
Escalating Encapsulation | |
Summary | |
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 | |
Packages | |
From Components to Packages | |
Registered Package Prefixes | |
Package Levelization | |
Package Insulation | |
Package Groups | |
The Release Process | |
The main Program | |
Start-Up Time | |
Summary | |
Logical Design Issues | |
Architecting a Component | |
Abstractions and Components | |
Component Interface Design | |
Degrees of Encapsulation | |
Auxiliary Implementation Classes | |
Summary | |
Designing a Function | |
Function Specification | |
Fundamental Types Used in the Interface | |
Special Case Functions | |
Summary | |
Implementing an Object | |
Member Data | |
Function Definitions | |
Memory Management | |
Using C++ Templates in Large Projects | |
Summary | |
Protocol Hierarchy | |
Implementing an ANSI C-Compatible C++ Interface | |
A Dependency Extractor/Analyzer Package | |
Quick Reference | |
Index | |
Table of Contents provided by Publisher. All Rights Reserved. |
Excerpts
An electronic version of this book is available through VitalSource.
This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.
By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.
Digital License
You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.
More details can be found here.
A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.
Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.
Please view the compatibility matrix prior to purchase.