3
$\begingroup$

Artificial intelligence has been applied in many contexts, in particular, games.

In the context of software development, there are many problems that a software developer needs to solve and that could be automated by an AI

  1. API design
  2. Code refactoring
  3. User interface design
  4. Hardware constraints
  5. Design patterns
  6. Security
  7. Image/animation optimization
  8. Automated testing

I wonder if AI can help developers solve those problems. For example, for the problems above

  1. I may want to get some location of the user that is using the application, then the AI suggests the best way to do that for the specific platform.

  2. The AI helps to refactor and optimize the code

  3. The AI helps to design the user interface, e.g. based on the golden ratio, material themes, etc.

  4. The AI suggests or determines the limit of the hardware, e.g. screen size, RAM

  5. The AI converts to another suitable design pattern

  6. The AI warns about the latest vulnerabilities

  7. The AI helps to optimize images by learning how much can we reduce the image size, while people are still ok with it.

  8. The AI automatically tests

Is there any solution to these problems? If not, what can we do?

$\endgroup$
0

1 Answer 1

7
$\begingroup$

An umbrella term for the application of heuristic techniques to software development is Search-Based Software Engineering (SBSE).

SBSE emerged as a distinct activity around the turn of the century, with a strong initial focus on automating the generation/prioritization of test cases.

With respect to some of your specific queries:

  1. Paper on Automated refactoring

  2. Automatically choosing screen colour to minimize energy consumption.

  3. This sort of thing is not usually done heuristically, since it needs platform-specific code.

  4. Automated refactoring to patterns.

  5. AFAIK, penetration testing has yet to be successfully automated.

  6. As stated, this doesn't really require AI. More generally, I don't know of any specific work automating for HCI preferences, but something like 'Interactive Genetic Algorithms' could be used.

  7. There's a lot of SBSE literature on testing. See this paper for a general overview.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .