Programming Specifications in CAL

Components have been used informally for systems engineering as the blocks in block diagrams, since long before computers, let alone UML, ever existed. Indeed computers are generally designed using block diagrams. A block diagram, such as that shown in Figure 1, comprises boxes representing functional elements and arcs representing connecting communication paths. In contrast to UML diagrams, arcs connect at named ports identifying specific interfaces and invocation mechanisms.