Skip to main content

Table 2 Overview on review results by software life cycle stage

From: Applications of AI in classical software engineering

Life Cycle Stage

Technologies

Achievements of AI

Limitations

Perspectives

Project planning

• Search-based software engineering

• Probabilistic planning

• Ant colony optimization

• Bayesian network algorithm

• Cost & duration prognosis and optimization

• Effective task assignment

• Efficient delimitation of search and scheduling space

• Improvement of quality outcomes

• Improved project planning

• Usage of data pools of pervious experiences

• Time and cost targets are met

• Manual definition of adequate algorithm

• No creative potential of AI

• Selection of ideal planning algorithm

• unleash creative potential in human developers

• Rapid AI based prototyping

Problem analysis

• Self-learning algorithms

• Big data strategies

• Success and risk prediction of software

• Evaluation of expert knowledge information pools

• Predict trends and programming outcomes

• Causal problem analysis is done by man, while machines only assist

• Decomposition of complex problem sets for systematic analysis and optimization

Software design

• Search based software engineering

• Probabilistic planning

• Analysis of conclusiveness of code or story (in gaming)

• Test program logics

• Probabilistic analysis

✓ Structured access to previous design patterns

✓ Free creative potential and ideation process by taking over routine tasks

• Basic structure is man-made and only checked by machine

• Automated routines have to be clearly defined

✓ Higher technical requirements to developers

• Human like skills to interpret real-world phenomena self-reliantly by own learning

• Application as a comprehensive data base

Software implementation

• Artificial neural networks/ deep learning

• Non-linear statistical analysis

• Probabilistic routines

• Natural language processing into code

• Autoencoding routines

• Automatic debugging and improvement routines

• Reduced implementation times & costs

• Improved team collaboration

• Dependence on well-defined problem sets and man-prepared structures

• Self-reliant coding and routine implementation

• Loss of human control

• Big data as reference

Software testing & integration

• Big data

• Pattern recognition

• Machine learning

• Checking and testing of scripts

• Probabilistic error prediction using big data

• Abbreviation and cost efficiency of test process

• Integration of existing programs (SOA)

• Efficiency gains by automated debugging & compiling

• predefinition of control routines is required

• Smarter developers are needed to handle automated routines

• Higher self-reliance of testing and integration

• Software developers as innovation protagonists

Software maintenance

• Pattern recognition

• Artificial neural networks

• Classification of queries; evaluation of errors

• Self-adaptive software routines

• Clear redundant code

• Speed up and ease maintenance

• Man-defined task sets and structures are required

• Human control of results

• Higher self-reliance and independence of maintenance and repair functions