What are you looking for?
51 Résultats pour : « Portes ouvertes »

L'ÉTS vous donne rendez-vous à sa journée portes ouvertes qui aura lieu sur son campus à l'automne et à l'hiver : Samedi 18 novembre 2023 Samedi 17 février 2024 Le dépôt de votre demande d'admission à un programme de baccalauréat ou au cheminement universitaire en technologie sera gratuit si vous étudiez ou détenez un diplôme collégial d'un établissement québécois.

Software Engineering Research and Innovation Software Systems, Multimedia and Cybersecurity

Facilitating Software Evolution

Faciliter l’évolution des logiciels

Software is now essential in every aspect of our lives. From morning till night, it helps us carry out our daily tasks at home, at work and everywhere. Software must evolve fast, however it ages and can quickly become obsolete, so it needs to be updated and maintained on a regular basis.

But evolving software systems is not an easy task. Software is considered among the most complex artefacts ever created by human beings. Software systems like Netflix or Amazon are made up of millions of lines of code, and just as many lines for configuration, documentation, testing, production, etc. Code changes are frequent and follow a complex process that often lead to cost or delivery time overruns. Our research team aims to improve software maintainability, evolution and quality while minimizing costs and improving developer productivity.

Software Development Process

The following figure shows a simplified version of the software development process.

Flux de travail du développeur typique, incluant rédaction de code, vérifications, et intégration continue.

It starts with a developer writing a piece of code or modifying an existing one. A preliminary check is then performed using an early warning system. If all goes well, a code review team inspects the code to identify any implementation or design errors/anomalies. If no problems are detected, the application will be built from the source code generally after running a continuous integration (CI) tool.

However, if a problem occurs at any stage, the developer must go back to the drawing board and pass the code through the sanity checks. To better manage this complex process, the use of high-performance, intelligent tools and techniques is crucial in efficiently making the required software changes.

Outils pour codeur

This can be achieved through artificial intelligence and data analytics techniques to support the volatile software lifecycle, while adopting customized methods to manage and reduce the growing complexity of these software systems. The ultimate goal of our research team is to develop intelligent, efficient tools to boost developers’ productivity and reduce software maintenance costs, which typically account for over 70% of the total budget.

Conclusion

It is important to follow best software design and implementation practices in order to avoid any possible failures and side effects that can hinder software maintenance and evolution. It’s also important to continually modernize and improve software development environments, and offer user-friendly, reliable and practical tools to facilitate the tasks of development teams.

About the authors
Ali Ouni is a professor in the Department of Software Engineering and IT at ÉTS. His work focuses on software quality, maintenance and evolution, and artificial intelligence application techniques to software engineering.