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:
1440:
1314:
1180:
881:
736:
589:
569:
453:
315:
50:
1492:
1148:
1014:
640:
544:
285:
1625:
1478:
620:
388:
655:
650:
579:
17:
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
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.
18:Component software
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:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.