Ghizlane El Boussaidi: Optimizing Software Development
How can computer systems from the 1980s that are still prevalent in a number of sectors be modernized? How can software applications be created faster while making them more effective and more reliable at the same time? These are the kinds of problems that Professor Ghizlane El Boussaidi in the ÉTS Software Engineering and Information Technologies Department works to solve.
Adopting Best Practices in Software Design
Software engineers never start from scratch when they develop an application. They draw from a pool of proven practices and techniques that they adapt based on the specific software and its features.
Professor El Boussaidi’s research work consists of developing techniques and tools that support and promote best practices in the area of software design, focusing specifically on the implementation of design patterns and architectural styles.
Modernizing Legacy Systems
In the fields of transportation, finance, insurance and other traditional sectors, it is not uncommon to find software systems dating back to the 1970s or 1980s. These systems are referred to as legacy systems. Technology has evolved significantly since then, and the architecture of these systems greatly hinders their ability to integrate with new applications.
Professor El Boussaidi creates tools that help developers to understand and reconstruct the architecture of legacy systems, and to ensure their migration toward new architectures. Her work often seems like a kind of computer archaeology!
Using Domain-Specific Languages
Professor El Boussaidi devotes a portion of her research to domain-specific languages. These are modelling languages for which the specifications target the requirements of a specific field of application.
Domain-specific languages are especially useful for designing critical systems in the transportation, avionics and aerospace sectors. They allow for a formal description of software application requirements using domain-specific concepts, vocabulary and grammar, which promotes the design of highly reliable software.