Knowledge (XXG)

Component-based software engineering

Source đź“ť

71: 755: 745: 61:
To find the right level of component granularity, software architects have to continuously iterate their component designs with developers. Architects need to take into account user requirements, responsibilities and architectural characteristics.
885: 791: 855: 804: 954: 231: 1620: 889: 97:
is shown as a rectangle, and an interface is shown as a lollipop to indicate a provided interface and as a socket to indicate consumption of an interface.
784: 1018: 1368: 1230: 1374: 777: 614: 543: 1625: 1307: 437: 1027: 224: 172: 417: 284: 269: 152: 132: 100: 70: 1399: 1079: 1023: 82:
For large-scale systems developed by large teams, a disciplined culture and process is required to achieve the benefits of CBSE.
1259: 1132: 1063: 998: 921: 47: 1630: 1437: 1200: 830: 748: 573: 500: 490: 335: 264: 83: 624: 1635: 1215: 1205: 983: 758: 553: 495: 217: 1599: 1579: 1509: 1452: 1414: 1404: 1364: 1289: 1225: 1195: 1122: 1111: 1008: 988: 963: 926: 563: 422: 289: 1554: 1317: 1284: 1179: 1155: 1117: 1097: 993: 902: 880: 865: 485: 480: 294: 1501: 1487: 1394: 1354: 1279: 1185: 1165: 1032: 911: 845: 680: 528: 523: 475: 452: 432: 1594: 1359: 1269: 1249: 1235: 685: 675: 90: 75: 1574: 1534: 1477: 1409: 1147: 978: 588: 387: 370: 279: 1584: 1564: 1505: 1492: 1472: 1299: 1036: 940: 898: 538: 382: 1544: 1519: 1513: 1457: 1419: 1107: 1102: 1054: 949: 850: 822: 813: 593: 350: 345: 55: 1446: 1442: 1384: 1336: 906: 412: 365: 1589: 1569: 1529: 1331: 1190: 1059: 1046: 800: 710: 548: 407: 397: 309: 254: 240: 35: 1524: 1462: 1274: 1254: 1240: 972: 840: 835: 730: 715: 583: 447: 355: 299: 1341: 1294: 1264: 1210: 1069: 968: 860: 769: 720: 360: 188: 94: 43: 1497: 1389: 1244: 1220: 1160: 1127: 1089: 1074: 1013: 634: 392: 168: 148: 128: 78:: Checkout processes a customer's order, which requires the other one to bill the credit card. 1379: 1311: 1175: 916: 705: 649: 427: 319: 314: 192: 1429: 1303: 1169: 870: 725: 578: 558: 442: 304: 39: 1481: 1137: 1003: 629: 533: 274: 1614: 1467: 609: 377: 644: 639: 568: 1349: 51: 654: 619: 402: 104: 209: 259: 459: 125:
Component-Based Software Engineering: Putting the Pieces Together
16:
Engineering focused on building software from reusable components
670: 773: 213: 193:"Why Software Reuse has Failed and How to Make It Work for You" 165:
Fundamentals of Software Architecture: An Engineering Approach
143:
Clemens Szyperski, Dominik Gruntz, Stephan Murer (2002).
147:. 2nd ed. ACM Press - Pearson Educational, London 2002 145:
Component Software: Beyond Object-Oriented Programming
1543: 1428: 1330: 1146: 1088: 1045: 948: 939: 879: 821: 812: 698: 663: 602: 516: 509: 468: 328: 247: 123:George T. Heineman, William T. Councill (2001). 785: 225: 89:The system can be designed visually with the 8: 127:. Addison-Wesley Professional, Reading 2001 945: 818: 792: 778: 770: 513: 232: 218: 210: 856:Programming in the large and in the small 103:is for components that interact with the 423:Software development process/methodology 69: 116: 86:are often utilized in large systems. 7: 1621:Component-based software engineering 744: 438:Software verification and validation 341:Component-based software engineering 20:Component-based software engineering 14: 418:Software configuration management 285:Search-based software engineering 270:Experimental software engineering 101:Component-based usability testing 1400:Partitioned global address space 754: 753: 743: 74:An example of two components in 265:Empirical software engineering 1: 927:Uniform Function Call Syntax 290:Site reliability engineering 1626:Object-oriented programming 1395:Parallel programming models 1369:Concurrent constraint logic 295:Social software engineering 28:component-based development 1652: 1488:Metalinguistic abstraction 1355:Automatic mutual exclusion 433:Software quality assurance 1360:Choreographic programming 739: 91:Unified Modeling Language 38:that aims to construct a 1410:Relativistic programming 589:Model-driven engineering 388:Functional specification 371:Software incompatibility 280:Requirements engineering 167:. O'Reilly Media. 2020. 383:Enterprise architecture 1420:Structured concurrency 805:Comparison by language 594:Round-trip engineering 351:Backward compatibility 346:Software compatibility 84:Third-party components 79: 56:separation of concerns 54:. This emphasizes the 1631:Software architecture 1385:Multitier programming 1201:Interface description 801:Programming paradigms 413:Software architecture 366:Forward compatibility 73: 1636:Software engineering 711:Computer engineering 408:Software archaeology 398:Programming paradigm 310:Software maintenance 255:Computer programming 241:Software engineering 36:software engineering 1525:Self-modifying code 1133:Probabilistic logic 1064:Functional reactive 1019:Expression-oriented 973:Partial application 731:Systems engineering 716:Information science 496:Service orientation 448:Structured analysis 356:Compatibility layer 300:Software deployment 1438:Attribute-oriented 1211:List comprehension 1156:Algebraic modeling 969:Anonymous function 861:Design by contract 831:Jackson structures 721:Project management 486:Object orientation 453:Essential analysis 361:Compatibility mode 189:Douglas C. Schmidt 80: 58:among components. 1608: 1607: 1498:Program synthesis 1390:Organic computing 1326: 1325: 1231:Non-English-based 1206:Language-oriented 984:Purely functional 935: 934: 767: 766: 694: 693: 635:Information model 539:Incremental model 393:Modeling language 46:that are loosely- 34:), is a style of 1643: 1510:by demonstration 1415:Service-oriented 1405:Process-oriented 1380:Macroprogramming 1365:Concurrent logic 1236:Page description 1226:Natural language 1196:Grammar-oriented 1123:Nondeterministic 1112:Constraint logic 1014:Point-free style 1009:Functional logic 946: 917:Immutable object 836:Block-structured 819: 794: 787: 780: 771: 757: 756: 747: 746: 706:Computer science 514: 428:Software quality 320:Systems analysis 315:Software testing 234: 227: 220: 211: 204: 203: 201: 199: 185: 179: 178: 161: 155: 141: 135: 121: 1651: 1650: 1646: 1645: 1644: 1642: 1641: 1640: 1611: 1610: 1609: 1604: 1546: 1539: 1430:Metaprogramming 1424: 1340: 1335: 1322: 1304:Graph rewriting 1142: 1118:Inductive logic 1098:Abductive logic 1084: 1041: 1004:Dependent types 952: 931: 903:Prototype-based 883: 881:Object-oriented 875: 871:Nested function 866:Invariant-based 808: 798: 768: 763: 735: 726:Risk management 690: 659: 598: 579:Waterfall model 549:Prototype model 544:Iterative model 505: 481:Aspect-oriented 464: 443:Software system 324: 305:Software design 243: 238: 208: 207: 197: 195: 187: 186: 182: 175: 163: 162: 158: 142: 138: 122: 118: 113: 68: 40:software system 26:), also called 17: 12: 11: 5: 1649: 1647: 1639: 1638: 1633: 1628: 1623: 1613: 1612: 1606: 1605: 1603: 1602: 1597: 1592: 1587: 1582: 1577: 1572: 1567: 1562: 1557: 1551: 1549: 1541: 1540: 1538: 1537: 1532: 1527: 1522: 1517: 1495: 1490: 1485: 1475: 1470: 1465: 1460: 1455: 1450: 1440: 1434: 1432: 1426: 1425: 1423: 1422: 1417: 1412: 1407: 1402: 1397: 1392: 1387: 1382: 1377: 1372: 1362: 1357: 1352: 1346: 1344: 1328: 1327: 1324: 1323: 1321: 1320: 1315: 1300:Transformation 1297: 1292: 1287: 1282: 1277: 1272: 1267: 1262: 1257: 1252: 1247: 1238: 1233: 1228: 1223: 1218: 1213: 1208: 1203: 1198: 1193: 1188: 1186:Differentiable 1183: 1173: 1166:Automata-based 1163: 1158: 1152: 1150: 1144: 1143: 1141: 1140: 1135: 1130: 1125: 1120: 1115: 1105: 1100: 1094: 1092: 1086: 1085: 1083: 1082: 1077: 1072: 1067: 1057: 1051: 1049: 1043: 1042: 1040: 1039: 1033:Function-level 1030: 1021: 1016: 1011: 1006: 1001: 996: 991: 986: 981: 976: 966: 960: 958: 943: 937: 936: 933: 932: 930: 929: 924: 919: 914: 909: 895: 893: 877: 876: 874: 873: 868: 863: 858: 853: 848: 846:Non-structured 843: 838: 833: 827: 825: 816: 810: 809: 799: 797: 796: 789: 782: 774: 765: 764: 762: 761: 751: 740: 737: 736: 734: 733: 728: 723: 718: 713: 708: 702: 700: 699:Related fields 696: 695: 692: 691: 689: 688: 683: 678: 673: 667: 665: 661: 660: 658: 657: 652: 647: 642: 637: 632: 630:Function model 627: 622: 617: 612: 606: 604: 600: 599: 597: 596: 591: 586: 581: 576: 571: 566: 561: 556: 551: 546: 541: 536: 534:Executable UML 531: 526: 520: 518: 511: 507: 506: 504: 503: 498: 493: 488: 483: 478: 472: 470: 466: 465: 463: 462: 457: 456: 455: 445: 440: 435: 430: 425: 420: 415: 410: 405: 400: 395: 390: 385: 380: 375: 374: 373: 368: 363: 358: 353: 343: 338: 332: 330: 326: 325: 323: 322: 317: 312: 307: 302: 297: 292: 287: 282: 277: 275:Formal methods 272: 267: 262: 257: 251: 249: 245: 244: 239: 237: 236: 229: 222: 214: 206: 205: 180: 174:978-1492043454 173: 156: 136: 115: 114: 112: 109: 67: 66:Considerations 64: 15: 13: 10: 9: 6: 4: 3: 2: 1648: 1637: 1634: 1632: 1629: 1627: 1624: 1622: 1619: 1618: 1616: 1601: 1598: 1596: 1593: 1591: 1588: 1586: 1583: 1581: 1578: 1576: 1573: 1571: 1570:Data-oriented 1568: 1566: 1563: 1561: 1558: 1556: 1553: 1552: 1550: 1548: 1542: 1536: 1533: 1531: 1528: 1526: 1523: 1521: 1518: 1515: 1511: 1507: 1503: 1499: 1496: 1494: 1491: 1489: 1486: 1483: 1479: 1476: 1474: 1471: 1469: 1468:Homoiconicity 1466: 1464: 1461: 1459: 1456: 1454: 1451: 1448: 1444: 1441: 1439: 1436: 1435: 1433: 1431: 1427: 1421: 1418: 1416: 1413: 1411: 1408: 1406: 1403: 1401: 1398: 1396: 1393: 1391: 1388: 1386: 1383: 1381: 1378: 1376: 1375:Concurrent OO 1373: 1370: 1366: 1363: 1361: 1358: 1356: 1353: 1351: 1348: 1347: 1345: 1343: 1338: 1333: 1329: 1319: 1316: 1313: 1309: 1305: 1301: 1298: 1296: 1293: 1291: 1288: 1286: 1283: 1281: 1278: 1276: 1273: 1271: 1270:Set-theoretic 1268: 1266: 1263: 1261: 1258: 1256: 1253: 1251: 1250:Probabilistic 1248: 1246: 1242: 1239: 1237: 1234: 1232: 1229: 1227: 1224: 1222: 1219: 1217: 1214: 1212: 1209: 1207: 1204: 1202: 1199: 1197: 1194: 1192: 1189: 1187: 1184: 1181: 1177: 1174: 1171: 1167: 1164: 1162: 1159: 1157: 1154: 1153: 1151: 1149: 1145: 1139: 1136: 1134: 1131: 1129: 1126: 1124: 1121: 1119: 1116: 1113: 1109: 1106: 1104: 1101: 1099: 1096: 1095: 1093: 1091: 1087: 1081: 1078: 1076: 1073: 1071: 1068: 1065: 1061: 1058: 1056: 1053: 1052: 1050: 1048: 1044: 1038: 1034: 1031: 1029: 1028:Concatenative 1025: 1022: 1020: 1017: 1015: 1012: 1010: 1007: 1005: 1002: 1000: 997: 995: 992: 990: 987: 985: 982: 980: 977: 974: 970: 967: 965: 962: 961: 959: 956: 951: 947: 944: 942: 938: 928: 925: 923: 920: 918: 915: 913: 910: 908: 904: 900: 897: 896: 894: 891: 887: 882: 878: 872: 869: 867: 864: 862: 859: 857: 854: 852: 849: 847: 844: 842: 839: 837: 834: 832: 829: 828: 826: 824: 820: 817: 815: 811: 806: 802: 795: 790: 788: 783: 781: 776: 775: 772: 760: 752: 750: 742: 741: 738: 732: 729: 727: 724: 722: 719: 717: 714: 712: 709: 707: 704: 703: 701: 697: 687: 684: 682: 679: 677: 674: 672: 669: 668: 666: 662: 656: 653: 651: 650:Systems model 648: 646: 643: 641: 638: 636: 633: 631: 628: 626: 623: 621: 618: 616: 613: 611: 608: 607: 605: 601: 595: 592: 590: 587: 585: 582: 580: 577: 575: 572: 570: 567: 565: 562: 560: 557: 555: 552: 550: 547: 545: 542: 540: 537: 535: 532: 530: 527: 525: 522: 521: 519: 517:Developmental 515: 512: 508: 502: 499: 497: 494: 492: 489: 487: 484: 482: 479: 477: 474: 473: 471: 467: 461: 458: 454: 451: 450: 449: 446: 444: 441: 439: 436: 434: 431: 429: 426: 424: 421: 419: 416: 414: 411: 409: 406: 404: 401: 399: 396: 394: 391: 389: 386: 384: 381: 379: 378:Data modeling 376: 372: 369: 367: 364: 362: 359: 357: 354: 352: 349: 348: 347: 344: 342: 339: 337: 334: 333: 331: 327: 321: 318: 316: 313: 311: 308: 306: 303: 301: 298: 296: 293: 291: 288: 286: 283: 281: 278: 276: 273: 271: 268: 266: 263: 261: 258: 256: 253: 252: 250: 246: 242: 235: 230: 228: 223: 221: 216: 215: 212: 194: 190: 184: 181: 176: 170: 166: 160: 157: 154: 153:0-201-74572-0 150: 146: 140: 137: 134: 133:0-201-70485-4 130: 126: 120: 117: 110: 108: 106: 102: 98: 96: 92: 87: 85: 77: 72: 65: 63: 59: 57: 53: 49: 45: 41: 37: 33: 29: 25: 21: 1575:Event-driven 1559: 979:Higher-order 907:Object-based 645:Object model 640:Metamodeling 569:Spiral model 469:Orientations 340: 196:. Retrieved 183: 164: 159: 144: 139: 124: 119: 99: 93:(UML). Each 88: 81: 60: 31: 27: 23: 19: 18: 1585:Intentional 1565:Data-driven 1547:of concerns 1506:Inferential 1493:Multi-stage 1473:Interactive 1350:Actor-based 1337:distributed 1280:Stack-based 1080:Synchronous 1037:Value-level 1024:Applicative 941:Declarative 899:Class-based 336:Abstraction 1615:Categories 1560:Components 1545:Separation 1520:Reflective 1514:by example 1458:Extensible 1332:Concurrent 1308:Production 1295:Templating 1275:Simulation 1260:Scientific 1180:Spacecraft 1108:Constraint 1103:Answer set 1055:Flow-based 955:comparison 950:Functional 922:Persistent 886:comparison 851:Procedural 823:Structured 814:Imperative 655:View model 620:Data model 111:References 44:components 1447:Inductive 1443:Automatic 1265:Scripting 964:Recursive 664:Languages 95:component 1600:Subjects 1590:Literate 1580:Features 1535:Template 1530:Symbolic 1502:Bayesian 1482:Hygienic 1342:parallel 1221:Modeling 1216:Low-code 1191:End-user 1128:Ontology 1060:Reactive 1047:Dataflow 759:Category 625:ER model 491:Ontology 403:Software 329:Concepts 105:end user 52:reusable 1555:Aspects 1463:Generic 1453:Dynamic 1312:Pattern 1290:Tactile 1255:Quantum 1245:filters 1176:Command 1075:Streams 1070:Signals 841:Modular 749:Commons 574:V-model 48:coupled 1318:Visual 1285:System 1170:Action 994:Strict 510:Models 260:DevOps 248:Fields 198:14 May 171:  151:  131:  1595:Roles 1478:Macro 1241:Pipes 1161:Array 1138:Query 1090:Logic 999:GADTs 989:Total 912:Agent 686:SysML 610:SPICE 603:Other 564:Scrum 524:Agile 476:Agile 460:CI/CD 42:from 1243:and 890:list 671:IDEF 615:CMMI 501:SDLC 200:2024 169:ISBN 149:ISBN 129:ISBN 50:and 24:CBSE 1148:DSL 681:USL 676:UML 554:RAD 529:EUP 76:UML 32:CBD 1617:: 1512:, 1508:, 1504:, 1310:, 1306:, 1035:, 1026:, 905:, 901:, 888:, 584:XP 559:UP 191:. 107:. 1516:) 1500:( 1484:) 1480:( 1449:) 1445:( 1371:) 1367:( 1339:, 1334:, 1314:) 1302:( 1182:) 1178:( 1172:) 1168:( 1114:) 1110:( 1066:) 1062:( 975:) 971:( 957:) 953:( 892:) 884:( 807:) 803:( 793:e 786:t 779:v 233:e 226:t 219:v 202:. 177:. 30:( 22:(

Index

software engineering
software system
components
coupled
reusable
separation of concerns

UML
Third-party components
Unified Modeling Language
component
Component-based usability testing
end user
ISBN
0-201-70485-4
ISBN
0-201-74572-0
ISBN
978-1492043454
Douglas C. Schmidt
"Why Software Reuse has Failed and How to Make It Work for You"
v
t
e
Software engineering
Computer programming
DevOps
Empirical software engineering
Experimental software engineering
Formal methods

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑