A system and method designed for computer system upgrade support that performs a virtual upgrade process of software components. Dependency checking and automatic conflict resolving features are supported. Subsequent to the result of the virtual process, an operative, real system upgrade is achieved. The virtual application utilizes a comprehensive rules language and a dynamically growing software component information base to accomplish the installation of new or improved components into an original system.