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:(
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.