图书介绍
面向对象软件构造 英文版PDF|Epub|txt|kindle电子书版本网盘下载
- (美)迈尔(Meyer,B.)著 著
- 出版社: 北京:机械工业出版社
- ISBN:7111111877
- 出版时间:2003
- 标注页数:1254页
- 文件大小:63MB
- 文件页数:1285页
- 主题词:
PDF下载
下载说明
面向对象软件构造 英文版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
PART A:THE ISSUES1
Chapter 1:Software quality3
1.1 EXTERNAL AND INTERNAL FACTORS3
1.2 A REVIEW OF EXTERNAL FACTORS4
1.3 ABOUT SOFTWARE MAINTENANCE17
1.4 KEY CONCEPTS INTRODUCED IN THIS CHAPTER19
1.5 BIBLIOGRAPHICAL NOTES19
Chapter 2: Criteria of object orientation21
2.1 ON THE CRITERIA21
2.2 METHOD AND LANGUAGE22
2.3 IMPLEMENTATION AND ENVIRONMENT31
2.4 LIBRARIES33
2.5 FOR MORE SNEAK PREVIEW34
2.6 BIBLIOGRAPHICAL NOTES AND OBJECT RESOURCES34
PART B: THE ROAD TO OBJECT ORIENTATION37
Chapter 3:Modularity39
3.1 FIVE CRITERIA40
3.2 FIVE RULES46
3.3 FIVE PRINCIPLES53
3.4 KEY CONCEPTS INTRODUCED IN THIS CHAPTER64
3.5 BIBLIOGRAPHICAL NOTES64
EXERCISES65
Chapter 4:Approaches to reusability67
4.1 THE GOALS OF REUSABILITY68
4.2 WHAT SHOULD WE REUSE?70
4.3 REPETITION IN SOFTWARE DEVELOPMENT74
4.4 NON-TECHNICAL OBSTACLES74
4.5 THE TECHNICAL PROBLEM81
4.6 FIVE REQUIREMENTS ON MODULE STRUCTURES83
4.7 TRADITIONAL MODULAR STRUCTURES89
4.8 OVERLOADING AND GENERICITY93
4.9 KEY CONCEPTS INTRODUCED IN THIS CHAPTER98
4.10 BIBLIOGRAPHICAL NOTES99
Chapter 5:Towards object technology101
5.1 THE INGREDIENTS OF COMPUTATION101
5.2 FUNCTIONAL DECOMPOSITION103
5.3 OBJECT-BASED DECOMPOSITION114
5.4 OBJECT-ORIENTED SOFTWARE CONSTRUCTION116
5.5 ISSUES117
5.6 KEY CONCEPTS INTRODUCED IN THIS CHAPTER119
5.7 BIBLIOGRAPHICAL NOTES119
Chapter 6:Abstract data types121
6.1 CRITERIA122
6.2 IMPLEMENTATION VARIATIONS122
6.3 TOWARDS AN ABSTRACT VIEW OF OBJECTS126
6.4 FORMALIZING THE SPECIFICATION129
6.5 FROM ABSTRACT DATA TYPES TO CLASSES142
6.6 BEYOND SOFTWARE147
6.7 SUPPLEMENTARY TOPICS148
6.8 KEY CONCEPTS INTRODUCED IN THIS CHARTER159
6.9 BIBLIOGRAPHICAL NOTES160
EXERCISES161
PART C:OBJECT-ORIENTED TECHNIQUES163
Chapter 7:The static structure:classes165
7.1 OBJECTS ARE NOT THE SUBJECT165
7.2 AVOIDING THE STANDARD CONFUSION166
7.3 THE ROLE OF CLASSES169
7.4 A UNIFORM TYPE SYSTEM171
7.5 A SIMPLE CLASS172
7.6 BASIC CONVENTIONS177
7.7 THE OBJECT-ORIENTED STYLE OF COMPUTATION181
7.8 SELECTIVE EXPORTS AND INFORMATION HIDING191
7.9 PUTTING EVERYTHING TOGETHER194
7.10 DISCUSSION203
7.11 KEY CONCEPTS INTRODUCED IN THIS CHAPTER213
7.12 BIBLIOGRAPHICAL NOTES215
EXERCISES216
Chapter 8:The run-time Structure:objects217
8.1 OBJECTS218
8.2 OBJECTS AS A MODELING TOOL228
8.3 MANIPULATING OBJECTS AND REFERENCES231
8.4 CREATION PROCEDURES236
8.5 MORE ON REFERENCES240
8.6 OPERATIONS ON REFERENCES242
8.7 COMPOSITE OBJECTS AND EXPANDED TYPES254
8.8 ATTACHMENT:REFERENCE AND VALUE SEMANTICS261
8.9 DEALING WITH REFERENCES:BENEFTTS AND DANGERS265
8.10 DISCUSSION270
8.11 KEY CONCEPTS INTRODUCED IN THIS CHAPTER276
8.12 BIBLIOGRAPHICAL NOTES277
EXERCISES277
Chapter 9:Memory management279
9.1 WHAT HAPPENS TO OBJECTS279
9.2 THE CASUAL APPROACH291
9.3 RECLAIMING MEMORY:THE ISSUES293
9.4 PROGRAMMER-CONTROLLED DEALLOCATION294
9.5 THE COMPONENT-LEVEL APPROACH297
9.6 AUTOMATIC MEMORY MANAGEMENT301
9.7 REFERENCE COUNTING302
9.8 GARBAGE COLLECTION304
9.9 PRACTICAL ISSUES OF GARBAGE COLLECTION309
9.10 AN ENVIRONMENT WITH MEMORY MANAGEMENT312
9.11 KEY CONCEPTS INTRODUCED IN THIS CHAPTER315
9.12 BIBLIOGRAPHICAL NOTES315
EXERCISES316
Chapter 10:Genericity317
10.1 HORIZONTAL AND VERTICAL TYPE GENERALIZATION317
10.2 THE NEED FOR TYPE PARAMETERIZATION318
10.3 GENERIC CLASSES320
10.4 ARRAYS325
10.5 THE COST OF GENERICITY328
10.6 DISCUSSION:NOT DONE YET329
10.7 KEY CONCEPTS INTRODUCED IN THIS CHAPTER329
10.8 BIBLIOGRAPHICAL NOTES330
EXERCISES330
Chapter 11:Design by Contract:building reliable software331
11.1 BASIC RELIABILITY MECHANISMS332
11.2 ABOUT SOFTWARE CORRECTNESS333
11.3 EXPRESSING A SPECIFICATION334
11.4 INTRODUCING ASSERTIONS INTO SOFTWARE TEXTS337
11.5 PRECONDITIONS AND POSTCONDITIONS338
11.6 CONTRACTING FOR SOFTWARE RELIABILITY341
11.7 WORKING WITH ASSERTIONS348
11.8 CLASS INVARIANTS363
11.9 WHEN IS A CLASS CORRECT?369
11.10 THE ADT CONNECTION373
11.11 AN ASSERTION INSTRUCTION378
11.12 LOOP INVARIANTS AND VARIANTS380
11.13 USING ASSERTIONS389
11.14 DISCUSSION398
11.15 KEY CONCEPTS INTRODUCED IN THIS CHAPTER406
11.16 BIBLIOGRAPHICAL NOTES407
EXERCISES408
POSTSCRIPT:THE ARIANE 5 FAILURE410
12.1 BASIC CONCEPTS OF EXCEPTION HANDLING411
Chapter 12:When the contract is broken:exception handling411
12.2 HANDLING EXCEPTIONS414
12.3 AN EXCEPTION MECHANISM419
12.4 EXCEPTION HANDLING EXAMPLES422
12.5 THE TASK OF A RESCUE CLAUSE427
12.6 ADVANCED EXCEPTION HANDLING431
12.7 DISCUSSION435
12.8 KEY CONCEPTS INTRODUCED IN THIS CHAPTER437
12.9 BIBLIOGRAPHICAL NOTES438
EXERCISES438
13.1 INTERFACING WITH NON-O-O SOFTWARE439
Chapter 13:Supporting mechanisms439
13.2 ARGUMENT PASSING444
13.3 INSTRUCTIONS447
13.4 EXPRESSIONS452
13.5 STRINGS456
13.6 INPUT AND OUTPUT457
13.7 LEXICAL CONVENTIONS457
13.8 KEY CONCEPTS INTRODUCED IN THIS CHAPTER458
EXERCISES458
Chapter 14:Introduction to inheritance459
14.1 POLYGONS AND RECTANGLES460
14.2 POLYMORPHISM467
14.3 TYPING FOR INHERITANCE472
14.4 DYNAMIC BINDING480
14.5 DEFERRED FEATURES AND CLASSES482
14.6 REDECLARATION TECHNIQUES491
14.7 THE MEANING OF INHERITANCE494
14.8 THE ROLE OF DEFERRED CLASSES500
14.9 DISCUSSION507
14.10 KEY CONCEPTS INTRODUCED IN THIS CHAPTER516
14.11 BIBLIOGRAPHICAL NOTES517
EXERCISES517
Chapter 15:Multiple inheritance519
15.1 EXAMPLES OF MULTIPLE INHERITANCE519
15.2 FEATURE RENAMING535
15.3 FLATTENING THE STRUCTURE541
15.4 REPEATED INHERITANCE543
15.5 DISCUSSION563
15.6 KEY CONCEPTS INTRODUCED IN THIS CHAPTER566
15.7 BIBLIOGRAPHICAL NOTES567
EXERCISES567
Chapter 16:Inheritance techniques569
16.1 INHERITANCE AND ASSERTIONS569
16.2 THE GLOBAL INHERITANCE STRUCTURE580
16.3 FROZEN FEATURES583
16.4 CONSTRAINED GENERICITY585
16.5 ASSIGNMENT ATTEMPT591
16.6 TYPING AND REDECLARATION595
16.7 ANCHORED DECLARATION598
16.8 INHERITANCE AND INFORMATION HIDING605
16.9 KEY CONCEPTS INTRODUCED IN THIS CHAPTER609
16.10 BIBLIOGRAPHICAL NOTE610
EXERCISES610
Chapter 17:Typing611
17.1 THE TYPING PROBLEM611
17.2 STATIC TYPING:WHY AND HOW615
17.3 COVARIANCE AND DESCENDANT HIDING621
17.4 FIRST APPROACHES TO SYSTEM VALIDITY628
17.5 RELYING ON ANCHORED TYPES630
17.6 GLOBAL ANALYSIS633
17.7 BEWARE OF POLYMORPHIC CATCALLS!636
17.8 AN ASSESSMENT639
17.9 THE PERFECT FIT640
17.10 KEY CONCEPTS STUDIED IN THIS CHAPTER641
17.11 BIBLIOGRAPHICAL NOTES641
Chapter 18:Global objects and constants643
18.1 CONSTANTS OF BASIC TYPES643
18.2 USE OF CONSTANTS645
18.3 CONSTANTS OF CLASS TYPES646
18.4 APPLICATIONS OF ONCE ROUTINES648
18.5 CONSTANTS OF STRING TYPE653
18.6 UNIQUE VALUES654
18.7 DISCUSSION656
18.8 KEY CONCEPTS INTRODUCED IN THIS CHAPTER659
18.9 BIBLIOGRAPHICAL NOTES660
EXERCISES660
PART D:OBJECT-ORIENTED METHODOLOGY:APPLYING THE METHOD WELL661
Chapter 19:On methodology663
19.1 SOFTWARE METHODOLOGY:WHY AND WHAT663
19.2 DEVISING GOOD RULES:ADVICE TO THE ADVISORS664
19.3 ON USING METAPHORS671
19.4 THE IMPORTANCE OF BEING HUMBLE673
19.5 BIBLIOGRAPHICAL NOTES674
EXERCISES674
20.1 MULTI-PANEL SYSTEMS675
Chapter 20:Design pattern:multi-panel interactive systems675
20.2 A SIMPLE MINDED ATTEMPT677
20.3 A FUNCTIONAL,TOP-DOWN SOLUTION678
20.4 A CRITIQUE OF THE SOLUTION682
20.5 AN OBJECT-ORIENTED ARCHITECTURE684
20.6 DISCUSSION693
20.7 BIBLIOGRAPHICAL NOTE694
Chapter 21:Inheritance case study:“undo”in an interactive system695
21.1 PERSEVERARE DIABOLICUM695
21.2 FINDING THE ABSTRACTIONS699
21.3 MULTI-LEVEL UNDO-REDO704
21.4 IMPLEMENTATION ASPECTS707
21.5 A USER INTERFACE FOR UNDOING AND REDOING711
21.6 DISCUSSION712
21.7 BIBLIOGRAPHICAL NOTES715
EXERCISES715
Chapter 22:How to find the classes719
22.1 STUDYING A REQUIREMENTS DOCUMENT720
22.2 DANGER SIGNALS726
22.3 GENERAL HEURISTICS FOR FINDING CLASSES731
22.4 OTHER SOURCES OF CLASSES735
22.5 REUSE740
22.6 THE METHOD FOR OBTAINING CLASSES741
22.7 KEY CONCEPTS INTRODUCED IN THIS CHAPTER743
22.8 BIBLIOGRAPHICAL NOTES744
Chapter 23:Principles of class design747
23.1 SIDE EFFECTS IN FUNCTIONS748
23.2 HOW MANY ARGUMENTS FOR A FEATURE?764
23.3 CLASS SIZE:THE SHOPPING LIST APPROACH770
23.4 ACTIVE DATA STRUCTURES774
23.5 SELECTIVE EXPORTS796
23.6 DEALING WITH ABNORMAL CASES797
23.7 CLASS EVOLUTION:THE OBSOLETE CLAUSE802
23.8 DOCUMENTING A CLASS AND A SYSTEM803
23.9 KEY CONCEPTS INTRODUCED IN THIS CHAPTER806
23.10 BIBLIOGRAPHICAL NOTES806
EXERCISES807
24.1 HOW NOT TO USE INHERITANCE809
Chapter 24:Using inheritance well809
24.2 WOULD YOU RATHER BUY OR INHERIT?812
24.3 AN APPLICATION:THE HANDLE TECHNIQUE817
24.4 TAXOMANIA820
24.5 USING INHERITANCE:A TAXONOMY OF TAXONOMY822
24.6 ONE MECHANISM,OR MORE?833
24.7 SUBTYPE INHERITANCE AND DESCENDANT HIDING835
24.8 IMPLEMENTATION INHERITANCE844
24.9 FACILITY INHERITANCE847
24.10 MULTIPLE CRITERIA AND VIEW INHERITANCE851
24.11 HOW TO DEVELOP INHERITANCE STRUCTURES858
24.12 A SUMMARY VIEW:USING INHERITANCE WELL862
24.14 BIBLIOGRAPHICAL NOTES863
24.13 KEY CONCEPTS INTRODUCED IN THIS CHARTER863
24.15 APPENDIX:A HISTORY OF TAXONOMY864
EXERCISES869
Chapter 25:Useful techniques871
25.1 DESIGN PHILOSOPHY871
25.2 CLASSES872
25.3 INHERITANCE TECHNIQUES873
Chapter 26:A sense of style875
26.1 COSMETICS MATTERS!875
26.2 CHOOSING THE RIGHT NAMES879
26.3 USING CONSTANTS884
26.4 HEADER COMMENTS AND INDEXING CLAUSES886
26.5 TEXT LAYOUT AND PRESENTATION891
26.6 FONTS900
26.7 BIBLIOGRAPHICAL NOTES901
EXERCISES902
Chapter 27:Object-oriented analysis903
27.1 THE GOALS OF ANALYSIS903
27.2 THE CHANGING NATURE OF ANALYSIS906
27.3 THE CONTRIBUTION OF OBJECT TECHNOLOGY907
27.4 PROGRAMMING A TV STATION907
27.5 EXPRESSING THE ANALYSIS:MULTIPLE VIEWS914
27.6 ANALYSIS METHODS917
27.7 THE BUSINESS OBJECT NOTATION919
27.8 BIBLIOGRAPHY922
Chapter 28:The software construction process923
28.1 CLUSTERS923
28.2 CONCURRENT ENGINEERING924
28.3 STEPS AND TASKS926
28.4 THE CLUSTER MODEL OF THE SOFTWARE LIFECYCLE926
28.5 GENERALIZATION928
28.6 SEAMLESSNESS AND REVERSIBILITY930
28.7 WITH US,EVERYTHING IS THE FACE933
28.8 KEY CONCEPTS COVERED IN THIS CHAPTER934
28.9 BIBLIOGRAPHICAL NOTES934
29.1 INDUSTRIAL TRAINING935
Chapter 29:Teaching the method935
29.2 INTRODUCTORY COURSES937
29.3 OTHER COURSES941
29.4 TOWARDS A NEW SOFTWARE PEDAGOGY942
29.5 AN OBJECT-ORIENTED PLAN946
29.6 KEY CONCEPTS STUDIED IN THIS CHAPTER948
29.7 BIBLIOGRAPHICAL NOTES948
PART E:ADVANCED TOPICS949
Chapter 30: Concurrency,distribution,client-server and the Internet951
30.1 A SNEAK PREVIEW951
30.2 THE RISE OF CONCURRENCY953
30.3 FROM PROCESSES TO OBJECTS956
30.4 INTRODUCING CONCURRENT EXECUTION964
30.5 SYNCHRONIZATION ISSUES977
30.6 ACCESSING SEPARATE OBJECTS982
30.7 WAIT CONDITIONS990
30.8 REQUESTING SPECIAL SERVICE998
30.9 EXAMPLES1003
30.10 TOWARDS A PROOF RULE1022
30.11 A SUMMARY OF THE MECHANISM1025
30.12 DISCUSSION1028
30.13 KEY CONCEPTS INTRODUCED IN THIS CHAPTER1032
30.14 BIBLIOGRAPHICAL NOTES1033
EXERCISES1035
31.1 PERSISTENCE FROM THE LANGUAGE1037
Chapter 31:Object persistence and databases1037
31.2 BEYOND PERSISTENCE CLOSURE1039
31.3 SCHEMA EVOLUTION1041
31.4 FROM PERSISTENCE TO DATABASES1047
31.5 OBJECT-RELATIONAL INTEROPERABILITY1048
31.6 OBJECT-ORIENTED DATABASE FUNDAMENTALS1050
31.7 O-O DATABASE SYSTEMS:EXAMPLES1055
31.8 DISCUSSION:BEYOND O-O DATABASES1058
31.9 KEY CONCEPTS STUDIED IN THIS CHAPTER1060
31.10 BIBLIOGRAPHICAL NOTES1061
EXERCISES1062
Chapter 32:Some O-O techniques for graphical interactive applications1063
32.1 NEEDED TOOLS1064
32.2 PORTABILITY AND PLATFORM ADAPTATION1066
32.3 GRAPHICAL ABSTRACTIONS1068
32.4 INTERACTION MECHANISMS1071
32.5 HANDLING THE EVENTS1072
32.6 A MATHEMATICAL MODEL1076
32.7 BIBLIOGRAPHICAL NOTES1076
PART F:APPLYING THE METHOD IN VARIOUS LANGUAGES AND ENVIRONMENTS1077
Chapter 33:O-O programming and Ada1079
33.1 A BIT OF CONTEXT1079
33.2 PACKAGES1081
33.3 A STACK IMPLEMENTATION1081
33.4 HIDING THE REPRESENTATION:THE PRIVATE STORY1085
33.5 EXCEPTIONS1088
33.6 TASKS1091
33.7 FROM ADA TO ADA 951092
33.8 KEY CONCEPTS INTRODUCED IN THIS CHAPTER1097
33.9 BIBLIOGRAPHICAL NOTES1097
EXERCISES1098
Chapter 34:Emulating object technology in non-O-O environments1099
34.1 LEVELS OF LANGUAGE SUPPORT1099
34.2 OBJECT-ORIENTED PROGRAMMING IN PASCAL?1100
34.3 FORTRAN1102
34.4 OBJECT-ORIENTED PROGRAMMING AND C1106
EXERCISES1112
34.5 BIBLIOGRAPHICAL NOTES1112
Chapter 35:Simula to Java and beyond:major O-O languages and environments1113
35.1 SIMULA1113
35.2 SMALLTALK1126
35.3 LISP EXTENSIONS1130
35.4 C EXTENSIONS1131
35.5 JAVA1136
35.6 OTHER O-O LANGUAGES1137
35.7 BIBLIOGRAPHICAL NOTES1138
EXERCISES1139
PART G:DOING IT RIGHT1141
36.1 COMPONENTS1143
Chapter 36:An object-oriented environment1143
36.2 THE LANGUAGE1144
36.3 THE COMPILATION TECHNOLOGY1144
36.4 TOOLS1148
36.5 LIBRARIES1150
36.6 INTERFACE MECHANISMS1152
36.7 BIBLIOGRAPHICAL NOTES1160
Epilogue,In Full Frankness Exposing the Language1161
PART H:APPENDICES1163
Appendix A: Extracts from the Base libraries1165
Appendix B:Genericity versus inheritance1167
B.1 GENERICITY1168
B.2 INHERITANCE1173
B.3 EMULATING INHERITANCE WITH GENERICITY1175
B.4 EMULATING GENERICITY WITH INHERITANCE1176
B.5 COMBINING GENERICITY AND INHERITANCE1184
B.6 KEY CONCEPTS INTRODUCED IN THIS APPENDIX1187
B.7 BIBLIOGRAPHICAL NOTES1188
EXERCISES1188
Appendix C:Principles,rules,precepts and definitions1189
Appendix D:A glossary of object technology1193
Appendix E:Bibliography1203
E.1 WORKS BY OTHER AUTHORS1203
E.2 WORKS BY THE AUTHOR OF THE PRESENT BOOK1221
Index1225