书籍详情

面向对象软件构造?

面向对象软件构造?

作者:(美)Bertrand Meyer

出版社:机械工业出版社

出版时间:2003-01-01

ISBN:9787111111870

定价:¥78.00

购买这本书可以去
内容简介
  美国软件开发杂志获奖图书 为软件产业带来震撼与效率 奖项背景:从1990年开始,美国权威的软件开发杂志(《Software Development》)每年从图书、设计工具等6个类别的700多个候选产品中评选出每个类别的1~2个年度震撼大奖(Jolt Award,即产品优胜奖)和2~3个年度效率大奖(Productivity Award),以表彰这些产品在推动软件开发方面的杰出贡献。回顾这12年来的获奖名单,入选的无一不是对业界产生深远影响的里程碑式作品。(详情可参阅www.sdmagazine.com)This second edition is not an update but the result of a thorough reworking. Not a paragraph of the original version has been left untouched. (Hardly a single line, actually.) Countless new topics have been added, including a whole chapter on concurrency, distribution, client-server computing and Internet programming; another on persistence and databases; one on user interfaces; one on the software lifecycle; many design patterns and implementation techniques; an in-depth exploration of a methodological issue on which little is available in the literature, how to use inheritance well and avoid misusing it; discussions of many other topics of object-oriented methodology; an extensive presentation of the theory of abstract data types : the mathematical basis for our subject, indispensable to a complete understanding of object technology yet seldom covered in detail by textbooks and tutorials; a presentation of O-O analysis; hundreds of new bibliographic and Web site references; the description of a complete object-oriented development environment (also included on the accompanying CD-ROM for the reader's enjoyment) and of the underlying concepts; and scores of new ideas, principles, caveats, explanations, figures, examples, comparisons, citations, classes, routines.
作者简介
暂缺《面向对象软件构造?》作者简介
目录
Preface
Foreword to the second edition
About the accompanying CD-ROM
On the bibliography, Internet sources and exercises
Contents
Part A: THE ISSUES
Chapter 1: Software quality
  1.1  EXTERANL AND INTERNAL FACTORS
  1.2  A REVIEW OF EXTERNAL FACTORS
  1.3  ABOUT SOFTWARE MAINTENANCE
  1.4  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  1.5  BIBLIOGRAPHICAL NOTES
Chater 2: Criteria of object orientation
  2.1  ON THE CRITERIA
  2.2  METHOD AND LANGUAGE
  2.3  IMPLEMENTATOIN AND ENVIRONMENT
  2.4  LIBRARIES
  2.5  FOR MORE SNEAK PREVIEW
  2.6  BIBLIOGRAPHICAL NOTES AND OBJECT RESOURCES
Part B: THE ROAD TO OBJECT ORIENTATION
Chapter 3: Modularity
  3.1  FIVE CRITERIA
  3.2  FIVE RULES
  3.3  FIVE PRINCIPLES
  3.4  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  3.5  BIBLIOGRAPHICAL NOTES
  EXERCISES
Chapter 4: Approaches to reusability
  4.1  THE GOALS OF REUSABILITY
  4.2  WHAT SHOULD WE REUSE?
  4.3  REPETITION IN SOFTWARE DEVELOPMENT
  4.4  NON-TECHNICAL OBSTACLES
  4.5  THE TECHNICLA PROBLEM
  4.6  FIVE REQUIREMENTS ON MODULE STRUCTURES
  4.7  TRADITIONAL MODULAR STRUCTURES
  4.8  OVERLOADING AND GENERICITY
  4.9  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  4.10  BIBLIOGRAPHICAL NOTES
Chapter 5: Towards object technology
  5.1  THE INGREDIENTS OF COMPUTATION
  5.2  FUNCTIONAL DECOMPOSITION
  5.3  OBJECT-BASED DECOMPOSITION
  5.4  OBJECT-ORIENTED SOFTWARE CONSTRUCTOIN
  5.5  ISSUES
  5.6  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  5.7  BIBLIOGRAPHICAL NOTES
Chapter 6: Abstract data types
  6.1  CRITERIA
  6.2  IMPLEMENTATION VARIATIONS
  6.3  TOWARDS AN ABSTRACT VIEW OF OBJECTS
  6.4  FORMALIZING THE SPECIFICATION
  6.5  FROM ABSTRACT DATA TYPES TO CLASSES
  6.6  BEYOND SOFTWARE
  6.7  SUPPLEMENTARY TOPICS
  6.8  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  6.9  BIBLIOGRAPHICAL NOTES
  EXERCISES
Part C: OBJECT-ORIENTED TECHNIQUES
Chapter 7: The static structure: classes
  7.1  OBJECTS ARE NOT THE SUBJECT
  7.2  AVOIDING THE STANDARD CONFUSION
  7.3  THE ROLE OF CLASSES
  7.4  A UNIFORM TYPE SYSTEM
  7.5  A SIMPLE CLASS
  7.6  BASIC CONVENTIONS
  7.7  THE OBJECT-ORIENTED STYLE OF COMPUTATION
  7.8  SELECTIVE EXPORTS AND INFORMATION HIDING
  7.9  PUTTING EVERYTHING TOGETHER
  7.10  DISCUSSION
  7.11  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  7.12  BIBLIOGRAPHICAL NOTES
  EXERCISES
Chapter 8: The run-time structure:objects
  8.1  OBJECTS
  8.2  OBJECTS AS A MODELING TOOL
  8.3  MANIPULATING OBJECTS AND REFERENCES
  8.4  CREATINO PROCEDURES
  8.5  MORE ON REFERENCES
  8.6  OPERATIONS ON REFERENCES
  8.7  COMPOSITE OBJECTS AND EXPANDED TYPES
  8.8  ATTACHMENT: REFERENCE AND VALUE SEMANTICS
  8.9  DEALING WITH REFERENCES: BENEFITS AND DANGERS
  8.10  DISCUSSION
  8.11 KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  8.12 BIBLIOGRAPHICAL NOTES
  EXERCISES
Chapter 9: Memory management
  9.1  WHAT HAPPENS TO OBJECTS
  9.2  THE CASUAL APPROACH
  9.3  RECLAIMING MEMORY: THE ISSUES
  8.4  PROGRAMMER-CONTROLLED DEALLOCATION
  9.5  THE COMPONENT-LEVEL APPROACH
  9.6  AUTOMATIC MEMORY MANAGEMENT
  9.7  PEFERENCE COUNTING
  9.8  GARBAGE COLLECTION
  9.9  PRACTICAL ISSUES OF GARBAGE COLLECTION
  9.10  AN ENVIRONMENT WITH MEMORY MANAGEMENT
  9.11  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  9.12  BIBLIOGRAPHICAL NOTES
  EXERCISES
Chapter 10: Genericity
  10.1  HORIZONTAL AND VERTICAL TYPE GENERALIZATION
  10.2  THE NEED FOR TYPE PARAMETERIZATION
  10.3  GENERIC CLASSES
  10.4  ARRAYS
  10.5  THE COST OF GENERICITY
  10.6  DISCUSSION: NOT DONE YET
  10.7  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  10.8  BIBLIOGRAPHICAL NOTES
  EXERCISES
Chapter 11: Design by Contract: building reliable software
  11.1  BASIC RELIABLILITY MECHANISMS
  11.2  ABOUT SOFTWARE CORRECTNESS
  11.3  EXPRESSING A SPECIFICATION
  11.4  INTRODUCING ASSERTIONS INTO SOFTWARE TEXTS
  11.5  PRECONDITIONS AND POSTCONDITIONS
  11.6  CONTRACTING FOR SOFTWARE RELIABILITY
  11.7  WORKING WITH ASSERTIONS
  11.8  CLASS INVARIANTS
  11.9  WHEN IS A CLASS CORRECT?
  11.10  THE ADT CONNECTOIN
  11.11  AN ASSERTION INSTRUCTION
  11.12  LOOP INVARIANTS AND VARIANTS
  11.13  USING ASSERTIONS
  11.14  DISCUSSION
  11.15  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  11.16  BIBLIOGRAPHICAL NOTES
  EXERCISES
  POSTSCRIPT: THE ARIANE 5 FAILURE
Chapter 12: When the contract is broken: exception handling
  12.1  BASIC CONCEPTS OF EXCEPTION HANDLING
  12.2  HANDLING EXCEPTIONS
  12.3  AN EXCEPTION MECHANISM
  12.4  EXCEPTION HANDLING EXAMPLES
  12.5  THE TASK OF A RESCUE CLAUSE
  12.6  ADVANCED EXCEPTION HANDLING
  12.7  DISCUSSION
  12.8  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  12.9  BIBLIOGRAPHICAL NOTES
  EXERCLSES
Chapter 13: Supporting mechanisms
  13.1  INTERFACING WITH NON-O-O SOFTWARE
  13.2  ARGUMENT PASSING
  13.3  INSTRUCTIONS
  13.4  EXPRESSIONS
  13.5  STRINGS
  13.6  INPUT AND OUTPUT
  13.7  LEXICAL CONVENTIONS
  13.8  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  EXERCISES
Chapter 14: Introduction to inheritance
  14.1  POLYGONS AND RECTANGLES
  14.2  POLYMORPHISM
  14.3  TYPING FOR INHERITANCE
  14.4  DYNAMIC BINDING
  14.5  DEFERRED FEATURES AND CLASSES
  14.6  REDECLARATION TECHNIQUES
  14.7  THE MANING FO INHERITANCE
  14.8  THE ROLE OF DEFERRED CLASSES
  14.9  DISCUSSION
  14.10  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  14.11  BIBLIOGRAPHICAL NOTES
  EXERCISES
Chapter 15: Multiple inheritance
  15.1  EMAMPLES OF MULTIPLE INHERITANCE
  15.2  FEATURE RENAMING
  15.3  FLATTENING THE STRUCTURE
  15.4  REPEATED INHERITANCE
  15.5  DISCUSSION
  15.6  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  15.7  BIBLIOGRAPHICAL NOTES
  EXERCISES
Chapter 16: Inheritance techniques
  16.1  INHERITANCE AND ASSERTIONS
  16.2  THE GLOBAL INHERITANCE STRUCTURE
  16.3  FROZEN FEATURES
  16.4  CONSTRAINED GENERICITY
  16.5  ASSIGNMENT APTTEMPT
  16.6  TYPING AND REDECLARATOIN
  16.7  ANCHORED DECLARATION
  16.8  INHERITANCE AND INFORMATOIN HIDING
  16.9  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  16.10  BIBLIOGRAPHICAL NOTE
  EXERCISES
Chapter 17: Typing
  17.1  THE TYUPING PROBLEM
  17.2  STATIC TYPING: WHY AND HOW
  17.3  COVARIANCE AND DESCENDANT HIDING
  17.4  FIRST APPROACHES TO SYSTEM VALIDITY
  17.5  RELYING ON ANCHORED TYPES
  17.6  GLOBAL ANALYSIS
  17.7  BEWARE OF POLYMORPHIC CATCALLS!
  17.8  AN ASSESSMENT
  17.9  THE PERFECT FIT
  17.10  KEY CONCEPTS STUDIED IN THIS CHAPTER
  17.11  BIBLIOGRAPHICAL NOTES
Chapter 18: Global objeects and constants
  18.1  CONSTANTS OF BASIC TYPES
  18.2  USE OF CONSTANTS
  18.3  CONSTANTS OF CLASS TYPES
  18.4  APPLICATOINS OF ONCE ROUTINES
  18.5  CONSTANTS OF STRING TYPE
  18.6  UNIQUE VALUES
  18.7  DISCUSSION
  18.8  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  18.9  BIBLIOGRAPHICAL NOTES
  EXERCISES
Part D: OBJECT-ORIENTED METHODOLOGY: APPLYING THE METHOD WELL
Chapter 19: On methodology
  19.1  SOFTWARE METHODOLOGY: WHY AND WHAT
  19.2  DEVISING GOOD RULES: ADVICE TO THE ADVISORS
  19.3  ON USING METAPHORS
  19.4  THE IMPORTANCE OF BEING HUMBLE
  19.5  BIBLIOGRAPHICAL NOTES
  EXERCISES
Chapter 20: Design pattern: multi-panel interactive systems
  20.1  MULT-PANEL SYSTEMS
  20.2  A SIMPLE-MINDED ATTEMPT
  20.3  A FUNCTIONAL, TOP-DOWN SOLUTION
  20.4  A CRITIQUE OF THE SOLUTION
  20.5  AN OBJECT-ORIENTED ARCHITECTURE
  20.6  DISCUSSION
  20.7  BIBLIOGRAPHICAL NOTE
Chapter 21: Inheritance case study: "undo" in an interactive system
  21.1  PERSEVERARE DIABOLICUM
  21.2  FINDING THE ABSTRACTIONS
  21.3  MULTI-LEVEL UNDO-REDO
  21.4  IMPLEMENTATION ASPECRTS
  21.5  A USER INTERFACE FOR UNDOING AND REDOING
  21.6  DISCUSSION
  21.7  BIBLIOGRAPHICAL NOTES
  EXERCISES
Chapter 22: How to find the classes
  22.1  STUDYING A REQUIREMENTS DOCUMENT
  22.2  DANGER SIGNALS
  22.3  GENERAL HEURISTICS FOR FINDING CLASSES
  22.4  OTHER SOURCES OF CLASSES
  22.5  REUSE
  22.6  THE METHOD FOR OBTAINING CLASSES
  22.7  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  22.8  BIBLIOGRAPHICAL NOTES
Chapter 23: Priniples of class design
  23.1  SIDE EFFECTS IN FUNCTIONS
  23.2  HOW MANY ARGUMENTS FOR A FEATURE?
  23.3  CLASS SIZE: THE SHOPPING LIST APPROACH
  23.4  ACTIVE DATA STRUCTURES
  23.5  SELECTIVE EXPORTS
  23.6  DEALING WITH ABNORMAL CASES
  23.7  CLASS EVOLUTION: THE OBSOLETE CLAUSE
  23.8  DOCUMENTING A CLASS AND A SYSTEM
  23.9  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  23.10  BIBLIOGRAPHICAL NOTES
  EXERCISES
Chapter 24: Using inheritance well
  24.1  HOW NOT TO USE INHERITANCE
  24.2  WOULD YOU RATHER BUY OR INHERIT?
  24.3  AN APPLICATOIN: THE HANDLE TECHNIQUE
  24.4  TAXOMANIA
  24.5  USING INHERTANCE: A TAXONOMY OF TAXONOMY
  24.6  ONE MECHANISM, OR MORE?
  24.7  SUBTYPE INHERITANCE AND DESCENDANT HIDING
  24.8  IMPLEMENTATION INHERITANCE
  24.9  FACILITY INHERITANCE
  24.10  MULTIPLE CRITERIA AND VIEW INHERITANCE
  24.11  HOW TO DEVELOP INHERITANCE STRUCTURES
  24.12  A SUMMARY VIEW: USING INHERITANCE WELL
  24.13  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  24.14  BIBLIOGRAPHICAL NOTES
  24.15  APPENDIX: A HISTORY OF TAXONOMY
  EXERCISES
Chapter 25: useful techniques
  25.1  DESIGN PHILOSOPHY
  25.2  CLASSES
  25.3  INHERITANCE TECHNIQUES
Chapter 26: A sense of style
  26.1  COSMETICS MATTERS!
  26.2  CHOOSING THE RIGHT NAMES
  26.3  USING CONSTANTS
  26.4  HEADER COMMENTS AND INDEXING CLAUSES
  26.5  TEXT LAYOUT AND PRESENTATION
  26.6  FONTS
  26.7  BIBLIOGRAPHICAL NOTES
  EXERCISES
Chapter 27: Object-oriented analysis
  27.1  THE GOALS OF ANALYSIS
  27.2  THE CHANGING NATURE OF ANALYSIS
  27.3  THE CONTRIBUTION OF OBJECT TECHNOLOGY
  27.4  PROGRAMMING A TV STATION
  27.5  EXPRESSING THE ANALYSIS: MULTIPLE VIEWS
  27.6  ANALYSIS METHODS
  27.7  THE BUSINESS OBJECT NOTATION
  27.8  BIBLIOGRAPHY
Chapter 28: The software construction process
  28.1  CLUSTERS
  28.2  CONCURRENT ENGINEERING
  28.3  STEPS AND TASKS
  28.4  THE CLUSTER MODEL OF THE SOFTWARE LIFECYCLE
  28.5  GENERALIZATION
  28.6  SEAMLESSNESS AND REVERSIBILITY
  28.7  WITH US, EVERYTHING IS THE FACE
  28.8  KEY CONCEPTS COVERED IN THIS CHAPTER
  28.9  BIBLIOGRAPHIC AL NOTES
Chapter 29: Teaching the method
  29.1  INDUSTRIAL TRAINING
  29.2  INTRODUCTORY COURSES
  29.3  OTHER COURSES
  29.4  TOWARDS A NEW SOFTWARE PEDAGOGY
  29.5  AN OBJECT-ORIENTED PLAN
  29.6  KEY CONCEPTS STUDIED IN THIS CHAPTER
  29.7  BIBLIOGRAPHICAL NOTES
Part E: ADVANCED TOPICS
Chapter 30: Concurrency, distribution, client-server and the Internet
  30.1  A SNEAK PREVIEW
  30.2  THE RESE OF CONCURRENCY
  30.3  FROM PROCESSES TO OBJECTS
  30.4  INTRODUCING CONCURRENT EXECUTION
  30.5  SYNCHRONIZATION ISSUES
  30.6  ACCESSING SEPARATE OBJECTS
  30.7  WAIT CONDITIONS
  39.8  REQUESTING SPECIAL SERVICE
  30.9  EXAMPLES
  30.10  TOWARDS A PROOF RULE
  30.11  A SUMMARY OF THE MECHANISM
  30.12  DISCUSSION
  30.13  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  30.14  BIBLIOGRAPHICAL NOTES
  EXERCISES
Chapter 31: Object persistence and databases
  31.1  PERSISTENCE FROM THE LANGUAGE
  31.2  BEYOND PERSISTENCE CLOSURE
  31.3  SCHEMA EVOLUTION
  31.4  FROM PERSISTENCE TO DATABASES
  31.5  OBJECT-RELATIONAL INTEROPERABILITY
  31.6  OBJECT-ORIENTED DATABASE FUNDAMENTALS
  31.7  O-O DATABASE SYSTEMS: EXAMPLES
  31.8  DISCUSSION: BEYOND O-OOOO DATABASES
  31.9  KEY CONCEPTS STUDIED IN THIS CHAPTER
  31.10  BIBLIOGRAPHICAL NOTES
Chapter 32: Some O-O techniques for graphical interactive applications
  32.1  NEEDED TOOLS
  32.2  PORTABILITY AND PLATFORM ADAPTATION
  32.3  GRAPHICAL ABSTRACTIONS
  32.4  INTERACTION MECHANISMS
  32.5  HANDLING THE  EVENTS
  32.6  A MATHEMATICAL MODEL
  32.7  BIBLIOGRAPHICAL NOTES
Part F: APPLYING THE METHOD IN VARIOUS LANGUAGES AND ENVIRONMENTS
Chapter 33: O-O programming and Ada
  33.1  A BIT OF CONTEXT
  33.2  PACKAGES
  33.3  A STACK IMPLEMENTATION
  33.4  HIDING THE REPRESENTATION: THE PRIVATE STORY
  33.5  EXCEPTIONS
  33.6  TASKS
  33.7  FROM ADA TO ADS 95
  33.8  KEY CONCEPTS INTRODUCED IN THIS CHAPTER
  33.9  BIBLIOGRAPHICAL NOTES
  EXERCISES
Chapter 34: Emulating object technology in non-O-O environments
  34.1  LEVELS OF LANGUAGE SUPPORT
  34.2  OBJECT-ORIENTED PROGRAMMING IN PASCAL?
  34.3  FORTAN
  34.4  OBJECT-ORIENTED PROGRAMMING AND C
  34.5  BIBLIOGRAPHICAL NOTES
  EXERCISES
Chapter 35: Simula to Java and beyond: major O-O languages and environments
  35.1  SIMULA
  35.2  SMALLTALK
  35.3  LISP EXTENSIONS
  35.4  C EXTENSIONS
  35.5  JAVA
  35.6  OTHER O-O LANGUAGES
  35.7  BIBLIOGRAPHICAL NOTES
  EXERCISES
Part G: DOING RIGHT
Chapter 36: An object-oriented environment
  36.1  COMPONENTS
  36.2  THE LANGUAGE
  36.3  THE COMPILATION TECHNOLOGY
  36.4  TOOLS
  36.5  LIBRARIES
  36.6  INTERFACE MECHANISMS
  36.7  BIBLIOGRAPHICAL NOTES
Epilogue, In Full Frankness Exposing the Language
Part H: Appendices
  Appendix A: Extracts from the Base libraries
  Appendix B: Genericity versus inheritance
    B.1  GENERICITY
    B.2  INHERITANCE
    B.3  EMULATING INHERITANCE WITH GENERICITY
    B.4  EMULATING GENERICITY WITH INHERITANCE
    B.5  COMBINING GENERICITY AND INHERITANCE
    B.6  KEY CONCEPTS INTRODUCED IN THIS APPENDIX
    B.7  BIBLIOGRAPHICAL NOTES
    EXERCLISES
  Appendix C: Principles, rules, precepts and definitions
  Appendix D: A glossary of object technology
  Appendix E: bibliography
    E.1  WORKS BY OTHER AUTHORS
    E.2  WORKS BY THE AUTHOR FOF THE PRESENT OOK
Index
猜您喜欢

读书导航