By Rekha Kodali
AI can play a significant role in improving productivity across the SDLC. AI Assistants can help architects, developers, testers, dev ops agents across the SDLC in various phases.
Given below is a view on how AI based framework can help across the SDLC.
Composability of applications and AI has a significant role in suggesting the right components and patterns to be used.
Let us see how AI can help in each of the phases across the SDLC:
AI in Requirements Specification:
- NLP can be used to derive use cases from what the user specifies in English.
- AI can help choose from a pre-defined set of use cases that address a specific innovation area or a challenge.
AI in Architecture/Design: AI can suggest alternate designs and architectures based on previous implementations, which will help guide the architect to take the right decisions.
AI augmented Design: AI can suggest right UI designs for legacy UI designs.
Improvement in accuracy of estimates: AI can help improve the estimation models using previous executions.
AI in Code Generation:
- Developer Assistants can help the developer by recommending right code snippets by embodying best practices.
- Refactoring Assistants can help code to be refactored and cleaned on a regular basis.
- Upgrade Assistants can help suggest periodic upgrades of the software and frameworks. UI Modernization Assistants can help recreate modern interfaces from legacy interfaces.
- Code as Templates: Software code can be made available as templates with the project coding standards.
- Reusability: Curated code can be made crowdsourced and maintained in a global repository.
- Self-healing Code Assistants can go through code corrections and apply them on other pieces of code before a new build starts. Logs can be analyzed to flag errors and suggest ways to fix the errors.
- Review Assistant: Auto Correct Assistant can help in auto correction of code.
- AI based Debugging Assistant can help in Bug detection and Fixing.
AI in Testing: Suggesting the right test cases can help improve the accuracy and coverage. planning and prioritization, creation and maintenance, data generation, visual testing and defect analysis.
Regression Testing: Suggesting only the code components that would be affected by the changes will help in saving effort and time by not testing the entire code again.
AI in Testing can help in load testing.
AI in Deployment, Maintenance and Release: Right containerization approach helps in choosing the appropriate target workload. Upgrade Assistants, Auto Correct Assistants help ease the deployment process. Now that we have seen how AI can help in the software engineering process, we will see how the foundation for such a platform can be built.
The foundation framework leverages AI. The Knowledge Base consists of reference architectures, domain/business requirements, curated UI models, explicit and tacit knowledge, code snippets, estimation models etc.
It helps in recommended curated templates, code snippets, which help in rapid development of prototypes and faster build and deployment. It can help in building knowledge base and providing the right recommendations. It helps in community contributions.
Given below is an indicative view on how much savings can be achieved leveraging AI in each phase:
Overall, Artificial intelligence will have a significant impact across the entire SDLC. AI can help in reducing effort across the SDLC. AI in software Engineering will be a game-changer!
Rekha Kodali is a Managing Director in Accenture. With more than 24 years of experience in Microsoft Technologies, her focus areas include Azure, Enterprise Architecture, Sustainability, Composable Architectures, Presales and Innovation. She has been instrumental in creating differentiated solutions and service offerings. Her certifications include TOGAF, IASA certified Foundation Architect and Azure Solutions Architect Expert and several other MS certifications. She has published multiple research papers and published 2 books on Azure.