What is claimed is:1. A computer program embodied on a non-transitory computer readable medium, comprising:computer code for storing a configuration file for a client device, the configuration file for use in maintaining a desired level of quality of experience (QoE) of the client device and the configuration file including:a policy dependent on a user profile that prioritizes sub-networks associated with the access points by cost, anda QoE degradation pattern that is a predefined pattern indicating degradation in the QoE of the client device;computer code for using the QoE degradation pattern in the configuration file to determine that the client device is showing the QoE degradation pattern;computer code for determining a subset of all access points that are available to the client device, based on the policy;computer code for determining a current QoE provided to the client device by one of the access points currently utilized by the client device to access a network, the current QoE being automatically determined by evaluating a first predefined function that takes as input at least one first quality of service (QoS) value measured based on operation of the client device;computer code for determining an expected QoE associated with each of the other access points in the subset, the expected QoE associated with each of the other access points being determined from an evaluation of a second predefined function that takes as input at least one second QoS value measured based on operation of the other access point;computer code responsive to the determination that the client device is showing the QoE degradation pattern for switching the access point utilized by the client device to access the network to one of the other access points in the subset, based on the current QoE and the expected QoEs.2. The computer program of claim 1, wherein the policy indicates at least one trigger for determining the subset of all access points that are available to the client device.3. The computer program of claim 2, wherein the at least one trigger occurs in response to identification that a location of the client device has changed.4. The computer program of claim 2, wherein the at least one trigger occurs at a periodic interval.5. The computer program of claim 1, wherein the current QoE is determined in response to the determination that the client device is showing the QoE degradation pattern.6. The computer program of claim 5, wherein the QoE degradation pattern is identified utilizing a script.7. The computer program of claim 5, wherein the QoE degradation pattern is determined from expected usage of the client device and applications running on the client device.8. The computer program of claim 1, wherein a server determines the expected QoE for each of the other access points in the subset, and wherein the client device determines the expected QoE for each of the other access points in the subset by receiving the expected QoEs from the server.9. The computer program of claim 8, wherein the server performs the evaluation of the predefined QoE metric by collecting QoS information measured by all client devices connected to the access points and reported to the server.10. The computer program of claim 1, wherein the determination of the subset of all access points that are available to the client device is performed by the client device.11. The computer program of claim 1, wherein the current QoE is a subjective parameter representing the at least one QoS value measured based on operation of the client device, as expected to be perceived by a user of the client device.12. The computer program of claim 1, wherein the client device determines the current QoE.13. The computer program of claim 1, wherein the access point utilized by the client device to access the network is switched to the one of the other access points in the subset when the expected QoE for the one of the other access points is greater than the current QoE.14. The computer program of claim 1, wherein the network is a heterogeneous network, and the access points are located across sub-networks of the heterogeneous network.15. The computer program of claim 1, wherein the current QoE and the expected QoE are each a measure of network performance at a service level from a user perspective and wherein each of the first and second QoS values is a measure of the network performance at a packet level from a network perspective.16. A system, comprising:a processor for:storing a configuration file for a client device, the configuration file for use in maintaining a desired level of quality of experience (QoE) of the client device and the configuration file including:a policy dependent on a user profile that prioritizes sub-networks associated with the access points by cost, anda QoE degradation pattern that is a predefined pattern indicating degradation in the QoE of the client device;using the QoE degradation pattern in the configuration file to determine that the client device is showing the QoE degradation pattern;determining a subset of all access points that are available to the client device, based on the policy;determining a current QoE provided to the client device by one of the access points currently utilized by the client device to access a network, the current QoE being automatically determined by evaluating a first predefined function that takes as input at least one first quality of service (QoS) value measured based on operation of the client device;determining an expected QoE associated with each of the other access points in the subset, the expected QoE associated with each of the other access points being determined from an evaluation of a second predefined function that takes as input at least one second QoS value measured based on operation of the other access point;responsive to the determination that the client device is showing the QoE degradation pattern, switching the access point utilized by the client device to access the network to one of the other access points in the subset, based on the current QoE and the expected QoEs.17. The system of claim 16, wherein the processor is coupled to memory via a bus.18. A method, comprising:storing a configuration file for a client device, the configuration file for use in maintaining a desired level of quality of experience (QoE) of the client device and the configuration file including:a policy dependent on a user profile that prioritizes sub-networks associated with the access points by cost, anda QoE degradation pattern that is a predefined pattern indicating degradation in the QoE of the client device;using the QoE degradation pattern in the configuration file to determine that the client device is showing the QoE degradation pattern;determining a subset of all access points that are available to the client device, based on the policy;determining a current QoE provided to the client device by one of the access points currently utilized by the client device to access a network, the current QoE being automatically determined by evaluating a first predefined function that takes as input at least one first quality of service (QoS) value measured based on operation of the client device;determining an expected QoE associated with each of the other access points in the subset, the expected QoE associated with each of the other access points being determined from an evaluation of a second predefined function that takes as input at least one second QoS value measured based on operation of the other access point;responsive to the determination that the client device is showing the QoE degradation pattern, switching the access point utilized by the client device to access the network to one of the other access points in the subset, based on the current QoE and the expected QoEs.