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