Index *1180 722,733,734,792,862,907,1100, ACE Consortium 79 +189.1180 1101,1176,1193 Ace file198,200,201,393,1146 =448 advanced topics 148-159 Ace,see Ace file,Lace <189 and abstract machines 792 Acrobat,see under Adobe <=1177,1178 and analysis 907 and assertions 373-377 action 848 =593 and classes142-147,373-377 ACTIONABLE 1040 @327,328,882 and information hiding 144-145 activate (Simula)1124 -189 applications beyond software 147- active data structure 774-796 ->588.1186 148 internal view 786-792 'Class (Ada 95)1094 complete example specification active object 957-960 139 incompatible with inheritance A consistency 155 959-960 formal description 129-141 active process 1123 genericity 131-132,318 a posteriori scheme for handling ActiveX 8,67,955 goals 122-129 abnormal cases 800-801 specifying axioms 135-137 actors model 1033 a priori scheme for handling abnormal specifying the functions 132-135 actual generic parameter,see actual cases 798-800 specifying types 130-131 under parameter obstacles 799-800 abstracted module,see under module actual reclamation 302 Abbott,Russell J.744 abstracting 860,930 actual,see under argument,parameter ABCL/1999,1034 abstraction Ada46,53,56,61,84,89,90,99,100 abnormal case 411-438,797-801, elevating the level 861 176,209,211,225,265,269,270, 1089-1091 for GUI(Graphical User Interface) 285,315,392,410,415-416,443, a posteriori scheme 800-801 1068-1071 447,507,510,564,587,588,616, a priori scheme 798-800 how to find 716,876,892,897,980,1104,1106, abnormal case style for exceptions see also finding under class 1108,1130,1137,1161,1167-1188 1091 how to find abstractions 699-704, adding classes 1098 Abrial,Jean-Raymond xi,100,160, 754 by default,means 1983 version of 330 in methodology rules 669 the language;see also Ada 95 absolute negative rule 667 varieties of class abstraction 860 concurrency mechanism 980 versus precision 905-906 context and history 1079-1080 absolute positive rule 666-667 versus specialization 858-859 exception handling 410,415-416. abstract abstraction function 230,375,756 438.1088-1091 data type,see abstract data type access control 1047 exception rule 1090 machine 792 access,see uniform access genericity 587-588 object,see under object precondition,see under accessor function 135 towards an object-oriented version 1096 precondition accommodate 625,629 Ada95443,564,566,1080,1092- side effect 757 accommodation 625,629 1096,1097,1131,1137,1161 state 756-758 ACCOUNT 329.1046 assessment 1094-1095 syntax tree 115,1038 Ada951093 example 1092-1094 abstract (Ada 95)1093 account,see bank account object-oriented mechanisms 1092- abstract data type 18,121-162,166, Accounts (Ada 95)1093 1094 171,172,173,174,216,229,231, ACC0UNT1491,513 add 762 318.338,352,373-377,399,500, ACCOUNT2491,492,513 add vertex 627,633
Index * 1180 + 189, 1180 := 448 < 189 <= 1177, 1178 ?= 593 @ 327, 328, 882 – 189 –> 588, 1186 'Class (Ada 95) 1094 A a posteriori scheme for handling abnormal cases 800–801 a priori scheme for handling abnormal cases 798–800 obstacles 799–800 Abbott, Russell J. 744 ABCL/1 999, 1034 abnormal case 411–438, 797–801, 1089–1091 a posteriori scheme 800–801 a priori scheme 798–800 abnormal case style for exceptions 1091 Abrial, Jean-Raymond xi, 100, 160, 330 absolute negative rule 667 absolute positive rule 666–667 abstract data type, see abstract data type machine 792 object, see under object precondition, see under precondition side effect 757 state 756–758 syntax tree 115, 1038 abstract (Ada 95) 1093 abstract data type 18, 121–162, 166, 171, 172, 173, 174, 216, 229, 231, 318, 338, 352, 373–377, 399, 500, 722, 733, 734, 792, 862, 907, 1100, 1101, 1176, 1193 advanced topics 148–159 and abstract machines 792 and analysis 907 and assertions 373–377 and classes 142–147, 373–377 and information hiding 144–145 applications beyond software 147– 148 complete example specification 139 consistency 155 formal description 129–141 genericity 131–132, 318 goals 122–129 specifying axioms 135–137 specifying the functions 132–135 specifying types 130–131 abstracted module, see under module abstracting 860, 930 abstraction elevating the level 861 for GUI (Graphical User Interface) 1068–1071 how to find see also finding under class how to find abstractions 699–704, 754 in methodology rules 669 varieties of class abstraction 860 versus precision 905–906 versus specialization 858–859 abstraction function 230, 375, 756 access control 1047 access, see uniform access accessor function 135 accommodate 625, 629 accommodation 625, 629 ACCOUNT 329, 1046 Ada 95 1093 account, see bank account Accounts (Ada 95) 1093 ACCOUNT1 491, 513 ACCOUNT2 491, 492, 513 ACE Consortium 79 Ace file 198, 200, 201, 393, 1146 Ace, see Ace file, Lace Acrobat, see under Adobe action 848 ACTIONABLE 1040 activate (Simula) 1124 active data structure 774–796 internal view 786–792 active object 957–960 incompatible with inheritance 959–960 active process 1123 ActiveX 8, 67, 955 actors model 1033 actual generic parameter, see actual under parameter actual reclamation 302 actual, see under argument, parameter Ada 46, 53, 56, 61, 84, 89, 90, 99, 100, 176, 209, 211, 225, 265, 269, 270, 285, 315, 392, 410, 415–416, 443, 447, 507, 510, 564, 587, 588, 616, 716, 876, 892, 897, 980, 1104, 1106, 1108, 1130, 1137, 1161, 1167–1188 adding classes 1098 by default, means 1983 version of the language; see also Ada 95 concurrency mechanism 980 context and history 1079–1080 exception handling 410, 415–416, 438, 1088–1091 exception rule 1090 genericity 587–588 towards an object-oriented version 1096 Ada 95 443, 564, 566, 1080, 1092– 1096, 1097, 1131, 1137, 1161 assessment 1094–1095 example 1092–1094 object-oriented mechanisms 1092– 1094 add 762 add_vertex 627, 633
1226 INDEX address 1039 tasks 903-904 polymorphic 637 ADJ group 160 traditional analysis methods 906 ideal number of arguments for a Adobe xiv TV station programming example feature 764-770 Acrobat 108 907-913 in out (in non-0-0 approaches) Acrobat Reader xiv analytical modeling 1122 765 adopt 311 ancestor464,500,1193 passing 444-446 adopting an object 311 anchor 601-602 see also attachment ADT,abbreviation for"abstract data artificial 1179-1187 polymorphic 637 type";see under that term. anchor1179,1181 see also operand,option Advanced Curriculum principle 936 anchor (construct not retained)631 term used for routines(see also advertizer 912 anchor-equivalent 603,631 parameter)322 to a command,see under command advisory rule 667-668,823 anchored declaration 598-604,618, aer755,782 629,630-633,1177,1178 to a once routine 651 a static mechanism 604 type redefinition 621-641 Agammemnon 269 aggregation 258,907 and covariance 630-633 Ariane 4410 and once functions 652-653 Ariane 5 389,410 Agha,Gul 1033,1034 rules 603 Aristotle 843,864,866 Aho,Alfred V.20,100,745 when not to use 603-604 ARITHMETIC 180 airline reservation system 676 Anchoring approach to the covariance Amold,Kcn222,939,1137,1139 airplane 521-522 issue630-633,639,642 array87,325-328,372-373,470-472 AIRPLANE 521,831 and 454 as object 325-326 A1gol49,64,211,396,447,876,897, between assertion clauses 337 properties 326 1080,1102,1107,1114,1126,1138 and then454,570,578 slice 383 without further qualification, Andromaque 671 static (Fortran,Pascal)45 means Algol 60;see also the next animals,distinguishing from plants two-dimensional 330 two entries 841 ARRAY325,330,348,372,441, Algol W64,353,455 anomaly,see under inheritance 470,530.540,583,584,844,882 A1gol6861,211 anorexia 314 1165,1188 alias 440 ANSI(American National Standards array down 123 aliasing 265-270,277 nstitute)1079,1097,1102,1107, ARRAY TABLE 504 in software and elsewhere 268-269 1131 array_up 123 semantics 266-267 ANSWER 688,694 ARRAYED 846 all-or-nothing garbage collection 306- antonomasia 269 ARRAYED LIST 1165 307 AWY580-582,590,592,976,1044, ARRAYED QUEUE 1188 Alpha 1152 1187 ARRAYED STACK 530,539,540, Alphard 99,1079 APL754,876 837,844,845,846 AltaVista 78,1060 applet 956 ARRAYED TABLE 831 Amako,Katsuya 922 application 1064 ARRAY2 330 America,Pierre 642,1034 as a class690-693,1076 arsonist 201-202 AMPHIBIOUS VEHICLE 522 APPL1CAT10N688,689,690,690- artificial anchor,see artificial under analysis217,271,506,725,732-733, 692,694,734 anchor 903-922,936,941,1162,1198 application builder 1065,1066,1072. ASC1847,850,851 and the software process 906 1073,1075,1076 as negotiation 906 assembly 197,198 cass732-733 application developer 1064,1066, automatic process 200,1146 1067,1068,1070,1071,1072,1073, contribution of object technology assembly language 1099 1076 907 assertion23,334,337-410,569-580, describing business rules 913 applicative 145,159,351-353 617,779-780,899,907,917,930, domain analysis 947 ArchiText 715 1193 goals 903-906 argument444-446,651,764-770 and abstract data types 373-377 methods 917-919 actual89,184,261,444-446 and analysis 907,917 requirements on an analysis method definition 444 and encapsulation 779-780 and process 904-905 formal261,444-446,637 and generalization 930 role in education 936,941 definition 444 and inheritance 569-580
1226 INDEX address 1039 ADJ group 160 Adobe xiv Acrobat 108 Acrobat Reader xiv adopt 311 adopting an object 311 ADT, abbreviation for “abstract data type”; see under that term. Advanced Curriculum principle 936 advertizer 912 advisory rule 667–668, 823 after 755, 782 Agammemnon 269 aggregation 258, 907 Agha, Gul 1033, 1034 Aho, Alfred V. 20, 100, 745 airline reservation system 676 airplane 521–522 AIRPLANE 521, 831 Algol 49, 64, 211, 396, 447, 876, 897, 1080, 1102, 1107, 1114, 1126, 1138 without further qualification, means Algol 60; see also the next two entries Algol W 64, 353, 455 Algol 68 61, 211 alias 440 aliasing 265–270, 277 in software and elsewhere 268–269 semantics 266–267 all-or-nothing garbage collection 306– 307 Alpha 1152 Alphard 99, 1079 AltaVista 78, 1060 Amako, Katsuya 922 America, Pierre 642, 1034 AMPHIBIOUS_VEHICLE 522 analysis 217, 271, 506, 725, 732–733, 903–922, 936, 941, 1162, 1198 and the software process 906 as negotiation 906 class 732–733 contribution of object technology 907 describing business rules 913 domain analysis 947 goals 903–906 methods 917–919 requirements on an analysis method and process 904–905 role in education 936, 941 tasks 903–904 traditional analysis methods 906 TV station programming example 907–913 analytical modeling 1122 ancestor 464, 500, 1193 anchor 601–602 artificial 1179–1187 anchor 1179, 1181 anchor (construct not retained) 631 anchor-equivalent 603, 631 anchored declaration 598–604, 618, 629, 630–633, 1177, 1178 a static mechanism 604 and covariance 630–633 and once functions 652–653 rules 603 when not to use 603–604 Anchoring approach to the covariance issue 630–633, 639, 642 and 454 between assertion clauses 337 and then 454, 570, 578 Andromaque 671 animals, distinguishing from plants 841 anomaly, see under inheritance anorexia 314 ANSI (American National Standards Institute) 1079, 1097, 1102, 1107, 1131 ANSWER 688, 694 antonomasia 269 ANY 580–582, 590, 592, 976, 1044, 1187 APL 754, 876 applet 956 application 1064 as a class 690–693, 1076 APPLICATION 688, 689, 690, 690– 692, 694, 734 application builder 1065, 1066, 1072, 1073, 1075, 1076 application developer 1064, 1066, 1067, 1068, 1070, 1071, 1072, 1073, 1076 applicative 145, 159, 351–353 ArchiText 715 argument 444–446, 651, 764–770 actual 89, 184, 261, 444–446 definition 444 formal 261, 444–446, 637 definition 444 polymorphic 637 ideal number of arguments for a feature 764–770 in out (in non-O-O approaches) 765 passing 444–446 see also attachment polymorphic 637 see also operand, option term used for routines (see also parameter) 322 to a command, see under command to a once routine 651 type redefinition 621–641 Ariane 4 410 Ariane 5 389, 410 Aristotle 843, 864, 866 ARITHMETIC 180 Arnold, Ken 222, 939, 1137, 1139 array 87, 325–328, 372–373, 470–472 as object 325–326 properties 326 slice 383 static (Fortran, Pascal) 45 two-dimensional 330 ARRAY 325, 330, 348, 372, 441, 470, 530, 540, 583, 584, 844, 882, 1165, 1188 array_down 123 ARRAY_TABLE 504 array_up 123 ARRAYED 846 ARRAYED_LIST 1165 ARRAYED_QUEUE 1188 ARRAYED_STACK 530, 539, 540, 837, 844, 845, 846 ARRAYED_TABLE 831 ARRAY2 330 arsonist 201–202 artificial anchor, see artificial under anchor ASCII 847, 850, 851 assembly 197, 198 automatic process 200, 1146 assembly language 1099 assertion 23, 334, 337–410, 569–580, 617, 779–780, 899, 907, 917, 930, 1193 and abstract data types 373–377 and analysis 907, 917 and encapsulation 779–780 and generalization 930 and inheritance 569–580
INDEX 1227 and redeclaration 481-482,570- constant203,644-645,884-885 Bauhin,Caspar 864 580 default value,see under BBC(British Broadcasting expressive power 399-403 initialization Corporation)315 for documentation 389-392 exporting 205-208 BCPL1106.1111 for writing correct software 389 in relational databases 1048 in C,C++etc.334 no precondition 579 be versus have 812-814 instruction 378-380 once?660 see also is-a relation monitoring at run time 392-399 redefined from function 491-492, Beck,Kent 740 not a control structure 346-347 579 Beethoven,Ludwig van 1141,1143 not for input checking 345-346 versus function 204 before 782 style rules 899 Austin Mini 811 behavior class 72,503-504,688,772, using a comment 399 AUTHORS 1048,1049 850,961,1002,1004,1010,1021, using in practice 389-398 automatic update 31 1029,1030,1031,1193 Assertion Argument rule 997 available 184,191,447 Bell Labs,see AT&T Bell Assertion Evaluation rule 402 available 299,316 Laboratories Assertion Redeclaration rule 573,578, AVL trees 72 bells and whistles 12 580 Avotins,Jon 1160 Ben-Ari,Mordechai 1033,1034 Assertion Violation rule 346 asset 521-522 axioms of an abstract data type 135- Bench1148-1149 137 Berkeley,see California Museum of ASSET 521 Paleontology assignment 448 B Bert,Didier xi,100,330 see also attachment Bertino,Elisa 1061 assignment attempt 29,478,591-595, B-tree 82 Beta1137,1139 617,1068,1134,1193 B.O.N.,see Business Object Notation Bezault,Eric 674,1160 rationale 591-592 Bachelard,Gaston 672-673 BI LINKABLE597,624,625,797, semantic specification 593-594 1165,1166 using properly 594-595 back782,790 Backslash 645,653 bibliography 1203-1224 associated state 692 Bielak,Richard 277,807,1034,1061 association 907 Backus,John 1102 Association Dijonnaise des BAG 857 Big Bang 194-196 Big Green Button 695 Tapeventres 161 Baillon,Henri 843 Association of Simula Users 732 balance 369,1046 Biggerstaff,Ted J.99 asynchronous call 966,1193 balance enquiry 980 binary distribution 79 AT&T Bell Laboratories 12,328,802, Balter,R.1034 binary search 380-381 1106,1132,1135 Bancilhon,Francois 1061 binary search tree 85,92,1188 Atkinson,Colin 1034 bandwidth 48 binary tree 1188 BINARY FILE 1174 Atkinson,M.1061 bank account56,364,368,369,472, BINARY SEARCH TREE 1188 attachment242-244,261-265,280, 491,492,513,1046,1047 444 BANK ACCOUNT 364,368,370 BINARY TREE97,604,1007,1188 and equality 264-265 baritone 1143 BINARY TREEI 1008 copy attachment 262-263 base class,see under class binding definition 262 Base libraries351,357,456,543,555, dynamic29,63,85,480-482,570- hybrid263-264,412,445 710,796,802,1146,1149,1150, 577,1071,1174,1175,1195 polymorphic 467-470 1152,1157,1165-1166 and assertions 570-580 reference attachment 262-263 Basic1099,1106 and efficiency 507-515 source 262 and interactive applications target 262 Basic Construct of object-oriented 1071 computation 183,611-612 attempt,see assignment attempt implementation 482 attribute 173-176,1193 basic triangle of computation 101- 103,964 overhead 509 adding or removing attributes to inC++1133 classes of persistent objects basic type,see basic under type static509-515,1202 1045-1046 basic store 1038 as optimization 509-515,1147 and postconditions 579 batch version of a system 108-109 static and dynamic binding in C++ client privileges 206-208 Baudoin,Claude 35,934,937 513-515
INDEX 1227 and redeclaration 481–482, 570– 580 expressive power 399–403 for documentation 389–392 for writing correct software 389 in C, C++ etc. 334 instruction 378–380 monitoring at run time 392–399 not a control structure 346–347 not for input checking 345–346 style rules 899 using a comment 399 using in practice 389–398 Assertion Argument rule 997 Assertion Evaluation rule 402 Assertion Redeclaration rule 573, 578, 580 Assertion Violation rule 346 asset 521–522 ASSET 521 assignment 448 see also attachment assignment attempt 29, 478, 591–595, 617, 1068, 1134, 1193 rationale 591–592 semantic specification 593–594 using properly 594–595 associated_state 692 association 907 Association Dijonnaise des Tapeventres 161 Association of Simula Users 732 asynchronous call 966, 1193 AT&T Bell Laboratories 12, 328, 802, 1106, 1132, 1135 Atkinson, Colin 1034 Atkinson, M. 1061 attachment 242–244, 261–265, 280, 444 and equality 264–265 copy attachment 262–263 definition 262 hybrid 263–264, 412, 445 polymorphic 467–470 reference attachment 262–263 source 262 target 262 attempt, see assignment attempt attribute 173–176, 1193 adding or removing attributes to classes of persistent objects 1045–1046 and postconditions 579 client privileges 206–208 constant 203, 644–645, 884–885 default value, see under initialization exporting 205–208 in relational databases 1048 no precondition 579 once? 660 redefined from function 491–492, 579 versus function 204 Austin Mini 811 AUTHORS 1048, 1049 automatic update 31 available 184, 191, 447 available 299, 316 AVL trees 72 Avotins, Jon 1160 axioms of an abstract data type 135– 137 B B-tree 82 B.O.N., see Business Object Notation Bachelard, Gaston 672–673 back 782, 790 Backslash 645, 653 Backus, John 1102 BAG 857 Baillon, Henri 843 balance 369, 1046 balance_enquiry 980 Balter, R. 1034 Bancilhon, François 1061 bandwidth 48 bank account 56, 364, 368, 369, 472, 491, 492, 513, 1046, 1047 BANK_ACCOUNT 364, 368, 370 baritone 1143 base class, see under class Base libraries 351, 357, 456, 543, 555, 710, 796, 802, 1146, 1149, 1150, 1152, 1157, 1165–1166 Basic 1099, 1106 Basic Construct of object-oriented computation 183, 611–612 basic triangle of computation 101– 103, 964 basic type, see basic under type basic_store 1038 batch version of a system 108–109 Baudoin, Claude 35, 934, 937 Bauhin, Caspar 864 BBC (British Broadcasting Corporation) 315 BCPL 1106, 1111 be versus have 812–814 see also is-a relation Beck, Kent 740 Beethoven, Ludwig van 1141, 1143 before 782 behavior class 72, 503–504, 688, 772, 850, 961, 1002, 1004, 1010, 1021, 1029, 1030, 1031, 1193 Bell Labs, see AT&T Bell Laboratories bells and whistles 12 Ben-Ari, Mordechai 1033, 1034 Bench 1148–1149 Berkeley, see California Museum of Paleontology Bert, Didier xi, 100, 330 Bertino, Elisa 1061 Beta 1137, 1139 Bezault, Éric 674, 1160 BI_LINKABLE 597, 624, 625, 797, 1165, 1166 bibliography 1203–1224 Bielak, Richard 277, 807, 1034, 1061 Big Bang 194–196 Big Green Button 695 Biggerstaff, Ted J. 99 binary distribution 79 binary search 380–381 binary search tree 85, 92, 1188 binary tree 1188 BINARY_FILE 1174 BINARY_SEARCH_TREE 1188 BINARY_TREE 97, 604, 1007, 1188 BINARY_TREE1 1008 binding dynamic 29, 63, 85, 480–482, 570– 577, 1071, 1174, 1175, 1195 and assertions 570–580 and efficiency 507–515 and interactive applications 1071 implementation 482 overhead 509 in C++ 1133 static 509–515, 1202 as optimization 509–515, 1147 static and dynamic binding in C++ 513–515
1228 INDEX versus typing 619-621 browser 1153 Obfuscated 876 BIRD627,841.843 browsing32,1156-1159 object-oriented extensions 1131- Birtwistle,Graham M.35,1138 Bruce,Kim B.629,642 1137,1138 block (Simula)1123 Bruno,John 1034 structure type 1109 block structure 49-50,281,282 bubble 1150 C++35,46,56,100,208,209,211, blocking (in short forms)996 Budde,Reinhardt 642 239,278,294,295,305,306,310, 334,443,444,513-515,548,566, blocking object 996 buffer990-992,1021-1022 585,616,620,628,668,670,742, Bobrow,Daniel G.1139 BUFFER 980,981 876,1050,1056,1057,1099,1106, body BUFFER ACCESS 1021 1107,1132-1135,1136,1144,1161, of class in Simula 1118 BUFFER MANAGER (Ada)1091 1167 Boehm,Barry W.19,20,878 Buffon,Georges-Louis Leclerc, and memory management 294, boldface 900 Comte de 843,865 295,305,306,310 boldface italics 900 bug18,409 and novariance 628 BON,see Business Object Notation Build graphical application builder assessment 1135 Booch,Grady744,918,922,1097, 1076,1149,1150,1160 binding policy 513-515 1135 bulimia 314 complexity 1134-1135 book221-222,277 Bull 1079 concurrency 1033 Bookman font 901 Burstall,Rod M.160 Obfuscated 876 BOOS1048.1049 Business Card principle 990,1020, wrapping legacy C++code 1144 BOOKI 221 CABIN BUTTON 1017 1031,1035,1036 BOOK2 223 business card scheme 974,975,984, cache or recently accessed objects 1056 BOOK3 226 989,990,993,996,1002,1011 Business Object Notation 271,464, CAD-CAM(computer-aided design B0 OLEAN171,220,644,1172 517,914,919-922,930,1150 and manufacturing of engineering BOOLEAN MATRICES (Ada)1180 products)1051,1054 BOOLEAN MATRIX 1179 business rule 913 calculator 522 BOOLEAN RING 1179 for a TV station 913 BUTLER 1005 California Museum of Paleontology BOOLEAN RING ELEMENT 1180 (Berkeley)864,865,868 booting procedure 197 button533,1071,1074 cal24,183-184,447-448 Borges,Jorge-Luis 18,672 BUTTON 511,1017 asynchronous 966,1193 Borland211,515,1130,1143 buttonhole 533-534 callingobject-oriented mechanisms Borland Pascal 1101,1131,1137 Buxton,John M.99 from C and other languages 1144 boundary cases 353 bytecode956,1136,1145,1147,1149 chain 418 bounded queue,see bounded under dual semantics under concurrency queue C 966 BOUNDED ARITY TREE 604 external 311,439-444 BOUNDED BUFFER 967,968, C49,56,61,89,176,211,225,230, and garbage collection 311 265,266,269,270,278,282,285, function 453 986,992,993,994,996,1022,1031 306,315,327,328,333,334,386, optimizing 208-209 BOUNDED LIST 710 439,441,442,443,447,507,509, qualified 186-187,447 BOUNDED OUEUE 992,994, 510,670,714,716,737,742,753, separate 967 1031 758.876,877,891,956,1056,1065, synchronous 966,1202 BOUNDED STACK 576 1067,1106-1111,1130,1131-1137, target 184 Boussard,Jean-Claude 948 1144,1146,1161 unqualified 186-187,447 Bouy,Reynald 1160 and exceptions 414-415 callback 440,505 BOX 857 and memory management 295 Campbell,Roy H.1033 Box symbol(Ada)1083 calling object-oriented mechanisms can-act-as-a relation 497 B0Y623,634 from C 1144 Cancel button 1074 Brachman,Ronald J.517 compilation 1146 Cannon,H.I.1139 Brandon,D.H.878 efficiency 510 emulating object technology Canonical Reduction rule 158 Breu,Ruth and Michael 863 1106-1111,1112 Capability Maturity Model 55 Bright,Walter 515,670 history1106-1107 capacity 710,882 Britannicus 1135 need for comments 891 CAR 810
1228 INDEX versus typing 619–621 BIRD 627, 841, 843 Birtwistle, Graham M. 35, 1138 block (Simula) 1123 block structure 49–50, 281, 282 blocking (in short forms) 996 blocking object 996 Bobrow, Daniel G. 1139 body of class in Simula 1118 Boehm, Barry W. 19, 20, 878 boldface 900 boldface italics 900 BON, see Business Object Notation Booch, Grady 744, 918, 922, 1097, 1135 book 221–222, 277 Bookman font 901 BOOKS 1048, 1049 BOOK1 221 BOOK2 223 BOOK3 226 BOOLEAN 171, 220, 644, 1172 BOOLEAN_MATRICES (Ada) 1180 BOOLEAN_MATRIX 1179 BOOLEAN_RING 1179 BOOLEAN_RING_ELEMENT 1180 booting procedure 197 Borges, Jorge-Luis 18, 672 Borland 211, 515, 1130, 1143 Borland Pascal 1101, 1131, 1137 boundary cases 353 bounded queue, see bounded under queue BOUNDED_ARITY_TREE 604 BOUNDED_BUFFER 967, 968, 986, 992, 993, 994, 996, 1022, 1031 BOUNDED_LIST 710 BOUNDED_QUEUE 992, 994, 1031 BOUNDED_STACK 576 Boussard, Jean-Claude 948 Bouy, Reynald 1160 BOX 857 Box symbol (Ada) 1083 BOY 623, 634 Brachman, Ronald J. 517 Brandon, D.H. 878 Breu, Ruth and Michael 863 Bright, Walter 515, 670 Britannicus 1135 browser 1153 browsing 32, 1156–1159 Bruce, Kim B. 629, 642 Bruno, John 1034 bubble 1150 Budde, Reinhardt 642 buffer 990–992, 1021–1022 BUFFER 980, 981 BUFFER_ACCESS 1021 BUFFER_MANAGER (Ada) 1091 Buffon, Georges-Louis Leclerc, Comte de 843, 865 bug 18, 409 Build graphical application builder 1076, 1149, 1150, 1160 bulimia 314 Bull 1079 Burstall, Rod M. 160 Business Card principle 990, 1020, 1031, 1035, 1036 business card scheme 974, 975, 984, 989, 990, 993, 996, 1002, 1011 Business Object Notation 271, 464, 517, 914, 919–922, 930, 1150 business rule 913 for a TV station 913 BUTLER 1005 button 533, 1071, 1074 BUTTON 511, 1017 buttonhole 533–534 Buxton, John M. 99 bytecode 956, 1136, 1145, 1147, 1149 C C 49, 56, 61, 89, 176, 211, 225, 230, 265, 266, 269, 270, 278, 282, 285, 306, 315, 327, 328, 333, 334, 386, 439, 441, 442, 443, 447, 507, 509, 510, 670, 714, 716, 737, 742, 753, 758, 876, 877, 891, 956, 1056, 1065, 1067, 1106–1111, 1130, 1131–1137, 1144, 1146, 1161 and exceptions 414–415 and memory management 295 calling object-oriented mechanisms from C 1144 compilation 1146 efficiency 510 emulating object technology 1106–1111, 1112 history 1106–1107 need for comments 891 Obfuscated 876 object-oriented extensions 1131– 1137, 1138 structure type 1109 C++ 35, 46, 56, 100, 208, 209, 211, 239, 278, 294, 295, 305, 306, 310, 334, 443, 444, 513–515, 548, 566, 585, 616, 620, 628, 668, 670, 742, 876, 1050, 1056, 1057, 1099, 1106, 1107, 1132–1135, 1136, 1144, 1161, 1167 and memory management 294, 295, 305, 306, 310 and novariance 628 assessment 1135 binding policy 513–515 complexity 1134–1135 concurrency 1033 Obfuscated 876 wrapping legacy C++ code 1144 CABIN_BUTTON 1017 cache or recently accessed objects 1056 CAD-CAM (computer-aided design and manufacturing of engineering products) 1051, 1054 calculator 522 California Museum of Paleontology (Berkeley) 864, 865, 868 call 24, 183–184, 447–448 asynchronous 966, 1193 calling object-oriented mechanisms from C and other languages 1144 chain 418 dual semantics under concurrency 966 external 311, 439–444 and garbage collection 311 function 453 optimizing 208–209 qualified 186–187, 447 separate 967 synchronous 966, 1202 target 184 unqualified 186–187, 447 callback 440, 505 Campbell, Roy H. 1033 can-act-as-a relation 497 Cancel button 1074 Cannon, H. I. 1139 Canonical Reduction rule 158 Capability Maturity Model 55 capacity 710, 882 CAR 810
INDEX 1229 car metaphor for software 672 Changing Availability or Type 638 general heuristics 731-740 CAR OWNER 810.845.863 CHARACTER171,220,565,644 the general method 741-743 Cardelli,Luca 629,641,642 characteristic function 139 through reuse 740-741 Camegie-Mellon University 1079 cheating clients 572 flat form,see flat form Caromel,Denis 987,1033 check 378-380 generating,see generator Carriero,Nicholas 1033 check instruction 378-380,452 generic320-325,1197 Carroll,Martin 328 Check instruction 432 how big?770-774 implementation 733-734 cartesian product 133,134,149,150, checking input values 345-346 deferred 734 160,1052 Chen,Peter P.S.120 indexing clause 78 cartesian ready 760 Cheshire Cat 733 interface 747-808,1197 Case analysis and design workbench choice 686 documenting 804 711,805,1150 choose initial 691 recommended style 752-754 Case instruction 449 CHORUS 1034 invariant,see class invariant CASE tools 271 CII-Honeywell Bull 1079 is a new class necessary?721-723 case,see letter case CIRCLE329,467,483,826,838, missing important classes 723-724 Cassandra 671 858,886 modeling external objects 732-733 cast306,618.620,628,668.670, CIRCULAR LIST 710 name as class descriptor 1043 1133 CITY497,729 naming 879 Castagna,Giuseppe 629,642 cladistics 865,866-868 nesting,see nesting casual approach,see under memory cladogram 867 no-command 729-730 management Clark,David 939 obsolete 802-803 CAT(Changing Availability or Type) clash,see name clash parameterized,same as generic 638 class23,165-216,1194 passive 776-779 catalog of graphical abstractions 1066 abstract,same as deferred reason for rejecting classes 726- abstracting 860 731 catcall 636-638 abstraction 860 rejecting inadequate classes 725 definition 638 analysis 732-733 role169-170 Catcall approach to the covariance root,see root class issue 639,642 as module and type 170,185 set 196 Catcall type rule 637,639 avoiding useless classes 720-721 simple example 172-177 base class,see under type categories ofobject orientation criteria basic conventions 177-181 single routine 728 22 size770-774 behavior.see behavior class Cattell,R.G.1061 categories 731-732 definition 771 CCS(Communicating Concurrent consistency 771-773 flat 771 Systems)1033 correctness,see correctness of a immediate 771 CD-ROM accompanying this book class incremental 771 viii,xiv,1043,1076,1165 deferred30,142,143-144,165, small 714-715 Cecil library 1144 482-494,500-506,518.686-688 specification 1201 11741188,1195 the ideal class 730-731 CELL526,604,607 definition 486 universal 580-582 Cepage 715 role143-144,500-506 validity,see class validity Ceres 269 definition 142 versioning 1054 Ceyx1131,1139 descriptor,see class descriptor versus record 150-151 CGI script 1152 design 734-735 versus type 324-325 chain do not confuse with object 165- wrapper,see wrapper call chain,see chain under call 169,216 class descriptor CHAIN 567 does not“perform”something for C implementation of object- oriented concepts 1110-1111 challenger999,1000,1027,1031 726-727 effective142,143,165,1195 for schema evolution in persistent Chambers,Craig 215,1139 definition 486 object structures 1043 change in software development 81- expanded 256 Class Elicitation principle 725 82 factoring 860 class invariant 118,146,363-410, change or redo dilemma 59 finding 117 413,465,570,579,647,784,785 change,rule of 814-816 finding the classes 719-746,754 952,982-983,999,1022-1024,1194
INDEX 1229 car metaphor for software 672 CAR_OWNER 810, 845, 863 Cardelli, Luca 629, 641, 642 Carnegie-Mellon University 1079 Caromel, Denis 987, 1033 Carriero, Nicholas 1033 Carroll, Martin 328 cartesian product 133, 134, 149, 150, 160, 1052 cartesian_ready 760 Case analysis and design workbench 711, 805, 1150 Case instruction 449 CASE tools 271 case, see letter case Cassandra 671 cast 306, 618, 620, 628, 668, 670, 1133 Castagna, Giuseppe 629, 642 casual approach, see under memory management CAT (Changing Availability or Type) 638 catalog of graphical abstractions 1066 catcall 636–638 definition 638 Catcall approach to the covariance issue 639, 642 Catcall type rule 637, 639 categories of object orientation criteria 22 Cattell, R.G. 1061 CCS (Communicating Concurrent Systems) 1033 CD-ROM accompanying this book viii, xiv, 1043, 1076, 1165 Cecil library 1144 CELL 526, 604, 607 Cépage 715 Ceres 269 Ceyx 1131, 1139 CGI script 1152 chain call chain, see chain under call CHAIN 567 challenger 999, 1000, 1027, 1031 Chambers, Craig 215, 1139 change in software development 81– 82 change or redo dilemma 59 change, rule of 814–816 Changing Availability or Type 638 CHARACTER 171, 220, 565, 644 characteristic function 139 cheating clients 572 check 378–380 check instruction 378–380, 452 Check_instruction 432 checking input values 345–346 Chen, Peter P.S. 120 Cheshire Cat 733 choice 686 choose_initial 691 CHORUS 1034 CII-Honeywell Bull 1079 CIRCLE 329, 467, 483, 826, 838, 858, 886 CIRCULAR_LIST 710 CITY 497, 729 cladistics 865, 866–868 cladogram 867 Clark, David 939 clash, see name clash class 23, 165–216, 1194 abstract, same as deferred abstracting 860 abstraction 860 analysis 732–733 as module and type 170, 185 avoiding useless classes 720–721 base class, see under type basic conventions 177–181 behavior, see behavior class categories 731–732 consistency 771–773 correctness, see correctness of a class deferred 30, 142, 143–144, 165, 482–494, 500–506, 518, 686–688, 1174–1188, 1195 definition 486 role 143–144, 500–506 definition 142 descriptor, see class descriptor design 734–735 do not confuse with object 165– 169, 216 does not “perform” something 726–727 effective 142, 143, 165, 1195 definition 486 expanded 256 factoring 860 finding 117 finding the classes 719–746, 754 general heuristics 731–740 the general method 741–743 through reuse 740–741 flat form, see flat form generating, see generator generic 320–325, 1197 how big? 770–774 implementation 733–734 deferred 734 indexing clause 78 interface 747–808, 1197 documenting 804 recommended style 752–754 invariant, see class invariant is a new class necessary? 721–723 missing important classes 723–724 modeling external objects 732–733 name as class descriptor 1043 naming 879 nesting, see nesting no-command 729–730 obsolete 802–803 parameterized, same as generic passive 776–779 reason for rejecting classes 726– 731 rejecting inadequate classes 725 role 169–170 root, see root class set 196 simple example 172–177 single routine 728 size 770–774 definition 771 flat 771 immediate 771 incremental 771 small 714–715 specification 1201 the ideal class 730–731 universal 580–582 validity, see class validity versioning 1054 versus record 150–151 versus type 324–325 wrapper, see wrapper class descriptor for C implementation of objectoriented concepts 1110–1111 for schema evolution in persistent object structures 1043 Class Elicitation principle 725 class invariant 118, 146, 363–410, 413, 465, 570, 579, 647, 784, 785, 952, 982–983, 999, 1022–1024, 1194