1. Reliability
1.1. Cloud Systems
1.1.1. Genetic Algorithms (GA), Tabu Search (TS), Simulated Annealing (SA)
1.2. Service Oriented systems (Web Service composition)
1.2.1. Particle Swarm Optimisation
1.2.1.1. C: Finding a right balance between the behavior of the algorithm during search space formulation and the right search space is difficult [P2].
1.2.1.1.1. AS: Experimenting different search methods could help in overcoming this issue.
1.2.1.1.2. AS: Using Hybrid approaches could potentially solve this issue. Refer [P3]
1.3. Systems developed using JAVA
1.3.1. Multiobjective Optimisation Genetic Algorithms(MOGA)
1.4. Component based systems in Automotive domain
1.4.1. Multi-objective ant colony optimisation
1.4.1.1. C: Applying Redundant allocation to improve the reliability of the system brings in negative impact on other non-functional attributes [P8].
1.4.1.1.1. AS: Solution lies out in trying out Multi-objective optimization algorithms.
1.4.1.2. Additional overheads incur into the response time of the system which itself is an important attribute for automobiles.
2. Power/ Energy Consumption
2.1. MiniSAT Boolean satisfiability solver
2.1.1. Genetic Improvement
2.1.1.1. C: Capturing the energy consumed outside the CPU proves to be challenging [P5].
2.1.1.1.1. AS: Simulation can partly address this issue.
2.1.1.2. C: Connection between source code and the energy consumed during project compilation [P5].
2.1.1.2.1. AS: Simulation can partly address this issue.
2.2. Systems using GIGI4 framework
2.2.1. Genetic Improvement
2.2.1.1. C: While Using the GIGI4 framework finding other factors that affect the energy consumption and their relative contribution is a challenge [P6].
2.2.1.1.1. AS: The energy consumption equation should be formulated inclusive of the parameters that determine the way the devices are used [P6].
2.3. Micro-Controllers
2.3.1. Genetic Programming
2.4. Software systems in general
2.4.1. Genetic Improvement
2.4.1.1. C: Optimization process is highly susceptible to compiler generated errors [P7].
2.4.1.1.1. AS: Issue could be overcome by involving a penalty and then stopping the program from going to next iteration [P7].
3. Service Time
3.1. Randomised Algorithms
3.1.1. Genetic Algorithms and multi-objective optimisation
3.1.1.1. C: When using model checking verifying properties of larger systems is very expensive as the number of states grow exponentially with the problem size [P9].
3.1.1.1.1. AS: Always select a subset of the non-functional property set for the optimization
4. Execution Time
4.1. Service Oriented systems (Web Service composition)
4.1.1. Particle Swarm Optimisation
4.1.1.1. C: Finding a right balance between the behavior of the algorithm during search space formulation and the right search space is difficult [P2].
4.1.1.1.1. AS: Experimenting different search methods could help in overcoming this issue.
4.1.1.1.2. AS: Using Hybrid approaches could potentially solve this issue. Refer [P3]
4.2. Systems optimised using GISMOE framework
4.2.1. Genetic Programming
4.2.1.1. C: Measuring Non-functional properties as a fitness function. Problem arises when interpreting these complex properties as a fitness function [P1].
4.2.1.1.1. AS: Finding the right metrics that would form the system should be know very well. To do that it is very important to get to know the SUT well.
4.2.1.1.2. AS: Simulation is recently gaining popularity and can be used to solve this. Cloud-based platforms can also be used.
4.2.1.2. C: Test Data Generation-Analyzing the programs from different perspectives to cover the test cases for the non-functional properties [P1].
4.2.1.2.1. AS: It is suggested to fix on a set of properties important for a system and then target them.
4.2.1.2.2. AS: The use-cases set up for the non-functional properties should be practical.
4.3. Systems developed using C
4.3.1. Genetic Programming and Multi-objective optiisation
4.3.1.1. C: Small changes in the source code could lead to strange behavior changes to the program's execution time [P4].
4.3.1.1.1. AS: Finding techniques that are not invasive (code is not altered during the testing process)
4.3.1.2. C: Maintaining semantic equivalence in the source code during the optimization process [P4].
4.3.1.2.1. AS: GISMOE framework has been developed to address this issue. It is a good idea to use that framework.
4.3.1.2.2. AS: Program slicing techniques like ORS have successfully captured data dependencies in a program. They can be used to ensure the correctness of the results.
4.3.1.2.3. AS: Usage of Coevolution algorithms is recommended [P4].
4.4. Micro-Controllers
4.4.1. Genetic Programming