The installer posts several screens to the user that are less then intuitive during the upgrade process. For example, the installer will ask for the Tomcat port, but basically the port is already an existing variable within the uninstaller, so it doesn't need to be there. Other examples are the Apache locations. Those were already asked to the user during the previous installation when performing an upgrade, and do not need to be asked during the upgrade process.
This can be particularly confusing to a user if they enter in a NEW value to one of these variables, then expect those new values to take effect in the "upgraded" install. In fact, most (if not all) of the variables are actually ignored in the actual system configuration. However, the values that the user enters are used primarily during the install process for processes that are not updated to use the pre-defined values in the uninstaller during an upgrade process.
Additional programming within the installer code is needed for two things:
Don't ask the user for values we already know or don't need.
Add code that will utilize previous values if those previous values are located in the uninstaller.
This should accomplish several things:
Simplify the upgrade process.
Make it higher quality and more intuitive.