1230 INDEX and creation procedures 371 in the Business Object Notation Common Lisp 1131 and Design by Contract 368-369 920 communication 977,979-980 and generalization 930 subcluster 923 and inheritance 465,570 comp.object Usenet newsgroup 35, cluster (Lace)198,199 and manifest constants 647 674 Cluster Model ofthe software lifecycle and reference semantics 403-406 comp.risks,see Risks forum 926-928 implementation invariant 376- Coad,Peter 167,917,922 compaction 313 377,409,532,756 COMPANY 913 role in software engineering 367 Coad-Yourdon method 917 violations 409 Cobol165,442,737,742,876,1099, COMPANY PLANE 521 1107 COMPARABLE523,590,727,831, when it must be preserved,when 832,1176,1177,1178.1183,1185 not366-367 COBOL 1079 1186 C1 ass Tool1153,1154,1156,1159 Codd,E.F.1048,1061 Cohen,Bernard 945,948 comparing objects,see equality under class validity 627 object Class-ADT Consistency property 375 Cohen,Jacques 316 comparing references 244 class-valid 627,636 cohesion 64 Class invariant 432 collect now 308,314 compatibility 8,16,115,443-444 class_name 433 COLLECTION 857 compatible 913 classes preparatoires 941 collection,see garbage collection compilation technology 1144-1148 challenges 1144-1145 classification collection_off 308,312,314 premature 728-729 see also assembly collection on 308 speed 31,618 classification,see taxonomy Collins,Allen G.868 classwide operation (Ada 95)1094 Compilist 897 color,use in software texts 901,1152 complementary formalisms 920 CLEAR 330 column Clemenceau,Georges 932 in relational databases 1048 completeness clickable,clickability 1158-1159 comb-like structure 892,894 of a garbage collector 305 of a specification 153-159 client51,118,119,175,182-183, command135,699-718.748,987, persistence,see closure under 785-786,907,1194 1073 persistence and analysis 907 arguments 707-708 sufficient 156-159 being honest with clients 573 as a class 699-700 COMPLEX647,760,858,1186 cheating clients 572 button 751 definition 182 composite 529,716 complex number 408,518 dynamic 572 creating a command object 703- component manufacturer 297 independence 861 704 component,see reusable software privileges on an attribute 206-208 executing 707 component versus inheritance 812-817 remembering 702-703 component-level approach to memory client-server953,968,1039,1056, COMMAND71,699,714,721,724, management 297-301 1149,1151,1152 731,734 composability 42-43,48,50,54 cloe245,247,274,275,276,303, command-query separation 748-764, composite 582.584.880.976 1029 command,see under command defined in terms of copy 247 Command-Query Separation principle figure,see under figure cloning,see under object 751,759 object,see under object CLOS1131,1139 COMMAND_INSTANCE 709 COMPOSITE COMMAND 716 close1174,1175 comment 890-891 COMPOSITE_FIGURE 528,1071 CLOSED FIGURE 483 as assertion 399 header,see header comment Compostela 152 closure for modules,why needed 57 non-header 890-891 compromise in the software process see also persistence closure,system COMMERCIAL 911,913 906 closure commercial for a TV station 911-912 computation clouds and precipice 905-906 COMMON (Fortran)48,656,736, ingredients 101-103 CLU46,90,99,100,806,1081 742,1102-1104 computational reflection 1130 cluster24,210,920,923-924,925, garbage 48,736 ComputerWorld 14,1136 926-928,1194 common block,see COMMON computing time 1123 CLU 1081 (Fortran) concrete state 756-758
1230 INDEX and creation procedures 371 and Design by Contract 368–369 and generalization 930 and inheritance 465, 570 and manifest constants 647 and reference semantics 403–406 implementation invariant 376– 377, 409, 532, 756 role in software engineering 367 violations 409 when it must be preserved, when not 366–367 Class Tool 1153, 1154, 1156, 1159 class validity 627 Class-ADT Consistency property 375 class-valid 627, 636 Class_invariant 432 class_name 433 classes préparatoires 941 classification premature 728–729 classification, see taxonomy classwide operation (Ada 95) 1094 CLEAR 330 Clemenceau, Georges 932 clickable, clickability 1158–1159 client 51, 118, 119, 175, 182–183, 785–786, 907, 1194 and analysis 907 being honest with clients 573 cheating clients 572 definition 182 dynamic 572 independence 861 privileges on an attribute 206–208 versus inheritance 812–817 client-server 953, 968, 1039, 1056, 1149, 1151, 1152 clone 245, 247, 274, 275, 276, 303, 582, 584, 880, 976 defined in terms of copy 247 cloning, see under object CLOS 1131, 1139 close 1174, 1175 CLOSED_ FIGURE 483 closure for modules, why needed 57 see also persistence closure, system closure clouds and precipice 905–906 CLU 46, 90, 99, 100, 806, 1081 cluster 24, 210, 920, 923–924, 925, 926–928, 1194 CLU 1081 in the Business Object Notation 920 subcluster 923 cluster (Lace) 198, 199 Cluster Model of the software lifecycle 926–928 Coad, Peter 167, 917, 922 Coad-Yourdon method 917 Cobol 165, 442, 737, 742, 876, 1099, 1107 COBOL 1079 Codd, E.F. 1048, 1061 Cohen, Bernard 945, 948 Cohen, Jacques 316 cohesion 64 collect_now 308, 314 COLLECTION 857 collection, see garbage collection collection_off 308, 312, 314 collection_on 308 Collins, Allen G. 868 color, use in software texts 901, 1152 column in relational databases 1048 comb-like structure 892, 894 command 135, 699–718, 748, 987, 1073 arguments 707–708 as a class 699–700 button 751 composite 529, 716 creating a command object 703– 704 executing 707 remembering 702–703 COMMAND 71, 699, 714, 721, 724, 731, 734 command-query separation 748–764, 1029 Command-Query Separation principle 751, 759 COMMAND_INSTANCE 709 comment 890–891 as assertion 399 header, see header comment non-header 890–891 COMMERCIAL 911, 913 commercial for a TV station 911–912 COMMON (Fortran) 48, 656, 736, 742, 1102–1104 garbage 48, 736 common block, see COMMON (Fortran) Common Lisp 1131 communication 977, 979–980 comp.object Usenet newsgroup 35, 674 comp.risks, see Risks forum compaction 313 COMPANY 913 COMPANY_PLANE 521 COMPARABLE 523, 590, 727, 831, 832, 1176, 1177, 1178, 1183, 1185, 1186 comparing objects, see equality under object comparing references 244 compatibility 8, 16, 115, 443–444 compatible 913 compilation technology 1144–1148 challenges 1144–1145 see also assembly speed 31, 618 Compilist 897 complementary formalisms 920 completeness of a garbage collector 305 of a specification 153–159 persistence, see closure under persistence sufficient 156–159 COMPLEX 647, 760, 858, 1186 complex number 408, 518 component manufacturer 297 component, see reusable software component component-level approach to memory management 297–301 composability 42–43, 48, 50, 54 composite command, see under command figure, see under figure object, see under object COMPOSITE_COMMAND 716 COMPOSITE_FIGURE 528, 1071 Compostela 152 compromise in the software process 906 computation ingredients 101–103 computational reflection 1130 ComputerWorld 14, 1136 computing time 1123 concrete state 756–758
INDEX 1231 concurrency102,951-1036,1056- of analysis models using different control structure style for exceptions 1057,1059-1060,1091-1092,1118 views 920 1091 1121 static-dynamic types 475 CONTROLLER (Simula)1120 and inheritance 959-960,1121- Const value 650 convenience inheritance 824 1122 constant452-453,643-660,884-886, examples 1003-1022 convenience,see marriage of 1081 convenience in Ada980,1098 attribute,see constant under in object-oriented databases 1056- Cook,William R.642 attribute 1057 coordinates in GUI(Graphical User how to use645-646,884-886 intra-application 954 Interface)systems 1070 library mechanisms 972-973, initialization 656-657 copy 1027,1030 manifest452-453,646-647,885 attachment,see under attachment multi-layer architecture 970 and class types 646-647 c0py247,274,275,276,582,583, proof rule 1022-1024 of a basic type 643-645 584 semantic specification 1026-1027 of a class type 646-648 copying,see under object summary of mechanism 951-952, of string type 653-654,657 CORBA8,955,970 1025-1027 symbolic,see constant under CORBA 2 955 summary of the mechanism 1025- attribute 1027 where to put declarations 886 coroutine1012-1014,1030,1036, syntax specification 1025 1118-1126,1139,1140 constant inheritance,see under facility validity constraints 997,1025- inheritance example 1119-1121 1026 Simula1118-1126,1139,1140 Constantine,Larry 120 validity rules 973-976 COROUTINE 1013 CONCURRENCY 998,1000,1001, constrained genericity,see under COROUTINE CONTROLLER 1019,1027,1030 genericity 1014 Concurrency Control File 971-972 constructor(C++)1133 correc1681,682,686 concurrent 1194 constructor function(abstract data correct ADT expression 154 accesses to an object 982-983, type)135 correct mismatch 1044,1045,1046 1031 consumer,see under reuse;see also correction,see under persistence precondition paradox 995,1036 client correctness4-5,16,52,331,332, see also concurrency,concurrent CONTAINER 857 369-373,389,427-430 engineering container data structure 471,472,496, a relative notion 333-334 concurrent engineering 924-925 587,1194 and exceptions 427-430 conditional correctness,conditional content-based search tool 1060 conditional 4-5,52,401 proof,see conditional under context(in graphical systems)1072- of a class 369-373 correctness 1076 partial 337 conditional critical region,see total 337 Context-Event-Command-State conditional under critical region versus efficiency 394-398 model of interactive graphical conditional instruction 448-449 applications 1073-1076,1150 correctness formula 334-335,369 configuration management 66,1042 continuity44-45,47,48,50,51,54, Correctness property 333 see also versioning under class, 56,65,103 cosmetics 875-879 object CONFIRMATION 692 contour model of programming Cosi fan tutte 1000 languages 315 comt777,882 Conflicting Assignments To Actual 446 contract341-342,1194 COUNTABLE_SEQUENCE 755 see also Design by Contract coupling 64 conformance469,474,591,598,616, CONTRACT EMPLOYEE 853 weak 48 1194 covariance 621-642,1194 conforms to 582,640 contracting 919 Anchoring approach 630-633, conjugate 600 in BON 919 639,642 CONS (Lisp)282 see also Design by Contract Catcall approach 636-638,639, consistency contravariance 624,625,626,628, 642 in naming features and classes 1194 Global approach 633-636,639 883-884 control(for graphical applications) Cox,Brad.J34,80,100,119,672 of a library 69 1066,1067 715,1112,1131,1138 of an abstract data type 155 control structure 346-347 CPU965,1014
INDEX 1231 concurrency 102, 951–1036, 1056– 1057, 1059–1060, 1091–1092, 1118– 1121 and inheritance 959–960, 1121– 1122 examples 1003–1022 in Ada 980, 1098 in object-oriented databases 1056– 1057 intra-application 954 library mechanisms 972–973, 1027, 1030 multi-layer architecture 970 proof rule 1022–1024 semantic specification 1026–1027 summary of mechanism 951–952, 1025–1027 summary of the mechanism 1025– 1027 syntax specification 1025 validity constraints 997, 1025– 1026 validity rules 973–976 CONCURRENCY 998, 1000, 1001, 1019, 1027, 1030 Concurrency Control File 971–972 concurrent 1194 accesses to an object 982–983, 1031 precondition paradox 995, 1036 see also concurrency, concurrent engineering concurrent engineering 924–925 conditional correctness, conditional proof, see conditional under correctness conditional critical region, see conditional under critical region conditional instruction 448–449 configuration management 66, 1042 see also versioning under class, object CONFIRMATION 692 Conflicting Assignments To Actual 446 conformance 469, 474, 591, 598, 616, 1194 conforms_to 582, 640 conjugate 600 CONS (Lisp) 282 consistency in naming features and classes 883–884 of a library 69 of an abstract data type 155 of analysis models using different views 920 static-dynamic types 475 Const_value 650 constant 452–453, 643–660, 884–886, 1081 attribute, see constant under attribute how to use 645–646, 884–886 initialization 656–657 manifest 452–453, 646–647, 885 and class types 646–647 of a basic type 643–645 of a class type 646–648 of string type 653–654, 657 symbolic, see constant under attribute where to put declarations 886 constant inheritance, see under facility inheritance Constantine, Larry 120 constrained genericity, see under genericity constructor (C++) 1133 constructor function (abstract data type) 135 consumer, see under reuse; see also client CONTAINER 857 container data structure 471, 472, 496, 587, 1194 content-based search tool 1060 context (in graphical systems) 1072– 1076 Context-Event-Command-State model of interactive graphical applications 1073–1076, 1150 continuity 44–45, 47, 48, 50, 51, 54, 56, 65, 103 contour model of programming languages 315 contract 341–342, 1194 see also Design by Contract CONTRACT_EMPLOYEE 853 contracting 919 in BON 919 see also Design by Contract contravariance 624, 625, 626, 628, 1194 control (for graphical applications) 1066, 1067 control structure 346–347 control structure style for exceptions 1091 CONTROLLER (Simula) 1120 convenience inheritance 824 convenience, see marriage of convenience Cook, William R. 642 coordinates in GUI (Graphical User Interface) systems 1070 copy attachment, see under attachment copy 247, 274, 275, 276, 582, 583, 584 copying, see under object CORBA 8, 955, 970 CORBA 2 955 coroutine 1012–1014, 1030, 1036, 1118–1126, 1139, 1140 example 1119–1121 Simula 1118–1126, 1139, 1140 COROUTINE 1013 COROUTINE_CONTROLLER 1014 correct 681, 682, 686 correct ADT expression 154 correct_mismatch 1044, 1045, 1046 correction, see under persistence correctness 4–5, 16, 52, 331, 332, 369–373, 389, 427–430 a relative notion 333–334 and exceptions 427–430 conditional 4–5, 52, 401 of a class 369–373 partial 337 total 337 versus efficiency 394–398 correctness formula 334–335, 369 Correctness property 333 cosmetics 875–879 Così fan tutte 1000 count 777, 882 COUNTABLE_SEQUENCE 755 coupling 64 weak 48 covariance 621–642, 1194 Anchoring approach 630–633, 639, 642 Catcall approach 636–638, 639, 642 Global approach 633–636, 639 Cox, Brad J. 34, 80, 100, 119, 672, 715, 1112, 1131, 1138 CPU 965, 1014
1232 INDEX CRC cards 740 D dead object,see unreachable under creation231-236,236-239,279-316, object 518,752 Dahl,Olc-Johan35,745,1114,1138 deadlock989-990,1004,1031,1035 and inheritance 465-467.479- Daigakuin 941 debug 452 480,518 Dami,Laurent 642 debug instruction 452 and overloading 239 Darwin,Charles 843,860,865,866 debugging392-398,1153-1159 by a function 752 Data Division (Cobol)737,742 decentralization 7,498,643 call236-239 instruction 232-239,448 data sharing 50 declaration effect 233,237 data structure,see active data structure, anchored,see anchored declaration container data structure,polymorphic syntax 203 multiple creation procedures 236- 239 data structure decomposability 40-41,47,48,50,54 patterns 316 data transmission 684 decomposition polymorphic 479-480 database32,1047-1062,1198 functional 103-114,197 three modes 280-291 engine 1053 object-based 114-115 why explicit 235-236 locking1047,1054,1055,1057, deduction versus induction 859-860 Creation Inheritance rule 466 1061 deep operations,see cloning under object creation procedure 196,236-239,371, avoiding locks in Matisse 1056 430,647 in Versant 1057 deep_clone 248,276 and class invariants 371 optimistic,see optimistic lock- deep_equal 248,276 and exceptions 430 ing deep_import 976,977,1035 using a parent's creation procedure long transaction,see long under default values,see under initialization 539-540 transaction default rescue 430,1044 creativity 878-879 object-oriented 1037,1050-1062, defect 347 1152 creator 135 advanced concepts 1058-1060 defensive programming 343-345, Cristian,Flaviu 438 1195 an oxymoron?1058-1060 criteria of object orientation 21-36 engine 1053 de ferred 484.486 critical region 978,979,980,984,990 examples of object-oriented da- Deferred Class No-Instantation rule conditional 978,990 487 tabase management systems cryptography 953 1055-1057 deferred class,see under class CSP(Communicating Sequential fundamental concepts 1050- deferred feature,see under feature Processes)979,980,1033,1091- 1055 define (C)266 1092 threshold model 1053 definitions (full list)1189 cuckoo 859 quey1049,1055,1057 Dekleva,Sasha M.20 Cunningham,Ward 740 in object-oriented database man- Delphi211,515,1130,1143 Current181,446.452,453,602 agement systems 1055 delta (in the Business Object role185-186 in Versant 1057 Notation)920 Current as anchor 602 relational 1037,1048-1053 demand 1000 current demo 927 definition 1048 demanding style for preconditions limitations 1051-1053 354-357 current instance,see under instance Curry,Gael A.99 operations 1048-1049 DeMarco,Tom 120 used with object-oriented soft- Demeter 269 currying 215,1076 ware1050-1053,1152 Law,see Law of Demeter curs0r461,462,488.489,490,504, when not applicable 1051-1053 Department of Defense,see US 752,754,755,756,759,774796 transaction,see transaction Department of Defense custom_independent store 1040 using unstructured information in dependency analysis for compilation customer,is always wrong 336,343, lieu of databases 1060 1146 347,353,393,428.572 DATABASE 968 dependent 250,1146 Cuvier,Georges 864,865 DATE 910 direct 250 Cybele 269 Date,Chris J.1048,1061 deposits_is1364,368,1046 cycles,first and second(France)941 De Cindio,Fiorella 948 Deramat,Frederic 1160 cyclic structures under reference De Moel,Joost 1160 DeRemer,Franklin D.20 counting 303-304 dead code removal 1147 derivation,see generic derivation
1232 INDEX CRC cards 740 creation 231–236, 236–239, 279–316, 518, 752 and inheritance 465–467, 479– 480, 518 and overloading 239 by a function 752 call 236–239 instruction 232–239, 448 effect 233, 237 multiple creation procedures 236– 239 patterns 316 polymorphic 479–480 three modes 280–291 why explicit 235–236 Creation Inheritance rule 466 creation procedure 196, 236–239, 371, 430, 647 and class invariants 371 and exceptions 430 using a parent’s creation procedure 539–540 creativity 878–879 creator 135 Cristian, Flaviu 438 criteria of object orientation 21–36 critical region 978, 979, 980, 984, 990 conditional 978, 990 cryptography 953 CSP (Communicating Sequential Processes) 979, 980, 1033, 1091– 1092 cuckoo 859 Cunningham, Ward 740 Current 181, 446, 452, 453, 602 role 185–186 Current as anchor 602 current demo 927 current instance, see under instance Curry, Gael A. 99 currying 215, 1076 cursor 461, 462, 488, 489, 490, 504, 752, 754, 755, 756, 759, 774–796 custom_independent_store 1040 customer, is always wrong 336, 343, 347, 353, 393, 428, 572 Cuvier, Georges 864, 865 Cybele 269 cycles, first and second (France) 941 cyclic structures under reference counting 303–304 D Dahl, Ole-Johan 35, 745, 1114, 1138 Daigakuin 941 Dami, Laurent 642 Darwin, Charles 843, 860, 865, 866 Data Division (Cobol) 737, 742 data sharing 50 data structure, see active data structure, container data structure, polymorphic data structure data transmission 684 database 32, 1047–1062, 1198 engine 1053 locking 1047, 1054, 1055, 1057, 1061 avoiding locks in Matisse 1056 in Versant 1057 optimistic, see optimistic locking long transaction, see long under transaction object-oriented 1037, 1050–1062, 1152 advanced concepts 1058–1060 an oxymoron? 1058–1060 engine 1053 examples of object-oriented database management systems 1055–1057 fundamental concepts 1050– 1055 threshold model 1053 query 1049, 1055, 1057 in object-oriented database management systems 1055 in Versant 1057 relational 1037, 1048–1053 definition 1048 limitations 1051–1053 operations 1048–1049 used with object-oriented software 1050–1053, 1152 when not applicable 1051–1053 transaction, see transaction using unstructured information in lieu of databases 1060 DATABASE 968 DATE 910 Date, Chris J. 1048, 1061 De Cindio, Fiorella 948 De Moel, Joost 1160 dead code removal 1147 dead object, see unreachable under object deadlock 989–990, 1004, 1031, 1035 debug 452 debug instruction 452 debugging 392–398, 1153–1159 decentralization 7, 498, 643 declaration anchored, see anchored declaration syntax 203 decomposability 40–41, 47, 48, 50, 54 decomposition functional 103–114, 197 object-based 114–115 deduction versus induction 859–860 deep operations, see cloning under object deep_clone 248, 276 deep_equal 248, 276 deep_import 976, 977, 1035 default values, see under initialization default_rescue 430, 1044 defect 347 defensive programming 343–345, 1195 deferred 484, 486 Deferred Class No-Instantation rule 487 deferred class, see under class deferred feature, see under feature define (C) 266 definitions (full list) 1189 Dekleva, Sasha M. 20 Delphi 211, 515, 1130, 1143 delta (in the Business Object Notation) 920 demand 1000 demanding style for preconditions 354–357 DeMarco, Tom 120 Demeter 269 Law, see Law of Demeter Department of Defense, see US Department of Defense dependency analysis for compilation 1146 dependent 250, 1146 direct 250 deposits_list 364, 368, 1046 Deramat, Frédéric 1160 DeRemer, Franklin D. 20 derivation, see generic derivation
INDEX 1233 Dembach,Frederic 1160 Dioscorides of Anazarbus 864 typed 1157 Descartes,Rene 37,43,673 direct instance,see under instance DRAGOON 1034 descendant 464,1195 direct manipulation 1063 DRIVER 544,545 descendant hiding 626-627,835-843 direct mapping 47,54,931 Drix,Philippe 869 and subtype inheritance 835-843 directory 199 duality between actions and objects avoiding 838-839 DIRECTORY 1174 102,146 using839-840,843 dirty read 1056 Dubois,Paul F.xi,642,715,718,765, why needed 837 disciplinary approach 1100,1101, 1034,1112,1160 describing objects and their relations 1108 duel9991000,1031 118 discipline and creativity 878-879 Dufour,Sylvain 1160 design150,506,725,734-735,936. Disciplined Exception Handling Duke,Roger 160 941,1162,1198 principle 417,419,427 Duncan,Thomas 868 class 734-735 DURATION 910 reusability 70-71 Discrimination principle 655 role in education 936,941 D1SK1173,1175 dynamic 1195 aliasing,see aliasing Design by Contract 127,146,331- DISPATCHER 1018 dispenser 127 allocation,see memory 410,411,419,435,569-580,617, display594,681,682,686,688, management 756,805,907,919,941,952,981, 994,1022.1028.1029.1090,1195 1071 binding,see dynamic under binding client 572 and analysis 907,919 display (for a button)555 IP address 1043 and concurrency 952,981,994, display (for composite figures)529 link library,see DLL 1028.1029 DISPLAY ITERATOR 529 typing,see dynamic under typing and inheritance 569-580 dispose310,314,316 Dynamic Binding principle 511 and invariants 368-369 disposing of objects when garbage- DYNAMIC LIBRARY 440 in the Business Object Notation collected 310 DYNAMIC ROUTINE 440 919 distribution formats for reusable middleman 575 role in education 941 software components 79-80 E subcontracting 576 distribution of knowledge 63 design patterns 71-72,100,529,675- Dittrich,Klaus 1061 E CLASS 169 718,735,745,759-764,817,855, divide 762 ease of use 11-12,15,16 871-874,991,1068 DLL (Dynamic Link Library)440 cating car 522 destructor(C++)310 do_if 849 EATING CAR 522 detach(Simula)988,1119 documentation 14-15,18,32,54-55, Eco,Umberto viii,163 detachment 283-284 803-805 economic analogy for object-oriented detection,see under memory and generalization 930 concepts 127 external 14 management,persistence economics of software procurement interface 14 developer 933 76 intemal 14 developer exception,see under economy 14,15,16 see also self-documentation exception system-level 805 ECOOP concurrency workshops 1034 developer_exception code 434 Documentation principle 804 editor724,1066,1074-1075 developer_exception context 435 DoD,see US Department of Defense for graphical abstractions 1066 education,see teaching object developer exception name 434 dogmatism in assessing object development object 1153-1159 orientation 21-22 technology DE7CE602,1173,1174,1184 domain138,377,580 effecting 485,1195 effective diagonal 499,591 domain analysis 947 class,see effective under class diagram,see transition diagram Don't mode me in 1075 effective feature,see under feature Diderot,Denis 121,148 DOOR 720 efficiency9-11,15,16,19,68,208- Dijkstra,Edsger Wybe xi,72,122, DOTTED SEGMENT 829 209,307,327,394-398,482,507- 160,316,347,407,664,665,667 DOUBLE171,220,522 515,548.616,773,1043,1146, 678,750,835,1003,1033,1135, downcasting 1134 1147-1148 1138 drag-and-drop 1156 and dynamic binding 507-515 dining philosophers 1003-1006,1033 see also pick-and-throw and genericity 327
INDEX 1233 Dernbach, Frédéric 1160 Descartes, René 37, 43, 673 descendant 464, 1195 descendant hiding 626–627, 835–843 and subtype inheritance 835–843 avoiding 838–839 using 839–840, 843 why needed 837 describing objects and their relations 118 design 150, 506, 725, 734–735, 936, 941, 1162, 1198 class 734–735 reusability 70–71 role in education 936, 941 Design by Contract 127, 146, 331– 410, 411, 419, 435, 569–580, 617, 756, 805, 907, 919, 941, 952, 981, 994, 1022, 1028, 1029, 1090, 1195 and analysis 907, 919 and concurrency 952, 981, 994, 1028, 1029 and inheritance 569–580 and invariants 368–369 in the Business Object Notation 919 middleman 575 role in education 941 subcontracting 576 design patterns 71–72, 100, 529, 675– 718, 735, 745, 759–764, 817, 855, 871–874, 991, 1068 destructor (C++) 310 detach (Simula) 988, 1119 detachment 283–284 detection, see under memory management, persistence developer 933 developer exception, see under exception developer_exception_code 434 developer_exception_context 435 developer_exception_name 434 development object 1153–1159 DEVICE 602, 1173, 1174, 1184 diagonal 499, 591 diagram, see transition diagram Diderot, Denis 121, 148 Dijkstra, Edsger Wybe xi, 72, 122, 160, 316, 347, 407, 664, 665, 667, 678, 750, 835, 1003, 1033, 1135, 1138 dining philosophers 1003–1006, 1033 Dioscorides of Anazarbus 864 direct instance, see under instance direct manipulation 1063 direct mapping 47, 54, 931 directory 199 DIRECTORY 1174 dirty read 1056 disciplinary approach 1100, 1101, 1108 discipline and creativity 878–879 Disciplined Exception Handling principle 417, 419, 427 Discrimination principle 655 DISK 1173, 1175 DISPATCHER 1018 dispenser 127 display 594, 681, 682, 686, 688, 1071 display (for a button) 555 display (for composite figures) 529 DISPLAY_ITERATOR 529 dispose 310, 314, 316 disposing of objects when garbagecollected 310 distribution formats for reusable software components 79–80 distribution of knowledge 63 Dittrich, Klaus 1061 divide 762 DLL (Dynamic Link Library) 440 do_if 849 documentation 14–15, 18, 32, 54–55, 803–805 and generalization 930 external 14 interface 14 internal 14 see also self-documentation system-level 805 Documentation principle 804 DoD, see US Department of Defense dogmatism in assessing object orientation 21–22 domain 138, 377, 580 domain analysis 947 Don’t mode me in 1075 DOOR 720 DOTTED_SEGMENT 829 DOUBLE 171, 220, 522 downcasting 1134 drag-and-drop 1156 see also pick-and-throw typed 1157 DRAGOON 1034 DRIVER 544, 545 Drix, Philippe 869 duality between actions and objects 102, 146 Dubois, Paul F. xi, 642, 715, 718, 765, 1034, 1112, 1160 duel 999–1000, 1031 Dufour, Sylvain 1160 Duke, Roger 160 Duncan, Thomas 868 DURATION 910 dynamic 1195 aliasing, see aliasing allocation, see memory management binding, see dynamic under binding client 572 IP address 1043 link library, see DLL typing, see dynamic under typing Dynamic Binding principle 511 DYNAMIC_LIBRARY 440 DYNAMIC_ROUTINE 440 E E_CLASS 169 ease of use 11–12, 15, 16 eating car 522 EATING_CAR 522 Eco, Umberto viii, 163 economic analogy for object-oriented concepts 127 economics of software procurement 76 economy 14, 15, 16 ECOOP concurrency workshops 1034 editor 724, 1066, 1074–1075 for graphical abstractions 1066 education, see teaching object technology effecting 485, 1195 effective class, see effective under class effective feature, see under feature efficiency 9–11, 15, 16, 19, 68, 208– 209, 307, 327, 394–398, 482, 507– 515, 548, 616, 773, 1043, 1146, 1147–1148 and dynamic binding 507–515 and genericity 327
1234 INDEX and inheritance 507-515 ENGINEER815,816,853 schema evolution,see under and static typing 616 engineering persistence of garbage collection 307 see forward engineering, see also change in software of repeated inheritance 548 rearchitecturing,reverse development,extendibility of the compilation process 1144- engineering evolutionary taxonomist 866-868 1146 engineering schools(France)941 exception25,241,411-438,801,999, of the environment's generated 1088-1091,1134,1196 code 1144 ENOUIRY ON FLIGHTS 688 versus correctness 394-398 ensure 112,338 abnormal case style 1091 ensure then 578 advanced exception handling 431- egoful design 878 egoless expression 878 enter 802 435 egoless programming 878 entity 1196 as object 436-437 default value,see under basic concepts 411-414 Eiffel 1162 initialization causes 413-414 Einstein,Albert 672 comparison of mechanisms 1089- operations on generic entities 323- electronic collocation 925 1091 324 elevator 720 control structure style 1091 polymorphic 469,488 definition 412 ELEVATOR 720,1016 precise definition 213 developer434-435,1088-1089 elevator system(concurrency entity-relationship 120,737,742 examples 422-427 example)1014-1019,1036 enumerated type handling414-422,1088-1089 Eliens,Anton 34 Ada 1175 history table 420-422 Elinck,Philippe 642 Pascal 660 in Ada415-416,438.1088-1091 ELKS 1150 enumerated type,see unique value in C-Unix 414-415 ELLIPSE483,527,826,838 ENVIR 650 queries 431-433 Ellis Island 538 environment for developing object- raising434-435,1088-1089 Ellis,Margaret 328,668,1138 oriented software 1143-1160 recovering 423-424 EPEE 1034 role 801 Elmasri,Ramez 1061 sources 412-413 else179,448,450 epilogue 1161-1162 elseif 449 eqal246,247,248,265,274,275, taxonomy exception,see exception under taxonomy embedded SQL 1049 276,582,584 exception (Ada)415 EMPLOYEE 853 equality,see under object;see also comparison under reference exception handler 1089 empy777,883 EQUIVALENCE (Fortran)266 exception to methodology rule 668- empty structures 353 669 emu 859 error 347 EXCEPTION CONSTANTS 431 emulation 1099-1112 precise terminology 347-348 EXCEPT7ONS431,998,1000,1001 Encapsulate Repetition 984 esprit de I'escalier 932 encapsulation 53,779-780,1053, Euclid's algorithm 877 execute (for APPLICATION)691 execute (for COMMAND)699 1195 European Space Agency 410,1080 execute (for STATE)687 and assertions 779-780 evaluating candidate decompositions 736 execute_interruptibly 1001,1002 and databases 1053 see also:information hiding;the event execute session 680,688 next three entries. in interactive system 1071-1076 execute state 681,682 encapsulation language 53,1079- handling 1072-1076 execution engine 1147 1098.1099,1106 EVENT 1071 execution of a system 195,234 encapsulation level of object-oriented event list 1123,1124 remote 1147 support 1099 event notice 1123,1124 exists (in the Business Object encapsulation of non-object-oriented event-driven computation 1071-1076, Notation)920 software 441-443 1196 expanded 254 end user109,1064,1065,1071,1074, EVENT_NOTICE 1140 expanded client 259 1075 Everham,Edwin McKay III 842,859, Expanded Client rule 259 ending_time 909,910 863 expanded,see under class,type engine evolution Explicit Interfaces,see under interface execution 1147 in biology859,865,866,867,868 explicitness 876-877 for object-oriented database 1053 of the language 1144 export
1234 INDEX and inheritance 507–515 and static typing 616 of garbage collection 307 of repeated inheritance 548 of the compilation process 1144– 1146 of the environment’s generated code 1144 versus correctness 394–398 egoful design 878 egoless expression 878 egoless programming 878 Eiffel 1162 Einstein, Albert 672 electronic collocation 925 elevator 720 ELEVATOR 720, 1016 elevator system (concurrency example) 1014–1019, 1036 Eliëns, Anton 34 Élinck, Philippe 642 ELKS 1150 ELLIPSE 483, 527, 826, 838 Ellis Island 538 Ellis, Margaret 328, 668, 1138 Elmasri, Ramez 1061 else 179, 448, 450 elseif 449 embedded SQL 1049 EMPLOYEE 853 empty 777, 883 empty structures 353 emu 859 emulation 1099–1112 Encapsulate Repetition 984 encapsulation 53, 779–780, 1053, 1195 and assertions 779–780 and databases 1053 see also: information hiding; the next three entries. encapsulation language 53, 1079– 1098, 1099, 1106 encapsulation level of object-oriented support 1099 encapsulation of non-object-oriented software 441–443 end user 109, 1064, 1065, 1071, 1074, 1075 ending_time 909, 910 engine execution 1147 for object-oriented database 1053 ENGINEER 815, 816, 853 engineering see forward engineering, rearchitecturing, reverse engineering engineering schools (France) 941 ENQUIRY_ON_FLIGHTS 688 ensure 112, 338 ensure then 578 enter 802 entity 1196 default value, see under initialization operations on generic entities 323– 324 polymorphic 469, 488 precise definition 213 entity-relationship 120, 737, 742 enumerated type Ada 1175 Pascal 660 enumerated type, see unique value ENVIR 650 environment for developing objectoriented software 1143–1160 ÉPÉE 1034 epilogue 1161–1162 equal 246, 247, 248, 265, 274, 275, 276, 582, 584 equality, see under object; see also comparison under reference EQUIVALENCE (Fortran) 266 error 347 precise terminology 347–348 esprit de l’escalier 932 Euclid’s algorithm 877 European Space Agency 410, 1080 evaluating candidate decompositions 736 event in interactive system 1071–1076 handling 1072–1076 EVENT 1071 event list 1123, 1124 event notice 1123, 1124 event-driven computation 1071–1076, 1196 EVENT_NOTICE 1140 Everham, Edwin McKay III 842, 859, 863 evolution in biology 859, 865, 866, 867, 868 of the language 1144 schema evolution, see under persistence see also change in software development, extendibility evolutionary taxonomist 866–868 exception 25, 241, 411–438, 801, 999, 1088–1091, 1134, 1196 abnormal case style 1091 advanced exception handling 431– 435 as object 436–437 basic concepts 411–414 causes 413–414 comparison of mechanisms 1089– 1091 control structure style 1091 definition 412 developer 434–435, 1088–1089 examples 422–427 handling 414–422, 1088–1089 history table 420–422 in Ada 415–416, 438, 1088–1091 in C-Unix 414–415 queries 431–433 raising 434–435, 1088–1089 recovering 423–424 role 801 sources 412–413 taxonomy exception, see exception under taxonomy exception (Ada) 415 exception handler 1089 exception to methodology rule 668– 669 EXCEPTION_CONSTANTS 431 EXCEPTIONS 431, 998, 1000, 1001 execute (for APPLICATION) 691 execute (for COMMAND) 699 execute (for STATE) 687 execute_interruptibly 1001, 1002 execute_session 680, 688 execute_state 681, 682 execution engine 1147 execution of a system 195, 234 remote 1147 exists (in the Business Object Notation) 920 expanded 254 expanded client 259 Expanded Client rule 259 expanded, see under class, type Explicit Interfaces, see under interface explicitness 876–877 export