The very first step in incorporating serviceability into a server is to analyze it into functionally discrete modules (called subcomponents), each of which will usually be associated with a separate set of messages.
The program itself is regarded as the component. The main significance of subcomponents is that each one uses a separate part of the message table generated by sams, and every message is identified both by component and by subcomponent; message routing and the level of debug messaging can be specified separately by subcomponent.