To satisfy the needs identified in the requirement analysis, a multi-tiered approach to the design is preferred. In particular, the components that effect the necessary changes to the system configuration based on actions taken within the UMS should be isolated from the rest of the system. In this way, a migration to a new server or a new operating system release will require changes to these components without incurring the complete system rewrite that the current migration entails.
At the same time, where multiple procedures require the same function, a list of shared libraries should encapsulate these functions for this same reason. In this way, functions and services specific to the current version of RedHat (such as user authentication) can easily be altered to take into account new features or services of future releases.
However, to leverage volunteer resources, the tasks of developing the web interface (a task best suited to web developers) are separated from the tasks of developing back-end functionality (a task for formal PERL programmers). This distinction has the added benefit of allowing the web interface to be updated to a new corporate look in the future without affecting the application logic.