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 |