The following routines and objects should, wherever possible, be placed in dynamic link libraries:
The placement of such items in dynamic link libraries enhances their independence from the application's code, enabling changes to be made without affecting the code or requiring application maintenance. In addition, placement in dynamic link libraries facilitates reuse of such items by multiple applications. It is thus possible to achieve object code reuse at both the application object and at the subroutine level.
To this end, all items placed in dynamic link libraries should have their external interfaces documented, baselined and included in an Interface Control Document, for subsequent use as development library routines. It is the responsibility of the development organization to establish procedures for the testing and acceptance of reusable code modules into libraries from which they may subsequently be accessed by application developers, and the creation of a repository of documentation detailing the application objects that are available, their behavior and external interfaces.