John Lakos
Large-Scale C++ Software Design
80,99 €
inkl. MwSt.
Versandkostenfrei*
Liefertermin unbestimmt
Melden Sie sich
hier
hier
für den Produktalarm an, um über die Verfügbarkeit des Produkts informiert zu werden.
40 °P sammeln
John Lakos
Large-Scale C++ Software Design
- Broschiertes Buch
Geared to practical aspects of the C++ programming language, this book demonstrates how to design large systems. The author explains the process of decomposing large systems into physical hierarchies of smaller, more manageable components. This book concludes with a top-down approach to the logical design of individual components.
Andere Kunden interessierten sich auch für
- Alan ShallowayDesign Patterns Explained62,99 €
- M. S. Joshi (University of Melbourne)C++ Design Patterns and Derivatives Pricing75,99 €
- Andrew KoenigAccelerated C++53,99 €
- James W. GrenningTest Driven Development for Embedded C25,99 €
- Luke HohmannBeyond Software Architecture56,99 €
- John Debbie LaffertyLarge-Scale C++77,99 €
- Arnold BergerEmbedded Systems Design72,99 €
-
-
-
Geared to practical aspects of the C++ programming language, this book demonstrates how to design large systems. The author explains the process of decomposing large systems into physical hierarchies of smaller, more manageable components. This book concludes with a top-down approach to the logical design of individual components.
Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
Produktdetails
- Produktdetails
- Addison-Wesley Professional Computing Series
- Verlag: Addison-Wesley Longman, Amsterdam
- 1996.
- Seitenzahl: 896
- Erscheinungstermin: 10. Juli 1996
- Englisch
- Abmessung: 237mm x 187mm x 35mm
- Gewicht: 1314g
- ISBN-13: 9780201633627
- ISBN-10: 0201633620
- Artikelnr.: 06189253
- Herstellerkennzeichnung
- Libri GmbH
- Europaallee 1
- 36244 Bad Hersfeld
- gpsr@libri.de
- Addison-Wesley Professional Computing Series
- Verlag: Addison-Wesley Longman, Amsterdam
- 1996.
- Seitenzahl: 896
- Erscheinungstermin: 10. Juli 1996
- Englisch
- Abmessung: 237mm x 187mm x 35mm
- Gewicht: 1314g
- ISBN-13: 9780201633627
- ISBN-10: 0201633620
- Artikelnr.: 06189253
- Herstellerkennzeichnung
- Libri GmbH
- Europaallee 1
- 36244 Bad Hersfeld
- gpsr@libri.de
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
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
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
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
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