AI led Software Engineering Use Cases: Application to Development

by Jérôme Perdriaud - Head of Smart Application Modernization, Sopra Steria
by Satish Srivastava - Head of Propositions Delivery & Architecture community, Sopra Steria India
| minute read

In the previous edition of the series, we have seen how AI transforms the software engineering lifecycle, specifically Management, Requirements gathering, Design phases. In this edition we will see how software development activities are affected by AI.


Development


AI is playing a crucial role in software development with use cases like defect prediction, Code recommendation, code auto-complete, detecting deviations from coding guidelines, obtaining insights from code, coding language translation and so on. 

There are variety of ML powered Integrates Development Environments (IDE’s) now in the market such as Visual Studio Intellicode, IntelliJ IDEA, Kite, Codota, (Deep) TabNine, CodeLobster. These IDEs come with functionalities like intelligent code recommendation, autocomplete, propose sample similar code etc. Visual Studio IntelliCode can discern coding convention used in part of your code and then apply it elsewhere to maintain consistency. IntelliJ IDEA provides features like auto completion of code based on the context, intelligent code refactoring. PyCharm, a popular IDE for python, provides smart code completion, code inspections, on-the-fly error highlighting and quick-fixes, along with automated code refactoring’s and rich navigation capabilities. Pylint is a Python source code analyzer 

AI enabled code-review tools can automate code reviews, automatically detect bugs and suggest code changes by understanding the intent of the code and identifying common mistakes, generate ranked list of usable code snippet and so on. DeepCode can help automate code review. It learns from thousands of high-quality open-source repositories and uses that acquired knowledge to perform the semantic analysis to tell where the developer’s intent and syntax differs and make suggestions on how a code can be improved. It can also alert about security and performance flaws. It can review Java, JavaScript, and Python code, integrates with GitHub, BitBucket and Gitlab, and can be used in real time as an extension to IDE’s. 

Evosuite is an open source tool to automatically generate Unit tests for Java software and has plugins for Maven, IntelliJ and Eclipse.

Clever-Commit, a coding assistant created by Ubisoft and Mozzilla developers, takes another approach to finding errors in code. It learns from the data in defect tracking system and the code base to inform a developer that his latest commit could be buggy based on previous commit and defect data. It can even recommend solutions to the bug it detects. Embold is another code analyser which can detect issues as well as recommend solutions. 

AI can also help convert translate a code written in one programming language to another. Facebook’s recently launched Transcoder takes the unsupervised learning approach to translate between C++, Java and Python code. 

Low code - no code company Outsystems has created the outsystems.ai R&D group which is collaborating with Carnegie Mellon university and contributing the DeepMind research and launched an AI assistant to their Low-code offering which can predict the next step you will need to take and recommends options which are fully configured and adapted to your business logic and context.

Recently launched GPT-3 code generator technology from OpenAI can create JSX and HTML/CSS code from simple English sentences in seconds. It’s early to say if it would scale up to more complex code writing but it is still a big step towards sufficiency in automated code generation from simple sentences in natural language.

AI systems that understand code and build them is an active area of research. If it is possible to teach a machine to understand and produce code it can potentially evolve itself, which is why this is a potential path towards Artificial General Intelligence, which is the problem yet to be solved.

Schema


In the following articles we will see the AI led software engineering use cases in subsequent project lifecycles phases and also Sopra Steria’s offerings in this space.

Read more

Expert intel

AI led Software Engineering Use Cases: Application to Requirements & Design

In the previous edition of the series, we have seen how AI transforms the software engineering lifecycle, specifically Management phases. In this edition we will see how Requirement engineering is affected by AI.

Read more

Search

application-management-sam

artificial-intelligence

Related content

How AI is powering support services for EDF employees

World leader in low-carbon energy generation EDF wanted an innovative tech solution to ease pressure on IT support teams while also boosting service quality. AMY was the answer. 

Sopra Steria and OVHcloud expand their partnership to industrialise AI and accelerate companies’ transformation using open source principles

By combining OVHcloud’s AI offering with Sopra Steria’s AI-industrialisation capabilities, this partnership will enable companies to scale up AI rollout.

Sopra Steria recognized as a Leader in Agile Development & DevOps Services by global analyst firm NelsonHall

NelsonHall’s NEAT vendor evaluation reflects Sopra Steria’s overall ability to meet future client requirements as well as delivering immediate benefits to Agile Development & DevOps Services clients. This evaluation assessed all the major providers in this segment worldwide.