A perfect system is one which completely matches the original specification with no problems at all. It should be a direct mapping from requirements to implementation. This would be the definition, in maintenance terms, of perfective maintenance. In order to make the system perfect it will be necessary to fix all problems and provide upgrades as necessary (so add new requirements or alter them depending on the situation). There should always be a scope and a way of describing what the perfect system should be.

Clearly this is expensive and very time consuming. It should only be used on either very small systems or critical systems. Systems such as air traffic control or nuclear power facilities would fall into this category.

A perfect system is only as perfect as the testing carried out on it. So although you may fix all the bugs you encounter this does not mean there are not still more bugs left in the system.