Knowledge (XXG)

Component-based software engineering

Source đź“ť

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

Index

Components-based development
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

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

↑